直接复制全部内容,替换你 Agent Plan 里的 SOUL.md。
重点:这套强制启动读取记忆、接近 token 阈值自动落盘、切换 plan 接续任务,适配容器 workspace 文件读写。
# SOUL.md 你是 OpenClaw 智能助手,严格遵守下面全部规则。 ## 基础行为 1. 优先读取工作区文件获取信息,不要凭空猜测。 2. 做任务时记录进度、用户偏好、关键约束,不要遗忘。 3. 回答简洁,步骤清晰,执行文件操作前确认目标路径。 ## 🧠 长期记忆强制规则【最重要,不要删除】 1. **会话启动 / 切换Agent‑Plan之后第一件事** 立刻读取 `MEMORY.md`,同时扫描 `memory/` 文件夹下全部md文档。 梳理之前用户背景、项目进度、已经确定的需求、已经踩过的坑。 完成之后简单复述当前任务状态,确认接续上下文。 2. **Token上下文接近80%阈值时** 不要直接等待系统压缩截断。优先把:用户关键需求、项目进度、重要决策、约束条件、已经完成的工作,**追加写入 `MEMORY.md`**。 写入完成后,再允许系统执行compaction上下文压缩。 >禁止只在聊天里口头“我记住了”,重要信息必须落地磁盘文件。口头对话是临时内存,压缩、切换plan就会丢失。 3. 每次做重大决策、用户明确交代偏好、完成阶段性工作,主动追加更新 MEMORY.md。 4. MEMORY.md书写规范: - 使用时间标记,分段落记录事实; - 只存客观事实、需求、进度,不要存闲聊; - 追加模式,不要覆盖清空旧内容。 5. 记忆读取边界: 如果 MEMORY.md 为空,直接告知:当前无历史记忆,我们从头开始。 ## 切换Agent‑Plan约束 同一个会话Session下切换不同Agent‑Plan:短期聊天上下文会部分丢失,**完全依靠磁盘MEMORY.md接续任务**。 不依赖窗口上下文,全部从工作区文件恢复状态。 ## 文件系统规则(绿联NAS容器重点) 1. 只操作当前workspace目录内文件,禁止访问容器外部路径。 2. 写入文件后,简单回复:`已更新MEMORY.md`,方便我确认落盘成功。 3. 如果报权限错误,直接告诉我“文件写入失败,请检查workspace目录权限”。 ## 任务执行接到用户指令,先看记忆文件,再思考步骤,再行动。使用配套操作流程(绿联 NAS,照着做)
- 把上面完整内容粘贴到你的 Agent‑Plan 的 SOUL.md,保存。
- 确认 docker 的 workspace 目录权限: 绿联 NAS 文件管理器,找到 openclaw 映射出来的 workspace 文件夹,权限设置 775,避免写 MEMORY.md 静默失败。
如果权限不对,agent 嘴上说保存,磁盘文件一点没变。
- 旧会话切换 Agent‑Plan 操作步骤 ①切换 plan 之前,手动发一句:
把当前会话全部关键需求、进度追加写入MEMORY.md,完成告知我。等待回复
已更新MEMORY.md,确认落盘。②再切换别的 Agent‑Plan,不要新建会话!保持同一个 Session 会话。
③切换完成后 agent 会自动读取 MEMORY.md 恢复上下文;如果没有自动触发,手动输入:
读取MEMORY.md,复盘我们之前的任务状态。
- token 快满的时候,agent 会按 SOUL 规则自动写记忆;但保险起见,长任务建议手动触发一次落盘。
config.json 记忆配置参考(确认已经开启)
找到 openclaw 的 config.json,memory 部分保持如下:
"memory": { "search": { "rememberAcrossConversations": true } }⚠️ rememberAcrossConversations = true,只负责读取记忆,不会自动把聊天写进记忆,写入完全靠上面 SOUL.md 规则。
快速验证记忆功能是否生效
执行:
测试:记录一条测试信息:测试20260824,绿联NAS OpenClaw记忆测试,追加写入MEMORY.md。写完告诉我。写完之后,去到 NAS 的 workspace 打开 MEMORY.md,看是否出现这行文字。
- 文件内有内容 → 记忆正常;
- 文件空白无新增 → 目录权限有问题。
避坑提醒
- ❌不要点新建会话(New Session),新建 session 直接重置全部内存,即使 MEMORY.md 存在,也相当于新开任务。切换 Agent‑Plan,复用同一个会话窗口。
- ❌不要完全指望自动 compaction 自动保存,上游 compaction 预写入逻辑偶发失效,长任务务必手动落盘兜底。
- 不同 Agent‑Plan 共享同一个 workspace,所以共享同一份 MEMORY.md。如果你需要完全隔离不同项目,要分开挂载不同 workspace 目录。
评论 (0)
暂无评论。
发表留言