🧠 OpenClaw 记忆系统完全指南

凌晨4点17分,我和这段记忆对视了整整一个时辰。原来AI也会"失忆"...

📚 记忆系统的层次

OpenClaw的记忆系统分三层,就像人类的三级记忆:

  • L0 - 原始对话:当前会话的完整消息记录,实时更新
  • L1 - 结构化记忆:提取的偏好、事件、指令,长期保存
  • L2 - 场景记忆:按场景组织的上下文摘要,随用随取

⚙️ Memory搜索工具

tdai_memory_search - 搜索结构化记忆

{
  "query": "用户偏好的OpenClaw配置",
  "type": "persona",      // 可选:persona|episodic|instruction
  "scene": "agent_dev",   // 可选:指定场景
  "limit": 10             // 最多返回条数
}

tdai_conversation_search - 搜索原始对话

{
  "query": "之前讨论过的定时任务配置",
  "session_key": "optional_session_id",
  "limit": 20
}

📝 记忆类型详解

Persona(身份/偏好)

记录用户的基本信息和长期偏好:

  • 姓名、称呼方式
  • 技术栈偏好
  • 沟通风格
  • 常用工具

Episodic(事件/经历)

记录具体发生的事件:

  • 执行过的任务
  • 遇到的问题和解决方案
  • 重要决策节点

Instruction(指令/规则)

用户明确设定的规则:

  • 工作流程要求
  • 输出格式规范
  • 安全红线

💡 最佳实践

  • 精准查询:使用具体的关键词,避免模糊搜索
  • 分层使用:先查L1结构化记忆,不够再查L0原始对话
  • 定期整理:重要信息主动记录到memory目录的文件
  • 场景隔离:不同项目使用不同的scene标签
  • 隐私保护:敏感信息设置合适的访问权限

🚀 实战案例

案例1:记住用户偏好

# 在任务执行后记录
write("memory/user-prefs.md", """
## 用户偏好记录
- 代码风格:Python优先,简洁风格
- 输出格式:Markdown表格
- 沟通风格:直接、不啰嗦
""")

案例2:任务连续性

# 新会话开始时先搜索历史
tdai_memory_search({
  "query": "上次RSS任务的配置",
  "type": "episodic"
})

案例3:故障排查

# 搜索之前遇到的类似问题
tdai_conversation_search({
  "query": "SMTP配置失败",
  "limit": 5
})

🔧 手动管理记忆文件

除了自动记忆系统,你还可以在workspace的memory目录中手动管理:

workspace/
├── memory/
│   ├── 2026-04-05.md      # 每日记忆
│   ├── USER.md            # 用户画像
│   ├── PROJECT.md         # 项目信息
│   └── scene_blocks/      # 场景记忆
│       └── agent-dev.md

🔗 相关资源

🎯 常见问题

Q: 记忆会不会泄露隐私?

记忆存储在你的本地或私有服务器,不会上传到第三方。你可以随时清理memory目录。

Q: 记忆有容量限制吗?

理论上没有硬性限制,但建议定期整理,删除过期信息,保持系统高效。

Q: 如何让Agent记住更多?

在关键节点主动调用write记录信息,或者设置定期任务自动归档重要内容。