第 2 章 · Agent 工具演化史 / The Evolution of Agent Tooling
本章观点
Agent 不是 2025 年突然冒出来的新东西。它是一条清晰的技术演化线:从 2022 年的 ReAct 论文,到 2023 年 AutoGPT 的爆火与翻车,再到 2024 年的 Coding Agent 与 MCP,最后到 2025 年的 Skills 与 Loop Engineering。
理解这条线有两个好处:
- 不重复造轮子:每一代踩过的坑,下一代都有对应工具来解决。你今天遇到的"agent 跑着跑着就死了",AutoGPT 时代就遇到过,答案是加步数上限 + 验证 + sandbox。
- 看清技术选型:为什么 MCP 出来以后 Function Calling 没被淘汰?为什么 Skills 不是 Workflow 的替代品?为什么单 Agent 没死、Multi-Agent 没普及?演化视角能给你答案。
一句话:演化史不是历史课,是选型课。
2.1 阶段 1:Prompt / ReAct 时代(2022)
Chain of Thought:让模型"想出来"
2022 年 1 月,Wei 等人发表 Chain of Thought (CoT) 论文。核心发现:在 prompt 里加一句 "Let's think step by step",让模型把推理过程写出来,数学题准确率从 17.7% 跳到 58.3%。
这是 Agentic AI 的思想原点:模型不是只输出答案,而是输出推理过程。后续所有 agent 的 "Thought" 字段都来自这里。
ReAct:推理 + 行动
2022 年 10 月,Yao 等人发表 ReAct: Synergizing Reasoning and Acting in Language Models。论文标题里的 "Synergizing" 是关键词:推理和行动不是二选一,而是交替进行。
ReAct 提出的循环格式:
Thought: 我需要查北京天气
Action: weather_tool(location="北京")
Observation: 25 度,晴
Thought: 信息齐了
Final Answer: 北京今天 25 度晴。ReAct 的真正贡献不是这个文本格式,而是证明了三件事:
- 只推理不行动:模型会幻觉(说自己查了,其实没查)。
- 只行动不推理:模型不知道为什么要调这个工具,参数经常错。
- 推理 + 行动交替:准确率最高,且轨迹可检查。
这三条结论至今没被推翻。今天 Claude / GPT 的 tool use API,底层就是这个逻辑的结构化版本。
关键词
- Chain of Thought (CoT)
- ReAct (Reasoning + Acting)
- Tool-use Prompt
- Zero-shot CoT
2.2 阶段 2:Function Calling / Tool Calling(2023.6)
OpenAI 打开结构化工具调用
2023 年 6 月 13 日,OpenAI 在 GPT-4 升级时发布了 Function Calling 功能。LLM 不再只能输出文字,还能输出 "我要调用这个函数,参数是这些" 的结构化 JSON。
这是从"ReAct 文本格式"到"工程化 API"的关键一跳。在 ReAct 时代,开发者得用正则解析 "Action: ..." 字符串;Function Calling 之后,模型直接返回 JSON,工程上稳得多。
各家跟进
- OpenAI:Function Calling(2023.6)→ 改名 Tool Calling(2023.11)
- Anthropic:Tool Use(2024.3,Claude 3 发布时同步上线)
- Google Gemini:Function Calling(2023.12)
- 开源模型:Llama 3、Qwen 2.5、DeepSeek-V3 都支持
底层都是 JSON Schema 描述工具,模型返回结构化调用。差别只在字段命名:OpenAI 用 parameters,Anthropic 用 input_schema。
关键词
- Function Calling / Tool Calling / Tool Use
- JSON Schema
- Structured Output
- Tool Schema Design
- Tool Error Handling
一个常见误区
很多人以为 "Function Calling 出来以后 ReAct 就过时了"。不对。ReAct 是思想(推理 + 行动交替),Function Calling 是实现手段(结构化输出)。今天所有 agent 框架,底层仍然是 ReAct 循环,只是用 Function Calling 替代了文本解析。
2.3 阶段 3:AutoGPT / BabyAGI 的爆火与翻车(2023.3-4)
一个月内 100k star
2023 年 3 月,AutoGPT 在 GitHub 上线。用户给一个目标("帮我赚钱"),AutoGPT 自己拆任务、调搜索、写文件、循环执行。一个月内拿下 100k star,是当时涨星最快的项目。
同期 BabyAGI 用 140 行 Python 实现了"任务队列 + 优先级 + 反思"的最小 agent loop,成了无数教程的范本。
为什么爆火
AutoGPT 把 ReAct 的"推理 + 行动"循环跑起来了,还接了真实的工具:文件系统、网页搜索、长记忆。用户第一次看到"AI 自己跑任务"的演示,震撼感拉满。
为什么翻车
但 AutoGPT 真实跑起来基本都崩:
| 问题 | 表现 | 根因 |
|---|---|---|
| 死循环 | 反复搜索同一个词 | 没有循环检测,没有步数硬上限 |
| 成本失控 | 一个任务烧几十美金 | 没有 token 预算,没有停止条件 |
| 幻觉执行 | 说自己做了,其实没做 | 缺少验证环节,工具结果不校验 |
| 任务漂移 | 跑着跑着忘了目标 | context 爆了之后目标被淹没 |
| 越权操作 | 自动创建文件、发推 | 没有 permission 分级,没有 sandbox |
教训沉淀
AutoGPT 的失败给整个行业上了一课,后续所有 agent 框架的设计都在回应这些问题:
- LangGraph 加了步数上限 + 状态检查点
- Claude Code 加了 Permission 分级 + Hook 拦截
- OpenHands 加了 Sandbox + E2E 测试
- MCP 加了 Transport 安全 + 工具白名单
- Skills 加了 allowed-tools 收紧
AutoGPT 没死,它变成了反面教材。今天你写的 agent 如果还犯 AutoGPT 那五个错,说明没读过这段历史。
关键词
- AutoGPT / BabyAGI
- Self-directed task decomposition
- 反面教材:缺验证 / 缺预算 / 缺 sandbox
2.4 阶段 4:Agent Frameworks(2023-2024)
AutoGPT 翻车后,社区开始系统化造轮子。2023 下半年到 2024 年,涌现了一批 Agent 框架,每个都试图解决 AutoGPT 留下的某个坑。
LangChain / LangGraph
LangChain 起家是 LLM 调用工具链,后来分化出 LangGraph 专门做"图式状态机"。LangGraph 的核心抽象:
- State:TypedDict 定义的状态对象
- Node:每个节点是一个函数,接收 state 返回更新
- Edge:节点间的边,可以是固定的或条件的
- Checkpoint:状态可持久化,支持断点续跑
LangGraph 解决了 AutoGPT 的"死循环 + 任务漂移"问题:状态显式化、循环可视化、步数可控。
AutoGen
AutoGen(微软出品)走"多 agent 对话"路线。多个 agent 在一个群里互相发消息,类似群聊推理。适合"多个角色辩论同一个问题"的场景。
CrewAI
CrewAI 走"角色扮演 + 任务流水线"路线。定义 Captain、Researcher、Writer 等角色,给每个角色一个 goal,框架自动编排。上手比 LangGraph 简单,但灵活性差一些。
LlamaIndex
LlamaIndex 起家是 RAG 框架,后来加了 Agent 能力。强在文档处理 + 知识库 + Agentic RAG。
框架的共同能力
到 2024 年中,主流框架都长出了这几样东西:
- 状态管理(State / Checkpoint)
- 多 Agent 协作(Orchestrator-Worker)
- Human-in-the-loop(HITL,人工审批节点)
- Trace / Debug(运行轨迹可视化)
- Workflow + Agent 混合架构
框架的局限
但框架没解决根本问题:工具还是各家自己写,跨框架不能复用。你在 LangChain 写的 search_arxiv 工具,挪到 CrewAI 还得改一遍。这就给后面的 MCP 留了空间。
关键词
- LangChain / LangGraph / AutoGen / CrewAI / LlamaIndex
- State Machine / Checkpoint / HITL
- Orchestrator-Worker / Multi-Agent
2.5 阶段 5:Coding Agent(2024-2025)
框架解决了"agent loop 怎么稳",但 agent 还是只能调几个简单工具。真正让 agent 走进生产的是 Coding Agent:让 agent 在真实开发环境里读代码、改文件、跑命令、提 PR。
代表产品
| 产品 | 出品方 | 定位 | 上线 |
|---|---|---|---|
| Cursor | Anysphere | IDE 内 agentic coding | 2023.3 |
| Aider | 社区 | 终端 pair programming | 2023.5 |
| Devin | Cognition | "第一个 AI 软件工程师" | 2024.3 |
| OpenHands | All-Hands AI | 开源版 Devin | 2024.4(前 OpenDevin) |
| Replit Agent | Replit | 端到端 app builder | 2024.9 |
| Claude Code | Anthropic | CLI 编程 agent | 2025.2 |
| Codex | OpenAI | CLI 编程 agent | 2025.5 |
| SWE-agent | Princeton | 学术评测基准 | 2024.3 |
Coding Agent 共同能力
这些产品底层都是同一个形态:
- 读代码库(Glob / Grep / Read)
- 修改文件(Edit / Write)
- 运行命令(Bash)
- 写测试 + 跑测试
- 在 sandbox 中执行
- 提 PR 或 commit
差别在产品形态:Cursor 嵌 IDE,Aider 在终端,Devin 是 Web 产品,Claude Code / Codex 是 CLI,OpenHands 是开源框架。
为什么 Coding Agent 跑得起来
Coding Agent 是 Agent 演化里第一个"真能干活"的形态,原因有三:
- 环境封闭可控:代码库是一个明确的沙盒,agent 在里面跑不会误伤真实业务。
- 反馈即时可验:跑测试、编译、lint,结果对错一目了然。这是天然验证器。
- 任务路径明确:改 bug、加 feature、重构,都比"帮我赚钱"这种 AutoGPT 式目标具体得多。
Coding Agent 带来的新问题
但 Coding Agent 也暴露了新问题:
- 权限失控:agent 能
git push能rm -rf,没人拦就出事 → 催生 Permission 系统 - 工具不能复用:Cursor 写的工具 Claude Code 用不了 → 催生 MCP 普及
- 经验不能沉淀:每个项目都要重新教 agent 怎么做事 → 催生 Skills
这三个问题正好对应了下一阶段的 MCP、Skills 和 Loop Engineering。
关键词
- Claude Code / Codex / Cursor / Devin / Replit Agent / OpenHands / Aider / SWE-agent
- Sandbox execution / Permission / PR workflow
2.6 阶段 6:MCP 标准化(2024.11)
N×M 集成地狱
在 MCP 之前,工具集成是这样的:
- Anthropic SDK:
{"name": ..., "input_schema": ...} - OpenAI SDK:
{"type": "function", "function": {"name": ..., "parameters": ...}} - LangGraph:自己的 Tool 类
- CrewAI:又一套
5 个模型 × 20 个工具 = 100 套集成。这就是"N×M 集成地狱"。
MCP 出场
2024 年 11 月 25 日,Anthropic 开源 Model Context Protocol (MCP)。官方比喻是 "USB-C for AI applications":一个标准接口,所有模型和所有工具都遵循它,N×M 降成 N+M。
注:"N×M → N+M" 是社区通俗比喻,非 Anthropic 官方原话。
MCP 解决了什么
MCP 把三件事标准化了:
- 工具描述:统一的 JSON-RPC schema
- 通信协议:stdio / HTTP SSE / WebSocket 三种 transport
- 能力分类:Tools(模型调)/ Resources(应用取)/ Prompts(用户触发)
MCP 生态
到 2026 年中,MCP 已经是事实标准:
- modelcontextprotocol/servers:88k star,官方参考实现
- microsoft/playwright-mcp:35k,浏览器自动化
- github/github-mcp-server:31k,GitHub 官方
- PrefectHQ/fastmcp:26k,Python MCP 框架
- googleapis/mcp-toolbox:16k,数据库 MCP
主流 Host(Claude Code / Cursor / VS Code / Claude Desktop / Codex CLI)全部原生支持 MCP。第 5 章会详细讲 MCP 怎么用。
关键词
- MCP / Model Context Protocol
- Host / Client / Server
- Tools / Resources / Prompts
- USB-C for AI
2.7 阶段 7:Skills 沉淀(2025)
问题:经验不能复用
MCP 解决了"工具连接标准化",但没解决"做事方法标准化"。
举个例子:你在 Claude Code 里让 agent 提交代码,每次都要手动说 "看 git status → 看 diff → 写 commit message → 提交"。这套流程是固定的,但每次都要重新讲。这就是 Skills 要解决的问题。
Skills 是什么
2025 年,Anthropic 发布 Agent Skills。官方定义:
"Agent Skills are modular capabilities that extend Claude's functionality. Each Skill packages instructions, metadata, and optional resources (scripts, templates) that Claude uses automatically when relevant."
翻译:Skill 是模块化能力包,里面有指令、元数据、可选资源(脚本、模板)。Claude 在相关场景下自动调用。
Skill 的核心创新:渐进式加载
Skill 系统有个聪明设计——渐进式加载(Progressive Disclosure):
| 层级 | 内容 | 加载时机 | Token 成本 |
|---|---|---|---|
| Level 1 | Metadata(name + description) | 始终加载 | ~100 tokens |
| Level 2 | SKILL.md 主体 | 触发时加载 | 几百-几千 tokens |
| Level 3 | Resources(脚本、模板) | 按需加载 | 按需 |
100 个 skill 平时只占 1 万 tokens,触发哪个才加载哪个。这解决了"能力多了 context 就爆"的问题。
Skill vs MCP 的分工
| MCP | Skills | |
|---|---|---|
| 解决什么 | 工具连接标准化 | 做事方法标准化 |
| 粒度 | 单个工具调用 | 一套流程指令 |
| 复用维度 | 跨 host 复用 | 跨会话复用 |
| 例子 | filesystem server | /commit skill |
MCP 让 agent "有工具可用",Skills 让 agent "知道怎么用工具做事"。第 7 章详细讲 Skills。
关键词
- Agent Skills / SKILL.md
- Progressive Disclosure
- Skills vs MCP vs Prompt
2.8 阶段 8:Loop Engineering(2025+)
从单工具到完整 Loop
演化到这里,所有零件都齐了:
- 决策:LLM(阶段 1-2)
- 工具:Function Calling + MCP(阶段 2、6)
- 运行时:Coding Agent + Sandbox(阶段 5)
- 方法:Skills(阶段 7)
但要把它们组装成一个可靠的闭环,还需要 Loop Engineering。
完整 Agent Loop
目标 (Goal)
→ 计划 (Plan)
→ 工具调用 (Tool Call)
→ 执行 (Execute, in Sandbox)
→ 反馈 (Observe)
→ 验证 (Verify)
→ 修正 (Reflect & Adjust)
→ 停止 (Stop or Continue)每一环都有对应的工程能力:
| 环节 | 工程能力 | 对应工具 |
|---|---|---|
| 目标 | Spec Engineering | SPEC.md |
| 计划 | Planning / Task Decomposition | PLAN.md / TASKS.md |
| 工具调用 | Tool Calling + MCP | MCP servers |
| 执行 | Sandbox / Runtime | E2B / Daytona / OpenHands runtime |
| 反馈 | Observability + Trace | LangSmith / Langfuse |
| 验证 | E2E Testing + Benchmark | SWE-bench / τ-bench |
| 修正 | Reflection + Memory | Reflexion / MEMORY.md |
| 停止 | Stop conditions + HITL | Permission / Hooks |
Loop Engineering 的核心命题
Loop Engineering 不是新框架,是一组设计原则:
- 可观察:每一步都有 trace,能复盘
- 可验证:每一步都能跑测试,不是 LLM 说成功就成功
- 可回退:失败能 rollback 到 checkpoint
- 可中断:任何一步都能暂停等人确认
- 可预算:token、步数、时间、金钱都有上限
这五条是 AutoGPT 翻车的直接反命题。后续章节会逐个展开。
关键词
- Loop Engineering
- Durable Execution / Checkpoint / Rollback
- Observability / Trace / Cost Tracking
- HITL (Human-in-the-loop)
2.9 一张演化时间轴
2022.01 Chain of Thought 论文 ── 推理过程显式化
2022.10 ReAct 论文 ──────────── 推理 + 行动交替
2023.03 AutoGPT 上线 ────────── 自主 agent 爆火
2023.04 BabyAGI 上线 ────────── 140 行最小 agent loop
2023.06 OpenAI Function Calling ─ 工具调用结构化
2023.10 LangChain Agent ──────── 框架化开始
2023.12 Gemini Function Calling ─ 三家齐全
2024.01 LangGraph 发布 ────────── 状态机编排
2024.03 Devin 发布 ────────────── "AI 软件工程师"
2024.03 Anthropic Tool Use ────── Claude 3 工具调用
2024.04 OpenHands (OpenDevin) ── 开源 coding agent
2024.11 MCP 开源 ──────────────── 工具连接标准化
2025.02 Claude Code 发布 ──────── CLI coding agent
2025.05 Codex CLI 发布 ────────── OpenAI CLI agent
2025.Q2 Agent Skills ──────────── 做事方法标准化
2025.Q3 Loop Engineering ──────── 可靠闭环组装记住几个关键节点:2022 ReAct → 2023 AutoGPT → 2024 MCP → 2025 Skills。这四个节点串起来就是 Agent 的工程化主线。
2.10 前人智慧 / Prior Art
ReAct 论文核心实验
ReAct(Yao et al., 2022)在 HotpotQA 和 ALFWorld 上做了对照实验,结论影响深远:
| 方法 | 准确率 | 失败模式 |
|---|---|---|
| 只推理(CoT) | 中等 | 幻觉,编造事实 |
| 只行动(Act) | 较低 | 不知道为什么调工具,参数乱 |
| 推理 + 行动(ReAct) | 最高 | 失败模式最少 |
论文最关键的图(Fig. 2)展示了:随着任务步数增加,纯推理方法的幻觉率上升,纯行动方法的工具调用错误率上升,只有 ReAct 两条曲线都压住。这个结论直接定义了今天所有 agent 的循环结构。
AutoGPT 失败的工程原因
AutoGPT 失败不是模型不够强(GPT-4 当时是最强的),而是工程上犯了五个错。这五个错后来被 Lilian Weng 的《LLM Powered Autonomous Agents》 系统总结:
- 没有验证器:agent 说自己做了就算做了,不跑测试。
- 没有预算控制:token 烧到天荒地老。
- 没有 sandbox:能直接动真实文件系统。
- 没有状态检查点:崩了不能续跑。
- 没有任务边界:目标太空,自己拆任务拆到发散。
这五条至今仍是 agent 工程的"五条军规"。后续每一代框架都在补这五条。
Anthropic《Building Effective Agents》的演化视角
Anthropic 工程博客(2024.12)给了一个重要的判断:
"Agents can handle sophisticated tasks, but their implementation is often straightforward. They are typically just LLMs using tools based on environmental feedback in a loop."
这句话其实是给整个演化史画了个句号:Agent 看似复杂,本质还是 LLM + 工具 + 循环。从 ReAct 到 Skills,所有演化都是在给这个最小循环加工程边界——状态、权限、停止条件、验证、记忆。
OpenAI Agents SDK 的设计演化
OpenAI 在 2024 年发布 Agents SDK 时,文档里有一句话值得注意:
"We learned from the Swarm experiment that lightweight primitives beat heavy abstractions."
翻译:从 Swarm 实验里学到,轻量原语胜过重抽象。这是对 LangChain 早期"工具过重"的反思,也解释了为什么 2024-2025 的新框架(OpenAI Agents SDK、Claude Agent SDK、Pydantic AI)都走"轻量原语"路线。
Lilian Weng 的 Agent 拆解
Lilian Weng 的博客(2023.6,OpenAI 前研究员)至今仍是 Agent 概念拆解最被引用的文章。她把 Agent 拆成四块:
- Planning:任务拆解 + 反思
- Memory:短期(context)+ 长期(向量库)
- Tool Use:Function Calling
- Action:执行环境
这个四块拆法和本教程的"四权模型"(控制 / 工具 / 状态 / 停止)是同一个问题的不同切面。Lilian 偏概念,本教程偏工程边界。
2.11 课后练习
- 把本教程第 0 章的"四权模型"对应到 AutoGPT 的五个失败原因,写出每一类权力缺失对应哪个失败。
- ReAct 论文为什么"只推理不行动"会幻觉?用一句话解释。
- 选一个 Coding Agent(Claude Code / Codex / Cursor / OpenHands 之一),分析它解决了 AutoGPT 哪几个问题,还有哪几个没解决。
- MCP 和 Skills 各自解决什么问题?为什么 MCP 出来以后 Skills 还是必要的?
- 画一张你自己项目的 Agent Loop 图,标出每一环对应演化史的哪个阶段。
2.12 小结
- 2022 ReAct:推理 + 行动交替,定义了 agent loop 的基本形态。
- 2023 AutoGPT:自主 agent 爆火,但缺验证 / 预算 / sandbox / checkpoint / 边界,成了反面教材。
- 2023-2024 Frameworks:LangGraph / AutoGen / CrewAI / LlamaIndex 系统化解决状态、多 agent、HITL。
- 2024 Coding Agent:Claude Code / Codex / Cursor / Devin / OpenHands 让 agent 第一次真能干活。
- 2024.11 MCP:工具连接标准化,N×M 降成 N+M。
- 2025 Skills:做事方法标准化,渐进式加载省 token。
- 2025+ Loop Engineering:把所有零件组装成可观察 / 可验证 / 可回退 / 可中断 / 可预算的可靠闭环。
演化史的核心命题始终没变:让 LLM 在受控边界内自主决策。每一代工具都在加边界,不是加自由。
下一章我们回到心智模型,把 "LLM + 工具 + 循环" 这个最小骨架拆开讲清楚——以及为什么它还不够,需要状态、观察、反思和停止边界。