记忆四层架构——从短期上下文到 Dreaming 整合
记忆是唯一一个会自己改变的部分
MateClaw 里其他所有东西——Agent、工具、知识库——你配置完之后就静止了。只有记忆是实际使用过程的副产品,越用越懂你。
四层架构
第一层:短期上下文(ConversationWindowManager)
- 存在哪里:数据库里的 mate_message 表
- 什么时候更新:每一回合对话
- 做什么:按 token 预算管理当前会话的窗口——保留最重要的历史消息,丢最旧的
第二层:对话后提取(MemorySummarizationService)
- 存在哪里:PROFILE.md、MEMORY.md、每日笔记
- 什么时候更新:每次合格的对话结束后异步运行
- 做什么:Agent 跑完一轮对话之后,自动提炼关键信息——用户说了什么偏好、讨论了哪些主题、做了哪些决策
第三层:Dreaming 睡眠整合
- 存在哪里:MEMORY.md(覆盖/合并更新)
- 什么时候更新:默认每天凌晨 2 点(可配)
- 做什么:把前一天所有对话的碎片线索串起来——「昨天下午用户 A 提到 Spring Boot 升级、晚上用户 B 提到生产环境 issue、凌晨 2 点整合发现 A 和 B 其实在讲同一个问题的两个面」
第四层:工作空间记忆文件
- 存在哪里:工作空间目录下的 PROFILE.md、MEMORY.md、SOUL.md、AGENTS.md
- 什么时候更新:由 Dreaming 和对话提取共同维护
- 做什么:Agent 自己的「长期记忆」——你的用户画像、长期偏好、历史项目、Agent 自己的「性格」和工作方式
Agent 怎么用这些记忆
每一轮对话开始时,Agent 会:
- 读短期上下文窗口(最近的消息)
- 读 PROFILE.md 和 MEMORY.md(长期用户画像)
- 读 SOUL.md(这个 Agent 自己的性格)
- 读 AGENTS.md(工作空间里其他 Agent 的角色定义)
这四层加起来给 Agent 提供了一个有历史的、有上下文的对话起点——不是每次都从零开始。