经验到底从哪里来?又如何变成能力?
这就是自进化 Agent 架构存在的意义。
很多人做 Agent 时只有:
用户
↓
LLM
↓
工具
结果就是:
任务做完
经验丢失
下次重新开始
永远不会成长。
真正的自进化 Agent 应该形成一个完整闭环。
1. 整体架构图
┌─────────────┐
│ User │
└──────┬──────┘
│
▼
┌─────────────┐
│ Planner │
└──────┬──────┘
│
▼
┌─────────────┐
│ Executor │
└──────┬──────┘
│
▼
┌─────────────┐
│ Observer │
└──────┬──────┘
│
▼
┌─────────────┐
│ Evaluator │
└──────┬──────┘
│
▼
┌─────────────┐
│ Reflector │
└──────┬──────┘
│
▼
┌─────────────┐
│ Memory │
└──────┬──────┘
│
▼
┌─────────────┐
│ Policy │
└─────────────┘
这 7 个模块构成整个自进化系统。
2. Planner(任务规划器)
Planner 的职责:
理解目标
拆解步骤
决定执行顺序
选择工具
例如:
用户:
帮我分析这个 GitHub 项目
Planner 不应该直接开始执行。
而是先拆解:
步骤1:读取 README
步骤2:分析目录结构
步骤3:识别技术栈
步骤4:检查架构设计
步骤5:生成分析报告
输出:
{
"goal":"分析项目",
"steps":[
"读取README",
"分析目录",
"识别技术栈",
"架构评估",
"输出报告"
]
}
Planner 相当于 Agent 的大脑。
3. Executor(执行器)
Executor 负责真正干活。
例如:
读取文件
运行命令
调用浏览器
访问 API
修改代码
举例:
Planner:
读取 README
Executor:
tool.read_file("README.md")
Planner:
搜索官方文档
Executor:
tool.search()
Planner:
运行测试
Executor:
tool.shell("npm test")
职责非常单一:
只执行
不思考
4. Observer(观察器)
这是很多 Agent 缺失的一层。
作用:
记录 Agent 的全部行为。
例如:
什么时候执行
调用什么工具
输入是什么
输出是什么
是否报错
耗时多少
任务日志:
{
"step":"读取README",
"tool":"read_file",
"input":"README.md",
"output":"项目介绍",
"duration":"300ms",
"status":"success"
}
又比如:
{
"step":"运行测试",
"tool":"shell",
"command":"npm test",
"error":"Module not found",
"status":"failed"
}
没有 Observer:
Agent 什么都记不住
有 Observer:
Agent 可以回放整个过程
这是后面反思的基础。
5. Evaluator(评估器)
评估器回答一个问题:
这次任务做得怎么样?
例如:
成功?
成功
失败
部分成功
质量?
80分
90分
95分
用户满意?
满意
一般
不满意
例如:
用户:
帮我写公众号文章
生成后:
阅读性:92
结构:95
情绪张力:60
标题吸引力:70
Evaluator 输出:
{
"score":79,
"issues":[
"标题吸引力不足",
"情绪冲击力偏弱"
]
}
6. Reflector(反思器)
这是整个系统最核心的部分。
作用:
从经验中学习。
例如:
任务失败:
网页打不开
Reflector:
失败原因:
目标网站存在反爬机制
解决方案:
优先使用 Browser Agent
不要直接 HTTP 请求
再例如:
用户反馈:
文章太像 AI 写的
Reflector:
经验:
该用户偏好:
- 口语化
- 强钩子
- 多案例
- 少总结
输出:
{
"lesson":"该用户不喜欢官方风格",
"future_action":"以后采用公众号爆文风格"
}
7. Memory(长期记忆)
Reflector 产生经验。
Memory 负责保存经验。
例如:
用户偏好
工具经验
项目上下文
成功案例
失败案例
存储后:
以后都能检索
例如:
用户:
帮我设计 UI
Memory:
该用户偏好:
- 极简风
- 不喜欢复杂布局
- 不喜欢蓝色绿色
下次自动注入。
8. Policy(策略层)
Policy 是最高层。
负责管理:
工作流
规则
Prompt
工具优先级
例如:
策略更新前:
搜索
↓
生成答案
策略更新后:
搜索
↓
交叉验证
↓
生成答案
又例如:
以前:
优先使用 Bing
后来发现:
Tavily 更准确
Policy:
搜索优先级:
1 Tavily
2 Exa
3 Bing
这就完成了一次进化。
9. 为什么必须拆成 7 个模块?
因为职责不同。
如果全部塞进一个 Prompt:
规划
执行
记录
评估
反思
记忆
策略
最后会变成:
巨型 Prompt
无法维护
无法测试
无法升级
而拆分后:
Planner
Executor
Observer
Evaluator
Reflector
Memory
Policy
每个模块都可以独立升级。
本章总结
一个真正的自进化 Agent,本质上不是一个模型,而是一条学习流水线:
用户任务
↓
Planner
↓
Executor
↓
Observer
↓
Evaluator
↓
Reflector
↓
Memory
↓
Policy
↓
下一次任务
这条链路形成之后,Agent 才开始拥有持续成长的能力。
本章验收标准
读完本章后,读者应该能说清楚:
Planner、Executor、Observer、Evaluator、Reflector、Memory、Policy 各自负责什么
为什么自进化 Agent 需要闭环
经验如何从任务过程转化为下一次行为
关键设计决策
本章采用 7 模块架构:
规划、执行、观察、评估、反思、记忆、策略分离
每个模块独立演进
不要把所有能力塞进一个巨型 Prompt