Agent如何自我进化

0 阅读11分钟

Agent 自我改进的六条路


核心问题

当一个 AI Agent 完成任务之后,它能从这次经历中学到什么吗?下次遇到类似问题,它能做得更好吗?

自我进化回答同一个问题:怎么让 Agent 不重新训练,就能越来越强。


自我改进光谱

输出自审 → 持久记忆 → 进化搜索 → 对抗训练 → 自我修改 → 编排自优化
   ↓          ↓          ↓          ↓          ↓          ↓
 单次改进   跨session   搜索最优   对抗生成   改写自己    优化脚手架

一、输出自审(Reflection)

核心机制

最基础的自我改进方式:Agent 生成回答后不直接输出,先让另一个 Agent 审一遍。

技术上叫 Reflection,核心结构是一个双 Agent 循环:

┌─────────────┐      ┌─────────────┐
│  Generator  │ ───→ │   Critic    │
│  (干活Agent) │ ←─── │  (审查Agent) │
└─────────────┘      └─────────────┘
       ↑                    │
       └────────────────────┘
              循环直到通过

工作流程:

  1. Generator 接收用户输入,生成初始回答
  2. Critic 接收这个回答,判断有没有问题
  3. 有问题就把修改建议传回 Generator,Generator 据此重新生成
  4. 循环一直转,直到 Critic 没什么可改的了,返回空消息,循环终止

终止条件设计:Critic 不返回消息 = 通过(不需要额外评分阈值)

代表项目:LangGraph Reflection

LangChain 的 LangGraph Reflection 是这个模式的标准实现,核心就一行 API:

create_reflection_graph(assistant_graph, judge_graph)

代码生成场景应用: Critic 可以直接跑 Pytest 做静态类型检查,把错误作为 feedback 传回去。每一轮循环都有明确的、可验证的改进标准。

局限性

改进只发生在单次执行内。 下次对话开始,Agent 并不会记得上次犯过什么错。它能在当下把事情做好,但没有跨 session 的学习能力。

注:该项目今年 4 月已归档,模式已被合并进 LangGraph 核心。但 Reflection 作为基础模式,几乎被后面所有自我改进项目采用。


二、持久记忆(Persistent Memory)

核心机制

Reflection 解决了「当次做好」的问题。但「越用越好」需要另一种能力:跨 session 的记忆持久化

核心思路:把 Agent 的状态从「对话级」提升到「Agent 级」。对话可以结束,但 Agent 的知识不清零。

三种记忆路径

┌─────────────────────────────────────────────────────────────┐
│                      持久记忆实现路径                         │
├─────────────────┬─────────────────┬─────────────────────────┤
│   API 层持久化   │  动态工具生成    │       技能提炼          │
│   (Letta Code)  │  (Agent Zero)   │    (Hermes Agent)       │
└─────────────────┴─────────────────┴─────────────────────────┘

代表项目

1. Letta Code(2.1k Stars)

采用 API 层持久化

  • Agent 的记忆存在 Letta 后端服务中(云端或自部署 Docker)
  • 每次新对话自动加载之前积累的状态
  • /remember 显式写入记忆
  • /skill 把当前操作轨迹抽象成可复用的技能模块

关键架构决策:记忆绑定在 Agent 上,不绑定在 LLM 上

今天用 Claude,明天换 GPT,后天换 Gemini,记忆都在。同一团队做的 LettaBot 把这个思路延伸到多平台,一个 Agent 同时接 Telegram、Slack、Discord,所有渠道共享记忆。

2. Agent Zero(16.7k Stars)

走的是 动态工具生成 + 记忆 路线:

  • Agent 遇到没有现成工具的任务时,当场写代码创建新工具
  • 然后存入记忆,下次直接复用
  • 行为几乎全定义在可编辑的 prompt 文件中,没什么硬编码,小模型也能驱动
3. Hermes Agent(25.7k Stars)

目前机制最完整的方案,在记忆之上加了两层

第一层:自动技能提炼

  • 完成复杂任务后,Agent 自动把操作步骤抽象成 Skill 文档
  • 下次直接调用
  • Skill 在使用过程中会持续自我修正

第二层:定期回顾(Nudging)

  • 哪怕用户没发起对话,Agent 也会自己复盘经验
  • 主动存下重要知识
  • 解决问题:很多有用经验出现在对话中途,用户不会刻意保存,但 Agent 会

技术洞见

不改权重,改状态。 在 LLM 参数冻结的情况下,通过外部的持久化状态层来积累知识。


三、进化搜索(Evolutionary Search)

核心机制

记忆解决了「记住经验」。但如果 Agent 的 prompt 写法、工具配置、工作流拓扑本身就有优化空间呢?

这时候需要更系统的方法:用算法搜索更好的 Agent 配置

代表项目

1. EvoAgentX(2.7k Stars)

给一个自然语言目标,先自动生成多 Agent 工作流,然后用进化算法迭代优化。

同时优化三个层面:

优化维度技术方法说明
Prompt 文本TextGrad调整每个 Agent 的指令措辞
工作流拓扑AFlow搜索 Agent 间的连接方式
配置参数MIPRO优化工具选择和参数设定

三条线并行进化,每一代的最优个体保留,变异出新方案,再评估、再筛选。

实测效果:

  • HotPotQA F1 提升 7.44%
  • MATH 准确率提升 10%
  • GAIA 综合最高提升 20%
2. AgentEvolver(1.3k Stars,阿里巴巴)

把进化粒度做得更细,分三个阶段:

阶段一:自我提问(Self-Questioning)

  • Agent 自主探索环境,给自己生成训练任务
  • 不需要人工准备数据

阶段二:自我导航(Self-Navigating)

  • 用 ReMe 经验池管理模块
  • 把跨任务的成功经验存储起来,后续任务直接调用

阶段三:自我归因(Self-Attributing)

  • 用 ADCA-GRPO 算法做轨迹级别的因果信用分配
  • 传统 RL 给整条轨迹一个 reward
  • ADCA-GRPO 会分析每一步操作的因果贡献:第 3 步帮了多少忙,第 7 步拖了多少后腿

效果:

  • 7B 模型在 AppWorld 上从 1.8% 跳到 32.4%
  • 14B 达到 48.7%
  • 一个 7B 小模型经过自我进化,就能在特定任务上逼近数倍大的模型

四、对抗训练(Adversarial Training)

核心机制

进化搜索需要评估环境来打分。但如果连训练数据和评估基准都没有呢?

Agent0(1.1k Stars,北卡罗来纳大学 + Salesforce) 的方案叫 零数据自我进化,核心机制是双 Agent 对抗。

双 Agent 对抗进化

┌────────────────────┐                ┌────────────────────┐
│  Curriculum Agent  │ ← 竞争压力 ───→ │   Executor Agent   │
│     (出题 Agent)    │                │     (做题 Agent)    │
│   生成越来越难的任务  │                │   用工具集成推理解题  │
└────────────────────┘                └────────────────────┘
         ↓                                    ↓
    难度提升 ←────────────────────────── 能力提升

关键动力学:

  • Executor 变强后,简单题目没有训练价值了
  • Curriculum Agent 就被迫生成更难的任务
  • 更难的任务又倒逼 Executor 进化出更强能力

竞争本身就是训练信号。 整个过程不需要人工标注数据集,也不需要外部 reward model。

效果

  • 基于 Qwen3-8B-Base 的数学推理提升了 18%(达到 58.2 分)
  • 超过了需要人工标注的 R-Zero 和 Socratic-Zero
  • 通用推理提升 24%
  • 视觉版本 Agent0-VL 在开源视觉语言模型中排到了第一

零标注,胜过有标注。

这个结论背后的含义:也许精心策划的「对抗压力」比精心标注的数据集更能激发模型潜力。


五、自我修改(Self-Modification)

核心机制

前面四种方法有一个共同前提:改进机制本身是人设计的、固定的。Reflection 的循环逻辑是人写的,进化算法是人定义的,记忆结构是人搭的。

Meta 的 HyperAgents(2.1k Stars)打破了这个限制。

核心思路

让负责改进的 Agent,也能被改进。

用类比来说:

  • 以前的 AI 像一个厨师,可以按手册不断改进菜品
  • 但手册本身是固定的
  • HyperAgents 让厨师学会了改手册,而且改手册的方法本身也在不断进化

架构设计

┌─────────────────────────────────────────────────────────┐
│                     可编辑程序                           │
├─────────────────────────┬───────────────────────────────┤
│       Task Agent        │          Meta Agent           │
│        (干活)           │           (改进)              │
│                         │                               │
│   - 执行具体任务         │   - 修改 Task Agent 的代码     │
│   - 被改进的对象         │   - 修改自己的代码 ←── 关键!   │
└─────────────────────────┴───────────────────────────────┘

系统由 Task Agent(干活)和 Meta Agent(改进)两部分组成,统一写在一个可编辑程序中。

Meta Agent 不仅能改 Task Agent 的代码,还能改自己的代码。

改进的策略本身也在进化。改进改进方法的方法……也在进化。

惊人发现

实验中最让人印象深刻的现象:系统自己发明了持久化记忆和性能追踪机制。

没有人预设这些功能,Agent 自己判断需要它们,就写代码给自己加上了。

它记录的内容相当具体:

"Gen55 的准确率最高但太严格了,Gen64 改善了平衡性。需要结合 Gen55 的批判性推理和 Gen64 的平衡感。"

跨领域迁移

把在论文审稿和机器人任务上进化出的 HyperAgent,直接拿去做 IMO 数学评分(从没见过数学题):

方法迁移效果 (imp@50)
原版 DGM≈ 0
DGM-H (HyperAgents)0.630

原因分析:

  • DGM 学到的是领域特定技巧,换了领域就失效
  • DGM-H 学到的是通用的「如何改进」策略,比如持久化记忆、趋势分析,这些在新领域照样管用

对比 autoresearch

Karpathy 的 autoresearch(66.5k Stars)让 AI 在夜间自动跑 ML 训练实验。

autoresearch 和 HyperAgents 的区别:

项目autoresearchHyperAgents
AI 本身不变可以改进
进化内容实验结果进化过程本身
改进方法固定自我修改

autoresearch 中的 AI 能得到更好的实验结果,但不会改进「自己做实验的方法」。

HyperAgents 进化的不只是结果,还有进化过程本身


六、编排自优化(Harness Self-Optimization)

核心机制

前五种方法都在改 Agent 自身。但 Agent 的表现还取决于另一个东西:围绕它的编排层(Harness)

Harness 指的是模型之外的那一层编排逻辑:

  • prompt 结构
  • 检索策略
  • 工具调用顺序
  • 状态管理

同一个模型换一套 Harness,性能可能翻倍。

那……Harness 的设计本身能不能也自动化?

代表项目:Meta-Harness(629 Stars,斯坦福)

论文一作 Yoonho Lee 是切尔西·芬恩的博士生,另一位作者是 DSPy 的作者 Omar Khattab。

方案设计

用一个 Coding Agent(Claude Code + Opus 4.6)来迭代优化 Harness。

每一轮的工作流程:

┌─────────────────────────────────────────────────────────────┐
│                        迭代循环                              │
│                                                             │
│   ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    │
│   │  读取历史    │ →  │  提出新方案  │ →  │  跑评估     │    │
│   │  (文件系统)  │    │  (新 Harness)│    │  (测效果)   │    │
│   └─────────────┘    └─────────────┘    └─────────────┘    │
│          ↑                                     │            │
│          └─────────────────────────────────────┘            │
│                      结果写回文件系统                        │
└─────────────────────────────────────────────────────────────┘

Agent 读取文件系统中所有的历史记录(之前每一版 Harness 的源代码、评估分数、执行 trace),提出新的 Harness 方案,跑评估,把结果写回文件系统。

调试轨迹示例

论文附录里有一段让人拍案叫绝的调试轨迹:

  1. 第 1-2 轮:同时修了一个 bug 和改了 prompt 模板,性能大幅回退
  2. 第 3 轮:回去对比两个失败候选的改动记录,发现共同点是都改了 prompt 模板
  3. 混杂变量识别:把结构修复和 prompt 变更拆开,分别测试
  4. 第 7 轮:不再改任何现有逻辑,只在第一次 LLM 调用前加一个环境快照。这个候选成了全局最优

整个过程就是一个工程师的调试思路:尝试、失败、识别混杂因素、隔离变量、切换策略、组合已验证的修复。

关键设计选择

给 Agent 完整的文件系统访问权限,取代压缩摘要。

消融实验结果:

方案中位数准确率最高准确率
只给分数和摘要34%38.7%
给完整文件系统50%-

压缩不只是丢了边角细节,而是丢掉了做正确决策所需的关键线索。

效果

  • 文本分类上比人工最优方案 ACE 高 7.7 个百分点
  • Context 用量只有 ACE 的四分之一
  • TerminalBench-2 上拿到 76.4% 通过率,超过人工精调的方案
  • 在所有 Opus 4.6 Agent 中排名第二

核心洞见

Big Model 和 Big Harness,两层天花板,缺一不可。

┌─────────────────────────────────────────┐
│           模型天花板 (理论上限)           │
│  ┌─────────────────────────────────┐    │
│  │        Harness 天花板            │    │
│  │  ┌─────────────────────────┐    │    │
│  │  │    实际达到的性能        │    │    │
│  │  └─────────────────────────┘    │    │
│  └─────────────────────────────────┘    │
└─────────────────────────────────────────┘
  • 模型能力决定了理论上限
  • Harness 决定了实际达到的高度
  • Meta-Harness 做的事情,是把 Harness 这一层的天花板尽量往模型天花板靠近

Meta-Harness 和前面五种方法的区别:它改的是 Agent 周围的「脚手架」,并非 Agent 自身。

但效果是一样的,系统整体在自动变强。


总结对比

机制核心思路代表项目Stars
输出自审生成后审查,循环修正LangGraph Reflection173
持久记忆跨 session 积累知识和技能Letta Code · Agent Zero · Hermes Agent2.1k · 16.7k · 25.7k
进化搜索用算法优化 prompt、工具和工作流EvoAgentX · AgentEvolver2.7k · 1.3k
对抗训练双 Agent 竞争产生训练信号Agent01.1k
自我修改改写自己的代码和改进机制HyperAgents2.1k
编排自优化自动优化 Agent 的编排层Meta-Harness629

机制互补性

六种机制并非互斥:

  • Hermes Agent 同时用了反思、记忆和技能进化
  • AgentEvolver 同时做了自我提问(对抗生成的变体)和进化搜索
  • Meta-Harness 的内部循环本身也包含反思和进化

核心命题

AI 的学习,正在从训练阶段溢出到部署阶段。

过去十年,模型变强的唯一方式是改权重。

这些项目展示了另一种可能:权重冻结的情况下,通过外部记忆、行为搜索、对抗训练、代码自修改、编排自优化来持续积累能力。

如果说,训练是「上学」
那这些机制,就是毕业之后自学能力。

相关链接

项目链接
HyperAgents (Meta)github.com/facebookres…
Agent0github.com/aiming-lab/…
EvoAgentXgithub.com/EvoAgentX/E…
AgentEvolvergithub.com/modelscope/…
Agent Zerogithub.com/frdel/agent…
Letta Codegithub.com/letta-ai/le…
Hermes Agentgithub.com/NousResearc…
autoresearch (Karpathy)github.com/karpathy/au…
Meta-Harness (Stanford)github.com/stanford-ir…
LangGraph Reflectiongithub.com/langchain-a…