跳到主要内容

智能体 — 给模型装上手脚和记性

这一章讲三件事: 智能体的四模块架构(感知、规划、记忆、工具);这些能力不是模型天生的,是怎么靠数据和训练造出来的;以及多智能体(几个模型实例组队)协作与 LangChain 框架怎么把它们组装成应用。 一句话定位: 模型是大脑,智能体是给大脑接上眼睛、手脚和笔记本。

1. 三代演进与三种范式

智能体不是新词,AI 领域大致走过三代1:符号智能体(专家系统,推理可解释但应对不了不确定性和大规模现实问题)→ 强化学习智能体(AlphaGo、DQN,能自我探索但训练周期长、采样效率低)→ 大模型智能体(2023 年以来)。第三代为什么行?因为大模型同时补齐了三件上一代缺的东西:语言理解(能与人和工具对话)、推理规划(思维链)、以及从反馈中持续调整。

应用范式分三种2:单智能体(面向任务、科研创新、生命模拟——斯坦福小镇实验里智能体从观察总结出高层认知)、多智能体协作(合作型如 MetaGPT 让智能体分别扮演产品经理、架构师、工程师互相监督;对抗型如 DebateGPT 让多个智能体辩论互相挑错)、人-智能体交互(人类主导型如 HuggingGPT,或人机平等协作)。

2. 四模块架构

书里的参考架构把大模型智能体拆成四个核心模块:感知、规划、记忆、工具使用3

主走查:「明天会下雨吗」在四模块里的旅程

用户说:「观察天空,你觉得明天会下雨吗?如果会下雨的话,请给我一把雨伞。」4

① 感知模块:把这句话(可能还有摄像头拍到的天空图像)转成
模型可读的表示 —— 天色阴沉、用户在室内、对话历史里刚聊过野餐
② 规划模块:大模型推理 —— 「明天下雨」不是直接知道的事实,
拆成子任务:(a)查天气预报 (b)判断是否需要伞 (c)怎么"给伞"
③ 记忆模块:短期记忆里翻出对话历史(用户之前提过对花粉过敏?),
长期记忆库里检索用户习惯(雨天偏好叫车而不是自己开车)
④ 工具使用模块:调用天气 API 拿到明天的降水概率,
调用购物/外卖平台的下单接口

输出:「从目前的天气情况和网上的天气预报来看,明天很可能会下雨。
这是你要的雨伞。」(已下单,明日送达)

图说:①③④ 的分支是书里架构图的机制;对话文字取自原书示例。

四个模块逐个看门道。

感知模块:文本是基本盘;视觉的通用做法有两条——把图转成文字描述(可解释但丢信息),或接视觉编码器+对齐层(上一章的映射学习);音频则常让大模型当控制中心、级联调用现成工具集。感知的目标读者要记住一句话:多模态感知能力是大模型智能体的发展关键,感知得越全,后面的决策越靠谱5

规划模块:分两派。无反馈规划一次生成完整计划、严格执行——效率高,但环境一变就傻眼;带反馈规划的招牌是 ReAct:每执行一步,把环境反馈喂回来,重新决定下一步——「边走边看地图」。实践中通常结合:先无反馈规划出主干,执行中用反馈修岔路(书里举的是自主配送系统)6

记忆模块:短期记忆就是上下文窗口本身(把关键信息拼进提示词);长期记忆靠外部记忆库,写入-检索-反思三步操作。

记忆库的形态之一是向量数据库(按「意思距离」存取资料的库)。

另一种是知识图谱(把实体连成的关系网)。

反思的代表是 Reflexion:任务失败后让模型复盘「哪里做错了」,把教训存进记忆供下次使用7

工具使用模块:让模型学会用工具有三条学习路线——示范学习(看操作案例模仿)、教程学习(把工具手册塞进提示词)、探索学习(自己试、按反馈改)。下一节看它们怎么被做成训练数据。

3. 调外部程序的能力是「造」出来的

一个具备工具能力的模型收到「上海今天的天气」,会分四步走:识别任务类型(天气查询)→ 生成 API(程序对外服务的调用口)调用(带城市、日期参数)→ 拿到 API 返回 → 组织成自然语言回答8。这个行为链在预训练语料里太少,要专门造数据训练。

3.1 工具学习:造一条数据生产线

ToolLLM 的数据生产线是标准答案,三阶段9:

  1. API 收集:从 RapidAPI 平台爬取,初始 10853 个工具(53190 个 API),过滤掉不可用和质量低的,留 3451 个工具、16464 个 API;
  2. 指令生成:用 ChatGPT 生成覆盖单工具、同类别多工具、跨集合多工具的指令,约 20 万条指令-API 对;
  3. 解决轨迹标注:用深度优先式的路径搜索(DFSDT)探索多步 API 调用序列,产出 126486 条高质量「指令-解决路径」对。

但这里有个深刻的教训:ToolLLaMA-2-7B 用这 12.6 万条数据微调,效果也只有 GPT-4 的八成左右。诊断发现两个病根10:其一,训练数据约 17% 的轨迹本身就有调用出错(机器造的数据带毒);其二,模型选错工具时,错的往往只是工具名开头的几个词元——人工只纠正第一个错误词元,后面的输出常常就全对了。这说明少数关键词条元(工具名及其与别的工具共享的前缀)承载了任务成败

TL-Training 针对这两个病根下药11:识别出错误轨迹后在训练中阻止其反向传播(不让坏例子带偏模型);给关键词条元加权(训练时更在乎工具名的对错);再针对有限的错误类型(工具幻觉、调错工具、参数缺失等)设计分级奖励函数跑强化学习。结果:只用 1217 条训练数据,CodeLLaMA-2-7B 的工具使用性能就达到 GPT-4o 的水平——精准的小数据击败了带噪的大数据。

3.2 推理与规划

推理规划能力的训练同理有积木可拼:思维链(CoT)让模型先写步骤再给答案,零样本版只需一句「让我们一步一步思考」;书里有个 surprising 的实验数字——不同人手写的推理示例之间,准确率差异高达 28.2%,而示例顺序只带来不到 2% 的变化,所以 Auto-CoT 干脆自动造示例(问题聚类(把相近的题归堆) + 每簇选代表 + 零样本思维链生成,只留推理少于 5 步、问题少于 60 词元的简洁示例)12。复杂问题再上由少至多提示:先分解成子问题,再串行解决、逐个把子答案拼回提示词。AgentTuning 则证明了通用能力可以两全:1866 条严格过滤的智能体轨迹(六类任务)混合通用指令微调,AgentLM-70B 在智能体任务上媲美 GPT-3.5-turbo,同时 MMLU、GSM8K 等通用评测不掉13

3.3 长期记忆:外挂一个资料库

长期记忆的代表作是 MemoryBank:记忆存储(对话记录 + 每日事件总结 + 用户画像分层)、记忆检索采用双塔稠密检索——两边各编码成向量再比对。

外加向量索引(先建目录再查、像书后索引)。记忆更新——更新机制借鉴艾宾浩斯遗忘曲线,记忆保留率按 R = e^(−t/S) 衰减(t 是经过时间,S 是记忆强度);某段记忆被再次调用时 S 加一、时间清零,「越常想起越难忘」14

4. 多智能体与 LangChain:把模块拼成应用

多智能体辩论是个低配高效的纠错机制:多个模型实例各自答题、互看答案、重新思考,「针锋相对」地挑错。书里的实测:三个智能体对一道小学数学题(吉米有多少钱)辩论两轮,不但全部给出正确答案 18 美元,还显著增强了答案的可靠性15。成本只是多次调用,不需要任何训练。

角色扮演(CAMEL 框架)更进一步:指定「用户」和「助手」两个角色(如股票交易员和 Python 程序员),互相提需求、交作业,直到任务完成标记出现。书里点出一个意外效应:扮演特定角色能激发模型内部相应的领域知识,答案比不指定角色时更好16

把这些都串起来的是 LangChain 框架(书基于 2023 年的 V0.0.248 版本)。它提供六个标准化接口(模块对外的标准插口)17:

接口干什么关键件
模型输入/输出统一调 LLM 的口子提示模板、示例选择器、输出解析器(把自由文本拆读成「键:值」成对的规整结构)
数据连接接入外部数据文档加载 → 切分 → 嵌入 → 向量库(存语义向量的仓库) → 检索器(第 11 章 RAG 的雏形)
把组件串成流程顺序链、路由链
记忆跨轮保存状态缓冲记忆:链执行前读、执行后写
智能体让 LLM 决定下一步动作工具注册与选择
回调(执行到节点时自动触发的旁路动作)记录与流式传输中间步骤观测与调试

用 LangChain 的判断标准(书里没有明说,是我们按其定位归纳的):它适合中等复杂度应用的原型与组装;重定制、高性能的场景仍要手工编码。

5. 作者的判断与证据

  • 有证据的: ToolLLM/TL-Training 的全部数字(3451 工具、17% 错误率、1217 条数据)、AgentTuning 的 1866 条与 AgentLM 成绩、辩论实验结果,均有文献出处。
  • 作者的判断: 「大模型作为智能体核心中枢」的架构归(感知-规划-记忆-工具四分法)是作者采用的主流框架之一,不同文献的模块划分略有差异。
  • 书里的坦白: 开源大模型「上下文理解能力不足,难以通过教程学习掌握工具」——这正是 ToolLLM 要造数据微调的原因,作者没有粉饰开源模型的短板。

6. 边界与局限

  • LangChain 一节基于 2023 年 7 月的 V0.0.248 版本,该库更新极快,接口细节(尤其类名和导入路径)已大幅变化——读架构思想可以,抄代码不行。
  • 「多智能体优于单智能体」没有给出系统性对照实验;辩论的收益集中在有客观对错的任务上,开放任务上三个模型可能一起错(书未讨论,我们归纳)。
  • 工具学习的评估集中在「调用对了没有」,「选对了工具但用错了时机」「该问人还是该自己查」这类决策层问题着墨少。
  • 记忆系统只有 MemoryBank 一个深例;记忆冲突(新经验和旧记忆矛盾时听谁的)未覆盖。

7. 可带走的

  1. 智能体 = 大模型 + 四模块(感知/规划/记忆/工具),补的都是「模型本体不会」的事:看环境、定计划、记历史、动外部;
  2. 规划两派:无反馈(计划定了就走,快而脆)vs ReAct 带反馈(边走边改,慢而韧)——生产系统常是两者混合;
  3. 长期记忆 = 外部记忆库 + 检索 + 反思;MemoryBank 的遗忘曲线给「AI 该忘什么」一个可计算的答案;
  4. 工具能力是数据造出来的:API 收集 → 指令生成 → 轨迹标注,ToolLLM 三阶段是标准模板;
  5. 机器造的数据自带 ~17% 错误率;TL-Training 证明「1217 条干净数据 + 错误屏蔽 + 关键词元加权」胜过 12 万条带噪数据;
  6. 思维链示例本身的质量差异(28.2%)远大于顺序差异(2%)——示例宁缺毋滥,Auto-CoT 可以自动筛;
  7. 多智能体辩论是零训练的纠错器:三个实例互相挑错,数学题两轮全对;
  8. LangChain 记架构不分层:模型口子、数据连接、链、记忆、智能体、回调六件套;版本更新快,学思想别背 API。

8. 原文地图

主题原书章原文位置
三代演进8 大模型智能体text/08-ch08.txt:230(搜「符号智能体」)
三范式8 大模型智能体text/08-ch08.txt:266(搜「单智能体」)
MetaGPT 分工8 大模型智能体text/08-ch08.txt:322(搜「MetaGPT」)
四模块架构8 大模型智能体text/08-ch08.txt:367(搜「感知模块」)
雨伞例子8 大模型智能体text/08-ch08.txt:377(搜「观察天空」)
无反馈/带反馈规划8 大模型智能体text/08-ch08.txt:454(搜「无反馈规划」) · text/08-ch08.txt:473(搜「ReAct」)
记忆两型与反思8 大模型智能体text/08-ch08.txt:498(搜「记忆库」) · text/08-ch08.txt:519(搜「Reflexion」)
工具三类学习8 大模型智能体text/08-ch08.txt:533(搜「示范学习」)
天气四步例8 大模型智能体text/08-ch08.txt:599(搜「上海今天的天气」)
ToolLLM 三阶段8 大模型智能体text/08-ch08.txt:624(搜「16,464」) · text/08-ch08.txt:634(搜「126,486」)
只达 GPT-4 八成8 大模型智能体text/08-ch08.txt:640(搜「80% 左右」)
17% 错误与关键词条元8 大模型智能体text/08-ch08.txt:643(搜「17%」)
TL-Training 三招8 大模型智能体text/08-ch08.txt:650(搜「TL-Training」) · text/08-ch08.txt:715(搜「工具幻觉」)
1217 条达 GPT-4o8 大模型智能体text/08-ch08.txt:753(搜「1217」)
零样本思维链8 大模型智能体text/08-ch08.txt:776(搜「让我们一步一步思考」)
示例差异 28.2%8 大模型智能体text/08-ch08.txt:790(搜「28.2%」)
Auto-CoT8 大模型智能体text/08-ch08.txt:795(搜「Auto-CoT」)
由少至多8 大模型智能体text/08-ch08.txt:827(搜「由少至多」)
AgentTuning8 大模型智能体text/08-ch08.txt:873(搜「AgentInstruct」) · text/08-ch08.txt:917(搜「开源的 AgentLM-70B」)
MemoryBank 遗忘曲线8 大模型智能体text/08-ch08.txt:932(搜「MemoryBank」) · text/08-ch08.txt:1012(搜「记忆强度」)
辩论实验8 大模型智能体text/08-ch08.txt:1044(搜「针锋相对」) · text/08-ch08.txt:1115(搜「多个智能体之间达成一致意见」)
角色扮演激发知识8 大模型智能体text/08-ch08.txt:1148(搜「激发其内部独特的领域知识」)
LangChain 六接口8 大模型智能体text/08-ch08.txt:1284(搜「LangChain 框架」) · text/08-ch08.txt:1314(搜「回调」)
记忆读写8 大模型智能体text/08-ch08.txt:1706(搜「记忆系统需要支持两个基本操作」)

Footnotes

  1. 出处:「8 大模型智能体」第 230 段(text/08-ch08.txt:230,搜「符号智能体」)。

  2. 出处:「8 大模型智能体」第 266 段(text/08-ch08.txt:266,搜「单智能体」)。

  3. 出处:「8 大模型智能体」第 367 段(text/08-ch08.txt:367,搜「感知模块」)。

  4. 出处:「8 大模型智能体」第 377 段(text/08-ch08.txt:377,搜「观察天空」)与第 385 段(text/08-ch08.txt:385,搜「明天」)。

  5. 出处:「8 大模型智能体」第 257 段(text/08-ch08.txt:257,搜「多模态感知」)。

  6. 出处:「8 大模型智能体」第 454 段(text/08-ch08.txt:454,搜「无反馈规划」)、第 473 段(text/08-ch08.txt:473,搜「ReAct」)与第 478 段(text/08-ch08.txt:478,搜「兼顾效率与灵活性」)。

  7. 出处:「8 大模型智能体」第 519 段(text/08-ch08.txt:519,搜「Reflexion」)。

  8. 出处:「8 大模型智能体」第 599 段(text/08-ch08.txt:599,搜「上海今天的天气」)。

  9. 出处:「8 大模型智能体」第 624 段(text/08-ch08.txt:624,搜「16,464」)与第 634 段(text/08-ch08.txt:634,搜「126,486」)。

  10. 出处:「8 大模型智能体」第 640 段(text/08-ch08.txt:640,搜「80% 左右」)与第 643 段(text/08-ch08.txt:643,搜「17%」)。

  11. 出处:「8 大模型智能体」第 650 段(text/08-ch08.txt:650,搜「TL-Training」)与第 753 段(text/08-ch08.txt:753,搜「1217」)。

  12. 出处:「8 大模型智能体」第 776 段(text/08-ch08.txt:776,搜「让我们一步一步思考」)、第 790 段(text/08-ch08.txt:790,搜「28.2%」)与第 795 段(text/08-ch08.txt:795,搜「Auto-CoT」)。

  13. 出处:「8 大模型智能体」第 873 段(text/08-ch08.txt:873,搜「AgentInstruct」)与第 917 段(text/08-ch08.txt:917,搜「开源的 AgentLM-70B」)。

  14. 出处:「8 大模型智能体」第 932 段(text/08-ch08.txt:932,搜「MemoryBank」)与第 1012 段(text/08-ch08.txt:1012,搜「记忆强度」)。

  15. 出处:「8 大模型智能体」第 1044 段(text/08-ch08.txt:1044,搜「针锋相对」)与第 1115 段(text/08-ch08.txt:1115,搜「多个智能体之间达成一致意见」)。

  16. 出处:「8 大模型智能体」第 1148 段(text/08-ch08.txt:1148,搜「激发其内部独特的领域知识」)。

  17. 出处:「8 大模型智能体」第 1284 段(text/08-ch08.txt:1284,搜「LangChain 框架」)与第 1314 段(text/08-ch08.txt:1314,搜「回调」)。