跳到主要内容

agent 与环境 — 训练会做事的模型

这一章讲三件事: 为什么聊天能力和做事能力是两回事;训练「会做事的模型」为什么非有环境不可; 多步任务的奖励该怎么拆。 这是后训练版图上最新、最没定型的一块——书里自己也说工具还在演化。 读完你能回答:「为什么不能把单轮训练的那套直接搬到 agent 上?」

1. 先看现象:会答题,不会做事

拿一个过完三段训练的模型去干活:让它改一个报错的程序,它可能喋喋不休地分析那段代码,却从来不去运行一下看看结果。它会聊天,不会做事。

做事的样子是:在一个环境里连续多步行动——编码 agent 写代码、跑测试、读报错、再改;研究 agent 搜索、读文档、综合;客服 agent 读账户数据、做决策、执行操作1

这些活儿需要的能力——跨步规划、从错误里恢复、正确用工具、验证自己的产出——书里点得很硬:它们是学出来的行为,不是提示工程出来的。靠系统提示词堆出来的「做事流程」,跨输入稳不住2

2. 顶层全景:从一轮问答到一个回合

单轮训练(前面三章的世界)
prompt ──→ 模型 ──→ 回答 ──→ 打分 ──→ 更新 一回合,一步

agent 训练(本章)
重置环境 ──→ 模型行动 ──→ 环境返回观察(+也许给分)
│ │
└──── 再行动 ←──────────────────┘
……直到回合结束,按「整个轨迹」结算一次奖励

图说:轨迹(trajectory)= 一整串「动作+观察」。打分的对象从
「这一句回答」变成「这一整趟做得成不成」。同样的更新循环,
只是每一圈变长了。

3. 核心原理:为什么 RL 是 agent 的自然匹配

结局可验证

agent 的行动结果大多程序能断:代码编译过还是没过、测试通过还是失败、检索回来的文档答没答上问题。第 05 章说过,「可验证」意味着奖励免费——不用人打分,不用替身打分器3

同一个循环,加长的回合

书里的原话:这就是产出 R1 的那个循环,扩展到带工具使用和环境交互的多步任务4。模型生成一条轨迹(一串动作与观察),奖励按轨迹有没有达成目标给,模型被更新成「多产出成功的轨迹、少产出失败的」。第 05 章的每一个词——策略、奖励、rollout——原样适用,只是 rollout 从「采一条回答」变成「走完整趟」。

4. 三件新难事

书里列的这三条,就是「不能直接搬」的原因5:

新难事具体是什么后果
回合更长一步错了要很多步之后才暴露信用分配变难:第 10 步失败了,是第几步埋的雷?
动作空间更大除了说话,还能调工具、写代码、产结构化输出(按固定格式组织的 JSON 之类)候选行为多到数不过来
必须有环境训练时得有东西让它交互:跑代码的隔离容器、可调的 API、模拟用户环境本身成了工程量

主走查:一个编码 agent 的一回合

场景是书里点名的「写、跑、调代码」(对话与报错内容为演示编的,回合结构与「按结局给分」是书里的)6:

重置 开一个代码仓库:三个测试里有一个红的
行动① 读失败测试的报错 观察:「assert sum([1,2]) == 5」失败
行动② 打开 sum 的实现改一行 观察:测试仍然红——改错了地方
行动③ 回滚,查另一个文件 观察:发现硬编码的返回值
行动④ 删掉硬编码,真算 观察:三个测试全绿 → 回合结束

奖励按结局结算:任务完成,奖励 1;超时或放弃,奖励 0。

图说:信用分配的难题在这条轨迹里看得见——行动②浪费了一步,
但轨迹最后是成功的;如果行动③回滚失败、就此超时,
「该怪哪一步」没有一个显式的答案,奖励只有一个 0。

5. 环境的协议与生态

协议朴素得像游戏机

书里给的环境协议四句话:重置到初始状态 → 模型做一个动作 → 返回观察(可带奖励)→ 循环到回合结束。这就是标准的强化学习循环,套在语言模型 agent 上7

好环境有三个标准,书里原样列出:信号真实(别拿玩具任务训出假本事)、变化足够(防背题——模型把题库背下来就不是能力了)、够快(RL 要几千个回合喂饱更新)8

OpenEnv:正在长出来的标准

环境设计是活跃开发区,书里点名了 OpenEnv 项目:给「语言模型 ↔ 训练环境」的对接定标准协议,自带两样关键设计——程序化生成(现场生成新任务实例,防背题)和沙箱——把模型的代码跑在隔离容器里,搞不坏真机。

网页导航、数据库交互、API 工具调用(让模型按固定格式向某个接口(API 的另一叫法)发起操作)的环境都已经有了9

奖励怎么拆:多步的新设计问题

单轮任务里,奖励是「输出」的函数;多步任务里,奖励可能落在四个不同的问题上10:

  • 结局:任务完成了吗?
  • 效率:用了几步?
  • 中间步质量:工具用对了吗?
  • 安全:避开了危险动作吗?

把这些拆成分量、再定各占多少权重,是单轮后训练里不存在的设计问题。书里还给了个务实的中间态:可以只把环境搭起来用于评测、先不做完整的强化学习——观察模型在真实任务里的成活率,再决定要不要上 RL11

6. 作者的判断与证据

给了证据的:

  • OpenEnv 与既有环境类型(网页/数据库/API)——对应公开项目,可核实;
  • 「可验证的结果让 RL 自然匹配 agent」——与第 05 章 R1 的已证实路线同构,是把已验证的机制扩展到多步的场景。

是作者的论断:

  • 「规划、纠错、工具使用是学出来的、不是提示出来的」——方向有依据(提示词跨输入不稳,第 02 章讲过),但书里没给「提示版 agent vs 训练版 agent」的对照数据;
  • 「工具还在演化」——作者自己把这一章标成了进行时,原书承诺在后续章节展开环境设计与多步奖励构造,Early Release 尚未出版。

7. 边界与局限

这是全书最薄的一章(原书两节、不到三千词),对应的是这个领域本身的成熟度:协议在定、项目在动、最佳实践没凝固。三条要记住的边界:

  1. 环境是新的工程大头:要真实、要多样、要快——三样全占不难才怪,书里明说这是活跃开发中的问题;
  2. 信用分配没有现成答案:奖励只在回合终点,长轨迹里哪步该记功、哪步该记过,书里只提出问题,没给解法;
  3. 安全分量的加法没讲:奖励里放多少「安全权重」,是设计问题,书里点到为止。

书里没覆盖、读时别指望的:具体某个环境的搭建教程、多步 RL 的完整训练配置、agent 评测基准——这些都在未出版的后续章节计划里。

8. 可带走的

  1. 聊天能力和做事能力是两种东西:做事 = 在环境里连续多步行动;
  2. 规划、纠错、工具使用、自验证是学出来的,提示堆出来的流程稳不住;
  3. agent 行动的结局大多可验证——编译、测试、检索命中,所以 RL 匹配;
  4. 轨迹是打分的新对象:从「这句回答好不好」变成「这一整趟成没成」;
  5. 回合变长,信用分配变难:终点失败,不知道该怪哪一步;
  6. 环境协议四句话:重置、行动、观察、给分,循环到结束;
  7. 好环境三标准:信号真实、变化防背题、快到喂得起几千回合;
  8. 程序化生成防背题,沙箱执行防搞坏东西——OpenEnv 把这些做成了标准件;
  9. 多步奖励要拆分量、定权重:结局/效率/中间步/安全,单轮里不存在这个问题;
  10. 可以先只拿环境做评测,确认值得,再上完整 RL——最短流水线原则在 agent 上的样子。

9. 原文地图

主题原书章原文位置
agent 的定义与三类例子Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:118(搜「takes actions in an environment over multiple steps」)
能力是学出来的、结果可验证Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:120(搜「learned behaviors, not prompt-engineered」)
与 R1 同一循环、按轨迹给奖励Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:122(搜「sequence of actions and observations」)
三件新难事Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:124(搜「credit assignment harder」)
环境给观察、收动作、返结局Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:182(搜「output of a code execution」)
环境协议与好环境三条件Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:184(搜「until the episode ends」)
OpenEnv、程序化生成、沙箱Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:186(搜「OpenEnv」)
多步奖励的分解Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:188(搜「Decomposing the reward」)
建环境只做评测的中间态Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:200(搜「only use them for evaluation」)
后续章节的承诺Chapter 1. Introduction to Post-Trainingtext/04-ch01-chapter-1-introduction-to-post-training.txt:126(搜「environment design」)

Footnotes

  1. 出处:「Chapter 1. Introduction to Post-Training」第 118 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:118,搜「takes actions in an environment over multiple steps」)。原文三类例子:编码 agent 写/跑/调代码;研究 agent 搜索/阅读/综合;客服 agent 读账户/决策/执行。

  2. 出处:「Chapter 1. Introduction to Post-Training」第 120 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:120,搜「learned behaviors, not prompt-engineered」)。原文列四种能力:跨步规划、从错误恢复、正确用工具、验证自己的输出。

  3. 出处:「Chapter 1. Introduction to Post-Training」第 120 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:120,搜「The code compiles or it does not」)。原文:代码编译与否、测试过否、检索文档答没答上——结果可验证,所以强化学习是自然匹配。

  4. 出处:「Chapter 1. Introduction to Post-Training」第 122 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:122,搜「same loop that produced reasoning models」)。原文:模型生成轨迹(动作与观察的序列),按轨迹是否达成目标得奖励;这就是产出 DeepSeek-R1 的循环扩展到带工具与环境交互的多步任务。

  5. 出处:「Chapter 1. Introduction to Post-Training」第 124 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:124,搜「credit assignment harder」)。原文:回合更长使信用分配更难(十步后失败,哪步是错?);动作空间更大;环境很重要——沙箱、API、模拟用户。

  6. 出处:「Chapter 1. Introduction to Post-Training」第 118 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:118,搜「writes, runs, and debugs code」)与第 122 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:122,搜「receives a reward based on whether the trajectory achieved the desired outcome」)。具体对话与报错串为演示编的。

  7. 出处:「Chapter 1. Introduction to Post-Training」第 184 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:184,搜「reset the environment」)。

  8. 出处:「Chapter 1. Introduction to Post-Training」第 184 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:184,搜「prevent memorization」)。原文:有用的环境要产出真实的训练信号、变化足够以防背题、快到能生成几千个回合。

  9. 出处:「Chapter 1. Introduction to Post-Training」第 186 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:186,搜「OpenEnv」)。原文:标准化协议、程序化生成(现场造新任务实例防背题)、沙箱执行(隔离容器);网页导航、数据库、API 工具环境已有。

  10. 出处:「Chapter 1. Introduction to Post-Training」第 188 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:188,搜「Decomposing the reward」)。原文四问:完成了吗、几步、工具对吗、避开危害吗;分解与加权是单轮后训练没有的设计问题。

  11. 出处:「Chapter 1. Introduction to Post-Training」第 200 段(text/04-ch01-chapter-1-introduction-to-post-training.txt:200,搜「only use them for evaluation」)。