MemPro:当 Agent 记忆成为可进化程序
> 论文:MemPro: Agentic Memory Systems as Evolvable Programs > 作者:Qingshan Liu, Guoqing Wang, Wen Wu 等(华东师范大学 + 小红书) > arXiv:2606.00619 > 代码:https://github.com/wanghai673/MemPro
---
核心命题
现有 Agent 记忆系统的通病:记忆库在更新,但 pipeline 永远不变。
就像你的硬盘越来越大,但操作系统还是 Windows 95。MemPro 的洞察是——真正该进化的不只是记忆内容,而是整个记忆系统的代码本身。
---
一、问题:固定 Pipeline 的双重困境
当前 Agent 记忆系统遵循一个通用范式:
原始数据 → [记忆构建] → 记忆库 → [记忆检索] → 回答查询
这个 MCR(Memory Construction-Retrieval)Pipeline 在部署后通常保持固定,只有记忆库在增长。这带来两个问题:
1. 任务异构性困境
不同任务需要不同的记忆策略:
- 时序推理 → 需要追踪事件顺序、识别最新状态
- 跨会话推理 → 需要链接分散在多会话中的证据
- 偏好追踪 → 需要提取和更新用户偏好
2. 记忆-Pipeline 错位
随着记忆库规模和结构演化,固定的构建/检索逻辑可能不再匹配记忆库的组织方式。就像你换了数据库引擎但查询逻辑还是旧的——检索质量必然下降。
---
二、MemPro 的解法:MCR Pipeline 即程序
MemPro 把整个 MCR Pipeline 视为一个可进化的程序,而非固定架构。
版本树架构
v0 (初始 Pipeline)
/ \
v1 v2
/ \ / \
v3 v4 v5 v6
每个节点包含:
- 可运行的 Pipeline 实现(Prompt + 可执行代码)
- 评估日志(整体分数、分类分数、失败模式诊断)
进化循环:选择 → 扩展 → 评估
由 Evolving Agent(使用 Codex harness + GPT-5.4-medium)驱动:
#### Step 1: 选择(Selection) Evolving Agent 审视整棵版本树的所有评估日志,选择最有潜力的节点扩展。选择标准:
- 整体分数高
- 改进方向具有泛化性
- 存在明确的失败模式
扩展是迭代过程,每个内循环步选择三种动作之一:
| 动作 | 行为 |
|---|---|
| Edit | 根据诊断分析修改 Pipeline 代码/Prompt |
| Debug | 选一个失败样例执行,获取完整 trace,更新诊断分析 |
| Terminate | 扩展完成,生成新版本 |
#### Step 3: 评估(Evaluation) 新 Pipeline 在完整训练集上执行,Evolving Agent 总结执行 trace 生成评估日志,加入版本树。
---
三、MCR Pipeline 的形式化定义
记忆库构建
在时间步 $t$:
- 原始数据 $D_t$ 分割为结构化片段 $\mathcal{S}_t = \{s_i^t\}_{i=1}^{N_t}$
- Memory Agent $\mathcal{A}_{\text{mem}}$ 生成记忆更新:
- 记忆库更新:$\mathcal{M}_t = \text{Update}(\mathcal{M}_{t-1}, \Delta \mathcal{M}_t)$
记忆检索与使用
Research Agent $\mathcal{A}_{\text{res}}$ 迭代检索:
维护研究状态 $z_k$(已累积的关键信息),对于每次迭代 $k$:
1. 检索:生成检索请求 $r_k = \mathcal{A}_{\text{res}}(I_{\text{ret}}, q, z_{k-1})$
- 记忆库返回相关信息 $u_k = \text{Retrieve}(r_k, \mathcal{M})$
3. 反思:判断是否足够 $b_k = \mathcal{A}_{\text{res}}(I_{\text{ref}}, q, z_k) \in \{\text{Continue}, \text{Stop}\}$
4. 回答:当 $b_k = \text{Stop}$ 或达到最大步数 $K$,生成最终答案 $\hat{y} = \mathcal{A}_{\text{res}}(I_{\text{ans}}, q, z_k)$
---
四、实验结果:几次迭代即 SOTA
LongMemEval & LoCoMo(长期记忆基准)
使用 GPT-4o-mini 作为推理骨干:
| 方法 | LongMemEval Avg. | LoCoMo Avg. |
|---|---|---|
| Full Text | 56.89 | 73.83 |
| RAG | 60.90 | 63.64 |
| LightMem | 69.81 | 70.26 |
| GAM | 72.40 | 80.45 |
| GEPA (Prompt 进化) | 75.60 | 79.50 |
| MemPro-5 | 75.77 † | 81.94 † |
| MemPro-10 | 77.11 | 83.29 |
| MemPro-15 | 79.00 | 84.93 |
关键发现:
- 仅需 5 次进化迭代就达到 SOTA
- 继续进化到 15 轮仍有稳定提升(LongMemEval +3.23,LoCoMo +2.99)
HotpotQA & NarrativeQA(长上下文 QA)
MemPro 在知识密集型 QA 上同样有效,验证了记忆能力的迁移性。
Qwen3-30B-A3B 骨干
在开源模型上重复实验,MemPro 同样显著超越基线,证明方法不依赖闭源模型。
---
五、为什么 Prompt 级进化不够?
MemPro 与 GEPA、MetaMem 等 Prompt 级进化方法的核心区别:
| 维度 | Prompt 级进化 | MemPro (系统级进化) |
|---|---|---|
| 进化对象 | Prompt 文本 | Prompt + 可执行代码 |
| 能否改 Pipeline 逻辑 | ❌ 不能 | ✅ 可以 |
| 能否改记忆构建方式 | ❌ 不能 | ✅ 可以 |
| 能否改检索策略 | ❌ 不能 | ✅ 可以 |
---
六、设计洞察
1. 版本树 > 线性进化
版本树允许:
- 从强历史版本分支探索不同方向
- 避免一条道走到黑的局部最优
- 保留失败的尝试作为"反面教材"
2. 诊断驱动的编辑
不是随机变异,而是基于失败模式的定向改进:
- 先诊断"这个版本在什么类型的任务上失败"
- 再针对性地修改 Pipeline 逻辑
- 类似人类程序员的 Debug 流程
3. 训练集分割策略
MemPro 将评估数据集分为:
- 训练子集(10%):指导进化方向
- 测试集(90%):验证最终性能
---
七、局限与思考
1. 进化成本:每次迭代需要执行完整训练集评估,虽然 Debug 动作优化了内循环,但外循环仍有计算开销
2. Evolving Agent 的能力天花板:当前使用 GPT-5.4-medium 驱动进化,Agent 自身的代码理解和诊断能力限制了进化空间
3. 版本树爆炸:随着迭代增加,版本树可能变得庞大。论文未深入讨论版本树的剪枝或压缩策略
4. 与 EvoMap 的对比:EvoMap 是一个 A2A 协作网络(测量研究显示其 98% 资产未被重用),而 MemPro 是单 Agent 内部的记忆系统进化。两者在"进化"概念上有呼应,但解决的问题域不同
---
八、一句话总结
> MemPro 证明了:让 Agent 变聪明的不只是记住更多,而是让记忆系统本身学会进化。
把 Pipeline 当作代码来迭代——这个视角转换,可能是 Agent 记忆系统从"静态数据库"走向"自适应器官"的关键一步。
---
参考文献
- Liu, Q., Wang, G., Wu, W., et al. (2026). MemPro: Agentic Memory Systems as Evolvable Programs. arXiv:2606.00619.
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens