7.2 LLM Agent 的四要素
以 LLM 为大脑的 Agent 核心抽象:规划、记忆、工具、反思;ReAct 范式;与经典架构的映射
为什么 LLM 能成为 Agent 的大脑
在 2022 年之前,人们普遍认为 LLM 只是"更会聊天的自动补全器"。三项工作打破了这一认知:
- CoT(Chain-of-Thought) — Wei 等人(NeurIPS 2022)证明,仅通过在 few-shot 示例中展示中间推理步骤,足够大的 LLM 就能执行多步推理(GSM8K 上 PaLM-540B + 8 shot CoT 超过了带 verifier 的 fine-tuned GPT-3)。关键洞见:LLM 无需微调也能做结构化推理。
- ReAct — Yao 等人(ICLR 2023)把 Reason(思考)和 Act(行动)拧成交替循环,让 LLM 既能推理也能与外部世界交互。
- Toolformer — Schick 等人(NeurIPS 2023,Meta AI)展示了 LLM 可以通过自监督学会何时调用工具、调用哪个工具、传什么参数、如何融合结果——全程无需人工标注。
这三块拼图合起来告诉我们:LLM 天然具备成为 agent 大脑的能力,不需要外挂一个"经典 planner"来做规划。
Lilian Weng 的四要素框架
OpenAI 的 Lilian Weng 在 2023 年的博文 LLM Powered Autonomous Agents 中提出了一个后来被所有框架采用的抽象:
我们这里把经常与 Memory 并列出现的 Reflection(反思) 也单拿出来,得到今天主流的四要素视角:
1. 规划(Planning)
规划让 agent 把复杂任务拆解为可执行的子步骤。典型方法:
- 任务分解:CoT、Plan-and-Solve、Least-to-Most
- 搜索式规划:Tree of Thoughts、Graph of Thoughts、LATS
- 解耦规划与执行:ReWOO(Plan → Worker → Solver)
对应经典架构:这就是 BDI 里的"从欲望到意图"这一步。
2. 记忆(Memory)
记忆在多个时间尺度上运作:
| 类型 | 实现 | 类比 |
|---|---|---|
| 短期记忆 | Context window / Scratchpad | 人的工作记忆 |
| 长期记忆 | 向量库(Pinecone、Chroma)、笔记文件 | 人的长时记忆 |
| 情景记忆 | 过去 trajectory 的回放 | 自传式记忆 |
| 语义记忆 | 知识图谱、embedding | 概念记忆 |
代表性工作:MemGPT(Packer et al., 2023)把操作系统的分层存储搬进 agent——主 context 像 RAM,外部存储像磁盘,agent 通过工具调用在两者之间搬运。这正是经典"黑板架构"的 LLM 版。
3. 工具(Tools)
工具让 agent 突破 LLM 的能力边界:搜索、计算器、代码执行、数据库查询、第三方 API。工具调用的基础设施经历了两次标准化:
- OpenAI Function Calling(2023-06):让 LLM 输出结构化 JSON 以调用函数
- MCP(Model Context Protocol)(Anthropic, 2024-11):"AI 的 USB-C",用 JSON-RPC 统一 prompt、resource、tool 三类服务
4. 反思(Reflection)
反思让 agent 在不更新权重的情况下改进。经典代表:
- Reflexion(Shinn et al., NeurIPS 2023):在 episodic memory 中维护"语言强化学习"的反思文本,HumanEval 上 pass@1 达到 91%
- Self-Refine(Madaan et al., NeurIPS 2023):同一个 LLM 做 Generate → Feedback → Refine 循环,在七项任务上平均提升约 20%
反思对应 AIMA 分类里的学习型 agent——它用语言反馈替代了梯度下降。
ReAct 范式:最稳定的基础抽象
ReAct(Reasoning + Acting,Yao et al., ICLR 2023)是 LLM Agent 领域最重要的一篇论文。它把 CoT 的"思考链"和工具调用合成一个交替循环:
一个 ReAct trajectory 长这样:
Thought 1: 我需要先找这篇论文的标题和摘要。
Action 1: search("Transformer attention is all you need abstract")
Observation 1: 《Attention Is All You Need》(Vaswani et al., 2017)...
Thought 2: 找到了。现在我要计算参考文献的平均年份。
Action 2: fetch_refs("https://arxiv.org/abs/1706.03762")
Observation 2: [2011, 2014, 2015, 2015, 2016, 2016, 2017, ...]
Thought 3: 对这些年份取平均。
Action 3: python("sum([2011, 2014, ...]) / n")
Observation 3: 2014.8
Thought 4: 已有答案,输出最终结果。
Action 4: finish("参考文献平均年份约为 2014.8")ReAct 在 ALFWorld 和 WebShop 两个交互基准上,分别以 34% 和 10% 的绝对成功率超越了模仿学习与强化学习方法,且只用 1–2 个上下文示例。这个结果让 ReAct 成为 LangChain、AutoGen、smolagents、Google ADK 等几乎所有 agent 框架的事实标准。
为什么 ReAct 如此持久? 因为它把"想"和"做"解耦——Thought 让 LLM 检查自身推理,Action 让 LLM 与世界交互获取新信息。没有 Thought,agent 退化为盲目调用工具;没有 Action,agent 退化为纯 CoT 的独白。两者交替正是 BDI 循环的 LLM 化身。
与经典架构的映射
把经典范式和 LLM Agent 放在一张表里,能看得更清楚:
| 经典概念 | LLM Agent 的形态 |
|---|---|
| PEAS | system prompt / 任务描述 / 可用工具 / 返回格式 |
| 感知(sensors) | 工具返回的 observation、向量检索结果 |
| 执行(actuators) | tool call、code execution、API 请求 |
| 简单反射 | 纯 prompt response(无工具、无 memory) |
| 目标驱动 + 规划 | ReAct / Plan-and-Solve / ReWOO |
| BDI 信念 | system prompt + 检索到的 context |
| BDI 欲望 | 当前 user goal / 任务描述 |
| BDI 意图 | 当前 plan / 下一步 tool call |
| 黑板 | LangGraph State、AutoGen 消息历史 |
| 合同网 | Multi-agent delegation |
| 学习型 agent | Reflexion、Self-Refine |
一个最小可跑的 ReAct 伪代码
def react_agent(goal: str, tools: dict, llm, max_steps: int = 10) -> str:
scratchpad = ""
for step in range(max_steps):
prompt = f"""你是一个 ReAct agent。
目标:{goal}
可用工具:{list(tools.keys())}
到目前为止:
{scratchpad}
请按以下格式回复之一:
Thought: <推理>
Action: <tool_name>(<args>)
---
或者(当任务完成):
Thought: <推理>
Finish: <最终答案>
"""
response = llm(prompt)
if "Finish:" in response:
return response.split("Finish:")[-1].strip()
# 解析 Action 并调用工具
action = parse_action(response)
obs = tools[action.name](**action.args)
scratchpad += f"{response}\nObservation: {obs}\n"
return "达到最大步数,未完成。"这 20 行代码就是所有现代 agent 框架的骨架。LangGraph、smolagents、AutoGen 只是在这个骨架上加了状态管理、错误恢复、并行化和多 agent 协调。
本节小结
- LLM 成为 agent 大脑的三块基石:CoT(会推理)+ ReAct(会行动)+ Toolformer(会用工具)
- 四要素框架:Planning(规划)、Memory(记忆)、Tools(工具)、Reflection(反思)
- ReAct 是最稳定的基础抽象:Thought → Action → Observation 循环
- 经典范式的思想没有过时——BDI 成为 prompt 结构,黑板成为共享 state,合同网成为 multi-agent delegation
- 记住:一个 agent 是否"真正"是 agent,取决于它有没有自主决定何时调用工具、何时停止的能力