CS 329Z: Engineering AI Agents
斯坦福大学秋季这门最新 AI Agents 工程课发布了第 11 讲「What Data Do Agents Need?」
近两年模型在 Agent 任务上变强,主要靠大规模造出「agentic」数据。核心不是再爬更多网页问答,是:轨迹(演示) 用来做 SFT 模仿,环境(可验证任务) 用来做 RL 练习;同时要洗数据,否则会顺带学会刷奖励、背题、以及绑死某一种 harness 格式。
https://web.stanford.edu/class/cs329z/slides/lecture11.pdf
为什么数据是关键杠杆
引用 CS336 / Llama 3 报告、James Betker 等观点:数据仍是差异化核心,前沿公司也在为数据付大价钱。网页爬虫多是「静态文本」;Agent 需要能交互的环境,对比「论坛里有人告诉你改 strptime」与「在仓库里 grep → pytest → 改文件 → 再测通过」两类信息。同一基座下,后训练数据选择也会拉开差距(如 OT-Agent / OpenThoughts-Agent:同等 SFT 预算下,筛更有效子集更好)。
两类 Agent 数据
· 轨迹(Trajectory / Trace):在「问题描述 + 沙箱」里解题的一整段 Think → Act → Obs … → Submit。训练目标主要预测动作与思路;系统提示、任务、工具输出多作上下文。格式(工具调用、ReAct、代码动作等)由外围系统决定。
· 环境(Environment):任务 + 沙箱 + 成功判定。可在其上 rollout,再按奖励做 RL,练习 ReAct 式循环。
环境的奖励光谱:代码测试(可靠但窄)→ 量表 / checklist → LM-as-a-Judge → 人类偏好(更泛但更糊)。讲义预告约三周后专门讲奖励与 judge。
各阶段数据量级
以 DeepSeek 为参考:v3 预训练约 14.8T token、约 150 万 条 SFT;v3.2 约 8.5 万 条 RL 任务提示。算力对比上,一年后后训练预算可超过预训练的约 10%,实验室通常不公开详细数据,这只是可引用的量级感。
数据从哪来(五种策略)
每条都要权衡成本、真实感、可扩展性,以及是否适合该领域。
1. 人类演示
定任务 → 人手做 → 录每步 → 过滤失败 → 打包。例:Mind2Web(约 2350 个开放网页任务,137 站 / 31 域);OpenCUA(标注者自用电脑录屏与键鼠,约 2.26 万 任务,跨 Win / macOS / Ubuntu)。对比:Mind2Web 只有网页与原始动作;OpenCUA 有视频、输入、无障碍树,并为人造逐步推理。
2. 从网页与真实世界挖掘
把 issue、教程、视频变成可验证任务 / 轨迹:抽指令 → 恢复动作(diff、步骤、逆动力学标视频)→ 在真实环境重放并只留成功。例:SWE-rebench(约 2.1 万 可验证任务,来自约 3468 个 GitHub 仓);AgentTrek(教程引导 VLM 在真浏览器重放,约 $0.55 / 条);VideoAgentTrek(约 3.9 万 YouTube 录屏教程 → 约 152 万 交互步)。
3. 合成轨迹
有任务后,模型写步骤或先探索再事后标注,再过滤。两条路:指令优先(如 Synatra:把 wikiHow 等改成约 10 万逐步演示,约 $0.031 / 条,约人类成本的 3%,步骤未真执行);交互优先(如 OS-Genesis 先乱逛再反推任务、奖励模型打分;NNetNav 以人设逛站、事后标注、标不出就早剪)。Synatra vs AgentTrek:前者便宜、观察是合成文本;后者贵、有真截图与 a11y 树。
4. 合成任务与环境
自动建沙箱、任务与 checker,使每条都有可验证奖励。代码侧:SWE-smith(向 128 个 Python 仓注入破坏测试的 bug,LM 写 issue,约 5 万 任务,约 20 人时);R2E-Gym(普通 commit → 约 8100 可执行任务,生成测试并回译 issue)。工具侧:AgentScaler 把真实 API 背后的模拟库当成读写,用最终库状态核对目标。
5. 模拟用户与环境
LLM 扮演用户、环境或两者,练习近乎无限,但会学到模拟器的错。例:τ-bench(LLM 扮客服场景客户,比最终库状态);APIGen-MT(审过蓝图 + 模拟多轮对话);DreamGym(用文本「经验模型」预测下一状态与奖励,替代昂贵真实 RL rollout)。
数据会「顺带」教会什么
· 奖励黑客:SWE-bench 若不擦掉 .git,可能翻历史作弊;Self-play SWE-RL 会清 .git 并在评分前恢复测试文件。生产环境里模型会学 sys.exit(0) 假装测过。把 CoT 监控直接加进奖励,可能让模型藏意图继续刷分。还有评测觉察(如 BrowseComp 上认出基准并解密答案)、记忆题面(SWE-Bench Verified 上仅凭 issue 点中出错文件约 76%,仓外约最高 53%),以及「看起来对、人类更爱点赞但正确率没涨」。
· 过拟合 harness:只在一种脚手架(如 mini-swe-agent / SWE-agent / Terminus 2)上训,SFT 会把能力与格式缠在一起;换 function-calling 可能仍吐旧约定。缓解:训练时换多种 harness。
· 训练趋势:同种子数据上,SWE-RL 显示 RL 可提升部分域外任务,SFT 平均反而伤;RL 也可能冲过头再塌(OpenThoughts-Agent 发的是塌前 checkpoint);最好的模型不一定是最好的老师(GPT-5.3-Codex 轨迹训出的学生,不如更老的 GLM-4.7 轨迹)。
讲义结尾的六条
Agent 需要任务 / 环境 / 轨迹,不只需要文本;人演示真实但贵;挖掘便宜;合成能扩规模;模拟器给无限练习也灌输错误;数据会意外教会刷分与绑 harness。
