AI Agent 理论基石——从 ReAct 范式到框架工程化选型
本文为「AI Agent 技术系列」第 1 篇,后续文章将分别深入 Function Calling、MCP 协议、LangChain 工程化、护栏与安全、上下文工程、多 Agent 协作等主题。
一、主题定义与背景
Agent 的权威定义
OpenAI 应用研究主管 Lilian Weng 在 2023 年的经典博文《LLM Powered Autonomous Agents》中给出了被广泛引用的定义:
“Agent = LLM + Planning + Memory + Tool Use”
其中 LLM 充当 Agent 的大脑,负责核心推理;Planning 模块将复杂任务拆解为可执行步骤;Memory 模块管理短期与长期记忆;Tool Use 模块让 Agent 能够调用外部工具获取信息或执行操作 [1]。
这一定义确立了 Agent 的四要素架构,至今仍是主流框架设计的基石。
范式演进时间线
Agent 的推理范式经历了三个关键阶段:
1 | 2022.01 CoT (Chain of Thought) |
2024-2025 年 Agent 工程化爆发
Agent 从研究走向工程化爆发,有两个驱动力:
- 模型能力跃升:GPT-4o、Claude 3.5、Gemini 2.0 等模型在推理和工具调用上达到生产可用水平
- 工具生态成熟:MCP 协议标准化工具集成、Function Calling 成为模型标配能力、Agent 框架(LangGraph、AutoGen、CrewAI)快速迭代
二、核心技术原理与架构设计
2.1 ReAct 模式深度拆解
ReAct 的核心是将推理(Reasoning)与行动(Acting)交替进行,形成闭环迭代:
flowchart LR
A[用户输入] --> B[推理 Reasoning]
B --> C[行动 Acting]
C --> D[观察 Observation]
D --> E{是否得到答案?}
E -->|否| B
E -->|是| F[输出最终结果]
三阶段详解:
| 阶段 | 职责 | 技术实现 |
|---|---|---|
| Reasoning | LLM 分析当前任务状态,生成内部推理(Thought),决定下一步行动 | Prompt 中要求模型输出 “Thought: …” 前缀 |
| Acting | 根据推理结果执行具体操作:信息查询、Function Call、代码执行 | 调用工具 API,将结果注入上下文 |
| Observation | 观察行动结果,将反馈用于下一轮思考或判断已完成 | 将工具返回值格式化为 “Observation: …” 追加到上下文 |
最小可运行示例(基于 LangChain ReAct Agent):
1 | // npm install langchain @langchain/openai @langchain/community |
ReAct 的核心价值在于通过工具调用获取外部反馈,让 LLM 不再”闭门造车”,而是基于真实世界的信息进行推理 [2]。
2.2 Plan-and-Execute 模式
Plan-and-Execute 由 LangChain 团队在 2023 年提出,基于《Plan-and-Solve Prompting》论文的思路:
flowchart TD
A[用户任务] --> B[Planner 规划器]
B --> C[任务1]
B --> D[任务2]
B --> E[任务3]
C --> F[Executor 执行器]
D --> F
E --> F
F --> G[Summary 总结]
与 ReAct 的关键差异:
| 维度 | ReAct | Plan-and-Execute |
|---|---|---|
| 规划时机 | 每一步即时决策 | 先全局规划,再逐步执行 |
| 适合任务 | 探索性、需要动态调整 | 依赖明确、步骤可预期 |
| 可预测性 | 低(每步可能改变方向) | 高(计划先行) |
| 典型实现 | LangChain ReAct Agent | LangChain Plan-and-Execute |
Plan-and-Execute 的优势在于结构化流程,可预期性强,但缺点是倾向 workflow,缺乏动态调整能力。
2.3 Reflection 模式
Reflection(反思)模式通过自我纠错提升 Agent 性能,有三篇里程碑论文:
| 论文 | 核心思想 | 性能提升 | 出处 |
|---|---|---|---|
| Reflexion | 通过语言反馈(而非权重更新)强化 Agent,在情节记忆中维护反思文本 | 显著提升多轮任务表现 | Shinn et al., arXiv:2303.11366 [5] |
| Self-Refine | 先输出、再反馈、不断迭代,受人类改进文本方式启发 | 评估任务平均提升约 20% | Madaan et al., arXiv:2303.17651 [6] |
| CRITIC | 结合外部工具(搜索引擎、代码执行器)验证输出,基于验证结果自我修正 | 提升事实准确性 | Gou et al., arXiv:2305.11738 [7] |
关键洞察:这三篇论文是 Reflection 模式的理论基础,但当前主流 Agent 框架的核心实践依旧离不开 ReAct——Reflection 通常作为 ReAct 的增强层存在。
2.4 Agent 工程核心三要素
无论框架如何演进,Agent 工程的本质可归纳为三要素:
flowchart TD
subgraph Agent核心
A[LLM Call<br/>推理本质]
B[Tools Call<br/>执行本质]
C[Context Engineering<br/>连接二者]
end
A <--> C
B <--> C
A -.->|推理决定调用| B
B -.->|结果反馈推理| A
| 要素 | 职责 | 演进方向 |
|---|---|---|
| LLM Call | 兼容各大 LLM 厂商 API,提供标准化调用接口 | 从单一模型到多模型路由 |
| Tools Call | Function Call → MCP → Skills,文件操作/网络搜索/代码执行 | 从单工具到工具编排 |
| Context Engineering | 提示词工程 + Tools 集成 + 记忆管理 | 从 Prompt 到文件系统即上下文 |
业内关于 Agent 工程有两大共识:
- 文件系统即上下文:使用文件保存 Agent 长期记忆(如 SOUL.md、TOOLS.md、MEMORY.md),让 Agent 在不同会话间拥有持续上下文
- 编程是通用解法:AI 更擅长使用代码解决问题——问题 → 生成代码 → 执行 → 迭代 → 解决。代码可视为 Tools 的高级形式(详见 CodeAct [3])
三、实际应用场景与最佳实践
场景一:智能客服系统(Router 模式选型)
需求:构建客服系统,能处理订单查询、退换货、投诉、知识库搜索等任务。
选型分析:客服场景任务边界清晰、路由明确,适合 Router 模式——主 Agent 将请求路由给最专业的子 Agent。
框架选择:LangGraph(基于状态图,支持条件路由)
1 | import { StateGraph, Annotation, END } from "@langchain/langgraph"; |
场景二:数据分析 Agent(Plan-and-Execute 选型)
需求:用户用自然语言提问,Agent 自动分析数据库并生成报告。
选型分析:数据分析任务依赖明确(先查数据、再分析、最后生成报告),适合 Plan-and-Execute 模式。
框架选择:LangChain Plan-and-Execute
五大框架对比(2025 年最新版本)
| 框架 | 定位 | 核心特点 | 适用场景 | 最新状态 |
|---|---|---|---|---|
| LangChain | 通用 Agent 框架 | 工具链丰富,社区成熟 | 快速构建 AI 应用原型 | 活跃迭代,已拆分为 LangChain + LangGraph + LangSmith [4] |
| LlamaIndex | 数据索引与检索 | 高效文档处理与查询 | RAG、知识密集型应用 | 专注数据层,与 LangChain 互补 |
| AutoGen | 多 Agent 对话协作 | 微软出品,对话驱动 | 复杂任务分解执行 | v0.4+ 架构重构,API 大改 [8] |
| CrewAI | 角色扮演协作 | Agent 有明确角色目标 | 模拟团队协作场景 | 快速增长,适合结构化协作 |
| LangGraph | 状态图流程控制 | 精细化状态管理 | 复杂流程控制需求 | LangChain 生态核心,生产推荐 |
选型决策建议:
- 快速出原型 → LangChain(最成熟,工具链丰富)
- RAG 应用 → LlamaIndex(专注数据索引与检索)
- 多 Agent 协作 → AutoGen / CrewAI(专为多智能体协作而生)
- 复杂流程控制 → LangGraph(基于状态图,工作流灵活性高)
四、常见挑战与解决方案
| 挑战 | 表现 | 解决方案 | 代码要点 |
|---|---|---|---|
| Agent 循环不收敛 | Agent 反复调用工具,无法到达最终答案 | 设置最大迭代数 + 早停策略 | recursionLimit: 10, 检测重复 Action |
| 工具选择错误 | Agent 选错工具或参数提取错误 | 优化工具描述 + 动态路由预筛选 | 工具 description 要包含使用场景 |
| 上下文窗口溢出 | 多轮对话后 token 超限 | 摘要裁剪 + 选择性共享上下文 | 定期 summarize 历史消息 |
| 幂等性问题 | Agent 重试导致重复操作 | 共享状态写入需考虑幂等 | 操作前检查是否已执行 |
| 可观测性不足 | 无法调试多 Agent 交互 | 集成 trace/log,使用 LangSmith | 每步记录 state 快照 |
循环不收敛的解决方案示例:
1 | import { StateGraph, END } from "@langchain/langgraph"; |
五、行业趋势与前沿进展
从 ReAct 到 CodeAct 的演进
2024 年 2 月,Wang 等人提出 CodeAct [3],核心思想是用可执行 Python 代码统一 Agent 的行动空间。与传统 Function Calling 相比,CodeAct 的优势在于:
- 统一行动空间:不再为每个工具定义单独的 Function,而是用代码组合
- 更灵活的组合:一个代码块可以串联多个工具调用
- 自我纠错:代码执行失败后,Agent 可以读取错误信息并修正代码
当前 LangChain 等框架已从纯 ReAct 逐渐融合 CodeAct,但推理与执行的本质并未改变。
Agent 评估基准
Agent 评估是 2024-2025 年的热点领域,主要基准包括:
| 基准 | 评估维度 | 最新状态 |
|---|---|---|
| SWE-bench | 软件工程任务(修 GitHub Issue) | SWE-bench Verified 500 实例子集,Claude 3.5 Sonnet 达 ~50% 通过率 [9] |
| SWE-bench-Live | 自动更新的软件工程任务 | 3 天前更新,持续跟踪最新任务 [10] |
| AgentBench | 通用 Agent 能力(Web/OS/检索/推理/游戏) | 覆盖多环境交互与长程规划 [11] |
SWE-bench 已成为衡量 AI 编码代理能力的标杆,leaderboard 上各家模型竞争激烈 [9]。
框架竞争格局
2025 年 Agent 框架竞争的核心已从”功能丰富度”转向”生产可用性”:
- LangGraph 凭借显式状态机和精细控制,成为生产环境推荐选择 [8]
- AutoGen v0.4+ 进行了架构重构,从对话驱动转向更结构化的编排
- CrewAI 以角色化协作和低门槛,在团队协作场景快速增长
上下文工程(Context Engineering)兴起
2025 年,”Context Engineering”作为概念逐渐成形——它比 Prompt Engineering 更广,涵盖:
- 提示词工程(狭义上下文)
- 工具集成(Tools 即上下文的一部分)
- 文件系统即上下文(AGENTS.md / CLAUDE.md 模式,详见系列第 6 篇)
- 多 Agent 间上下文共享(详见系列第 7 篇)
目标是从「预训练导向推理」转向「检索导向推理」——让 Agent 基于上下文中提供的最新信息进行推理,而非依赖可能过时的训练数据。
结论
AI Agent 的理论基石可归纳为三个层次:
- 范式层:ReAct 是当前主流,CodeAct 是演进方向,Reflection 作为增强层
- 架构层:LLM Call(推理)+ Tools Call(执行)+ Context Engineering(连接)是核心三要素
- 框架层:LangGraph 适合复杂流程控制,CrewAI 适合角色协作,LangChain 适合快速原型
选型时遵循一个原则:先确定任务范式(探索性用 ReAct,结构化用 Plan-Execute),再选择对应框架,而非反过来。
参考资料
[1] Lilian Weng. LLM Powered Autonomous Agents. 2023-06-23
[2] Yao, S. et al. ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629. 2022-10-06
[3] Wang, X. et al. Executable Code Actions Elicit Better LLM Agents (CodeAct). arXiv:2402.01030. 2024-02-01
[5] Shinn, N. et al. Reflexion: Language Agents with Verbal Reinforcement Learning. arXiv:2303.11366. 2023-03-21
[6] Madaan, A. et al. Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651. 2023-03-30
[7] Gou, Z. et al. CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing. arXiv:2305.11738. 2023-05-19
[8] AI Agent 框架实测:AutoGen、CrewAI、LangGraph. 2025-10-28
[9] SWE-bench Leaderboards. 2026-03-04
[10] SWE-bench-Live Leaderboard. 2026-06
[11] AI Agent Benchmark & Evaluation 2025. 2025-12-04