第02章 LLM 时代的 Agent 革命 —— 2023-2026 爆发期
上一篇我们看到 Agent 的 70 年演变——从符号 AI 到深度学习。本章我们聚焦 2023-2026 年的爆发期:Agent 从游戏和实验室走向真实世界。
为什么是 LLM
2023 年初,ChatGPT 只能聊天。2025 年底,Claude Code 可以独立完成一个完整项目。这中间发生了什么?
LLM 与传统 RL Agent 的根本差异
| 维度 | LLM Agent | 传统 RL Agent |
|---|---|---|
| 训练数据 | 人类全部文本/代码 | 特定领域数据(Atari/Dota2) |
| 泛化能力 | ✅ 跨领域泛化 | ❌ 领域特化(只擅长某游戏) |
| 推理深度 | ✅ 多步推理、规划、反思 | ❌ 策略固定 |
| 知识广度 | ✅ 世界知识、编程知识 | ❌ 只有游戏规则 |
| 语言能力 | ✅ 理解/生成自然语言 | ❌ 只理解游戏状态 |
核心差异:传统 RL Agent(DQN、AlphaGo、AlphaStar)在特定领域数据上训练,学会的是特定领域的策略。LLM 在人类全部文本和代码上训练,学会的是推理本身——感知环境、理解目标、规划步骤、反思错误。
graph TB
subgraph 传统RL Agent
A1[Atari 像素] --> A2[DQN 模型]
A2 --> A3[游戏动作]
A3 --> A4[游戏分数]
A4 --> A1
style A1 fill:#FFE0E0
style A2 fill:#FFE0E0
end
subgraph LLM Agent
B1[代码库
文档
用户指令] --> B2[Claude/GPT 模型]
B2 --> B3[Read/Write/Edit
Bash/Browser]
B3 --> B4[文件系统
终端
网络]
B4 --> B1
style B1 fill:#E0FFE0
style B2 fill:#E0FFE0
endgraph TB
subgraph 传统RL Agent
A1[Atari 像素] --> A2[DQN 模型]
A2 --> A3[游戏动作]
A3 --> A4[游戏分数]
A4 --> A1
style A1 fill:#FFE0E0
style A2 fill:#FFE0E0
end
subgraph LLM Agent
B1[代码库
文档
用户指令] --> B2[Claude/GPT 模型]
B2 --> B3[Read/Write/Edit
Bash/Browser]
B3 --> B4[文件系统
终端
网络]
B4 --> B1
style B1 fill:#E0FFE0
style B2 fill:#E0FFE0
endgraph TB
subgraph 传统RL Agent
A1[Atari 像素] --> A2[DQN 模型]
A2 --> A3[游戏动作]
A3 --> A4[游戏分数]
A4 --> A1
style A1 fill:#FFE0E0
style A2 fill:#FFE0E0
end
subgraph LLM Agent
B1[代码库
文档
用户指令] --> B2[Claude/GPT 模型]
B2 --> B3[Read/Write/Edit
Bash/Browser]
B3 --> B4[文件系统
终端
网络]
B4 --> B1
style B1 fill:#E0FFE0
style B2 fill:#E0FFE0
endgraph TB
subgraph 传统RL Agent
A1[Atari 像素] --> A2[DQN 模型]
A2 --> A3[游戏动作]
A3 --> A4[游戏分数]
A4 --> A1
style A1 fill:#FFE0E0
style A2 fill:#FFE0E0
end
subgraph LLM Agent
B1[代码库<br/>文档<br/>用户指令] --> B2[Claude/GPT 模型]
B2 --> B3[Read/Write/Edit<br/>Bash/Browser]
B3 --> B4[文件系统<br/>终端<br/>网络]
B4 --> B1
style B1 fill:#E0FFE0
style B2 fill:#E0FFE0
endLLM 的推理能力来自何处
不是架构,是数据:
GPT/Claude 的推理能力不是来自 Transformer 架构本身,而是来自训练数据的规模和广度。在人类全部文本和代码上训练,模型学会了:
- 理解指令:解析用户意图,分解任务步骤
- 规划行动:确定需要读取哪些文件、执行哪些命令
- 反思错误:看到错误日志,推理原因,调整策略
- 泛化知识:将已知知识迁移到新领域
Agency 来自训练,不是编排:提示词链、节点图、工作流编排——它们无法创造 Agency。Agency 是模型在训练中学到的能力,外部代码只能提供 Harness(行动环境),无法创造智能。
Agent 产品爆发(2023-2026)
timeline
title LLM Agent 产品爆发期
2023 : AutoGPT / BabyAGI / LangChain
概念验证
2024 : Claude Code / Cursor / Windsurf
生产级编程 Agent
2025 : OpenClaw / OpenAI Codex CLI / Gemini Agent
个人助手 & CLI Agent
2026 : 多 Agent 团队 / 自主 Agent / Agent Teams
协作模式成熟timeline
title LLM Agent 产品爆发期
2023 : AutoGPT / BabyAGI / LangChain
概念验证
2024 : Claude Code / Cursor / Windsurf
生产级编程 Agent
2025 : OpenClaw / OpenAI Codex CLI / Gemini Agent
个人助手 & CLI Agent
2026 : 多 Agent 团队 / 自主 Agent / Agent Teams
协作模式成熟timeline
title LLM Agent 产品爆发期
2023 : AutoGPT / BabyAGI / LangChain
概念验证
2024 : Claude Code / Cursor / Windsurf
生产级编程 Agent
2025 : OpenClaw / OpenAI Codex CLI / Gemini Agent
个人助手 & CLI Agent
2026 : 多 Agent 团队 / 自主 Agent / Agent Teams
协作模式成熟timeline
title LLM Agent 产品爆发期
2023 : AutoGPT / BabyAGI / LangChain<br/>概念验证
2024 : Claude Code / Cursor / Windsurf<br/>生产级编程 Agent
2025 : OpenClaw / OpenAI Codex CLI / Gemini Agent<br/>个人助手 & CLI Agent
2026 : 多 Agent 团队 / 自主 Agent / Agent Teams<br/>协作模式成熟代表产品对比
| 产品 | 定位 | Harness 特点 | 适用场景 |
|---|---|---|---|
| Claude Code | 编程 Agent | Bash/Read/Write/Edit/Glob/Grep + Skills + MCP + Subagent | IDE 开发、代码重构、调试 |
| Cursor | IDE Agent | 代码补全 + 重构 + 调试 + 文件编辑 | VSCode 内嵌开发 |
| OpenClaw | 个人助手 Agent | 多渠道通信(25+ 平台)+ 自动化 + 知识管理 | 生活管理、日程协调 |
| Codex CLI | 命令行 Agent | Shell 执行 + 文件操作 + 网络请求 | 命令行自动化 |
| Windsurf | 编程 Agent | 多文件编辑 + 上下文管理 + 代码推理 | 大规模代码重构 |
Claude Code:Harness 工程的标杆
Claude Code 是我们所见过的最优雅、最完整的 agent harness 实现。
核心架构:
Claude Code = Agent Loop(心跳)
+ 工具系统(双手)
+ 按需 Skill 加载(知识库)
+ 上下文压缩(记忆管理)
+ 子 Agent 派发(团队协作)
+ 权限治理(安全边界)
+ MCP 扩展(外挂)graph TB
subgraph ClaudeCode["Claude Code Harness"]
subgraph L1["Loop 层"]
LOOP[Agent Loop
observe→think→act]
end
subgraph L2["工具层"]
T1[Bash]
T2[Read/Write/Edit]
T3[Glob/Grep]
T4[Browser/MCP]
end
subgraph L3["管理层"]
M1[权限判断]
M2[上下文压缩]
M3[任务系统]
M4[子Agent派发]
end
subgraph L4["扩展层"]
E1[Skills 按需加载]
E2[MCP 插件集成]
E3[Hooks 扩展点]
end
LOOP --> L2
L2 --> L3
L3 --> L4
end
Model[Claude 4.x
推理引擎] -->|调用| ClaudeCode
ClaudeCode -->|执行| Env[IDE/终端/文件系统]graph TB
subgraph ClaudeCode["Claude Code Harness"]
subgraph L1["Loop 层"]
LOOP[Agent Loop
observe→think→act]
end
subgraph L2["工具层"]
T1[Bash]
T2[Read/Write/Edit]
T3[Glob/Grep]
T4[Browser/MCP]
end
subgraph L3["管理层"]
M1[权限判断]
M2[上下文压缩]
M3[任务系统]
M4[子Agent派发]
end
subgraph L4["扩展层"]
E1[Skills 按需加载]
E2[MCP 插件集成]
E3[Hooks 扩展点]
end
LOOP --> L2
L2 --> L3
L3 --> L4
end
Model[Claude 4.x
推理引擎] -->|调用| ClaudeCode
ClaudeCode -->|执行| Env[IDE/终端/文件系统]graph TB
subgraph ClaudeCode["Claude Code Harness"]
subgraph L1["Loop 层"]
LOOP[Agent Loop
observe→think→act]
end
subgraph L2["工具层"]
T1[Bash]
T2[Read/Write/Edit]
T3[Glob/Grep]
T4[Browser/MCP]
end
subgraph L3["管理层"]
M1[权限判断]
M2[上下文压缩]
M3[任务系统]
M4[子Agent派发]
end
subgraph L4["扩展层"]
E1[Skills 按需加载]
E2[MCP 插件集成]
E3[Hooks 扩展点]
end
LOOP --> L2
L2 --> L3
L3 --> L4
end
Model[Claude 4.x
推理引擎] -->|调用| ClaudeCode
ClaudeCode -->|执行| Env[IDE/终端/文件系统]graph TB
subgraph ClaudeCode["Claude Code Harness"]
subgraph L1["Loop 层"]
LOOP[Agent Loop<br/>observe→think→act]
end
subgraph L2["工具层"]
T1[Bash]
T2[Read/Write/Edit]
T3[Glob/Grep]
T4[Browser/MCP]
end
subgraph L3["管理层"]
M1[权限判断]
M2[上下文压缩]
M3[任务系统]
M4[子Agent派发]
end
subgraph L4["扩展层"]
E1[Skills 按需加载]
E2[MCP 插件集成]
E3[Hooks 扩展点]
end
LOOP --> L2
L2 --> L3
L3 --> L4
end
Model[Claude 4.x<br/>推理引擎] -->|调用| ClaudeCode
ClaudeCode -->|执行| Env[IDE/终端/文件系统]为什么成功:Claude Code 没有试图成为 agent 本身。它没有强加僵化的工作流,没有用精心设计的决策树去替模型做判断。它给模型提供了工具、知识、上下文管理和权限边界——然后让开了。
提示词水管工陷阱
“Agent” 这个词已经被一整个提示词水管工产业劫持了。
假 Agent 的特征
| 维度 | 提示词水管工(假Agent) | 真 Agent |
|---|---|---|
| 核心架构 | if-else 分支 + 节点图 | Model + Agent Loop |
| 决策方式 | 硬编码路由逻辑 | 模型推理决策 |
| 泛化能力 | ❌ 无法泛化到新场景 | ✅ 跨领域泛化 |
| 适应性 | ❌ 每个分支需手工编码 | ✅ 自动适应新任务 |
| 可维护性 | ❌ 规则爆炸、脆弱 | ✅ 模型自动演化 |
flowchart TB
subgraph WaterPlumber["提示词水管工陷阱"]
W1[用户输入] --> W2{if-else 分支1}
W2 -->|条件A| W3[提示词模板1]
W2 -->|条件B| W4[提示词模板2]
W3 --> W5{if-else 分支2}
W4 --> W5
W5 -->|条件C| W6[LLM调用1]
W5 -->|条件D| W7[LLM调用2]
W6 --> W8[硬编码输出格式]
W7 --> W8
end
W9[❌ 规则爆炸
❌ 无法泛化
❌ 维护噩梦
❌ GOFAI还魂]
style WaterPlumber fill:#FFE0E0
style W9 fill:#FFE0E0flowchart TB
subgraph WaterPlumber["提示词水管工陷阱"]
W1[用户输入] --> W2{if-else 分支1}
W2 -->|条件A| W3[提示词模板1]
W2 -->|条件B| W4[提示词模板2]
W3 --> W5{if-else 分支2}
W4 --> W5
W5 -->|条件C| W6[LLM调用1]
W5 -->|条件D| W7[LLM调用2]
W6 --> W8[硬编码输出格式]
W7 --> W8
end
W9[❌ 规则爆炸
❌ 无法泛化
❌ 维护噩梦
❌ GOFAI还魂]
style WaterPlumber fill:#FFE0E0
style W9 fill:#FFE0E0flowchart TB
subgraph WaterPlumber["提示词水管工陷阱"]
W1[用户输入] --> W2{if-else 分支1}
W2 -->|条件A| W3[提示词模板1]
W2 -->|条件B| W4[提示词模板2]
W3 --> W5{if-else 分支2}
W4 --> W5
W5 -->|条件C| W6[LLM调用1]
W5 -->|条件D| W7[LLM调用2]
W6 --> W8[硬编码输出格式]
W7 --> W8
end
W9[❌ 规则爆炸
❌ 无法泛化
❌ 维护噩梦
❌ GOFAI还魂]
style WaterPlumber fill:#FFE0E0
style W9 fill:#FFE0E0flowchart TB
subgraph WaterPlumber["提示词水管工陷阱"]
W1[用户输入] --> W2{if-else 分支1}
W2 -->|条件A| W3[提示词模板1]
W2 -->|条件B| W4[提示词模板2]
W3 --> W5{if-else 分支2}
W4 --> W5
W5 -->|条件C| W6[LLM调用1]
W5 -->|条件D| W7[LLM调用2]
W6 --> W8[硬编码输出格式]
W7 --> W8
end
W9[❌ 规则爆炸<br/>❌ 无法泛化<br/>❌ 维护噩梦<br/>❌ GOFAI还魂]
style WaterPlumber fill:#FFE0E0
style W9 fill:#FFE0E0真相:它们是 GOFAI(Good Old-Fashioned AI)的现代还魂——几十年前就被学界抛弃的符号规则系统,现在喷了一层 LLM 的漆又登场了。
为什么会失败
无法创造 Agency:
Agency(感知、推理、行动的能力)是模型在训练中学到的,不是外部代码能创造的。提示词水管工试图通过堆叠过程式逻辑来暴力模拟智能——庞大的规则树、节点图、链式提示词瀑布流——然后祈祷足够多的胶水代码能涌现出自主行为。
不会的。你不可能通过工程手段编码出 agency。Agency 是学出来的,不是编出来的。
脆弱性:
每增加一个分支,复杂度就指数级增长。当用户需求超出预定义的分支——系统崩溃。当模型输出不符合预期格式——解析失败。当任务需要跨分支协作——手工编排失效。
真正的 Agent 工程
Agent 产品 = Model + Harness
graph LR
subgraph 公式["Agent 产品公式"]
M[Model
推理引擎
Claude/GPT] + H[Harness
能力边界
工具/权限/上下文]
end
M + H --> A[Agent
完整产品
感知/推理/行动]
style M fill:#E3F2FD
style H fill:#E8F5E9
style A fill:#FFF3E0graph LR
subgraph 公式["Agent 产品公式"]
M[Model
推理引擎
Claude/GPT] + H[Harness
能力边界
工具/权限/上下文]
end
M + H --> A[Agent
完整产品
感知/推理/行动]
style M fill:#E3F2FD
style H fill:#E8F5E9
style A fill:#FFF3E0graph LR
subgraph 公式["Agent 产品公式"]
M[Model
推理引擎
Claude/GPT] + H[Harness
能力边界
工具/权限/上下文]
end
M + H --> A[Agent
完整产品
感知/推理/行动]
style M fill:#E3F2FD
style H fill:#E8F5E9
style A fill:#FFF3E0graph LR
subgraph 公式["Agent 产品公式"]
M[Model<br/>推理引擎<br/>Claude/GPT] + H[Harness<br/>能力边界<br/>工具/权限/上下文]
end
M + H --> A[Agent<br/>完整产品<br/>感知/推理/行动]
style M fill:#E3F2FD
style H fill:#E8F5E9
style A fill:#FFF3E0Model 负责:
- 感知环境(理解代码库、解析错误日志)
- 推理决策(规划步骤、判断工具调用)
- 行动策略(决定读什么文件、执行什么命令)
Harness 负责:
- 提供工具(Bash、Read、Write、Edit、Browser)
- 管理权限(沙箱隔离、审批流程)
- 上下文管理(压缩历史、加载知识)
- 扩展能力(Skills、MCP、Hooks)
Harness 工程师的工作
你不是在编写智能。你是在构建智能栖居的世界。
| 工作 | 职责 | 对应 Harness 组件 |
|---|---|---|
| 实现工具 | 给 Agent 双手 | Tools(Bash/Read/Write) |
| 策划知识 | 给 Agent 领域专长 | Skills(按需加载) |
| 管理上下文 | 给 Agent 干净记忆 | Context Compression |
| 控制权限 | 给 Agent 安全边界 | Permissions(deny→ask→allow) |
| 收集任务数据 | 训练下一代模型 | Trajectory Logging |
启示:最好的 Agent 产品,出自那些明白自己的工作是 Harness 而非 Intelligence 的工程师之手。
本章小结
- LLM Agent 的核心:推理能力来自训练数据,不是架构或编排
- Agent 产品公式:Agent = Model + Harness
- 提示词水管工陷阱:假 Agent 无法泛化,是 GOFAI 的还魂
- Harness 工程师:构建 Agent 栖居的世界,不编写智能
- Claude Code:Harness 工程的标杆——信任模型、专注环境
预告:下一篇我们深入理解 Harness 这个概念——“模型是大脑,Harness是身体”。
相关内容
- 第01章 Agent 的 70 年简史 —— 从符号推理到深度学习
- 第03章 Harness 概念溯源 —— "模型是大脑,Harness是身体"
- 第04章 Harness 核心架构 —— 四层模型详解
- 第05章 Harness vs Agent vs Model —— 三者关系辨析
- 第06章 Claude Code Harness 架构剖析 —— 编程 Agent 的标杆实现
支付宝
微信