跳到主要内容

A6.2 为什么偏偏是代码最先成熟

一个待解释的现象​

到 2026 年,代码智能体已经能在真实项目里修 bug、写功能、过 CI;而「帮我订一张最便宜的机票」这种听起来简单得多的任务,商用智能体却还常常翻车。

一个能读懂几万行陌生代码库的东西,为什么搞不定订票?答案不在任务的「难度」,而在一个更隐蔽的属性——可验证性:环境能不能自动、即时、客观地告诉智能体「你做对了没有」。

代码这一类任务,天生带着一把自动判分尺。这把尺子,改变了一切。

三个叠加起来的优势​

优势一:即时、客观的反馈。 代码跑没跑通、测试过没过,是确定的、秒级的、无需任何人评判的。这正好补上了 A2.2 反思那一节最关键的短板——我们说过,「有依据的反思」远比「空想的反思」有效,而代码天然自带依据:报错信息、失败的测试用例,就是最硬的依据。A6.1 的重放里,智能体第一次改错方向能被测试拦下来,靠的就是这把尺子。

优势二:训练数据又多又带标签。 上篇 4.1 节讲过,代码是预训练语料的重要来源。但代码数据还有一层别的语料没有的红利——它自带天然标签:一个提交(commit)后面跟着的测试是绿是红、这段代码后来有没有被回滚(revert),都在无声地标注着「这次改对了吗」。GitHub 上亿的代码、提交、issue、review,构成了一座又大又有答案的金矿。

优势三:可验证奖励让强化学习好训。 上篇 5.5 节的 RLVR(可验证奖励强化学习)之所以在数学和代码上最成功,正是因为这两个领域「对错能自动判」。奖励信号不需要人来打分,也就不会被谄媚和偏差污染——测试过了就是过了,模型没法靠「说得好听」骗到分。

三个优势叠起来,形成一个飞轮:可自动判对错 → 能生成海量训练与评测信号 → 能高效改进 → 能力增长。代码就这样一路领跑。

反过来看:为什么订机票难​

把这三个优势倒过来,就是订票类任务的困境:

  • 没有测试套件告诉你「订对了」:机票订得好不好,牵涉价格、时段、中转、退改签偏好——没有一个自动判据能说「这次成功」。
  • 动作不可回滚:代码改错了可以 git revert,机票扣了款、发错了消息,覆水难收。
  • 错误代价真实且高:沙箱里删错文件重置即可,现实世界里订错票是真金白银。

所以不是订票「更难」,而是它不可验证、不可回滚、错误昂贵——恰好是代码的三个优势的反面。

沙箱:可验证之外的第二个安全垫​

代码智能体敢于大胆试错,除了有测试当尺子,还因为有沙箱兜底:在一个隔离的环境(容器、虚拟机)里,它改坏了、删错了、甚至跑了段危险代码,重置一下,真实系统毫发无伤。

沙箱把「试错的代价」压到几乎为零——这跟测试的「即时反馈」是绝配:放心试 + 立刻知道对错 = 快速迭代。这也是为什么 A8 的防御工程会把沙箱列为重要一环:它既是能力的加速器,也是安全的隔离带。

一条贯穿全书的暗线:可验证性光谱​

把常见的智能体任务按「反馈有多客观、多即时」排成一条光谱,你会看到一条清晰的规律:

单元测试(最硬)→ 数学题 → SQL 查询 → 网页信息抽取 → 开放写作 → 情感陪伴(最软)

越靠硬端的任务,智能体越早成熟。 这不是巧合——它是同一个飞轮在起作用。这条暗线其实贯穿了整本书:上篇的 RLVR 挑中数学和代码、评测章反复强调「能自动判的客观指标最可信」,到下篇的 A7 评测、A8.3 的 Agentic RL——全都指向同一件事:能不能自动判对错,很大程度决定了一类任务的成熟速度。 记住这条光谱,你就有了一把预测「哪种智能体会先靠谱」的尺子。

「可验证」不等于「安全」也不等于「正确」

两个提醒。其一:测试通过的代码,仍可能有测试没覆盖到的 bug、有安全漏洞——判分尺只保证「过了这些测试」,不保证「真的没问题」(回扣 A7:评测集自身有覆盖盲区)。其二:代码智能体能力强,也意味着被恶意利用的风险更高——写恶意代码、在沙箱里尝试越狱。能力和风险永远是一枚硬币的两面,A8 会专门谈。

小结​

本节要点
  • 代码智能体领跑的根本原因是可验证性:环境能自动、即时、客观地判定对错。
  • 三个叠加优势:即时反馈(喂养「有依据的反思」)、数据又多又带天然标签、可验证奖励让 RL 好训——形成能力增长飞轮。
  • 订机票类任务难,恰因它不可验证、不可回滚、错误昂贵——是代码三优势的反面。
  • 可验证性光谱是一条贯穿全书的暗线:越靠「能自动判对错」的硬端,智能体越早成熟。
📝 动手自测0/3
1. 为什么代码智能体比订机票智能体更早成熟?
2. 在 A6.1 的重放里,智能体第一次把满减门槛从 40 改成 41(治标不治本),是什么把它拦了下来?
3. 关于「可验证性光谱」(单元测试→数学→SQL→网页抽取→开放写作→情感陪伴),下列理解正确的是?

延伸阅读​