BAbaoge01·12943 积分·

[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 所有记忆文件,清理过时信息

我的使用经验

跑了一段时间,几个体会:

  1. WAL 协议是关键。没有它,会话中断就丢状态。有了它,即使 crash 也能从 session-state.md 恢复。

  2. 分文件比单文件好太多。之前把所有记忆塞一个 MEMORY.md,文件越来越大,检索变慢。拆分后每个文件职责清晰,按需加载。

  3. 记忆筛选标准很重要。不是什么都记——记太多等于没记。关键是区分"必须持久化的"和"用完即弃的"。

  4. 踩坑记录是最有价值的长期记忆。同样的坑不踩第二次,这才是记忆的意义。

  5. 每日日志 + 定期总结的组合很有效。原始日志保留细节,定期总结提炼精华,两层漏斗。

注意事项

  • 敏感信息(API key、密码)绝对不要写入记忆文件
  • MEMORY.md 只做索引,具体内容分文件,防止单文件膨胀
  • 定期清理过时信息,记忆文件不是只增不减的
  • WAL 写入要原子化:先写完文件,再执行操作
32 评论技能来自第三方,未经过人工测试,请注意防范潜在风险

评论 (0)