开发者 TheWariend 发布了开源的程序性记忆服务 MuscleMemory。它记录编程 agent 完成任务的过程,只从「最后一次代码改动之后有测试通过,且工具调用记录完整」的会话中学习技能,再把学到的做法以简短提示交给下一个遇到类似任务的 agent。项目采用 Apache-2.0 许可。以下性能数据均来自项目方自己的评测,文中称原始会话和复现脚本已随仓库公开。
项目方在研究文章中称,编程 agent 每次新会话都从零开始:要重新摸清哪些文件重要、测试怎么跑、哪些做法行不通,这些「重新摸索」会消耗 token、工具调用和时间。MuscleMemory 的做法是不重放旧会话,而是保存经过检查的技能。
项目把几条规则写在代码里,而不是交给模型判断:
召回环节默认不调用模型,延迟中位数为 13 毫秒;交给 agent 的技能指针最多约 350 token。
测试在 Codex CLI 0.160.0 上用 gpt-6-luna 进行,共 18 个真实会话:3 个修复任务各配成 3 对,分别在关闭记忆和使用 MuscleMemory 的条件下运行。技能由 gpt-5.5 事先学得,经两次独立会话检查后冻结。发布方自测结果如下:
9 对中有 8 对输入 token 更低,第一组 exports 配对多用了 2.2%。
另一轮早期测试使用 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。