你的 AI 助手终于能记住你是谁了
你有没有经历过这种崩溃时刻——
早上打开 Claude Code,跟它说"继续昨天的重构",它一脸茫然地回你:
"请提供更多上下文,你指的是哪个项目?"
你深吸一口气,开始复述:我们是一个电商后台,用的是 Next.js + Prisma,昨天在重构用户模块的权限校验逻辑,已经改了三个文件……
等你终于把这些"背景知识"喂完,半小时过去了。你还没开始干活。
然后第二天,同样的事情再来一遍。
这不是段子,这是很多开发者每天的真实处境。AI 编程助手很强,但它就像一个每天失忆的实习生——聪明是真聪明,记性也是真差。
今天聊一个项目,专治这个问题。
它叫 agentmemory,GitHub 上已经 18,800+ Star,口号就一句话:"你的编程 Agent 记住一切,无需重复解释。"
听起来很朴素对吧?但它解决的,可能是目前 AI 编程体验里最让人抓狂的一个痛点。
先说清楚:AI 为什么"记不住"?
很多人以为 AI 记不住是因为模型不够聪明。不是的。
真正的原因是:上下文窗口有限,而且每次会话都是独立的。
你跟 Claude 聊了一小时,关掉对话,下次开新的——对模型来说,你就是一个全新的陌生人。就算不关对话,聊久了前面的内容也会被"挤"出上下文窗口,等于白聊。
现在市面上有一些"记忆"方案,比如让 LLM 自己做摘要保存下来。问题是:摘要这东西,要么太粗丢了细节,要么太细占满 token。实测下来,一个会话光加载之前的"记忆"就要吃掉 22,000+ tokens,一年下来成本奔着 500 美元去了。
而且摘要的质量完全看 LLM 的"心情",它觉得不重要的信息可能恰恰是你最需要的。
agentmemory 的思路完全不同。它没有走"让 AI 自己总结"这条路,而是借鉴了人类记忆的运作方式,造了一套完整的记忆系统。
四层记忆,像人脑一样运作
agentmemory 最核心的设计,是它的四级记忆架构。这不是随便分的,而是参考了认知科学里的人类记忆模型:
第一层:工作记忆(Working Memory)
就是你当前正在做的事。比如"我正在重构 auth 模块的 middleware"。这层最短小,但最重要,因为它决定了 AI 当下该关注什么。
第二层:情景记忆(Episodic Memory)
记录具体发生了什么。比如"昨天下午 3 点,你在 src/auth/middleware.ts 里把 JWT 校验从同步改成了异步,因为加了 Redis 缓存查询"。有时间、有地点、有事件,就像你回忆"上周三中午吃了什么"一样。
第三层:语义记忆(Semantic Memory)
抽象出来的知识。比如"这个项目用的是 RBAC 权限模型,角色分 admin、editor、viewer 三档"。它不关心你是什么时候学到的,只关心这个事实本身。
第四层:程序性记忆(Procedural Memory)
"怎么做"的记忆。比如"跑测试用 pnpm test:e2e,部署用 vercel --prod,提交前要先跑 lint"。这些是你反复操作后形成的"肌肉记忆"。
这四层之间会自动流动和整合。工作记忆里的信息用完后,有价值的部分会被提炼成情景记忆;反复出现的模式会升格为语义记忆;重复的操作流程会沉淀为程序性记忆。
反过来,旧的、不再相关的信息会被自动清理掉。
这个设计很妙。因为它不是简单地"把所有对话存下来",而是像人脑一样,对信息做了分层、筛选和压缩。
混合检索:不只靠"语义相似"
光存下来还不够,关键是找得到。
很多记忆方案只用向量检索——把文本转成 embedding,算余弦相似度。这种方式对语义搜索很擅长,比如你问"权限相关的东西",它能找到"RBAC""角色校验"这些语义相近的内容。
但有个问题:当你精确搜索一个变量名、一个文件路径、一个错误码的时候,向量检索就不那么灵了。你搜 TypeError: Cannot read property 'id' of undefined,向量检索可能给你返回一堆"关于错误处理"的泛泛内容,而不是你真正想要的那个具体报错。
agentmemory 用了三路混合检索:
BM25(关键词匹配):擅长精确查找,变量名、路径、报错信息这类 向量检索(语义匹配):擅长模糊查找,"权限相关""部署配置"这类 知识图谱:擅长关系查找,"这个函数被哪些地方调用""这个配置影响哪些模块"
最后用 RRF(Reciprocal Rank Fusion) 把三路结果融合排序。
效果有多好?在 LongMemEval-S 基准测试上,agentmemory 的 R@5(前 5 条命中的召回率)达到了 95.2%,R@10 达到了 98.6%,MRR(平均倒数排名)达到了 88%。
翻译成人话就是:你问一个问题,它几乎总能把最相关的记忆排在前面给你。比纯 BM25 方案精度高了 2.2 倍。
零成本捕获:12 个 Hook,你什么都不用做
这一点我觉得特别关键。
很多记忆工具要求你手动标记"这条要记住",或者在对话结束时手动保存。说实话,没人会坚持这么做。用了两天就嫌烦,然后就弃了。
agentmemory 的做法是:完全自动。
它提供了 12 个 Hook,挂在你和 AI Agent 交互的各个关键节点上——工具调用、文件读写、命令执行、测试运行……你正常干活就行,它在后台默默记录。
你不需要改变任何使用习惯。
打开 Claude Code,写代码、跑测试、调试 bug,一切照常。agentmemory 就像一个不打扰的旁观者,把有价值的信息自动归档到对应的记忆层里。
下次你开一个新会话,它会自动把相关记忆注入上下文。你感受到的体验就是:这 AI 好像真的认识我了。
Token 和成本:这才是杀手锏
好了,功能是不错,但代价呢?
这是很多人关心的问题。毕竟"记忆"这个东西,如果每次都要往上下文里塞一大堆历史信息,那 token 成本会爆表。
agentmemory 在这一点上做得非常克制。实测下来,一个会话平均只消耗约 1,900 tokens 的记忆上下文。
对比一下:LLM 自带的记忆方案,或者用摘要方案,动辄 22,000+ tokens。
差了 10 倍多。
换算成钱:agentmemory 一年的 token 成本大约 $10。而 LLM 摘要方案呢?$500 一年。
50 倍的差距。
这还没算效率提升带来的隐性收益——你不再需要每天花 20 分钟给 AI "补课"了。
会自动遗忘的记忆,才是好记忆
只进不出的记忆系统是垃圾场。
agentmemory 有一套完整的自动遗忘机制:
TTL 过期:每条记忆都有生存时间,过期了自动清理 矛盾检测:如果新信息和旧信息冲突,系统会自动识别并更新,不会存两套互相矛盾的"知识" 重要性淘汰:长期不被检索命中的记忆,重要性分数会逐渐降低,最终被淘汰
这很像人脑的工作方式。你不会记得上周二午饭吃了什么(情景记忆过期),但你会记得你喜欢吃辣(语义记忆保留)。你会忘掉三年前用过的某个框架的 API 细节(程序性记忆衰退),但你会记得"写代码前先看文档"这个习惯(高重要性保留)。
会遗忘,才能记住真正重要的东西。
能用在哪些地方?
agentmemory 目前支持主流的编程 Agent:
Claude Code Cursor Gemini CLI Codex CLI Hermes
基本上你在用的主流工具,它都能接。
技术层面,这个项目本身也不小——118 个源文件,约 21,800 行代码,950+ 个测试用例。不是玩具项目,是认真在做的基础设施。
这件事的本质是什么?
说到底,agentmemory 解决的是一个信任和效率的问题。
当 AI 助手每次都像个陌生人一样需要你从头介绍自己,你会慢慢失去耐心,最后干脆不用了。这就像你有一个能力很强但每天失忆的同事,你宁可自己干也不想每天给他做 orientation。
而当 AI 助手真正"认识"你了——知道你的项目架构、你的代码风格、你的常用命令、你昨天做到哪了——协作效率会有质的飞跃。你终于可以把 AI 当成一个真正的搭档,而不仅仅是一个需要反复调试 prompt 的工具。
这是从"工具"到"伙伴"的关键一步。
怎么开始用?
agentmemory 是开源项目,GitHub 上搜 agentmemory 就能找到。
接入成本很低,基本就是装个依赖、改几行配置的事。而且因为它用 Hook 自动捕获,装完之后你甚至感觉不到它的存在——直到你发现 AI 突然"认识"你了。
18,800+ 个 Star 不是白来的。在这个"AI 记忆"赛道上,agentmemory 可能是目前工程化做得最完整、最务实的一个方案。
如果你每天都在跟 AI 编程助手打交道,强烈建议试试。省下来的时间和 token 费,远超你的想象。
去 GitHub 给它点个 Star,然后花 10 分钟接入试试。我赌你用了之后,再也回不去了。
觉得有用的话,转发给你身边每天都在给 AI"补课"的朋友吧。
夜雨聆风