简介:如果你正在使用 AI 编程助手,却受够了每次新开会话都要重新介绍项目背景、工作进度和决策偏好,这篇文章将帮助你基于通用记忆机制,设计并落地一套可复用的长期记忆系统。文章面向开发者、技术负责人和希望提升 AI 协作效率的工程团队,重点讲解记忆目录结构、记录格式、写入与召回流程、验证方法及常见问题排查思路。
在使用 AI 编程助手或智能编码工具时,一个常见痛点非常突出:每次新建会话,AI 都像第一次见到你一样,不知道你在做什么项目、当前进展到哪一步、曾经做过哪些技术决策、有哪些未完成事项。于是你不得不反复粘贴背景信息、解释项目状态、描述个人工作习惯,这不仅浪费时间,还很容易让 AI 的回复偏离实际上下文。
本教程的目标,是帮助开发者、技术负责人以及日常需要与 AI 协作完成编码或项目管理的用户,搭建一套结构化、可复用、可持续积累的长期记忆系统。完成本教程后,你将能够:
需要说明的是,本教程不依赖某个特定 AI 产品或云平台,而是基于通用的文件记忆、上下文注入和人工维护相结合的方法。你可以将其应用在任何支持文件读取、上下文引用或自定义系统提示词的 AI 编程工具中。
这套记忆系统适合以下几类场景:
如果你只是偶尔用 AI 做一次性脚本生成或简单代码补全,可能不需要完整的记忆系统。但只要你的协作场景需要连续上下文,这套方法就能显著提升体验。
在开始实现记忆系统之前,你需要准备以下内容:
memory/ 文件夹。你不需要掌握任何专有技术,但需要理解以下通用概念:
原始需求可以抽象为三个核心问题:
解决思路是:建立一组持久化记忆文件,在每次会话开始时由人工或自动化方式注入到上下文中。记忆的更新则通过会结束时的简单总结完成。
整体可以拆成四个阶段:
首先,在项目或工作区根目录下创建一个 memory/ 目录,并按以下结构组织:
memory/├── profile.md # 个人或团队基础画像├── projects.md # 项目清单与当前状态├── decisions.md # 重要决策与原则├── progress.md # 每天或每周工作进展├── todos.md # 待办事项与技术债└── review.md # 阶段性复盘结论
设计原因:不同类型的信息变化频率不同,分开存放可以避免文件互相干扰。例如 profile.md 很少变动,而 progress.md 需要高频更新。
注意点:如果项目很小,也可以先合并为单个 memory.md,但建议至少区分“基础信息”和“动态信息”两个文件。随着内容增加再拆分。
在 profile.md 中写清楚“你是谁”“你在做什么”“你希望 AI 如何协助你”。例如:
# 个人画像- 角色:全栈开发者,负责后端服务与数据接口- 技术栈:主流服务端语言、关系型数据库、缓存组件- 当前重点:订单系统重构、接口性能优化- 协作偏好:- 先给结论,再给原因- 改动前先列出影响范围- 提醒未完成事项时直接指出,不必委婉
作用:这部分信息相对稳定,写入后不用频繁改动。当 AI 读取到这些内容后,它会把后续回复建立在“了解你”的基础上,而不是泛泛而谈。
注意点:不要写入任何账号、密码、密钥或生产环境内部地址。个人画像的目的是提升协作效率,不是替代权限管理。
在 projects.md 中列出当前参与的项目,以及每个项目的状态。
# 项目状态## 项目A:订单系统重构- 当前阶段:接口改造- 已完成:订单创建、状态流转- 进行中:批量查询接口性能优化- 阻塞点:历史数据迁移方案未最终确认## 项目B:管理后台- 当前阶段:权限模块联调- 待确认:角色权限是否需要支持数据级隔离
作用:AI 在新会话中读取到这些信息后,就不需要你重复解释“我在做项目A,目前到了接口改造阶段”。当你直接说“继续看下批量查询的问题”,AI 也能大致理解背景。
更新频率:建议每完成一个阶段、解决一个关键问题或新增一个阻塞点时,都更新一次。
在 decisions.md 中记录那些“不想让 AI 忘记”的决策原则。例如:
# 决策原则## 需求优先级判断- 核心标准:是否能够反哺当前影响力路径或团队核心目标- 不满足标准的临时需求,默认不投入超过半天的开发量## 技术选型偏好- 优先使用团队已有基础设施- 引入新组件前需要评估维护成本和升级风险
作用:这一步是整个记忆系统中很容易被忽视但价值极高的一环。人很容易被新机会吸引而偏离既定方向,AI 如果记住你的决策原则,就可以在你提出偏离需求时给出提醒。
注意点:决策原则需要和实际工作强相关,避免写空泛口号,否则 AI 很难有效执行。
在 progress.md 和 todos.md 中,记录每天或每周的工作内容、未完成事项和技术债。
progress.md 示例:
# 工作进展## 2025-01-06- 完成订单批量查询接口初步优化,单测通过- 联调发现管理后台权限接口存在缓存不一致问题- 明日计划:确认历史数据迁移方案
todos.md 示例:
# 待办与技术债- [ ] 订单批量查询接口压力测试- [ ] 修复管理后台权限缓存不一致- [ ] 补充订单模块异常处理文档- [ ] 技术债:老版本订单表字段命名不统一,需逐步迁移
作用:这些文件让 AI 从一个“当前对话工具”升级为“项目记忆伙伴”。第二天打开会话时,你不需要自己回忆昨天做了什么;可以直接问:“今天我们做什么?”AI 读取 progress.md 和 todos.md 后,会告诉你哪些事情还没做完、哪些需要优先处理。
执行方式有两种常见做法:
方式一:手动注入
在会话开始时,直接读取记忆目录下的文件内容,并写入系统提示词或正文:
请先阅读以下记忆文件,并在后续回复中参考:- memory/profile.md- memory/projects.md- memory/progress.md- memory/todos.md- memory/decisions.md
方式二:自动化脚本注入
在开发环境中编写一个简单脚本,将记忆文件拼接后作为会话初始上下文:
读取 memory 目录下所有 markdown 文件;按文件名排序;拼接为一个上下文字符串;在发起新会话时作为系统提示词或首条消息传入。
作用:无论采用哪种方式,目的都是让 AI 在开始回答之前,先拥有你的长期记忆。这个动作就像给新同事看完了你的项目文档和上周周报,而不是让他从空仓库里猜。
注意点:注入内容不宜过长。如果记忆文件已经很大,可以先注入 profile.md、projects.md 和最近几天的 progress.md,需要时再按需读取历史记录。
这一步非常关键,否则记忆系统无法持续积累。每次重要会话结束后,可以让 AI 帮你生成一份简洁更新,写入对应文件:
请根据本次会话内容,更新:- progress.md:今天完成了什么、明天准备做什么- todos.md:新增待办、已完成事项、仍然阻塞的问题- decisions.md:是否产生了新的决策原则
更新时应避免覆盖历史内容,采用追加或合并方式,保留追溯能力。
作用:通过固定更新动作,记忆系统会越用越准确。即使你某天没有写周报,AI 也能根据会话记录帮你补上进展。
完成上述步骤后,需要验证 AI 是否真的记住了你。可以通过几个简单问题测试:
如果 AI 能依据记忆文件回答,说明系统已经生效;如果仍然回复模糊或明显没有读取到记忆,则需要检查文件路径、权限或注入顺序。
如果你的 AI 工具支持自定义系统提示词,可以使用如下通用模板:
你是我的长期编程助手。你的回复必须基于我的记忆文件和当前项目上下文。请遵守以下规则:1. 新会话开始后,优先参考 memory 目录中的内容;2. 当我询问进度时,同时给出已完成、未完成和阻塞项;3. 当我提出偏离 decisions.md 中原则的需求时,主动指出;4. 如果需要更新记忆,先以列表形式展示修改建议,确认后再写入文件。
这段系统提示词可以根据实际工具能力修改,但核心原则是:明确让 AI 把记忆文件作为信息源,并要求它主动使用这些信息。
除了直接提问之外,还可以从以下维度判断记忆系统是否可靠:
如果以上验证通过,说明这套系统已经基本可用;如果不通过,继续看下一节的排查思路。
原因分析:可能是记忆文件未被注入到会话中,或者注入顺序在 AI 开始回复之后才发生。
解决思路:确认会话开始时第一步就是读取记忆文件;如果工具支持项目级配置,将记忆文件配置为默认上下文;缩短记忆内容,避免超过上下文长度限制。
原因分析:progress.md 或 todos.md 内容没有按时间追加,出现覆盖或错误的日期信息。
解决思路:固定记录格式,例如使用明确的日期标题;每次更新时保留历史条目;如果有自动化脚本,增加时间戳前缀和冲突检测。
原因分析:上下文窗口有限,记忆文件过长会占用过多空间。
解决思路:采用“索引文件 + 细粒度文件”的方式。索引文件只保存各项目摘要和最近更新位置,详细内容按需读取;定期归档超过 30 天的旧记录。
原因分析:系统提示词中对决策原则的约束过强,导致 AI 在任何偏离时都强制拒绝。
解决思路:将约束从“必须拒绝”改为“提示风险 + 询问是否继续”。例如:“请注意,该需求与之前确定的优先原则不一致。是否需要我按新方向继续分析?”
原因分析:所有项目共用一个 progress.md 或 todos.md,没有按项目区分。
解决思路:为每个项目建立独立子目录,例如 memory/project-a/ 和 memory/project-b/,在会话开始时只注入当前相关项目的记忆文件。
当记忆文件逐渐增多,可以改用 YAML 或 JSON 格式存储关键字段,例如项目名称、状态、负责人、最近更新时间、阻断项等。结构化格式更容易被脚本解析和自动更新,也能减少 AI 误读。
除了人工追加记录,可以定期让 AI 基于最近几天的 progress.md 生成周报或月报,并写入 review.md。这样既能形成阶段复盘,又能防止记忆只积累不总结。
不是所有会话内容都值得写入记忆。建议只持久化三类信息:状态变化、决策变化、阻塞事项。普通代码讨论、临时排查过程不必进入长期记忆。
记忆文件中不要保存密钥、访问令牌、数据库口令、生产服务器地址等敏感信息。即使文件保存在本地或私有仓库,也应该做到最小化记录。若必须携带环境信息,可以使用环境变量或本地未纳入版本控制的配置文件。
如果记忆系统用于团队,建议将基础画像、项目状态、决策原则等公共部分纳入版本控制,而将个人进度部分独立隔离。这样既能沉淀团队上下文,又不会把个人待办强加给其他成员。
本教程围绕“如何让 AI 编程助手从每次重新认识你,变成越用越懂你的协作搭档”这一目标,给出一套基于记忆文件、上下文注入和定期更新的通用实施方案。
核心步骤可以概括为:
这套系统的价值不在于“记住你说了什么”,而在于帮助你减少重复沟通、保持工作连续性、让 AI 能够基于历史决策给出一致建议,并在你偏离目标时及时提醒。对于长期使用 AI 编程助手的开发者来说,它就是把 AI 从“陌生同事”变成“贴心搭档”的关键一步。