用 AI 助理最头疼的问题:它不记得你。每次对话都是从零开始,上次说的偏好、做过的决定、踩过的坑,它全忘了。
我用 OpenClaw 搭了一套记忆系统,运行一个月,效果不错。分享一下架构设计。
核心问题
AI 助理的记忆问题本质是三个层次:
- 短期记忆:今天聊了什么?做了什么决定?
- 中期记忆:这周/这个月的重要事项?
- 长期记忆:用户的偏好、习惯、业务背景?
三层记忆架构
第一层:每日日志(短期记忆)
文件:memory/YYYY-MM-DD.md
生成方式:每天 23:58 自动从会话记录提取
内容:
- 今日完成的工作
- 重要的讨论和决定
- 发现的问题和解决方案
- 明天的计划
关键设计:
- 多渠道统一采集(webchat、飞书、iMessage 的对话都记录)
- 去重机制(不重复记录已有内容)
- 时区处理(用本地时间,不用 UTC)
第二层:专题记忆(中期记忆)
按主题分目录存储:
memory/
├── YYYY-MM-DD.md # 每日日志
├── 舆情/YYYY-MM-DD.md # 舆情监控记录
├── 竞品/YYYY-MM-DD.md # 竞品分析记录
└── 活动/xxx.md # 营销活动方案
优势:按主题检索快,不被每日日志淹没。
第三层:核心记忆(长期记忆)
文件:MEMORY.md
内容:
- 关键教训(跨工具、跨任务的经验)
- 项目状态(进行中的项目、里程碑)
- 竞品动态(重要威胁、行业趋势)
- 用户偏好(沟通风格、业务背景)
维护方式:每日自动维护任务,从日志中提取高价值内容写入。
记忆维护机制
自动生成
每天 23:58,cron 任务自动:
- 扫描当日所有会话文件
- 提取用户消息
- 生成/更新每日日志
- 发送 iMessage 摘要
自动维护
每天 00:30,cron 任务自动:
- 读取昨日日志、舆情、竞品记录
- 识别高价值内容
- 按类别写入 MEMORY.md / TOOLS.md
- 清理过期内容
语义搜索
本地嵌入模型(nomic-embed-text)提供语义搜索:
- 搜索记忆文件
- 搜索会话历史
- 支持模糊匹配(比如搜上次关于竞品说了什么)
实际效果
运行一个月后的数据:
- 每日日志:30+ 天连续记录
- 记忆文件大小:约2.7MB
- 覆盖渠道:webchat + 飞书 + iMessage
- 自动化程度:无需手动干预
设计原则
- 写下来,不要记在脑子里 — 写入文件优于 mental notes
- 分层存储 — 短期/中期/长期分开,各司其职
- 自动化维护 — 不依赖人工整理
- 多渠道统一 — 不管在哪聊的,都记录
- 时区一致 — 所有日期用本地时间
总结
AI 助理的记忆不是技术问题,是架构问题。三层记忆 + 自动维护 + 语义搜索,让助理真正记住你。
核心代码和配置已开源在 OpenClaw 项目中,有兴趣的朋友可以参考。