AI 编码 · 代码维护 · 精华速读
五人两周,删掉 80 万 行死代码
OpenAI 核心实验团队把代码维护交给 Codex 里的 GPT-6 系列:一句模糊提示就能换来附证据的删除 PR,累计合并 1,400 多个。更便宜的一档模型只要 14% 的成本,就能拿到 92% 的发现 ——前提是提示词写清护栏与举证标准。
来源 · OpenAI Developers《Maintaining software with the GPT-6 family》 · 阅读约 5 分钟
自行定位
逐条举证
加速审查
01
一句短提示
交代目标即可
02
跨系统取证
PR · Slack · 性能表
03
小 PR + 理由
每处删除可追溯
04
人工审查
分派到各团队
5 名工程师 · 两周业余时间 · 1,400+ PR · 80 万行
Fig. 1 维护的瓶颈不在改代码,而在举证:模型把「为什么可以删」的证据一起交上来,审查才跟得上生成速度。
规模 五名工程师在两周业余时间里,于多个代码库合并 1,400 多个维护 PR ,删除 80 万行以上死代码。
证据 模型自己去翻历史 PR、Slack 讨论、项目跟踪器和生产性能表,为每处删除写出理由 。
成本 同一提示词下,GPT-6.1 Sol Ultra 用 14% 的 API 成本 拿到 Astra Ultra 92% 的发现数。
边界 有些提案增加的复杂度超过收益,排序与度量仍是流程的一部分 ,不是交给模型就结束。
01 · 死代码清理
模糊提示能成立,是因为模型自己去补证据
历史 PR 与重叠改动
Slack 讨论上下文
内部项目跟踪器
生产性能分析表
确认从未被执行
逐处写明删除理由
提交
一个小草稿 PR
证据随改动一起交付
Fig. 2 四个来源彼此独立,任何一处「看起来没用」都要被交叉验证后才会变成删除。
过去团队靠与运行时日志集成的静态分析删死代码,误删事故仍会发生:反射会干扰分析,看似无用的分支也可能留着应急。到 GPT-5.6 Sol,作者还得指定范围与验证标准;换到 GPT-6 Astra 后,一句连拼写错误都没改的提示就够用了。
清理前
3.31 GB
清理后
1.72 GB
−1.59 GB · −48%
Fig. 3 删掉的死代码直接变成可测量的体积:一个服务的镜像减半,另一组清理从测试套件移除了约 400 个视觉快照变体。
02 · 过期实验
代码还在跑,所以要先写护栏再放大范围
过期实验比死代码难:它们的代码可能仍在生产运行,或依赖随时变化的资格评估。团队过去用确定性静态分析加数据库查询,自己也知道产生了大量假阴性。作者于是让 Astra 先起草一版带护栏的提示词,再逐级放大。
反馈回写
确认后放大
①
单个项目 + 护栏
保留 killswitch
②
评论变新提示
把评审意见写进去
③
全库扫描报告
按归属拆成工作流
不改线上配置与服务
Fig. 4 每一级都把上一级的人工判断沉淀成提示词约束,范围放大时护栏不会丢。
全库提示词要求模型审计所有 Statsig 项目而不只看标了 stale 的对象,追查枚举、包装函数、别名、动态拼接名与跨服务调用方,并结合埋点估算每个对象的 CPU 成本,最后输出按负责人分组、可并行执行的 markdown 报告。
判断力案例
几年前有工程师写了一行 Python,把「测试用覆盖开关」映射到所有其他功能开关,混在数百行同类映射里毫不起眼。Astra 发现它造成显著的 CPU 扇出,但因为它被标为 “Permanent”,只提交人工复核,没有直接删。复核后开关被移除,主服务预计省下 0.42% 的 CPU。
03 · 成本对比
同一提示词:14% 的钱,92% 的发现
模型 / 努力程度
每项发现成本
发现数
API 成本
GPT-6 Astra Ultra
$0.77
142
$109.06
GPT-6.1 Sol Ultra
$0.12
131
$15.12
← 92% 的发现,14% 的成本
GPT-6.1 Sol Medium
$0.06
86
$5.27
测试范围:6,000+ 文件、100 万行代码,含 Python / TypeScript / Go / Rust
Fig. 5 条形长度是每项发现的成本:Astra 是 Sol Ultra 的 6.4 倍,多花的钱只换来 11 项额外发现。
差异不是随机的:Ultra 档上两者的大部分差距,来自被其他开关依赖的常量开关——Astra 找到了,Sol 漏掉了。把这类错误模式写成提示词补丁,便宜模型就能逼近贵模型;但新模型发布会让补丁过期,需要重测。
04 · 可复用提示词
三个短提示,都可以先从小处试
稳定测试
修 flaky 测试
让 Codex 翻最近的 CI 运行,为每个不稳定测试尝试修复并开 PR;明确要求只找简单问题的明确修法,不做穷举。
改进上下文
回放 AGENTS.md 的一条指令
找出最近一次被错误指令带偏的会话,在同一快照上把同一提示跑两遍:一次保留该指令,一次删掉它,比较质量、工具调用、token 与耗时。
CI 负载
按可省分钟数排序
让 Codex 基于本仓库的 CI 历史,列出减轻负载的想法并按每日可省 CI 分钟排序,再挑前几条跟进。
CI 完成时间(分钟)
中位数
10
4.5
p90
12.5
6
上条为优化前,下条为优化后
resolver 套件(秒)
修复前
592.6
修复后
29.8 · −95%
63 个测试全部保留
Fig. 6 约 30 个 CI 优化 PR 后,完成时间腰斩;补上一个缺失的 mock 又把 63 个测试的套件压到原来的 5%。
假阴性
便宜模型漏掉依赖型开关
漏掉依赖
假阴性
输入
过度设计
提案的复杂度超过收益
收益 < 成本
拒绝
提案
会过期
提示词补丁随模型更新失效
需重测
新模型
补丁
人工兜底
标了 Permanent 就交给人
人工复核
删除
Permanent
Fig. 7 同一套流程的四种偏差:漏检靠换模型或补提示词,过量靠排序,过期靠重测,真正需要判断的留给人工。
作者提醒:在更大的代码库里,很容易被模型找出的优化数量淹没;而有些提案增加的复杂度超过其收益。优先级排序与度量,仍要靠埋点和提示词技巧共同完成。
In this comparison, GPT-6.1 Sol Ultra produced 92% as many findings as GPT-6 Astra Ultra at 14% of the API cost.
原文 · Improving cost effectiveness with GPT-6.1 Sol
However, some proposals added more complexity than their expected benefit justified, so prioritization and measurement remained an important part of our workflow.
原文 · Start small, review, and expand