|
| 1 | +# 🧠 Auto Memory |
| 2 | + |
| 3 | +Auto Memory 让 Agent 在工作中自动记录项目知识,跨会话持久化。新会话启动时自动加载历史记忆,Agent 不再"失忆"。 |
| 4 | + |
| 5 | +## 工作原理 |
| 6 | + |
| 7 | +1. **启动时加载** — 会话开始时,MEMORY.md 前 200 行自动注入 system prompt |
| 8 | +2. **工作中记录** — Agent 发现有价值的知识时,通过 MemoryWrite 工具保存 |
| 9 | +3. **按需检索** — Agent 需要特定主题的详细信息时,通过 MemoryRead 工具读取 |
| 10 | + |
| 11 | +## 存储结构 |
| 12 | + |
| 13 | +记忆文件存储在项目专属目录下: |
| 14 | + |
| 15 | +``` |
| 16 | +~/.blade/projects/{escaped-path}/memory/ |
| 17 | +├── MEMORY.md # 入口索引(启动时加载前 200 行) |
| 18 | +├── patterns.md # 项目模式(构建命令、代码风格) |
| 19 | +├── debugging.md # 调试洞察 |
| 20 | +├── architecture.md # 架构笔记 |
| 21 | +└── ... # Agent 按需创建的主题文件 |
| 22 | +``` |
| 23 | + |
| 24 | +每个项目有独立的记忆空间,互不干扰。 |
| 25 | + |
| 26 | +## Agent 会记住什么 |
| 27 | + |
| 28 | +- 项目的构建、测试、lint 命令 |
| 29 | +- 代码模式和约定 |
| 30 | +- 调试过程中发现的解决方案 |
| 31 | +- 架构决策和关键文件关系 |
| 32 | +- 用户偏好和工作流习惯 |
| 33 | + |
| 34 | +## 安全机制 |
| 35 | + |
| 36 | +- **敏感数据过滤** — 自动拒绝包含 password、token、secret、api_key、private_key 的内容 |
| 37 | +- **路径遍历防护** — 主题名不允许包含 `..` 或 `/`,防止写入任意路径 |
| 38 | +- **索引行数限制** — MEMORY.md 加载上限 200 行,避免 system prompt 膨胀 |
| 39 | + |
| 40 | +## /memory 命令 |
| 41 | + |
| 42 | +在会话中使用 `/memory` 管理记忆文件: |
| 43 | + |
| 44 | +| 命令 | 说明 | |
| 45 | +|------|------| |
| 46 | +| `/memory` | 列出所有记忆文件(等同于 `/memory list`) | |
| 47 | +| `/memory list` | 列出所有记忆文件及大小 | |
| 48 | +| `/memory show` | 显示 MEMORY.md 索引内容 | |
| 49 | +| `/memory show <topic>` | 显示指定主题文件内容 | |
| 50 | +| `/memory edit` | 用 `$EDITOR` 编辑 MEMORY.md | |
| 51 | +| `/memory edit <topic>` | 用 `$EDITOR` 编辑指定主题文件 | |
| 52 | +| `/memory clear` | 清空所有记忆文件 | |
| 53 | + |
| 54 | +## 工具 |
| 55 | + |
| 56 | +### MemoryRead |
| 57 | + |
| 58 | +读取记忆文件,Agent 在需要时自动调用。 |
| 59 | + |
| 60 | +``` |
| 61 | +topic: "debugging" → 读取 debugging.md |
| 62 | +topic: "MEMORY" → 读取 MEMORY.md 索引 |
| 63 | +topic: "_list" → 列出所有记忆文件 |
| 64 | +``` |
| 65 | + |
| 66 | +### MemoryWrite |
| 67 | + |
| 68 | +保存记忆内容,支持追加和覆盖模式。 |
| 69 | + |
| 70 | +``` |
| 71 | +topic: "patterns" |
| 72 | +content: "## Build\npnpm build" |
| 73 | +mode: "append" → 追加到 patterns.md |
| 74 | +mode: "overwrite" → 覆盖 patterns.md |
| 75 | +``` |
| 76 | + |
| 77 | +## 配置 |
| 78 | + |
| 79 | +### 环境变量 |
| 80 | + |
| 81 | +```bash |
| 82 | +# 禁用 Auto Memory |
| 83 | +BLADE_AUTO_MEMORY=0 |
| 84 | + |
| 85 | +# 启用(默认) |
| 86 | +BLADE_AUTO_MEMORY=1 |
| 87 | +``` |
| 88 | + |
| 89 | +## 最佳实践 |
| 90 | + |
| 91 | +- **MEMORY.md 是索引** — 保持简洁,详细内容放到主题文件 |
| 92 | +- **让 Agent 自己学** — 不需要手动写记忆,Agent 会在工作中自动发现和记录 |
| 93 | +- **定期检查** — 用 `/memory show` 看看 Agent 记了什么,用 `/memory edit` 修正不准确的内容 |
| 94 | +- **项目初始化后** — 第一次在新项目中使用时,Agent 会逐步积累知识,几次会话后效果最佳 |
| 95 | + |
| 96 | +## 相关资源 |
| 97 | + |
| 98 | +- [Slash 命令](slash-commands.md) — 所有内置命令 |
| 99 | +- [工具列表](../reference/tool-list.md) — MemoryRead / MemoryWrite 参数详情 |
| 100 | +- [配置系统](../configuration/config-system.md) — 全局和项目级配置 |
0 commit comments