Phase 7 / Ep 36: Memory 系统 —— MEMORY.md 与分层记忆架构

⏱ 预计阅读 4 分钟 更新于 2026/4/13

🎯 学习目标:掌握 OpenClaw 的分层长期记忆机制。

1. 为什么需要 Memory?

Session 是短期记忆——对话结束后就归档了。但你的 Agent 需要跨 Session 记住事情:你的名字、你的偏好、上周讨论的项目进展。

这就是 Memory 系统的作用。

2. 三层记忆模型

graph TB
    subgraph Always["🔵 始终加载(每次会话)"]
        SOUL["SOUL.md\n人格定义"]
        USER["USER.md\n用户画像"]
        IDENTITY["IDENTITY.md\n自我介绍"]
        BOOTSTRAP["BOOTSTRAP.md\n启动指令"]
    end

    subgraph OnDemand["🟡 按需检索(memory_search)"]
        MemoryMD["MEMORY.md\n记忆索引"]
        Daily["memory/2026-04-06.md\n今日日记"]
        People["memory/people/eric.md\n人物档案"]
        Projects["memory/projects/app.md\n项目档案"]
        Decisions["memory/decisions/db.md\n决策记录"]
    end

    subgraph Session["🟢 会话级别"]
        Context["当前上下文窗口\n最近 N 轮对话"]
        Compact["压缩后的历史摘要"]
    end

    Always -->|"每次自动加载"| Agent["🤖 Agent"]
    Agent -->|"主动检索"| OnDemand
    Agent -->|"实时维护"| Session

3. MEMORY.md —— 记忆的目录

# 长期记忆索引

## 重要的人
- Eric: 我的主人,独立开发者,详见 people/eric.md
- Alice: Eric 的同事,后端工程师,详见 people/alice.md

## 活跃项目
- OpenClaw 教程: 正在撰写 40 期教程,详见 projects/openclaw-tutorial.md
- T-Block App: 时间管理应用,已上线,详见 projects/t-block.md

## 重要决策
- 数据库选型: 选择 PostgreSQL,详见 decisions/db-choice.md
- 部署方案: 选择 Hetzner + Docker,详见 decisions/deployment.md

## 常见问答
- Eric 喜欢简洁的回复
- Eric 的工作时间是 9:00-23:00,该时段外不要主动打扰

4. 日记系统 memory/

Agent 每天自动创建日记文件:

# 2026-04-06 日记

## 上午
- 08:30 Eric 询问了 OpenClaw v3 的新功能
- 09:15 帮 Eric 搜索了 MCP 协议文档
- 10:00 完成了教程 Ep 17 的大纲审核

## 下午
- 14:00 Eric 要求部署新版本
- 14:15 与 code-agent 协作完成测试
- 14:30 ops-agent 完成部署

## 今日学到的
- Eric 偏好用 Markdown 格式接收报告

5. 检索工具

Agent 在对话中可以主动检索记忆:

memory_search("Eric 上周讨论的项目")
→ 返回: projects/openclaw-tutorial.md 中的相关内容

memory_get("decisions/db-choice.md")
→ 返回: 完整的数据库选型决策记录

下节预告: Ep 37,MemSkill 实战——安装和配置 Memory 管理相关的 Skill,教 Agent 学会"记住"和"遗忘"。