首页 > 教程资讯 > 教程详情

MuscleMemory 开源:只从测试通过的会话里学经验,供编程 agent 复用

AI 与前沿 编辑部小鹿 2026-10-27
文章分享

开发者 TheWariend 发布了开源的程序性记忆服务 MuscleMemory。它记录编程 agent 完成任务的过程,只从「最后一次代码改动之后有测试通过,且工具调用记录完整」的会话中学习技能,再把学到的做法以简短提示交给下一个遇到类似任务的 agent。项目采用 Apache-2.0 许可。以下性能数据均来自项目方自己的评测,文中称原始会话和复现脚本已随仓库公开。

它解决什么问题

项目方在研究文章中称,编程 agent 每次新会话都从零开始:要重新摸清哪些文件重要、测试怎么跑、哪些做法行不通,这些「重新摸索」会消耗 token、工具调用和时间。MuscleMemory 的做法是不重放旧会话,而是保存经过检查的技能。

怎么判断「学会了」和「可信」

项目把几条规则写在代码里,而不是交给模型判断:

  • 只从验证成功的会话学习:只有最后一次改动之后有测试通过,会话才算成功。
  • 需要独立检查:一个技能要有两次独立的后续检查通过,其来源会话不计入。
  • 人工把关:自动学到的技能还需用户批准,才会交给 agent。
  • 没有合适技能就不出声:没有技能达到门槛时,不会向会话添加任何内容。

召回环节默认不调用模型,延迟中位数为 13 毫秒;交给 agent 的技能指针最多约 350 token。

自测数据

Codex 上的对照测试

测试在 Codex CLI 0.160.0 上用 gpt-6-luna 进行,共 18 个真实会话:3 个修复任务各配成 3 对,分别在关闭记忆和使用 MuscleMemory 的条件下运行。技能由 gpt-5.5 事先学得,经两次独立会话检查后冻结。发布方自测结果如下:

  • 输入 token 从 981,734 降到 731,549,减少 25.5%。
  • 工具调用从 56 次降到 39 次,减少 30.4%。
  • 耗时从 278.1 秒降到 199.7 秒,减少 28.2%。
  • 两组任务均为 9/9 通过。

9 对中有 8 对输入 token 更低,第一组 exports 配对多用了 2.2%。

跨 agent 与 SWE-bench

另一轮早期测试使用 Claude Code 2.1.296 和 claude-sonnet-5-5,技能由 Codex 学到。4 对任务的输入 token 从 459,366 降到 259,436,减少 43.5%;工具调用从 30 次降到 21 次,减少 30.0%;耗时从 64.9 秒增加到 66.8 秒,增加 2.9%;4/4 通过。文中称这只是早期信号,不是基准测试。

在 SWE-bench Verified 的 Django 问题 16950 上重复 3 次,有无记忆都是 1/3 解决。使用记忆时输入 token 从 1,645,818 降到 815,216,减少 50.5%;工具调用从 60 次降到 28 次,减少 53.3%。文中说明,这一降幅部分来自一次记忆会话提前放弃,仅看已解决会话,token 少 27%,且样本很小。

评测的局限

作者在文中承认,评测没有覆盖全新类型的任务,也没有覆盖大型生产代码库。Codex 是通过订阅登录使用的,所以结果只报 token,不报实际计费成本。

怎么用

代码在 GitHub 的 TheWariend/MuscleMemory 仓库。按项目说明,使用方式如下:

  • musclememory init:初始化。
  • musclememory start:启动服务。
  • musclememory connect codex:连接 Codex,也可换成 claude 或 cursor。

相关下载

来源