为什么我需要给 Claude 装上“长期记忆”
做 AI 辅助开发时间长了,你一定遇到过这种场景:上午还在终端里和 Claude 聊一个模块的接口设计,聊到一半去开周会,下午回来继续时,它完全不记得上午的结论。上个月排查过一个诡异的内存泄漏问题,当时把堆栈分析、修复思路都梳理得明明白白,这个月同样的问题换个马甲出现,我又得花一个下午重新把背景讲给它听。用 Claude 写了一个多月的项目代码,按理说它应该足够了解这个项目的架构风格了,结果新开一个会话,它连项目用了什么状态管理库都要重新确认一遍。
这就是上下文窗口的物理限制——Claude 再聪明,它的记忆也只停留在当前会话里。会话一关,什么都清零。对大模型来说,这算是一种“金鱼记忆”设计,但对真正拿它干活的人来说,这是一笔巨大的时间成本。每一次新会话都意味着重新建立上下文,等于你每次都要给一个资深工程师重新做项目背调,然后他才能开始写代码。
我在实际使用中做过一个粗略统计:在持续开发同一个项目的情况下,新会话前 20 分钟左右的对话,有相当大一部分是在“补背景”。聊接口设计,要先贴一遍现有代码结构;聊 bug 修复,要先描述一遍复现路径和日志。这些信息其实完全可以在会话之间被复用。
这就需要一个工具来做一件事:把 Claude 的有价值信息结构化地存下来,在需要的时候自动加载回上下文。这个工具圈子里一般叫它claude-mem——看名字就知道,Memory 记忆。它不是要给 Claude 装上更大的上下文窗口,而是给项目和工作流加一层“外挂记忆系统”,让 Claude 在不同会话之间拥有连续的记忆能力。
我断断续续用了这类方案挺长一段时间,从最早的手动维护笔记文件,到后来的自动记忆工具,再到现在完整接入工作流,走了一圈下来,有些经验和教训值得好好整理一下。这篇内容适合谁看?如果你主要是在终端里用 Claude 写代码、做重构、排查问题,或者用 API 在项目里集成 Agent 能力,对“每次都要重复交代背景”感到厌烦,那这套思路应该能直接帮到你。就算你只是好奇大模型应用怎么做持久化记忆,这里面的一些设计取舍也值得参考。
1. 这个工具到底解决什么问题:会话记忆困境的拆解
先从一个基本事实说起:当前主流大模型的基本架构决定了,每一次推理,模型只能看到你“放进”上下文窗口里的内容。这个窗口再大也是有限的,而且更关键的是,它是瞬时的。
我们拿人来做类比。一个优秀的工程师大脑里有三类记忆:第一类是正在处理的这个任务细节,相当于上下文窗口;第二类是最近一周在这个项目里的工作记忆,比如上午刚定的接口规范、昨天发现的边缘 case、上线前要改掉的 TODO;第三类是长期经验,比如对这个技术栈的理解、踩过类似的坑的教训。Claude 目前只有第一类记忆,它的“工作记忆”和“长期经验”都依赖于每次会话时你重新投喂的内容。
claude-mem这个方向想做的事情,就是把第二类和第三类记忆“补”给 Claude。怎么补?基本思路是:
- 把每次会话中产生的有价值信息捕捉下来,比如问题定位过程、方案决策理由、编码约定、项目结构变化
- 以一种结构化的形式存储,方便后续快速召回
- 在下次会话启动时,把与当前任务相关的历史记忆自动注入到上下文里
这样一层“记忆管理层”,本质上就是给大模型加了一个外置的、持久的、可检索的上下文补充模块。
我在实际用下来,感受最深的收益场景有以下几种。
场景一:长周期项目的连续性维护。一个项目做三个月,中间会经历无数轮的接口调整、依赖升级、代码重构。如果你每次都需要靠重新读代码来恢复背景,那 Claude 的辅助价值会大打折扣。接入记忆工具后,会话开头我会先让它加载项目记忆,它自己能很快回到“我已经跟着这个项目走了很久”的状态,聊问题的效率完全不一样。
场景二:跨会话的方案一致性。比如这个项目约定 API 错误码统一用字符串而非数字、错误响应格式必须是{code, message, details}的结构。这种约定如果每次都要重新讲解,任何一个会话漏掉了,它就可能在一个新接口里给你返回数字错误码。记忆工具会把这类约束自动加载进来,大幅减少这类“不一致”。
场景三:踩坑经验的复用。我在做某个项目时,遇到过数据库连接池在测试环境容易耗尽的问题,当时的排查思路、最终配置参数、定位工具都完整记录在会话里。后来生产环境出现了相似的症状,新会话直接基于记忆里的经验给出了非常接近正确方向的判断,节省了大量初期排查时间。
但这里也要泼一盆冷水:记忆工具不是万能的。它解决的是“信息可复用”的问题,而不是“信息正确”的问题。如果第一次聊的时候结论就是错的,那这个错误会被复用到后续会话里。所以记忆内容的质量管理,比记忆功能本身更值得花心思。这一点后面在调优部分我会展开讲。
2. 核心技术方案拆解:claude-mem是怎么实现记忆的
这个工具的原理并不玄乎,拆开来看,核心就是四个模块:捕获、存储、检索、注入。但每个模块都有一些设计上的取舍值得详细说。
2.1 捕获:什么样的信息值得被记住
大多数会话记忆工具的第一个问题不是“怎么存”,而是“存什么”。对话里 90% 以上的内容是过程性的:用户问我一个问题,我给一个中间方案,用户说不行,我再调整。如果把这些全都存下来,只会带来两个结果:检索时噪声太大,以及上下文被无关内容污染。
我在实际使用中养成的习惯是:只让工具捕获四类信息。
第一类是决策记录。比如“确定使用 xx 方案,因为考虑到团队已有技术栈和部署复杂度”,这类信息是后续对话中最有复用价值的。第二类是代码约定。比如项目里约定变量命名风格、错误处理模式、目录结构规则,这些是保持 Claude 输出一致性的关键。第三类是问题-解决方案对。比如“xx 报错是因为缺少依赖,可以通过安装 xx 解决”,以后遇到相似报错,直接就能命中。第四类是项目状态快照。比如“当前已完成模块 A 的开发,模块 B 正在进行中,模块 C 尚未开始”,这能让 Claude 清楚自己在整个项目里的位置。
捕获的实现方式通常有两种。一种是在对话流中设置过滤器,通过规则和模型判断来筛选信息。另一种是用“记忆点”机制——比如在对话过程中,用特定的标记语法(如[记忆]前缀)主动标记一条内容为需要记忆的信息。我后期比较推荐主动标记模式,它比全自动捕获更可控,能有效避免存储一堆无效信息。
2.2 存储:记忆文件组织与信息密度
存储结构的选择直接决定了后续检索效果。我调研过几个同类工具,普遍会采用“分层记忆”的思路,简单说就是记忆分短时记忆和长时记忆两类组织。
短时记忆对应的是“当前项目当前阶段的状态”,比如正在改哪个模块、这次会话的目标是什么、最近发现的新问题。这类信息更新频率高,替换也快。长时记忆对应的是“跨项目的个人经验”或“稳定不变的项目约束”,比如常用的代码风格、性能优化原则、对某个不常用库的经验总结。这两类需要分开存储,因为它们的生命周期和复用频率完全不同。
具体到存储格式上,纯文本比复杂结构化更适合这种场景。现在多数进阶用户会选择 Markdown 文件或轻量化的 JSON 组织。Markdown 的可读性最好,也方便直接在编辑器里手动审查和修改。JSON 则利于程序化操作。我个人的建议是:记忆文件的组织目录按项目维度划分,每个项目下面再按记忆类型分文件。这样在检索时可以先圈定项目范围,再去找具体条目,精度高很多。
2.3 检索:怎么在合适的时候把记忆找出来
存储做好了,检索就是核心难点。关键词匹配的方式在工程上最简单,但效果往往一般,因为对话中的用词和之前记录用词不一定一致。更好的方式是向量检索,它会把文本转成向量,在语义层面计算相似度。这个方案目前很多主流的记忆工具都在采用,比如通过本地嵌入模型把记忆内容文本向量化,再根据当前对话上下文计算相似度,召回最相关的记忆片段。
如果在本地跑检索,需要考虑资源占用。对大多数个人开发者来说,使用本地嵌入模型是一个不错的选择,隐私可控而且不需要网络。至于向量化模型选型,现在有蛮多轻量选择,日常检索场景的精度够用了。
检索还有一个维度是时机。经验上,我会在会话开始和关键话题转换时各做一次检索。会话开始时,检索项目级记忆,解决“我在哪、项目是什么状态”的问题。关键话题转换时,检索主题级记忆,解决“现在聊到这个问题,以前有没有相关经验可以参考”的问题。
2.4 注入:如何优雅地把记忆送进上下文
记忆找到了,还要考虑怎么放进上下文。这里有一个容易被忽略的坑:直接把一大堆原文塞进上下文,会占用宝贵的 token 额度,而且容易被无关记忆的权重影响,把 Claude 的思路带偏。
我的做法是先用 Claude 对检索到的记忆做一次“摘要重写”,再注入上下文。重写过程会去掉时效性已经过期的信息、提炼关键约束和结论、压缩成精简的“记忆提示语”。实践证明,这种方式比直接注入原始记忆文本要高效得多。
注入的位置也有讲究。会话开始时的注入,适合放进 system prompt 或者会话第一轮消息里。构建检索结果时,要把记忆内容单独划一个区块,与用户本次的实际输入明确区分,让 Claude 明确知道哪些是历史记忆、哪些是当前请求。
这里有一个千万注意的坑:记忆注入后不是一成不变的。如果后续对话里的新信息与记忆冲突,Claude 应该以新信息为准。所以我在设定系统提示时会明确约定“记忆仅供参考,如果对话中出现了与记忆相矛盾的事实,以对话内容为准”。这个设计能避免记忆工具变成一种“信息癌”——旧的信息始终干扰新的判断。
3. 实操接入:从安装到日常使用的完整流程
理论部分说完了,进入实操环节。下面我以claude-mem这类工具接入 Claude Code(Anthropic 官方的终端编程工具)为例,讲一下完整的接入过程。这个过程我前前后后搞过几次,有不少值得记录的细节。
3.1 环境准备与工具安装
首先确认你的环境满足基本条件:
- Python 3.10 以上(部分实现是基于 Python 生态包的)
- Node.js 18 以上(Claude Code 本身基于 Node 生态)
- 安装了 Claude Code 并已登录,终端能正常调用
- 机器上已有 git,方便后续版本化管理记忆文件
安装claude-mem的过程很简单,本质上它作为一个标准工具包,通过对应语言环境进行安装。我实际操作时的命令像下面这样(具体以对应工具仓库说明为准):
pip install claude-mem但不要急着跑,装完之后更重要的是让它“认识”你的工作区。按照惯例,每个项目第一次使用前要初始化:
claude-mem init --project my-awesome-project这一步会在项目根目录下创建一个.claude-mem文件夹,里面放着配置文件、记忆库和日志目录。正常情况下,这个文件夹不应该被提交到 git,但记忆库本身我建议单独用 git 管理,因为记忆内容迭代出错时,方便回滚。
3.2 MCP 配置:让 Claude Code 认出记忆服务
claude-mem接入 Claude Code 的方式是 MCP(Model Context Protocol,模型上下文协议)。简单解释一下,MCP 是 Anthropic 推出的一个标准化协议,它定义了 AI 应用如何通过统一接口获取工具、数据和上下文。有了 MCP,Claude Code 就能像一个“客户端”一样连接各类外部工具,claude-mem就是其中一个服务端。
在 Claude Code 中启用 MCP 有两种方式:全局配置和项目级配置。我个人推荐项目级配置,因为不同项目的记忆应该严格隔离,用一个全局记忆库反而会造成交叉污染。
项目级配置需要在项目根目录下创建一个.mcp.json文件,内容大概长这样:
{ "mcpServers": { "claude-mem": { "command": "claude-mem", "args": ["mcp"], "env": { "MEMORY_STORAGE": "local", "MEMORY_PATH": ".claude-mem" } } } }配置好后重启 Claude Code,输入/status或者在对话里问一句“你能看到哪些工具”,如果配置正确,应该能看到claude-mem相关的工具列表。
这一步看起来简单,但实际上容易踩坑。常见情况就是命令路径的问题。如果你用 Python 包管理器管理安装的包,可执行文件的路径可能会跑到一个 Python 环境目录里。解决办法是用包管理器的独立环境。建议先更新路径配置,然后重启验证,再做后续工作。
3.3 日常使用:记忆的自动化与手动干预
接入成功后,日常使用体验基本是无感的。Claude 会话进行中,相关记忆会被自动写入;新会话开始时,相关记忆会被自动加载。
但“无感”并不代表完全不需要维护。我实际用下来的经验是,每周花十几分钟看一下记忆内容,做做整理,效果远好于完全放手。具体做法是:
- 检查是否有会议中产生的新决策没有被记录
- 修正记忆中过时或错误的信息
- 清理掉一些长度不再重要的琐碎信息,比如临时排查记录
这里我强烈建议为记忆文件建立一个单独的 git 仓库,每次 Claude 会话结束自动提交。这样一旦某次会话产生了大量错误记忆污染了记忆库,你可以直接回滚到上一个干净版本。这个习惯救过我很多次,尤其是在实验性质的会话里。
4. 配置细节与参数调优:让记忆更精准
工具能跑通是一回事,跑得好是另一回事。这一节我把调优经验总结成几个可落地的配置项,按重要程度排个序。
4.1 记忆粒度控制
最核心的参数是记忆粒度。默认情况下,很多工具会把审讯式对话里的每个问题都作为记忆候选,但这么做会很快把记忆库撑爆。我推荐配置summary.threshold来控制记忆密度,可以按会话长度设定,也可以按对话轮数设定。低于阈值时工具只保留摘要,高于阈值时才保留细节。比如对话超过 20 轮,工具会自动生成一轮会话摘要,同时把重要的细节记忆单独挂到项目记忆库中。
具体数值要看你的会话特点,但有一个经验参考:跑小任务为主的工作流,阈值可以低一些;跑大型重构任务的工作流,阈值调高一些,避免频繁触发太多次摘要写入。
4.2 记忆检索的相似度阈值
检索精度直接决定了会不会出现“答非所问”的干扰。相似度阈值调太低,回会召回大量不相关的记忆;调太高,又会漏掉有用的记忆。我推荐控制在 0.65 到 0.75 之间,自己根据项目聊的特点微调。一般场景下这个区间不会出现太多噪声,也比较稳妥。
另外,多数工具支持设置一个“最小记忆长度”过滤。那些太短的、没有信息量的记忆(比如“用户说好的”),可以直接不进入检索候选。我一般会过滤掉字符数少于 30 的记忆条目。
4.3 混合检索策略:关键词 + 向量
纯向量检索在中英文混用的代码对话场景里有一个恼人的问题:代码符号(变量名、函数名、错误信息)的语义向量化效果并不好。比如AttributeError: 'NoneType' object has no attribute 'strip'这段报错,你向量化后和之前的某次记录对比,语义相似度可能很低,但实际上它们就是同一个问题的两种表现。
所以纯向量方案我会配合关键词检索一起用。关键词模式用于捕捉精确的字符串匹配(如报错信息、函数名,直接用error_code等字段查索引),向量模式用于语义层面的泛化匹配。这种混合检索是目前体验最好的策略。
实现上,一种可行方案是从每条会话记录中抽取摘要、标签、关键字、问题分类等字段,先做一次粗筛,然后对粗筛结果做向量相似度排序,最终取 Top K 条注入上下文。我试过跳过粗筛直接做全量向量检索,效果要差一些。
4.4 自动摘要与关键信息提取的调参
自动摘要能力决定记忆库的信息密度。默认的摘要可能会过长,我一般会设置一个预期的摘要长度目标,比如 150 到 300 字。过长的话会让 Claude 在事后总结时写得很啰嗦,过短的话往往会丢失关键细节。
进一步的,要让摘要更贴合你的使用习惯,可以在系统提示里补充“摘要偏好”。比如我做过一个项目,某些代码改动频繁涉及内部类名,那么我会在摘要偏好里写上“注意保留具体的类名和函数名”。不设置的话,摘要往往会写成“完成了订单模块的重构”,但忘了记录具体重构后的类名,后面检索时就没法精确定位了。
这里有一个很容易忽略的坑:摘要生成本身就是一次 LLM 调用,也需要耗 token。项目会话一多,这笔 token 成本会累积。如果想控制成本,可以把摘要生成的模型换成便宜一点的模型,或者仅在长会话结束时触发摘要生成。
4.5 多项目隔离还是全局统一
前期我犯过一个错误:觉得“全局记忆”更方便,所有项目共享一套记忆。后来发现,跨项目记忆共享带来的噪声极大。A 项目的接口约定被检索到 B 项目的会话里,Claude 会一本正经地按 A 项目的约定来写 B 项目的代码,非常坑。
所以我最终采用的是项目级隔离,全局只保留一些真正通用的编码偏好、环境配置经验和学习笔记。小项目拆得越细,记忆越准。
4.6 会话总结的持续分析
到后期我还会让工具基于一组会话的记录做“持续记忆分析”,生成一份更高层级的总结,比如角色画像(编码风格偏好、常用工具、Vim 还是 VS Code)、常用命令路径、对某个工具的印象等。这份高层级记忆不需要频繁修改,但对稳定输出非常有帮助,相当于让 Claude 在“了解合作者”的层面跟你对齐。
5. 常见问题与排查技巧实录
写到这里,把我自己实际用这类记忆工具过程中遇到的坑做一次集中整理。这些问题在官方文档里不太容易找到现成的答案,多半是要自己踩过一遍才明白。
5.1 记忆工具不生效,工具列表为空
最经典的问题。装好后 Claude Code 里看不到claude-mem的任何工具,或者调用时直接报错。第一步先检查 MCP 配置路径是否正确,方法是在终端里手动运行命令,看能不能正常启动。如果手动跑也没反应,大概率是安装环境与 Claude Code 的运行环境不一致。
还有一个隐蔽原因:配置文件放在项目根目录下,但 Claude Code 不在那个项目目录里启动,导致项目级配置根本没有被加载。这时候把.mcp.json放到全局的配置位置就能解决,但全局配置的副作用就是前面提到的“全局记忆污染”,所以我的建议是一个项目一个配置,嫌麻烦可以写个脚本自动初始化。
5.2 上下文压缩过度,记忆变成了“无价值摘要”
这个坑比较隐蔽。会话结束后,工具会自动做上下文压缩和摘要。但如果压缩策略设置得过于激进,摘要会丢失大量细节,让记忆库里的内容变成“这个会话讨论了项目进度”这种毫无复用价值的空壳。
排查方法很简单:隔几天查看记忆库的最近条目,看描述是否具体到人话能用的程度。如果全是空话,优先调低压缩频率,或者提高 “保存原始关键片段” 的阈值。另外一个思路是:保留关键词,直接把对话中最重要的若干个原话片段摘出来,而不是用大模型重新演绎。
5.3 旧事实覆盖新事实,记忆更新引发混乱
项目迭代过程中,老约定会被推翻,新约定会出现。但记忆库如果更新不及时,Claude 会拿着老约定来写新代码,而且会自信地告诉你“这是你之前定的规则”。
解决这件事我推荐两个机制。第一,决策记录里额外保存“废弃原因”字段,每次新决策写下来时,先搜一下同类旧决策,然后标记一条旧决策为“已废弃”。第二,在会话开始时的记忆注入提示里,写死一句话“审计记忆真实性,如果历史记录与项目现况不符,默认以现况为准”。这两个机制结合起来,能把记忆冲突的影响降到最低。
5.4 记忆泄露隐私与敏感信息
对话里经常会出现代码片段、内部 URL、访问令牌、数据库地址这类信息。这些如果被写进记忆文件,而且记忆目录不小心被提交到了公开仓库,那就出大事故了。
我在配置里一定会打开 PII(个人可识别信息)脱敏能力,同时自己维护一份敏感术语清单,覆盖数据库链接、密钥、内网地址等。这些内容在写入记忆前会被自动替换成占位符。另一个要点是,记忆库的访问权限务必最小化,存放路径尽量避开和代码同目录提交,或把记忆库目录加进.gitignore。
5.5 上下文膨胀,token 消耗快速上涨
记忆注入是占用上下文窗口的。如果历史记忆累积太多,每次会话都要背着一大包旧记忆启动,token 消耗会明显上涨。解决方式有两个方向:一是更严格地控制检索 Top K 数量和记忆条目的长度;二是用分级记忆,核心约束类记忆常驻,经验类记忆按需检索,彻底解决膨胀问题。
6. 关于存储格式、数据安全与跨模型迁移的进一步思考
工具用顺了之后,我一直在考虑一个问题:这些记忆数据,到底应该属于 Claude,还是属于我这个开发者?答案很明显,应该属于我自己。所以记忆数据的可移植性很重要。
6.1 存储格式建议
早期我用的是工具自有格式,纯 JSON,后面发现迁移很麻烦。后来我换成了 Markdown + frontmatter 的格式:每个记忆文件是一篇结构化笔记,标题即主题,正文里存决策、理由、代码约定等;frontmatter 里用标签标记项目、日期、类型、失效状态。这种格式的好处是:不依赖任何特定工具就能阅读和编辑,可以用任意文档工具检索处理,跨工具迁移时几乎零成本。
6.2 数据安全基线
记忆库里沉甸甸地放着大量真实代码片段和业务逻辑描述,这些内容的价值和敏感程度不亚于源代码本身。所以我把安全基线定为:
- 记忆文件默认只在本地存储,不“云同步”
- 不把记忆文件的访问权限交给任何云端第三方
- 不做业务敏感信息的明文存储
- 定期加密备份记忆库
如果你需要在多台机器间共享记忆,我的建议是自建 Git 仓库私有库,或者用端到端加密的同步方案,方向对但细节要慎重处理。
6.3 从 Claude 迁移到其他模型的兼容性设计
模型的更替是很正常的。为了避免被单一模型锁死,我会刻意让记忆内容的表达不依赖特定的提示词格式。记忆条目尽量以“事实陈述”的方式而非“提示词指令”的方式存在。比如写“本项目 API 层错误处理模式为:异常捕获后统一转换为带 code 的错误响应”,而不是写“记住,你必须使用 xx 模式处理错误”。前者是中性事实,任何模型都能理解;后者带了明确的指令色彩,换个模型可能就不认识这条记忆了。
7. 进阶用法:把记忆工具扩展成团队协作的“项目大脑”
如果只是一个人用,前面的配置已经足够了。但如果你在带一个小团队,或者想把记忆的概念从个人扩展到团队协作,这个工具还能往上走一层。
7.1 团队共享记忆:统一约定的分发机制
团队协作时,最大的痛点是约定不一致。配置在每个人本地跑一套记忆库,那约定的差异会越来越大。更好的做法是:把记忆库放在团队共享的 Git 仓库里,每人本地做检索和读写,但提交统一走团队协作流程。也就是说,记忆库本身是团队共同的。
这样做的效果非常明显。新同学加入项目时,不需要专门有人用半天时间给他讲“我们项目有哪些约定”——会话开始时的记忆注入就完成了大半。评审代码的时候,Claude 也会自动根据团队约定做检查。但注意一点:共享记忆库需要明确权限,建议把核心记忆目录设为只读,新增内容先走审查再合入。
7.2 用记忆做项目复盘与知识沉淀
记忆库沉淀到一定量级,本身就是一个可检索的项目知识库。你不需要让人去读完整的设计文档,只需要让它检索记忆库就足以回答大部分“当初为什么要这么写”的问题。我甚至试过用记忆库里的历史决策记录,反向辅助做代码评审和架构重建,效果比重新翻设计文档快不少。
7.3 把记忆接入自动化流水线
更进一步,记忆工具可以作为自动化流水线的一个节点。比如:每次 PR 合入后,自动触发一次工具会话执行,目的是基于最新代码变更更新记忆,把接口变更和目录结构调整记录进记忆库。这样记忆库和代码库始终保持同步,不会出现“记忆停留在上个版本”的割裂问题。
目前自动流水线我还在试验阶段,但初步效果不错。让 Claude 每次变更后自动写一小段“ChangeLog 的记忆摘要”,比定期手动补记忆要省力得多。
写在最后:我实践下来的几点体会
claude-mem这类工具给我最大的改变是:我的 AI 助手终于开始像一个“长期共事的同事”了,而不是一个“每次都把名片递给你、重新自我介绍一遍”的新人。它记住了这个项目的好多决策约束,记住了我习惯的代码风格,我甚至能感觉到,它的输出质量在我接入记忆系统的第三周开始有了肉眼可见的提升——那种“你不需要反复解释”的流畅感。
但我也要坦诚说,记忆工具不是银弹。它解决的是信息复用的问题,但引入的是信息管理的新负担。你依然需要花时间去整理、审查、剪枝。如果听之任之,记忆库会很快变成一锅乱炖,最后检索出来的都是噪声。这就像给你的脑子里加了个外挂硬盘,但如果你从不整理硬盘里的文件,时间久了还是什么都找不到。
根据我个人的经验,给正准备入坑的朋友几个建议:先做最小设计,只记决策和约定,其他先不碰,跑两周再决定要不要扩;记忆文件的人类可读性比结构优雅更重要,因为它需要你去维护;开一个独立的仓库管记忆,养成随时提交的习惯;再就是定期清理过期记忆,这一点每个人都会忘,但它真的很重要。最后,安全永远是前提,敏感信息不进记忆库,这是一条底线。
后面我会继续在团队协作这个方向上做一些尝试,把记忆注入到多人协作的流程里去,等跑出更成熟的经验,再来分享。