🔬 深度科普
⏱ 约 18 分钟阅读
🏗️ Agent 架构
AI Agent 凭什么能"自主干活"?
从四大模块拆解它的内核
你有没有想过:为什么同样是 AI,ChatGPT 只会聊天,而 Agent 却能帮你订机票、写代码、查数据、发邮件,一口气做完?它们用的底层大模型可能是同一个,但 Agent 多了什么?答案,藏在它的架构里。
一、先破一个认知误区
很多人以为,AI Agent = 更聪明的 ChatGPT。
这个理解差了一个维度。
ChatGPT 是一问一答:收到输入,给出输出,然后就结束了。不管你的问题多复杂,它的工作模式永远是"收到问题 → 给出回答"。
Agent 的工作模式是:收到目标 → 自己想办法 → 拆解步骤 → 调用工具 → 观察结果 → 调整计划 → 直到完成。
| 维度 | 普通 LLM(如 ChatGPT) | AI Agent |
| 工作模式 | 一问一答,结束 | 持续循环,直到目标达成 |
| 任务范围 | 单步生成 | 多步骤复杂任务 |
| 工具能力 | 只输出文字 | 可调用搜索、代码执行、API 等 |
| 记忆能力 | 对话结束即清空 | 支持短期 + 长期持久记忆 |
| 核心差异 | 回答者 | 行动者 |
二、Agent 的四大核心模块
💡
核心公式
Agent = LLM(大脑)+ 记忆(Memory)+ 规划(Planning)+ 工具(Tools)
这四个模块缺一不可。拿掉任何一个,Agent 都会退化成普通的聊天机器人。
Agent 四大模块协作关系
flowchart LR
LLM["🧠 LLM 大脑\n推理 · 生成 · 决策"]
M["💾 记忆 Memory\n短期:当前任务上下文\n长期:向量数据库持久存储"]
P["📋 规划 Planning\nReAct / Plan-and-Execute\n/ Tree of Thought"]
T["🔧 工具 Tools\n搜索 · 代码执行 · API\n文件系统 · 子 Agent"]
LLM <-->|"读取历史\n写入新状态"| M
LLM <-->|"制定计划\n重新规划"| P
P -->|"触发工具调用"| T
T -->|"返回执行结果\n作为新的 Observation"| LLM
style LLM fill:#F5F3FF,stroke:#7C3AED,color:#5B21B6
style M fill:#EFF6FF,stroke:#2563EB,color:#1D4ED8
style P fill:#FFFBEB,stroke:#D97706,color:#92400E
style T fill:#F0FDF4,stroke:#16A34A,color:#166534
三、记忆(Memory):让 AI 不忘事
大语言模型本质上是"失忆症患者"。每次对话结束,它就把所有事情忘得一干二净。这对一个要完成多步骤任务的 Agent 来说是致命缺陷。
Agent 的记忆系统分两层:
| 记忆类型 | 存储位置 | 作用 | 类比 |
| 短期记忆 | 模型的上下文窗口 | 保存当前任务的每一步行动、工具结果、推理过程 | 做题时的草稿纸,做完就丢 |
| 长期记忆 | 外部向量数据库 | 跨任务持久保存,语义检索按需调取 | 笔记本,随时翻阅 |
⚠️
值得注意
记忆不是越多越好。把所有历史信息都塞进上下文,反而会稀释关键信息,让模型"抓不住重点"。生产级 Agent 的记忆策略,是把"当前窗口记忆"和"长期检索记忆"拆开管理,在 Token 成本和信息完整性之间找到平衡点。
四、规划(Planning):让 AI 会分解问题
这是 Agent 和普通 LLM 最核心的差异。普通 LLM 收到问题直接生成答案;Agent 收到目标后,先把目标拆解成可执行的子步骤,然后一步一步完成。
ReAct:最广泛使用的规划框架
ReAct 推理循环(思考 → 行动 → 观察)
flowchart LR
Start["📥 收到任务目标"] --> Think
Think["💭 思考 Thought\n分析当前状态\n决定下一步行动"] --> Act
Act["⚡ 行动 Action\n调用工具\n执行操作"] --> Observe
Observe["👁️ 观察 Observation\n接收工具返回结果\n更新对任务的理解"] --> Check
Check{"任务完成?"} -->|"❌ 未完成\n继续推理"| Think
Check -->|"✅ 完成"| Done["📤 输出最终结果"]
style Start fill:#EFF6FF,stroke:#2563EB,color:#1D4ED8
style Think fill:#F5F3FF,stroke:#7C3AED,color:#5B21B6
style Act fill:#FFFBEB,stroke:#D97706,color:#92400E
style Observe fill:#F0FDF4,stroke:#16A34A,color:#166534
style Check fill:#FEF2F2,stroke:#DC2626,color:#991B1B
style Done fill:#F0FDF4,stroke:#16A34A,color:#166534
三种规划范式对比
| 范式 | 核心思路 | 优点 | 缺点 | 适用场景 |
| ReAct | 思考→行动→观察循环 | 动态适应,遇到意外能调整 | Token 消耗大,速度慢 | 不确定性高的探索任务 |
| Plan-and-Execute | 先规划再执行 | 高效省 Token,速度快 | 规划错了难以纠偏 | 流程固定、步骤清晰的任务 |
| Tree of Thought | 同时探索多条思路 | 发散思维,解法多样 | 计算成本极高 | 创意生成、复杂推理 |
💡
选择原则
任务越复杂、越不可预测 → 越需要 ReAct 的动态规划;任务越标准化 → 越适合 Plan-and-Execute 的静态规划。这本质上是灵活性与效率成本的权衡。
五、工具(Tools):让 AI 有手有脚
规划再好,如果没有执行能力,Agent 就只是"纸上谈兵"。工具系统,就是 Agent 的"手"。
工具本质上是可调用的函数,Agent 通过 Function Calling 或 MCP 协议来使用它们:
| 工具类型 | 例子 | 作用 |
| 搜索工具 | Tavily、Brave Search | 实时检索网络信息 |
| 代码执行 | Python Sandbox | 运行代码、处理数据 |
| 文件系统 | 读写本地文件(MCP) | 处理文档、存储结果 |
| 外部 API | 邮件、日历、数据库 | 与真实业务系统交互 |
| 子 Agent | 委托专门的 Agent | 处理复杂子任务 |
⚠️
工程实践中容易忽视的问题
网络请求可能超时,API 可能返回错误。生产级 Agent 必须为每个工具设置超时时间和回退策略——否则一个卡住的工具调用会让整个 Agent 无限等待。
六、单 Agent vs 多 Agent:什么时候需要"组团"?
单个 Agent 有一个根本性的瓶颈:上下文窗口是有限的。任务越复杂、步骤越多,上下文就越撑不住,信息开始丢失,推理开始退化。
多 Agent 系统的核心思路是:用分工换能力。Anthropic 的内部实验数据印证了这一点:用 Claude Opus 作为主 Agent、Claude Sonnet 作为子 Agent 的多 Agent 系统,性能比单独使用 Claude Opus 高出 90.2%。
主从式(Orchestrator-Worker)多 Agent 架构
flowchart LR
O["🎯 Orchestrator\n主控 Agent\n任务分解 · 结果整合 · 质量把控"]
W1["🔍 Worker Agent 1\n信息搜集专员\n网络检索 · 数据抓取"]
W2["📊 Worker Agent 2\n数据分析专员\n数据处理 · 洞察提取"]
W3["✍️ Worker Agent 3\n内容生成专员\n报告撰写 · 格式排版"]
O -->|"子任务 1"| W1
O -->|"子任务 2"| W2
O -->|"子任务 3"| W3
W1 -->|"搜集结果"| O
W2 -->|"分析结果"| O
W3 -->|"内容草稿"| O
style O fill:#F5F3FF,stroke:#7C3AED,color:#5B21B6
style W1 fill:#EFF6FF,stroke:#2563EB,color:#1D4ED8
style W2 fill:#FFFBEB,stroke:#D97706,color:#92400E
style W3 fill:#F0FDF4,stroke:#16A34A,color:#166534
⚠️
多 Agent 不是银弹
网络型(平等式)架构通信复杂度随 Agent 数量平方增长。超过 10 个 Agent 后,协调成本往往超过分工带来的收益,整体性能不升反降。保持架构简洁,每个 Agent 聚焦一件事,效果往往最好。
七、带走这四个判断问题
评估任何一个 Agent 系统时,四个问题可以帮你快速定位它的能力天花板:
1
它的记忆怎么管理?
短期和长期记忆是否分层?上下文溢出时如何处理?没有清晰策略的 Agent 在长任务中必然退化。
2
它用哪种规划范式?
任务固定用 Plan-and-Execute,任务动态用 ReAct,需要创意用 ToT。范式选错了,再强的大模型也发挥不出来。
3
它的工具边界在哪?
能感知什么、能操作什么,直接决定了 Agent 的"活动半径"。工具越丰富,能解决的场景越多。
4
出错了怎么办?
有没有超时控制、回退策略、人工介入节点?一个成熟的 Agent 系统,必须为失败场景做设计。
💡
最后一句话
不是所有任务都适合用 Agent。对于流程固定、边界清晰的任务,传统规则引擎往往比 Agent 更可靠、更便宜。Agent 真正的价值,在于那些规则无法穷举、需要动态判断的复杂任务。