
前几天跟一个朋友聊起 AI 编程助手的使用体验,他说了一句话让我印象深刻:
“Claude Code 写代码确实厉害,但每次新会话都要重新介绍项目,像个没有记忆的天才。聪明,但健忘。”
这句话让我思考了很久。
我们一直在追求更强的模型、更大的上下文窗口、更智能的 Agent。但忽略了一个最基础的问题:AI 助手为什么不能像人一样,把经验积累下来?
这个痛点其实一直都在。LLM 的上下文窗口再大,关掉终端就归零。你之前跟它讨论的架构决策、踩过的坑、约定好的代码规范——全部消失。
昨天我花了一晚上研究一个开源项目,发现有人已经在尝试解决这个问题了。
一个 3000 stars 的尝试
这个项目叫 agentmemory,作者是 rohitg00。它的思路很直接:
让 AI 编程助手在后台自动记录你的编码过程,下次会话时自动注入相关上下文。
听起来简单,做起来复杂。我用了两周,有几个感受想分享。
它怎么记住的?
agentmemory 通过钩子(hook)机制监听你的编码活动。12 个钩子,覆盖用户输入、工具调用、文件操作、错误信息。
所有这些内容会自动被捕获、去重、隐私过滤,然后压缩成结构化的记忆存储起来。
关键是自动。你不需要手动告诉它"记住这个",它自己在后台干活。
我第一次配置好之后,随手跑了一个项目,然后去查看器(localhost:3113)里看。它已经把我的项目结构、用到的技术栈、讨论过的问题全部整理好了。
那一刻的感觉有点奇妙:它终于记得我了。
不是那种"我把对话历史都存下来"的记得,而是真正理解了我在做什么、用了什么技术、遇到过什么问题。
检索准确率是个硬指标
记忆存进去只是第一步,能不能准确想起来才是关键。
agentmemory 用了三路混合检索。BM25(关键词匹配)、向量检索(语义相似度)、知识图谱(实体关系)。
三路结果用倒数排名融合(RRF)合并,在 LongMemEval-S 基准测试里达到 95.2% 的 R@5 准确率。
这个数字什么概念?单纯用 BM25 的方案是 86.2%,向量检索一般是 70-80%。三路融合提升了将近 10 个百分点。
实际用起来的感受:我搜索"数据库优化",它能准确召回两周前讨论过的 N+1 查询问题,而不是返回一堆不相关的内容。
这种感觉,像是它真的理解了我在找什么。
Token 消耗让我算了一笔账
这是最实用的部分。
假设你的 AI 编程助手每天工作 4 小时,一年下来:
本地嵌入用的是 all-MiniLM-L6-v2 模型,完全离线,不需要 API Key。
一年省下 490 美元,而且记忆是有结构的(不是一堆原始文本的堆砌),检索质量反而更高。
更重要的是:它不会改变你的工作流。你该写代码写代码,该调试调试,它在后台默默记录。
四级记忆巩固:向人类记忆学习
agentmemory 有个设计我特别喜欢:它参考了人类记忆的研究,把记忆分成四个层级。
工作记忆:工具调用的原始观测数据,类似短期记忆。
情景记忆:压缩后的会话摘要,记录发生了什么。
语义记忆:提取的通用事实、代码模式,记录我知道什么。
过程记忆:工作流、决策逻辑,记录怎么做。
同时还实现了记忆衰减机制(基于艾宾浩斯曲线):常用的记忆会强化,陈旧的记忆会自动清除,甚至能检测并解决互相矛盾的记忆。
这个设计比简单的"存所有对话历史"高明得多。人的记忆也不是什么都存的,有用的才留下来。
我看到这个功能的时候,想起自己小时候背单词:反复出现的单词会记得更牢,很久不用的单词会慢慢忘掉。agentmemory 在做同样的事情,只不过它是在帮 AI 助手管理记忆。
配置起来麻烦吗?
这是我之前最担心的地方。如果配置很复杂,还不如不用。
实际试下来,分三种情况:
Claude Code 用户:两行命令搞定。
/plugin marketplace add rohitg00/agentmemory/plugin install agentmemory它会自动注册钩子、技能、MCP 工具,不需要手动配置。
Cursor / Cline / Windsurf 用户:在 MCP 配置文件里加一段 JSON,重启客户端。
只想试试效果:运行官方 demo,30 秒就能看到记忆构建的过程。
npx @agentmemory/agentmemory # 终端 1:启动服务npx @agentmemory/agentmemory demo # 终端 2:运行示例打开 http://localhost:3113,你能实时看到记忆是怎么被捕获、压缩、索引的。
跟其他方案比怎么样?
我之前也试过一些"记忆"方案。
CLAUDE.md / CLAUDE.local.md:静态文件,需要手动维护。项目复杂了之后,这个文件会变得很长,而且每次都全量加载到上下文,很浪费 Token。
mem0:知名度更高(53k stars),但准确率只有 68.5%(LoCoMo 基准),而且需要手动调用 add() 才能保存记忆,不够自动化。
Letta(原 MemGPT):是一个完整的 Agent 运行时,记忆只是它的一部分功能。如果你不想绑定特定框架,agentmemory 更灵活。
一些局限
当然也有不完善的地方。
Windows 支持不够好:iii 引擎(agentmemory 的底层依赖)没有 Windows 专用安装脚本。Windows 用户需要手动下载二进制文件放到 PATH,或者开 Docker Desktop 用 Docker 模式运行。如果只需要 MCP 工具,可以绕过这个问题,直接用独立 MCP 模式。
知识图谱提取默认关闭:作者说这个功能还在优化,默认不开启。如果你需要用知识图谱,得手动改配置。
递归风险:有一个配置项允许调用 Claude Agent SDK,但默认关闭,因为可能引发 Stop 钩子递归。这个设计比较保守,但安全。
它背后的技术选型很有意思
稍微聊一点技术细节。
agentmemory 完全基于 iii 引擎实现,没有直接用传统的 Express + Postgres + Redis 技术栈。iii 引擎把 HTTP、KV 存储、WebSocket、进程管理、可观测性全部内置了。
所以 agentmemory 的部署极其简单:一行命令就能跑起来,不需要配置数据库、不需要装 Redis、不需要配监控。
它自带实时查看器(3113 端口),可以实时查看记忆写入、浏览会话历史、可视化知识图谱、监控健康状态,还能回放历史会话(可以拖拽时间线回看完整过程)。
最后一个功能我很喜欢。有时候我想起来"之前讨论过这个问题",但想不起具体结论,用回放功能就能找回来。
这种感觉,像是有了时光机。
值得长期关注的方向
我觉得 agentmemory 做的事情,指向了一个更大的问题:
AI 助手的记忆,不应该只是"存对话历史",而应该是结构化的、可检索的、能进化的。
人的记忆不是录像带,不会把所有细节都存下来。我们会遗忘,会强化重要的部分,会在回忆时重新组织信息。
agentmemory 做的四级记忆巩固、记忆衰减、矛盾检测,都是在往这个方向走。
目前它还是 v0.9.4,距离 1.0 还有一段路。但从 LongMemEval-S 的基准测试结果来看,它已经在检索准确率上做到了开源方案的标杆水平。
如果你也在用 AI 编程助手,而且受困于"它总是忘记我说过什么"——或许可以试试这个方案。
项目地址:https://github.com/rohitg00/agentmemory官方文档:https://agent-memory.dev
夜雨聆风