前言
很多开发者做 Agent 时。
第一反应是:
用户问题
↓
LLM
↓
答案
这种结构很简单。
但复杂任务很快就会失败。
例如:
分析项目结构。
读取数据库。
搜索文档。
修改代码。
生成报告。
这些任务涉及:
多个步骤。
多个工具。
多个依赖关系。
单次 Prompt 很难完成。
因此:
现代 Agent 越来越多采用:
Planner + Executor。
架构。
什么是 Planner?
Planner:
负责:
思考。
规划。
拆解任务。
它不直接执行。
例如:
用户:
帮我重构用户系统。
Planner 输出:
1. 阅读目录。
2. 找到 User Module。
3. 分析重复代码。
4. 制定重构方案。
5. 修改。
6. 测试。
7. 输出报告。
Planner 负责:
决定做什么。
什么是 Executor?
Executor:
负责:
执行。
调用工具。
真正完成任务。
例如:
读取:
src/user
调用:
Git。
调用:
文件系统。
修改代码。
运行测试。
Executor 不负责思考。
只负责执行。
为什么需要分离?
如果:
一个模型同时:
思考。
规划。
执行。
很容易:
上下文混乱。
任务遗漏。
循环调用。
因此:
职责分离非常重要。
类似软件架构
Planner:
类似:
Controller。
Executor:
类似:
Service。
工具:
类似:
Repository。
层次清晰。
可维护性更高。
单 Agent 的问题
很多系统:
User
↓
LLM
↓
Tool
↓
LLM
↓
Tool
容易出现:
无限循环。
重复调用。
浪费 Token。
Planner + Executor 能显著改善。
Planner 不一定需要大模型
复杂规划:
Claude。
GPT。
推理模型。
简单任务:
规则系统。
状态机。
都可以。
核心思想是:
先思考。
再执行。
Executor 应该尽量简单
不要让 Executor 再思考。
否则:
系统复杂度会爆炸。
推荐:
Executor:
只做:
- 调工具;
- 返回结果;
- 更新状态;
推理交给 Planner。
多 Agent 系统
未来:
可能:
Planner
↓
Code Agent
↓
Search Agent
↓
Memory Agent
↓
Report Agent
形成:
多 Agent 协作。
而不是:
单 Agent 万能。
为什么 LangGraph 流行?
因为:
LangGraph 天然支持:
状态机。
节点。
Planner。
Executor。
更适合复杂任务。
而不是:
无限循环 Agent。
推荐架构
User
↓
Planner
↓
Task List
↓
Executor
↓
Tool
↓
Result
↓
Planner
↓
Final Answer
形成闭环。
真正重要的不是模型
未来 Agent 的竞争。
越来越不像:
模型竞争。
更像:
系统架构竞争。
模型负责:
推理。
系统负责:
组织推理。
Planner + Executor。
很可能会成为未来 Agent Framework 的基础架构。
总结
大模型并不擅长同时:
规划。
执行。
记忆。
工具调用。
状态管理。
因此:
职责拆分。
比模型升级更重要。
未来优秀 Agent 的核心。
不是更大的 Prompt。
而是更好的 Architecture。
X记录空间