第5章:Agent 是怎么被训练出来的

本章解决的核心问题:一个模型从「只会接话」变成「能用工具、能规划、能从错误中恢复」——这中间发生了什么?Agent 的行动能力到底是怎么训练出来的?为什么 Agent 训练比普通 LLM 难得多?

读完这一章,你会理解 Agent 训练的完整 pipeline,以及为什么「一个能订机票的 Agent」和「一个能聊天的 ChatGPT」在训练成本上差了一个数量级。


5.1 先搞清楚:Agent 训练不是 Prompt 工程

有一个很常见的误解:「Agent 不就是给 LLM 套一个带工具调用的 Prompt 吗?哪需要训练?」

2003 年的 AutoGPT 确实是这样——用通用 LLM(GPT-4),加上一段精心设计的 System Prompt,告诉它「你有这些工具,遇到这种情况就调这个」。这种「Prompt-based Agent」能跑,但有一个致命问题:不稳定。

它会:

2024-2025 年的趋势是:把 Agent 能力训练进模型本身。不是让模型在 Prompt 的引导下「扮演」一个 Agent——而是让模型「就是」一个 Agent。


5.2 Agent 训练的三阶段

assets/ai-agent-comics/ch05-01-training-school.webp
🎨 漫画图解:〈从会说话到会干活〉

一个成熟的 Agent 模型的训练 pipeline 通常分为三个阶段:

flowchart TB
    subgraph 阶段一:预训练 Pre-training
        P1[🌐 互联网文本] --> P2[📚 基础语言模型]
    end

    subgraph 阶段二:指令微调 Instruction Tuning
        I1[📋 指令-回答数据对] --> I2[🤖 能听懂指令的模型]
        P2 --> I2
    end

    subgraph 阶段三:Agent 特化训练
        A1[🔧 工具使用数据]
        A2[💭 推理链数据]
        A3[🔄 多轮交互数据]
        A4[🎮 强化学习环境]
        A1 --> A5[🦾 Agent 模型]
        A2 --> A5
        A3 --> A5
        A4 --> A5
        I2 --> A5
    end

阶段一:预训练(Pre-training)

这和普通 LLM 的预训练完全一样——在海量互联网文本上做「下一个词预测」。这个阶段产出的模型只会做一件事:接话。你给一段开头,它续写下去。

它不知道什么是「工具」、什么是「任务」、什么是「用户」——它只是一个超级语言模式匹配器。

成本:几千万到几亿美元(训练 GPT-4 级别的模型)。时间和算力消耗占整个 pipeline 的 95% 以上。

阶段二:指令微调(Instruction Tuning)

预训练之后,模型会接话,但不会听话。你问它「1+1 等于几」,它可能会回「2」、「等于 2?」、「这个问题很简单……」或者其他它在互联网上见过的任何续写方式。

指令微调的目的:让模型理解「你给我指令,我给你答案」这个对话范式。

训练数据长这样:

【用户】法国的首都是什么?
【助手】法国的首都是巴黎。
【用户】把下面这句话翻译成英文:今天天气真好。
【助手】The weather is really nice today.

几十万到上百万条这样的指令-回答数据对,能让模型从一个「续写机器」变成一个「问答助手」。ChatGPT 之所以能用,关键就是这个阶段。

成本:$10 万-100 万美元级别(主要是人工标注数据的成本)。

阶段三:Agent 特化训练

前两个阶段产出的模型已经能聊天了——但它不知道怎么用工具、不知道怎么在行动前思考、不知道怎么从错误中恢复

第三阶段是 Agent 独有的——也是我们要详细拆解的重点。它包括四种训练数据和方法:


5.3 Agent 特化数据之一:工具使用数据

assets/ai-agent-comics/ch05-02-tool-data.webp
🎨 漫画图解:〈工具轨迹教科书〉

这是最直接的一种训练方式:给模型看「在什么情况下、应该调什么工具、传什么参数」。

训练数据长这样:

【系统】你可以使用以下工具:
- search_web(query: string): 搜索互联网
- get_weather(city: string): 查询天气
- send_email(to: string, subject: string, body: string): 发送邮件

【用户】北京今天天气怎么样?

【助手思考】用户问北京的天气,我需要调用 get_weather 工具。
【助手工具调用】get_weather(city="北京")
【工具返回】北京,晴,26°C,湿度 45%

【助手】北京今天晴天,气温 26°C,湿度 45%,非常适合户外活动。

这样的数据对通常由人工标注——人类专家模拟各种场景,手动写出「在 X 情况下应该调 Y 工具,参数是 Z」。一个高质量的 Agent 工具使用数据集可能需要上万条这样的标注数据。

Obstacle:这个方法的扩展性很差。每增加一个新工具,都需要大量新的标注数据。而且人类标注者很难预见到所有边界情况。


5.4 Agent 特化数据之二:推理链数据

assets/ai-agent-comics/ch05-03-reasoning-data.webp
🎨 漫画图解:〈把做事过程也教给它〉

工具调用只是「做什么」,推理链(Reasoning Trace)是「为什么做这个」。一个能说清楚自己推理过程的 Agent,比一个直接调工具的 Agent 更可靠。

训练数据长这样:

【用户】帮我在 Obsidian 里找一个关于「机器学习」的笔记。

【助手思考】用户想找关于机器学习的笔记。我有两个选择:
1. 用 search_notes 工具直接搜索 vault 中的内容
2. 先列出所有笔记,然后筛选
选项1更高效,我应该用 search_notes。

【助手工具调用】search_notes(query="机器学习", limit=5)
【工具返回】找到 3 篇相关笔记:[[ML基础概念]]、[[机器学习实战笔记]]、[[深度学习与机器学习区别]]

【助手思考】找到了3篇。用户没说具体要哪篇,我先列出所有结果,让用户选择。

【助手】你的 vault 里有 3 篇机器学习相关的笔记:
1. [[ML基础概念]]
2. [[机器学习实战笔记]]
3. [[深度学习与机器学习区别]]
需要我打开其中某一篇吗?

注意几个关键特征:

推理链是怎么来的?

一部分靠人工标注,一部分靠「用更强的模型教更弱的模型」。

比如:用 GPT-4 或 Claude 跑大量 Agent 任务,记录下它们的推理链(在 Prompt 中要求它们输出思考过程)。这些推理链作为训练数据,喂给一个更小、更便宜的模型,让它在推理能力上「继承」大模型的能力。

这就叫知识蒸馏——用大模型的输出训练小模型。你住的这个 vault 叫「蒸馏术」不是白叫的——蒸馏是 AI 训练的底层逻辑之一。


5.5 Agent 特化数据之三:多轮交互数据

Agent 和 ChatGPT 最大的一个区别是:Agent 的任务往往要很多轮才能完成。

ChatGPT 的典型交互:用户问 → 模型答 → 结束。一个来回。
Agent 的典型交互:用户给目标 → Agent 调工具 → 看结果 → 再调工具 → 出错 → 换方案 → 再调工具 → 成功 → 回复用户。可能是几十个来回。

训练这种多轮能力需要完整的任务轨迹数据,而且必须包含「失败 + 调整」的过程。

第1轮:【助手思考】我需要搜索资料 → 【工具】搜索失败,网络超时
第2轮:【助手思考】搜索失败了,可能是网络问题。我可以尝试换个搜索源。→ 【工具】用备用搜索引擎搜索 → 成功
第3轮:【助手思考】拿到了结果,但内容不完整。我还需要补充数据...→ (继续)

这种数据非常昂贵:一个完整的 Agent 任务轨迹可能长达 50 轮,每轮都需要人工标注或半自动生成。这也是为什么高质量的 Agent 训练数据比普通指令微调数据贵 10-100 倍。


5.6 Agent 特化数据之四:强化学习——Agent 训练的「狠活」

assets/ai-agent-comics/ch05-04-rl-course.webp
🎨 漫画图解:〈强化学习障碍赛〉

前面三种方法都是「模仿学习」——给模型看正确答案,让它照着学。但模仿学习的上限就是人类标注者的水平。

强化学习(Reinforcement Learning,RL) 是让模型超越人类标注的方法。它的核心思想很粗暴:

给模型一个目标,让它自己去试。成功了给奖励,失败了给惩罚。让模型自己找到成功的策略——而不只是模仿人类的做法。

Agent RL 的具体做法

┌──────────────────────────────────────────┐
│           Agent 强化学习循环              │
│                                           │
│  1. 给 Agent 一个任务                     │
│     「订一张明天从北京到上海的机票」       │
│                                           │
│  2. Agent 自己探索                        │
│     它可能尝试 100 种不同的策略:          │
│     - 先查天气再订票                      │
│     - 直接搜索最便宜的航班                │
│     - 同时搜索火车票做对比                │
│     - 先确认自己的日历...                 │
│                                           │
│  3. 对每次尝试打分(奖励函数)            │
│     ✅ 成功订到机票:+100                 │
│     ✅ 订到了便宜的:+20                  │
│     ✅ 速度快的:+10                      │
│     ❌ 订错了日期:-50                    │
│     ❌ 发垃圾邮件骚扰用户:-1000           │
│                                           │
│  4. 模型更新权重                          │
│     高分策略的权重增加,低分的减少         │
│                                           │
│  5. 重复 10 万次                          │
│     模型逐渐学会最优策略                  │
└──────────────────────────────────────────┘

为什么 RL 对 Agent 训练特别关键?

因为 Agent 面临的核心挑战——长链任务的误差累积——模仿学习很难解决。人类标注者写的都是「正确路径」,模型在训练中看不到「错误路径长什么样」,上线后就不知道怎么从错误中恢复。

RL 让模型在训练中大量犯错,并且从每一次错误中学习。「哦,如果我先调了 A 工具然后失败,我该切换到 B 工具」——这种「条件分支」能力,很难从模仿数据中得到,但可以从 RL 探索中自然涌现。

类比:模仿学习是「看老师做题,然后自己做」。RL 是「把你扔进题海里,对一道给一颗糖,错一道挨一巴掌,做一万道之后你自己悟出了解法」。悟出来的解法有时候比老师教的还要好。

Anthropic 的「Computer Use」训练

Claude 的 Computer Use 能力——也就是让 Claude 直接操作电脑屏幕、移动鼠标、敲键盘——就是 RL 训练的典型产物。

训练方式:给 Claude 一个模拟桌面环境,一个任务(「打开浏览器,搜最近的咖啡店,截图」),让它在成千上万次尝试中自己摸索出操作屏幕的最佳方式。人类只定义了「奖励函数」(任务完成 = 高分,点错了 = 低分),但没有告诉它具体怎么做。Claude 自己学会了怎么移动鼠标、怎么理解屏幕上的按钮位置、怎么处理弹窗。

这种自己摸索出来的能力的泛化性,远超任何人工编写的规则——因为它不是在「背操作步骤」,而是在「学操作原理」。


5.7 为什么 Agent 训练比 LLM 训练难那么多

assets/ai-agent-comics/ch05-05-distillation.webp
🎨 漫画图解:〈大老师教出小高手〉

用一张对比表来收束这一章:

维度 LLM 训练 Agent 训练
主要目标 理解语言、生成文本 在真实环境中完成多步任务
数据类型 互联网文本(被动收集) 工具调用轨迹、多轮交互、RL 探索数据(主动生成)
数据量 万亿 token 级别 百万-千万条轨迹(少 4-6 个数量级)
数据成本 低——互联网文本是免费的 高——人工标注 + RL 环境搭建 + 沙箱基础设施
评估难度 「生成的文本像不像人话」——相对好评估 「任务完成了吗?效率高吗?安全吗?」——很难自动评估
错误成本 文本错了可以重新生成 工具调用错了可能造成真实损失(删文件、发错邮件)
核心瓶颈 算力 数据 + 评估 + 安全

本章小结

要点 一句话
不是 Prompt 工程 现代 Agent 的能力是被训练进模型权重的,不是靠提示词「演」出来的
三阶段训练 预训练(会说话)→ 指令微调(会听话)→ Agent 特化(会干活)
四种特化数据 工具使用 + 推理链 + 多轮交互 + 强化学习
强化学习的价值 让模型从自己的错误中学习,而不仅是从人类的正确示范中学习
为什么难 Agent 训练数据稀缺、评估困难、错误成本高——三个维度都比 LLM 训练难
蒸馏 用强模型(GPT-4/Claude)的行为轨迹教弱模型——Agent 训练的省钱秘诀

下一章预告

一个 Agent 已经很强了,但有些任务一个 Agent 搞不定——要么上下文装不下,要么需要同时做多件事,要么需要不同类型的专家能力。下一章我们看:多个 Agent 怎么协作?流水线、并行、辩论——哪种协作模式该在什么场景用?

第6章:多 Agent 协作与编排


← 上一章 回到目录 下一章 →
第4章:工具调用 第6章:多 Agent 协作与编排