1. OpenClaw记忆系统架构解析
OpenClaw的记忆系统采用分层存储设计,通过Markdown文件实现结构化记忆管理。这套系统最核心的创新点在于将记忆分为三个层级:
-
长期记忆层(MEMORY.md):相当于大脑的"知识库",存储经过提炼的持久性信息。这个文件会随会话自动加载,但需要注意其内容会被严格限制在引导文件预算范围内。当文件体积过大时,系统会自动截断注入到上下文中的内容,此时需要手动优化记忆结构。
-
工作记忆层(memory/YYYY-MM-DD.md):相当于"短期记忆缓冲区",记录详细的日常观察和会话上下文。这些文件支持带slug的变体命名(如memory/YYYY-MM-DD-session.md),便于分类管理。系统会自动索引这些文件用于记忆检索,但不会全部注入到提示中。
-
梦境日记层(DREAMS.md):可选的特殊记忆层,用于记录系统自动生成的记忆整理过程和决策依据。这个文件特别适合用于调试和优化记忆系统。
重要提示:所有记忆文件都存储在智能体工作区(默认路径~/.openclaw/workspace),采用纯Markdown格式便于人工审阅和版本控制。
1.1 记忆写入机制
记忆系统的写入遵循"显式告知"原则。要让智能体记住某件事,最可靠的方式是直接说明:"记住我更喜欢TypeScript"。系统会根据内容类型自动判断存储位置:
- 持久性事实:如个人偏好、重要决策等,会写入MEMORY.md
- 临时观察:如会话中的发现、临时数据等,会写入当天的memory/YYYY-MM-DD.md
- 系统决策:如记忆整理过程、提升决策等,会写入DREAMS.md
记忆系统还支持"操作敏感记忆",这是一种特殊标记的记忆类型,用于记录会影响未来行为的注意事项。例如:
markdown复制[!CAUTION] API迁移设计正在进行中
- 影响范围:本会话所有API相关操作
- 有效期限:直到迁移计划完成
- 操作限制:仅可将发现作为设计输入,不得直接修改API实现
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心记忆组件详解
2.1 记忆检索系统
OpenClaw提供两套记忆检索工具:
-
memory_search:基于语义的混合搜索系统,支持:
- 向量相似度搜索(理解语义)
- 关键词精确匹配(处理代码符号等)
- 默认使用OpenAI embeddings,可配置为Gemini、Mistral等
-
memory_get:精确读取工具,可以:
- 获取特定记忆文件内容
- 读取指定行范围的内容
- 结合日期过滤条件查询
配置示例(使用本地Ollama embeddings):
bash复制# 修改config.yaml
agents:
defaults:
memorySearch:
provider: ollama
model: qwen2:7b
2.2 记忆后端选项
系统支持多种记忆存储后端,各有特点:
| 后端类型 | 特点 | 适用场景 |
|---|---|---|
| Builtin(SQLite) | 默认选项,零配置 | 快速入门、简单应用 |
| QMD | 本地优先,支持重排序 | 需要高级检索的中型项目 |
| Honcho | 多智能体感知 | 复杂协作场景 |
| LanceDB | 支持本地Ollama | 隐私敏感环境 |
切换后端示例:
bash复制openclaw config set agents.defaults.memoryBackend=honcho
openclaw memory reindex # 重建索引
2.3 自动记忆维护
系统提供三种自动化记忆维护机制:
-
记忆刷新:在会话压缩前自动保存未写入的重要上下文
-
Dreaming:后台记忆整理流程(需手动启用)
- 评分机制:基于回忆频率、查询多样性等
- 阈值控制:只提升达标内容到长期记忆
- 审计追踪:完整记录到DREAMS.md
-
基于资料的回填:重放历史笔记进行分析
bash复制# 分析过去30天的记忆 openclaw memory rem-backfill --days 30
3. 高级使用技巧
3.1 记忆优化策略
当MEMORY.md接近预算限制时,建议:
- 使用
/context detail检查记忆分布 - 将详细材料迁移到memory/日期文件中
- 在MEMORY.md中只保留摘要
- 定期运行记忆压缩:
bash复制
openclaw memory compact --aggressive
3.2 特殊记忆模式
-
Wiki模式:启用memory-wiki插件后:
- 持久记忆会编译为结构化wiki
- 支持矛盾检测、新鲜度跟踪
- 生成可视化仪表盘
启用命令:
bash复制openclaw plugin install memory-wiki openclaw config set agents.defaults.memoryWiki.enabled=true -
多代理记忆共享:通过Honcho后端实现:
- 跨会话记忆关联
- 用户建模支持
- 智能体间记忆感知
3.3 诊断与调试
常用诊断命令:
bash复制# 检查记忆索引状态
openclaw memory status --verbose
# 搜索记忆内容(CLI模式)
openclaw memory search "API设计规范" --limit 5
# 重建问题索引
openclaw memory index --force --clean
记忆问题排查流程:
- 确认记忆文件是否存在(检查~/.openclaw/workspace)
- 验证索引状态(memory status)
- 检查embedding提供商连接
- 测试基础搜索功能
- 查看DREAMS.md获取系统决策记录
4. 实战案例:金融分析场景配置
以金融分析为例,典型记忆配置:
yaml复制# config.yaml片段
agents:
defaults:
memory:
budget: 8000 # 增大记忆预算
search:
provider: voyage # 使用Voyage金融专用embeddings
model: voyage-finance-01
wiki:
enabled: true # 启用wiki模式
sectors: # 自定义wiki分类
- 宏观分析
- 个股研究
- 行业趋势
关键优化点:
- 为金融术语配置专用embedding模型
- 增大记忆预算容纳复杂分析
- 使用wiki模式管理分析框架
- 设置定期记忆整理计划:
bash复制# 每天3AM执行记忆优化 openclaw schedule create "memory maintenance" --command "memory compact" --cron "0 3 * * *"
记忆标记示例(金融场景):
markdown复制[!SECTOR] 新能源行业
- 上游:锂资源紧张
- 中游:电池产能过剩
- 下游:整车价格战
- 更新日期:2024-03-15
- 数据来源:行业月报
这种配置下,系统可以:
- 长期跟踪行业趋势变化
- 自动关联相关分析内容
- 保持记忆的时效性和准确性
