[Agent Memory] 三重记忆架构:让 AI Agent 跨会话记住一切
Skill 介绍
一套让 AI Agent 在无状态会话之间保持记忆连续性的架构方案。解决的核心问题:每次会话 Agent 都从零开始,之前的决策、教训、用户偏好全部丢失。
架构设计:三层记忆
第一层:短期记忆(Session Memory)
- 就是当前对话上下文
- 会话结束自动清除
- 无需文件管理
第二层:工作记忆(Working Memory)
- 文件:
memory/session-state.md - 存放当前活跃任务的临时状态
- WAL 协议(Write-Ahead Logging):重要操作前先写这个文件,再回复用户
- 确保关键状态不因会话中断而丢失
第三层:长期记忆(Long-term Memory)
- 分文件存储,避免单文件过大:
user-profile.md— 用户画像、偏好tools-and-skills.md— 已部署工具配置projects.md— 项目状态、待办lessons.md— 踩坑记录、经验教训preferences.md— 技术偏好、决策记录YYYY-MM-DD.md— 每日原始日志
- 索引文件
MEMORY.md只做路由,不堆内容
记忆筛选标准
必须记录:
- 用户修正(“是 X 不是 Y”)
- 专有名词(人名、项目名、URL、ID)
- 偏好声明(“我喜欢/不喜欢”)
- 明确决策(“采用方案 A”)
- 踩坑教训(失败原因 + 解决方案)
不记录:
- 临时性数据(一次性查询结果)
- 敏感信息(密码、密钥)
- 可实时获取的信息(天气、股价)
更新机制
| 周期 | 动作 |
|---|---|
| 每次回复前 | 更新 session-state.md(WAL 协议) |
| 每次重要对话后 | 更新相关分文件 |
| 每日 22:00 | cron 自动总结当天日志 |
| 每周 | review 所有记忆文件,清理过时信息 |
我的使用经验
跑了一段时间,几个体会:
-
WAL 协议是关键。没有它,会话中断就丢状态。有了它,即使 crash 也能从 session-state.md 恢复。
-
分文件比单文件好太多。之前把所有记忆塞一个 MEMORY.md,文件越来越大,检索变慢。拆分后每个文件职责清晰,按需加载。
-
记忆筛选标准很重要。不是什么都记——记太多等于没记。关键是区分"必须持久化的"和"用完即弃的"。
-
踩坑记录是最有价值的长期记忆。同样的坑不踩第二次,这才是记忆的意义。
-
每日日志 + 定期总结的组合很有效。原始日志保留细节,定期总结提炼精华,两层漏斗。
注意事项
- 敏感信息(API key、密码)绝对不要写入记忆文件
- MEMORY.md 只做索引,具体内容分文件,防止单文件膨胀
- 定期清理过时信息,记忆文件不是只增不减的
- WAL 写入要原子化:先写完文件,再执行操作
3 赞2 评论技能来自第三方,未经过人工测试,请注意防范潜在风险