Appearance
记忆系统
记忆的本质
OpenClaw 的记忆是工作区中的 Markdown 文件。这是唯一可靠的持久化方式——只存在上下文窗口中的内容,在会话重置后消失。
"如果你希望 Bot 记住某事,让它写进文件。"
记忆文件布局
工作区(默认 ~/.openclaw/workspace)中有两类记忆文件:
每日日志(短期记忆)
memory/
2026-03-07.md ← 今天
2026-03-06.md ← 昨天
...- 追加写入(append-only)
- 每次会话开始时自动读取今天和昨天的日志
- 适合记录当天发生的事、临时任务进展等
长期记忆文件
MEMORY.md- 精心整理的持久记忆
- 只在主会话(私信)中加载,不在群组上下文中加载
- 适合记录偏好、规则、重要事项等
何时写入记忆
| 情况 | 写入位置 |
|---|---|
| 决策、偏好、持久事实 | MEMORY.md |
| 当天的笔记、任务进展 | memory/YYYY-MM-DD.md |
| "记住这个" | 立即写盘,不要只放上下文 |
记忆工具
Agent 通过两个内置工具操作记忆文件:
memory_search:对索引片段进行语义检索memory_get:读取特定 Markdown 文件/行范围
当文件不存在时(如今天还没有日志),两个工具都会优雅降级——返回空文本,而不是报错。
自动记忆刷新(上下文压缩前)
当会话接近自动压缩时,OpenClaw 触发一个静默 Agent 轮次,提醒模型在上下文被截断前写入持久记忆。这个轮次通常以 NO_REPLY 结束,用户不可见。
json5
{
agents: {
defaults: {
compaction: {
reserveTokensFloor: 20000,
memoryFlush: {
enabled: true,
softThresholdTokens: 4000,
systemPrompt: "Session nearing compaction. Store durable memories now.",
prompt: "Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store.",
},
},
},
},
}语义记忆搜索(高级)
通过嵌入模型对记忆内容进行语义检索:
json5
{
agents: {
defaults: {
memorySearch: {
provider: "gemini",
model: "gemini-embedding-001",
remote: {
apiKey: "${GEMINI_API_KEY}",
},
extraPaths: ["../team-docs", "/srv/shared-notes"],
},
},
},
}extraPaths 允许搜索工作区以外的共享文档。
禁用记忆插件
json5
{
plugins: {
slots: {
memory: "none",
},
},
}记忆使用最佳实践
- 明确要求 Bot 写入:说"记住这个"或"把这个写进记忆"
- 定期整理 MEMORY.md:删除过时内容,保持精简
- 利用日期日志:适合记录进行中的任务状态
- 群组上下文无长期记忆:群组消息不加载
MEMORY.md,适合无状态的群助手