# AI 编程项目的本地优先记忆:该保存什么,为什么

AI 编程会话很快,也很短暂;产品决策却不是。

如果项目的有效上下文只存在于聊天记录里,每次新会话都要付出同样的成本:重新理解架构、猜测旧决定、重复调查,并承担推翻既有成果的风险。

本地优先的项目记忆解决的是一个具体问题:把可复用上下文保存在代码旁边,由项目所有者掌控,让 Agent 从已验证事实继续,而不是重建过去。

项目记忆不是聊天记录

保存所有提示词和回复,只会得到庞大的档案,并不会自动得到有用记忆。下一个 Agent 仍然要判断哪些说法有效、哪些只是猜测、哪些后来已经被证伪。

真正有用的记忆是经过筛选的,它回答未来仍会遇到的问题:

  • 项目当前追求什么结果?
  • 哪些产品边界是有意保留的?
  • 权威状态究竟在哪里?
  • 哪些决策已经确认?
  • 什么证据证明当前实现?
  • 还有什么没有完成?
  • 下一项安全动作是什么?

目标不是记住一切,而是避免昂贵的重复发现和误撤销。

为什么要坚持本地优先

项目记忆包含的不只是技术笔记,还可能暴露产品战略、用户问题、未发布功能、基础设施选择和运行事故。

本地优先意味着这些上下文保存在项目所有者能够检查、版本化、备份和移除的文件中。云服务可以提供协作或可选同步,但服务暂时不可用时,项目不应该因此无法继续。

本地归属也有助于保持准确。记忆文件与代码放在一起,可以随时用当前仓库核验。当记忆与测试、日志或运行证据冲突时,应以当前证据为准。

七类真正值得保存的上下文

1. 当前结果

用一句话描述项目现在追求的用户结果。只有目标真的变化时才更新,不要因为实现方式变化就频繁改写。

2. 产品不变量

记录未来工作必须保留的边界,例如本地数据归属、稳定 URL、单一内容权威、用户已经熟悉的动作,或必须遵守的发布路径。

这些记录能阻止“看起来更好”的改动悄悄重写产品。

3. 已确认决策

一条决策记录应包括选择、理由、影响,以及什么新证据出现时才值得重审。

不要把局部偏好保存成普遍真理,必须写清适用范围。

4. 已验证项目事实

有价值的事实包括真实应用入口、权威数据源、发布命令或服务间关系。

能指向证据时,应同时保存证据位置。如果一件事只是怀疑,先放进临时收件箱,不要进入稳定记忆。

5. 可复用模式

有些教训会跨越一次事故:验证最终生成物而不是只看模板;外部写入使用稳定幂等键;上游暂时失败时保留最近一次正确内容。

只有模式已经验证、未来大概率复用时,才值得沉淀。

6. 当前会话状态

活动交接记录正在发生的工作:已完成步骤、精确标识、当前阻塞和下一动作。

它与稳定决策不同,应该频繁更新,并在工作闭环后清理或替换。

7. 证据引用

记忆指向文件、测试、提交、部署、事件或运行检查时,可信度更高。下一次会话可以重新核验,而不是盲目接受旧结论。

什么不应该进入稳定记忆

不要轻易提升这些内容:

  • 原始命令输出;
  • 整份 diff;
  • Secret 或凭据;
  • 尚未验证的猜测;
  • 临时调试观察;
  • 泛泛的“已完成”套话;
  • 只对一次短暂运行有效的说明。

它们会制造噪音,也可能在过期后造成危险误导。

一套简单的文件结构

小项目可以从几类文件开始:

  • 保存稳定事实的项目概览;
  • 决策目录;
  • 模式文件;
  • 当前会话交接;
  • 存放未验证观察的收件箱。

具体命名并不重要,分层才重要。稳定知识、当前工作和不确定观察拥有不同生命周期,不应彼此覆盖。

证据优先的写入规则

写入记忆前,先给信息分类:

1. 它是偏好、规则、项目事实、决策、模式、领域知识、临时观察,还是当前交接? 2. 当前证据是否已经验证? 3. 它未来是否还会用到? 4. 应该更新哪条既有记录,而不是制造重复?

未验证的信息先保持临时;已经验证但只用一次的信息,也未必需要长期保存。

Agent 应该如何读取记忆

记忆用于缩小调查范围,不能替代现实核验。

一次合理的恢复顺序是:

1. 读取当前目标和活动交接。 2. 只检索与当前功能、边界或故障相关的条目。 3. 沿证据引用检查当前代码或运行状态。 4. 发现不一致时更新记忆,而不是忽略现实。 5. 从最后一个已验证状态继续。

这样可以控制上下文大小,也能减少旧记录支配已变化系统的风险。

记忆与路线图解决不同问题

记忆保存“项目已经知道什么”,路线图决定“项目下一步要实现什么”。

两者应该关联,但不应合并成同一份文档。一项决策可以跨越多个路线图环节,一份活动交接可能只属于一个环节,一个有价值的模式也可能跨多个项目复用。

角色分开后,两种工具都更容易被信任。

会话结束前的实用检查

完成一轮重要工作后,问自己:

  • 当前结果是否变化?
  • 是否确认了未来会约束工作的决策?
  • 是否发现了稳定项目事实?
  • 是否存在下一会话必须知道的未完成对象或精确标识?
  • 某项临时观察是否已经得到验证?
  • 是否有旧交接可以被清理或替换?

只更新相关条目。一份简短、准确的交接,胜过一部面面俱到的日记。

最终结果:连续推进,同时保留控制权

本地优先项目记忆为 AI 编程工作提供了持久骨架。代码仍是实现真相,运行证据仍是行为真相,记忆负责保存理解两者所需的决策与上下文。

它让独立开发者可以随时暂停和恢复,不丢方向,同时把战略性项目知识保留在自己能够检查和拥有的工作空间中。