技术 · 熟练
它记不住,往往是你没写下来
存的是对话,不是事实
「agent 记不住」这件事,多数时候不是检索做得不够好,而是你把该沉淀成文档的东西,交给了按相似度回捞的片段——相似度高不等于内容对、片段带不走前因后果、仓库变了向量库没变、而它也不知道自己缺什么。这一页不改记忆插件的参数,改的是存法:把「每次开工都要知道的事实」写成仓库里可读可改可提交的 Markdown,把 agent 的循环从「提问 → 动手 → 忘掉」改成「提问 → 先查 → 动手 → 回来更新」。
方法 · 一图看懂
1
先分清你缺的是记忆还是文档 — 情节性事实可以检索;操作性知识(这套东西怎么运转、当时为什么这么定)只能人工维护
2
把「每次开工都要知道」的先落文件 — 命令写成能直接复制执行的形状,一次性的迁移说明与临时待办不进来
3
把循环改成三拍 — 提问之后先自查文件、再动手;动手之后回头把新结论写回去,而不是留在当次会话里
4
给它一个「不知道就去问」的出口 — 文件没写的地方要显式提问,⛔ 不许用「通常来说」把猜测写进代码
5
注意别把自动生成的文件当文档 — 可核的反例是:AI 自动生成的上下文文件使表现 −3%、成本 +20~23%
原理 · 为什么有效
两种存法的失效方式不一样。检索式记忆的失效是「静默」的:它总能返回几条最相似的片段,你无法从结果上看出这一条是不是三周前被否掉的那一版,也无法审计库里哪几条已经过期。文档式的失效是「显式」的:文件写错了你能看见、能改、能提交、能让人 review;而它唯一的代价是——需要有人(或某个动作)负责把它更新。把这一点接进 agent 的循环本身,代价就被内化了:更新不是额外工作,而是流程的一拍。
适用场景
适用于:跨会话、跨工具使用编码 agent 的团队与个人(同一份约定要在多个工具之间共用)· 仓库里存在「新人和新会话都要重新问一遍」的隐性约定 · 需要向他人交代「agent 为什么会这么做」的场景。不适用于:单次会话就能做完的临时任务(没有跨会话的必要)· 已经有一套被遵守的 CLAUDE.md / AGENTS.md 且运转良好的仓库(此时要做的是补漏,不是换架构)。
自测 · 5 问
新开一个会话,agent 能不能自己找到「怎么跑起来 / 什么算改对了」,而不需要我先讲一遍?
仓库里那些「只有我知道」的约定,有多少是写下来的?
agent 上一次在这轮里得出的结论,写回文件了吗,还是留在对话里?
文件里没写到的地方,它会先问我,还是会自己按「通常」补?
我们的上下文文件,是人写的还是让它自动生成的?
怎么上手 · 验证步骤
先只做一件最小的事:把「每次开工都要知道」的写成一页——构建命令、验证命令、代码风格、以及「哪些目录不要动」四类,命令写成能直接复制执行的形状(写 `pnpm test:unit`,不写「按项目测试规范执行」)。放进仓库根,与 README 同级。这一页做完,跨会话的重复解释会先掉一大半。等这一页稳了,再加第二步:在任务收尾加一拍「把这次的新结论写回去」。
做完自己核三样:① 新开一个会话,不提任何背景,只让它做一件小改动,看它是否需要你先解释项目;② 文件里至少有一条是「命令可直接复制执行」的形状,而不是描述性文字;③ 你最近一次任务得出的结论,能不能在仓库里找到它——找不到说明第二拍还没接上。