本章包含5个知识点,围绕Agent的内部架构展开。LLM是Agent的大脑,记忆、工具、规划三个组件围绕它协同运作,最后一节展示四者如何配合完成完整任务。
LLM(大语言模型)在Agent系统中充当"大脑",负责理解用户指令、分析当前情况、做出决策并生成回复。Agent的所有"智能"都源自这个大脑——它决定做什么、用什么工具、怎么回答。
把Agent想象成一家公司。LLM就是这家公司的CEO:
LLM在Agent中承担五项核心职责:
| 职责 | 说明 | 举例 |
|---|---|---|
| 理解指令 | 明白用户想要什么 | "帮我订机票" → 识别为预订航班任务 |
| 分析情况 | 评估当前可用信息和工具 | 检查已有工具列表、已获取的信息 |
| 做出决策 | 选择下一步行动 | 决定先搜索航班信息 |
| 生成内容 | 输出文字、代码等 | 写邮件、生成报告、组织回答 |
| 调用工具 | 决定什么时候用什么工具 | 选择"搜索API"而非"计算器" |
LLM能充当Agent大脑,依赖于前面几章介绍的几项基础能力:理解自然语言、进行推理(尤其是大参数模型)、遵循复杂指令、生成结构化输出(如JSON格式的工具调用指令)。这些能力的组合,使它从一个"文字预测器"升级为一个能协调多个组件的"指挥中心"。
但LLM单独并不能成为Agent——它只会"想",不会"做"。就像CEO只能做决策,不能替代所有员工一样。
"换一个更强的LLM,Agent就一定更好"
这句话只对了一半。LLM的能力确实决定了Agent的上限——大脑不够聪明,规划再好也执行不了。但Agent的表现还取决于记忆设计、工具配置和规划策略。一个用GPT-4但工具配置混乱的Agent,可能不如一个用GPT-3.5但工具精心设计的Agent表现好。
不同LLM作为Agent大脑的能力差异显著:
| 模型 | 作为Agent大脑的表现 | 特点 |
|---|---|---|
| GPT-4o | 强,复杂任务也能处理 | 支持并行工具调用 |
| Claude 3 | 强,尤其擅长长任务和安全性 | 上下文窗口大 |
| Gemini | 强,多模态支持好 | 能处理图像、视频 |
| 开源小模型 | 较弱,简单任务可用 | 成本低但容易出错 |
一个关键认知:Agent的能力上限,很大程度上取决于LLM大脑的能力。选择合适的LLM时,需要权衡任务复杂度、成本和响应速度。
记忆系统(Memory)是Agent用于存储和召回信息的组件,包括当前对话的上下文(短期记忆)和跨会话持久保存的信息(长期记忆)。它让Agent能延续对话、记住偏好、从过去的经验中学习。
想象一个没有记忆的助手:
这就像一条金鱼——每几秒钟世界都是全新的。这样的助手显然没法用。
Agent的记忆分为两种,各自解决不同的问题。
短期记忆是当前对话中的上下文信息,存储在LLM的上下文窗口中,会话结束即消失。
用户:我想去上海
Agent:好的,请问您希望什么时候出发?
用户:明天
Agent:(短期记忆中保存了"去上海"和"明天")
好的,我来帮您查明天去上海的航班...
长期记忆是跨会话持久保存的信息,存储在外部数据库中,需要时检索出来使用。
把Agent的记忆想象成图书馆里的工作场景:
长期记忆的技术实现依赖一项关键技术——向量数据库。
传统数据库按关键词搜索:搜"苹果"只能找到包含"苹果"两个字的内容,搜不到"iPhone"(虽然语义相关)。
向量数据库按语义搜索:搜"苹果手机"能找到"iPhone"、"iOS设备"等相关内容——因为它们在"意思"上是接近的。
工作原理(简化版):
这就像一个智能图书馆:不是按书名首字母排列,而是按内容主题排列。关于烹饪的书不管书名是什么,都会被放在一起。
两种记忆在实际使用中协同配合:
【新对话开始】
用户:帮我订去上海的机票
Agent内部流程:
1. 检查长期记忆:"这个用户之前说过喜欢东航、靠窗座位"
2. 将这些信息加载到短期记忆(书桌上)
3. 结合当前请求,搜索航班
4. 优先推荐东航、靠窗座位的选项
Agent回复:根据您之前的偏好,我为您找到了以下东航航班,
均有靠窗座位可选...
关键流转:长期记忆存储偏好 → 新对话时检索相关信息到短期记忆 → 短期记忆用于当前任务决策。
| 无记忆的Agent | 有记忆的Agent |
|---|---|
| 每次都要问你的喜好 | 记住你的偏好 |
| 不知道之前做了什么 | 能继续上次未完成的任务 |
| 重复犯同样的错误 | 从过去的错误中学习 |
| 像一个陌生人 | 像一个熟悉你的助手 |
工具(Tools)是Agent连接外部世界的通道,使其能够获取实时信息、执行实际操作、与外部系统交互。LLM本身只能处理和生成文字,工具让它拥有了"行动力"。
回顾前面章节讨论的LLM局限:知识有截止日期、不能上网、不能执行代码、不能操作外部系统。没有工具的Agent就像一个被关在房间里的聪明人——想法很多,但什么也做不了。
Agent的工具按功能分为三大类:
信息获取类——让Agent能"看到"外部信息:
| 工具 | 功能 | 举例 |
|---|---|---|
| 网页搜索 | 搜索互联网 | 查最新新闻、产品价格 |
| 知识库检索 | 搜索内部文档 | 查公司规章制度 |
| API调用 | 获取结构化数据 | 查天气、股票、汇率 |
| 文件读取 | 读取本地文件 | 读取Excel、PDF |
操作执行类——让Agent能"动手"做事:
| 工具 | 功能 | 举例 |
|---|---|---|
| 代码执行 | 运行代码 | 计算、数据处理 |
| 文件写入 | 创建或修改文件 | 生成报告、保存结果 |
| 发送消息 | 通过各种渠道发送 | 发邮件、发短信 |
| 浏览器控制 | 操作网页 | 自动填表、抓取数据 |
专业领域类——面向特定场景的能力:
| 工具 | 功能 | 举例 |
|---|---|---|
| 图像生成 | 根据描述生成图片 | DALL-E、Midjourney |
| 数据库操作 | 查询或修改数据库 | SQL查询 |
| 日历管理 | 管理日程 | 创建会议、查看安排 |
工具调用的背后是一项叫做Function Calling的技术。它的核心思想是:LLM不直接执行操作,而是输出一条结构化指令,由外部系统真正执行。
以"今天北京天气怎么样?"为例:
Step 1: LLM理解请求
→ 用户想知道北京今天的天气
Step 2: LLM决定调用工具,输出结构化指令
→ {
"tool": "get_weather",
"parameters": {
"location": "北京",
"date": "2025-01-15"
}
}
Step 3: 外部系统执行
→ 调用真正的天气API,获得结果:晴,3-12℃
Step 4: 结果返回给LLM
→ LLM看到天气数据
Step 5: LLM生成最终回复
→ "今天北京天气晴朗,气温3到12摄氏度,建议穿外套。"
关键点:LLM只"说"要调用什么工具(输出JSON指令),真正的执行由外部系统完成,结果再返回给LLM处理。
工具就像各种遥控器:
Agent不需要知道空调内部怎么制冷,它只需要知道"按这个按钮就能制冷"。
让LLM通过中间层调用工具,而不是直接执行操作,是出于安全和可控性的考虑:
这就像公司的审批流程:员工(LLM)提出请求,审批系统(中间层)检查是否合规,合规则执行,不合规则拒绝。
"工具越多,Agent越强"
不一定。工具太多会带来问题:LLM可能选错工具、决策时间变长、系统复杂度增加。更好的做法是根据任务需要配置合适的工具集,并为每个工具写清晰的描述,让LLM知道什么情况下该用哪个工具。
假设你让Agent"帮我查一下明天北京有没有雨,如果有就提醒我带伞"。Agent需要用到两个工具:
没有这两个工具,Agent即使理解了你的意图、制定了完美的计划,也只能回答"我建议你查一下天气预报"——它无法替你做任何事。
规划(Planning)是Agent将一个复杂任务拆分为多个可执行的子步骤,并确定执行顺序、监控执行结果的能力。它是Agent处理复杂任务的核心策略组件。
没有规划的Agent面对复杂任务会陷入混乱:
有规划的Agent则会先把大任务拆解:确定基本信息 → 场地安排 → 餐饮准备 → 邀请宾客 → 活动策划,然后按依赖关系有序执行。
规划模块就是Agent的"内部项目经理":
把大蛋糕切成小块,逐块解决。
任务:写一篇研究报告
→ 分解为:
1. 选题(确定研究方向)
2. 搜集资料(用搜索工具查找相关文献)
3. 整理大纲(组织文章结构)
4. 撰写初稿
5. 修改完善
代表技术包括HuggingGPT(让GPT-4调度多个专业模型)和Plan-and-Solve(先生成计划再执行)。
逐步推理,把思考过程展示出来,让每一步都有依据。
问题:计算 25 × 4 + 30 ÷ 5 Agent思考过程: 1. 先算乘法:25 × 4 = 100 2. 再算除法:30 ÷ 5 = 6 3. 最后相加:100 + 6 = 106 答案:106
研究表明,仅仅在提示中加入"让我们一步步思考"(Let's think step by step),就能显著提升LLM的推理准确率。这项技术有多种变体:Zero-shot CoT(不需要示例)、Few-shot CoT(提供推理示例)、Auto-CoT(自动生成推理链)。
执行过程中检查结果,发现问题及时修正——让Agent具备自我纠错能力。
任务:发送邮件给张三 执行:调用邮件API发送 结果:发送失败,邮箱地址不存在 反思:邮箱地址可能有误 调整: 1. 搜索张三的正确邮箱 2. 使用新地址重新发送
代表技术包括Reflexion(执行后反思并改进策略)和CRITIC(让模型批评自己的输出并修正)。
规划能力的本质来源于LLM的推理能力。当LLM足够强大时,它能够:
但规划能力直接受限于LLM的推理能力——大脑不够聪明,规划也不会好。
"Agent的规划总是完美的"
现实中,Agent的规划能力有明显的局限:
| 局限 | 说明 |
|---|---|
| 可能规划不合理 | 步骤顺序有问题,遗漏关键环节 |
| 复杂任务挑战大 | 步骤太多时容易混乱 |
| 受LLM能力限制 | 大脑推理能力不足,规划质量就不行 |
| 不擅长处理意外 | 遇到未预料的情况可能卡住 |
因此,对于重要任务,人类监督仍然必要。当前阶段,Agent的规划更适合辅助人类,而非完全替代人类的判断。
用户请求:"帮我安排一次搬家"
大任务:搬家 分解: 1. 盘点物品 → 列出需要搬的东西 2. 准备打包 → 购买纸箱和胶带 3. 分类打包 → 按房间/类别打包 4. 联系搬家公司 → 比较报价,预约时间 5. 搬运执行 → 当天协调搬运 6. 新家整理 → 拆箱归位 依赖关系:1必须最先完成 → 2和4可以并行 → 3在2之后 → 5在3和4之后 → 6最后
四大组件的协同是指LLM(大脑)、记忆、工具和规划在处理任务时的协作流程:大脑理解任务并调度其他组件,规划制定步骤,记忆提供上下文和历史信息,工具执行具体操作,结果反馈回大脑形成闭环。
把四大组件想象成一家运转良好的公司:
| 组件 | 角色 | 职责 |
|---|---|---|
| LLM大脑 | CEO | 理解客户需求,做出决策 |
| 记忆系统 | 秘书 + 档案室 | 记录信息,调出历史资料 |
| 工具 | 员工团队 | 执行具体任务(发邮件、查数据) |
| 规划 | 项目经理 | 安排工作计划,分配任务顺序 |
CEO不会事必躬亲,而是听取秘书的汇报、让项目经理排计划、派员工去执行。四个角色缺一不可。
四大组件的协同遵循一个循环流程:
感知(接收输入)
→ 规划(拆解任务)
→ 记忆(检索相关信息)
→ 工具(执行操作)
→ 反馈(评估结果)
→ 回到规划(继续下一步或调整)
→ ...直到任务完成
→ 生成最终回复
┌─────────────────┐
│ 用户输入请求 │
└────────┬────────┘
↓
┌────────────────────────────────────────────────┐
│ 大脑(LLM) │
│ ┌──────────────────────────────────────────┐ │
│ │ 1. 理解请求 │ │
│ │ 2. 检索记忆 ←──── 记忆系统 │ │
│ │ 3. 制定规划 ←──── 规划能力 │ │
│ │ 4. 选择工具 ←──── 工具库 │ │
│ │ 5. 生成回复 │ │
│ └──────────────────────────────────────────┘ │
└───────────────────────┬────────────────────────┘
↓
┌─────────────┴─────────────┐
↓ ↓
┌─────────────┐ ┌─────────────┐
│ 执行工具 │ │ 更新记忆 │
└──────┬──────┘ └─────────────┘
↓
┌─────────────┐
│ 返回结果 │
└─────────────┘
用户请求:"帮我查一下明天北京的天气,如果下雨就提醒我带伞"
【规划阶段】 大脑(LLM)思考: 1. 查明天北京的天气 2. 判断是否下雨 3. 如果下雨,设置提醒 【执行阶段 - 步骤1】 大脑 → 调用天气工具 → 查询API → 返回结果:明天北京,小雨,12-18℃ 【记忆更新】 短期记忆:记录天气查询结果 【执行阶段 - 步骤2】 大脑分析:"小雨" → 确认需要提醒 【执行阶段 - 步骤3】 大脑 → 调用提醒工具 → 设置明早提醒"记得带伞" 【长期记忆更新】 存储:用户关心北京天气(可能是常住城市) 【生成回复】 大脑综合信息: "明天北京有小雨,气温12-18℃。我已为您设置了明早的提醒, 会提醒您带伞。"
在这个过程中,四个组件各司其职:大脑理解意图并做决策,规划拆分出三个步骤,工具查天气和设提醒,记忆保存中间结果和用户偏好。
四大组件架构不是Agent的唯一设计方式,但它是目前最主流的理解框架。在后续章节中会看到具体的实现模式——比如ReAct框架(思考-行动-观察的循环),就是四大组件协同的一种具体表现形式。
| 知识点 | 一句话总结 |
|---|---|
| LLM(大脑) | Agent的指挥中心,负责理解、思考、决策、生成,其能力决定Agent的上限 |
| 记忆系统 | 短期记忆保存当前对话上下文,长期记忆跨会话持久存储,两者协同让Agent拥有"经验" |
| 工具 | 通过Function Calling连接外部世界,让Agent从"只能说"变成"能做事" |
| 规划 | 通过任务分解、思维链、反思调整,让Agent能处理复杂的多步骤任务 |
| 四大组件协同 | 大脑调度一切,规划拆解任务,记忆提供上下文,工具执行操作——缺一不可 |
本章的核心认知:Agent不是一个单一的模型,而是一个由LLM大脑驱动的协作系统。理解这四个组件及其协同方式,你就掌握了分析任何Agent产品的基本框架——看它用了什么大脑、记忆设计如何、接入了哪些工具、规划策略是什么。
如果你要设计一个"个人理财Agent",它需要哪些工具?请列出至少5个,并说明每个工具的用途。
为什么说"LLM的能力决定了Agent的上限"?试举一个具体例子:一个能力较弱的LLM作为Agent大脑时,在什么场景下会暴露不足?
分析以下任务中四大组件各自的作用:"帮我写一封邮件给老板请假"。请分别说明LLM大脑、记忆系统、工具和规划各承担什么职责。
观察你日常使用的AI工具(如ChatGPT的联网搜索、代码解释器功能),思考:它用了哪些"工具"?这些工具属于信息获取类、操作执行类还是专业领域类?