从文字到行动 / 16 OF 20

Codex、Claude Code:从补一句代码,到修一个项目

NLP、Agent与世界模型的20段故事
资料核查截止 2026年9月7日 · 正文约 1,658

设想一家小店规定:商品金额扣除优惠后,满100元包邮。顾客买了120元商品,用掉30元优惠,实际商品金额90元,网站却显示免运费。

商家向编程助手提出:“修好包邮判断。”这听起来只要改一行。但助手必须先找到那行,理解“满100元”的口径,还要确认改完以后100元整不会被收运费。

这是自拟的教学故障。文中的三种判断与四组金额已用本地程序核对,用来说明执行与验证的作用,不是Codex或Claude Code的产品对比测试。

先看项目,才能知道改哪儿

如果只让模型续写一小段代码,它能依据眼前片段提供补全。项目维修的输入则分散在不同地方:业务说明写包邮规则,优惠模块计算折扣,运费模块作判断,测试文件记录预期行为。

因此第一步往往是读取项目说明、搜索有关名称、查看调用关系。所谓调用,就是一个部分把数据交给另一个部分处理。读取这些关系,才能知道运费判断拿到的是优惠前还是优惠后金额。

Codex CLI的官方说明包括检查项目文件、修改内容和运行本地开发工具;Claude Code的官方机制说明则明确描述了收集上下文、采取行动、验证结果的循环。1 2

在教学项目里,假设读取后发现:优惠模块已经算出90元,但包邮判断仍拿120元比较。问题不在“模型懂不懂减法”,而在正确结果没有进入正确位置。

这也是编程Agent相对单点补全的重要工作范围变化:它有机会主动取得分散的证据。不能把“可访问整个项目”误解成“每次推理自动同时精读整个项目”;真正进入当前判断的内容,仍依赖搜索、读取与上下文管理。

满仓工具,不等于已经找到那颗松动的螺丝。

先重现错误,别只写一份修复宣言

在这个例子中,可以把输入固定为商品120元、优惠30元,运行现有判断。旧逻辑看120元是否满100元,返回包邮;业务规则看90元,应返回不包邮。预期与实际相冲突,错误因此可以重复观察。

为了避免金额表示的其他因素干扰,内部验证按“分”计算:12000减3000得到9000,与10000比较。本篇只讨论这一项资格规则,设定金额非负、优惠不超过商品金额,不添加真实商店可能还有的税费、地区和会员条件。

这一步的价值是给修复一个明确目标。如果不重现,模型可能改了名称相近但根本未使用的旧函数,随后写出一篇非常专业的完成报告。代码修改是真实的,问题仍然真实存在。

2023年提出的SWE-bench将真实代码仓库中的问题与修复评测联系起来,关注生成的修改能否通过相关测试,而不只是文字上像一个补丁。3

这里的补丁指一组文件差异,说明哪里增加、删除或改写。补丁写得合理是必要过程,运行后的行为才回答“修好了没有”。维修发票不能充当发动机点火测试。

修好90元,又错在100元

设想第一次改动把条件变成“优惠后金额大于100元”。120减30得到90,确实不再包邮,最初故障消失了。

但第二组输入是120元减20元,正好100元。规则写“满100元”,应当包邮;“大于100元”却将它排除。第一轮修改纠正了计算口径,又引入边界错误。

测试结果进入Agent的下一轮输入,它可以据此把条件改成“优惠后金额大于或等于100元”。再检查90元、99.99元、100元和101元,前两者不包邮,后两者包邮。四组结果与本篇规则一致。

这个过程增加的不是一次更响亮的自我肯定,而是一条此前未知的外部反馈。模型提出修复,程序运行,失败定位新的条件,再修改,形成与上一章一致的行动循环。

同时还要检查原来正确的行为是否被破坏。这叫回归检查:修复目标故障之后,原有应当通过的情况仍然通过。SWE-bench的评测也区分原先失败、修后应通过的测试,以及原先通过、修后仍应通过的测试。3

“一个红灯变绿”值得高兴,但如果顺手把旁边三个绿灯改红,系统只是重新设计了交通拥堵。

测试通过以后,结论应该有多大?

在教学范围里,四组输入通过,支持这段资格判断符合设定。它不证明页面展示、支付总额、服务器部署都正确。若网页调用的仍是旧版本,顾客照样会看到错误结果。

所以项目任务需要让验证范围与承诺相配。只改函数,就说明函数级检查;声称用户流程修复,就需要在实际流程里核对。运行环境也会影响结果:依赖缺失造成程序无法启动,与业务断言失败,应分别处理。

Codex和Claude Code在这里代表的是一种工作方式:语言模型与文件、命令及反馈连接,由外层系统管理执行和上下文。不能从一个产品名称推断固定模型版本,也不能根据界面外观猜测未公开的内部架构。本文产品描述以读取到的官方资料为界。1 2

最终交付还应包含可查看的改动与验证结果。把文件改好、把改动提交到版本记录、把软件发布给顾客,是不同动作,是否执行取决于本次任务范围。

标题中的跨越因此不只是“代码写得更多”。项目Agent会围绕目标寻找资料、定位错误、执行改动,并利用真实测试继续调整。它把语言生成接进了软件工作的反馈链。

我们的90元终于不包邮,100元也保住了资格。下一篇要把时间拉长:如果维修跨过许多轮对话,助手还能记得这条规则为什么这样改吗?

参考资料

  1. Codex CLI,OpenAI,读取于2026-09-07。官方文档
  2. How Claude Code works,Anthropic,读取于2026-09-07。官方文档
  3. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?,Carlos E. Jimenez、John Yang、Alexander Wettig等,预印本2023,ICLR 2024。论文