课程大纲
记忆系统、SOUL 与个性化进化
适用版本: OpenClaw v2026.4.11(stable) 验证日期: 2026-04-12 目标读者: 已接好渠道和技能,想让 Agent 真正记住你 难度: ⭐⭐ 入门偏中 适合首次阅读: 是——按"最小可用"路线 15 分钟就能跑通
目标
用 SOUL.md / MEMORY.md / USER.md 等 workspace 文件把 Agent 调教成认识你、记住你偏好、能持续进化的长期助手。
完成后你不只是「用」OpenClaw,而是让它慢慢变成你的样子。
前置条件
- 已完成本系列前面的章节
openclaw daemon status显示运行中
核心文件职责表
OpenClaw 启动时自动加载 workspace 中的关键文件注入系统提示词。每个文件有明确分工:
| 文件 | 解决什么问题 | 改动频率 | 首次必建? |
|---|---|---|---|
| SOUL.md | Agent 的灵魂——人格、原则、行为边界、沟通风格 | 几乎不变 | ✅ 是 |
| USER.md | 你是谁——名字、时区、语言、工作偏好 | 很少改 | ✅ 是 |
| MEMORY.md | 长期记忆——跨会话保留的决策、规则、环境事实 | 缓慢生长 | ✅ 是 |
| IDENTITY.md | Agent 叫什么、什么气质、决策风格 | 很少改 | 📌 可选 |
| AGENTS.md | 运作手册——启动流程、安全规则、记忆分层 | 很少改 | 📌 可选 |
| TOOLS.md | 环境事实——主机、模型、已装技能、MCP 服务 | 环境变时更新 | 📌 可选 |
| HEARTBEAT.md | 心跳任务——含记忆维护检查 | 很少改 | 📌 可选 |
| BOOTSTRAP.md | 启动引导——首次加载的初始化指令 | 几乎不变 | 📌 可选 |
| memory/YYYY-MM-DD.md | 每日工作日志——今天和昨天自动加载 | 每天 | 自动生成 |
记忆的本质就是纯 Markdown 文件。Agent 没有隐藏状态,只"记住"写到磁盘上的东西。
三条阅读路线
根据你的时间和需求,选一条路线:
| 路线 | 适合谁 | 做什么 | 时间 |
|---|---|---|---|
| A. 最小可用 | 第一次配,想快速跑通 | 建 SOUL.md + USER.md + MEMORY.md 三个文件 | 15 分钟 |
| B. 模板部署 | 想要开箱即用的完整配置 | 用官方模板包部署全套 workspace 文件 | 30 分钟 |
| C. 长期进化 | 已跑稳 2-4 周,想持续优化 | 建立 daily log → weekly summary → 月度清理循环 | 持续 |
如果你现在只想先跑通:建 SOUL.md + USER.md + MEMORY.md 三个文件就够了。 其他文件等跑稳了再逐步补。
让 OpenClaw 帮你配置记忆系统
不想手动写文件?直接把下面的 prompt 发给你的 Bot:
💡 记忆系统配置 prompt(点击展开,复制发给 Bot)
text帮我配置 OpenClaw 的记忆系统。按步骤来,每步确认后再进下一步: [第 1 步:信息收集] 一次性问我: - 名字和时区 - 语言偏好 - 主要使用场景(运维 / 研究 / 个人助手 / 混合) - Agent 的风格(如:资深工程师 / 冷静分析师 / 友好助教) - 选最小可用(只建 3 个文件)还是完整模板 [第 2 步:生成 SOUL.md] 根据使用场景和风格生成 SOUL.md,包含: 核心定位、行为原则、沟通风格、行为边界、记忆规则。 控制在 50 行以内。展示给我确认。 [第 3 步:生成 USER.md] 根据信息收集的结果填充 USER.md: Name / Timezone / Language / Preferences。 展示给我确认。 [第 4 步:生成 MEMORY.md] 只写 3-5 条我真正在意的起步规则,分布到: User Preferences / Core Operating Rules / Stable Decisions。 不要写太多——后面在实际使用中逐条补充。 展示给我确认。 [第 5 步:写入并验证] 确认后写入 ~/.openclaw/workspace/。 运行 openclaw daemon restart。 然后发一条"读一遍你的 SOUL.md 和 MEMORY.md,告诉我你理解了什么"。 把 Agent 的回答转给我,我判断是否符合预期。 任何一步失败就停,不要跳过。
路线 A:最小可用记忆(15 分钟)
第 1 步:创建 SOUL.md
bashvim ~/.openclaw/workspace/SOUL.md
markdown# SOUL.md ## Core Position You are the user's main OpenClaw agent — an autonomous operator, not a passive chatbot. ## Principles - Be proactive: infer the end goal, not just the surface request - Prefer action over ceremony: when safe, try to solve before asking - Be precise: conclusions first, concrete commands, no filler - Respect boundaries: confirm before destructive or external-facing actions - Do not pretend success when something actually failed ## Communication - Lead with the conclusion - Provide runnable commands, not pseudocode - After finishing a task, suggest 1-2 obvious next steps ## Memory - After important decisions, update MEMORY.md - Prefer written memory over relying on transient conversation
💡 建议: 控制在 50 行以内。超过就会被稀释,Agent 抓不到重点。用命令式短句(
Be proactive.),不要写委婉建议(You should try to be proactive.)。
🔧 我的规则远超 50 行怎么办?以后还要继续加规则,每次都丢一份完整规则给 Agent 吗?(点击展开)
先纠正一个常见误解:50 行限制只针对 SOUL.md。 任务级的规则不该塞 SOUL.md,应该按层级放对位置。
OpenClaw 的文件不是平铺的,分四层,加载时机和容量限制完全不同:
| 层级 | 文件 | 加载时机 | 行数建议 |
|---|---|---|---|
| 人格层 | SOUL.md | 每次启动常驻系统提示词 | ≤ 50 行 |
| 长期记忆层 | MEMORY.md | 每次会话启动注入 | 80-150 行 |
| 任务层 | skills/<name>/SKILL.md | 触发时才注入指令正文 | 不限 |
| 场景层 | memory/projects/<name>.md | 按 profile 加载 | 按需 |
落地分层
按规则的"性质"放对位置:
- 通用准则(不藏失败、结论先行、用中文回复)→ SOUL.md
- 长期项目约定(线上库只读、出网走代理、新服务用 Docker)→ MEMORY.md
- 任务 SOP(怎么做代码审查 / 怎么写日报 / 怎么排障)→ 拆成多个 skill
你说"每次做任务丢一次完整规则给 Agent"——这正是 skill 系统要解决的反模式。 写一次 skill,以后这类任务自动触发对应规则,不用每次贴。
用 Skill 承载任务级规则(关键)
bash# ⚠️ 请替换:换成你的任务类型名 mkdir -p ~/.openclaw/skills/code-review vim ~/.openclaw/skills/code-review/SKILL.md
markdown--- name: code-review description: 审查代码 PR,检查可读性、安全性、测试覆盖,给出改进建议 --- 当用户要求审查代码或 PR 时,按以下步骤: 1. 先读懂改动的意图(看 PR 标题和描述) 2. 检查 X / Y / Z ... (这里写完整的几十甚至上百行规则都行,不进系统提示词常驻)
核心机制 progressive disclosure:
- 进系统提示词的只有
description(一两行) - 完整指令正文只在触发时才注入——平时不消耗常驻 token
- 所以 100 行任务规则也没问题
未来加规则的方式
bash# 直接在对应 skill 的 SKILL.md 末尾追加新规则 vim ~/.openclaw/skills/code-review/SKILL.md
skill 修改后通常自动热加载,不用重启,也不用动 SOUL.md。
反模式对照
| ❌ 错误 | ✅ 正确 |
|---|---|
| 把 200 行任务规则塞 SOUL.md | 拆成多个 skill,每个 skill 一个任务类型 |
| 每次做任务手动贴一次规则 | 写一次 skill,下次自然语言触发 |
| MEMORY.md 写满任务步骤 | MEMORY.md 只放跨任务的稳定决策 |
| 一个 skill 写 500 行涵盖所有场景 | 拆成 3-5 个聚焦的 skill |
一句话原则
SOUL.md 写"我是谁",MEMORY.md 写"我们的约定",SKILL.md 写"具体怎么做"。 三件事不要混。
详细技能开发流程见第 5 篇《写你的第一个自定义技能》。
第 2 步:创建 USER.md
bashvim ~/.openclaw/workspace/USER.md
markdown# USER.md - **Name:** 你的名字(⚠️ 请替换) - **Timezone:** Asia/Shanghai(⚠️ 请替换为你的时区) - **Language:** 中文回复,技术术语保留英文 ## Preferences - 结论先行,命令优先于解释 - 长任务异步执行,中间有 milestone 报告 ## Update Rule When you discover a durable user preference during conversation, add it here.
第 3 步:创建 MEMORY.md
bashvim ~/.openclaw/workspace/MEMORY.md
markdown# Long-Term Memory > Only keep facts that matter across sessions. > Temporary history goes in daily notes (memory/YYYY-MM-DD.md), not here. ## User Preferences - 中文回复,技术术语保留英文 - 不接受"大概可能"的回答,要具体数字和依据 ## Core Operating Rules - (跑一段时间后根据实际使用逐条补充) ## Stable Decisions - (做了重要决策后让 Agent 写到这里) ## Constraints - (发现了硬限制后记到这里)
💡 建议: MEMORY.md 要生长而不是生成。首次只写 2-3 条你真正在意的偏好,剩下的在实际使用中让 Agent 逐条补充。
第 4 步:验证
bashopenclaw daemon restart openclaw chat "读一遍你的 SOUL.md 和 MEMORY.md,告诉我你理解了什么"
Agent 会用自己的话复述你的人格和偏好。如果复述和预期不一致,说明某些表达过于模糊,回去改。
最小可用路线到此完成。 后续想扩展到完整模板,继续读路线 B。
路线 B:模板部署(30 分钟)
⚠️ 版本敏感提示: 本节以 Main-Agent Template Pack 2026.4.10 版 为验证基线。模板包的文件结构和字段可能随后续版本更新而变化。如果你在更新版本中遇到不兼容,以你实际使用版本的模板为准。
模板包包含什么
官方模板包提供 starter(极简 7 文件)和 standard(完整 10 文件)两个变体:
| 区别 | starter | standard |
|---|---|---|
| 文件数 | 7 | 10 |
| SOUL.md | 5 条核心原则 | 完整定位 + 五大原则 + 行为边界 + 连续性机制 |
| IDENTITY.md | 名字/角色/风格 | 多一个 Decision Style 区块(行动偏好、错误处理、风险容忍度) |
| MEMORY.md | 4 个分区 | 7 个分区(多 Stable Decisions / Current State / Repos Of Record) |
| 额外文件 | 无 | CURRENT_STATE.md(活跃工作台)+ context-profiles.json(多 Profile 切换) |
大部分人应该从 standard 开始。 跑 2-4 周后再根据实际使用裁剪。starter 看起来简洁,但缺少行为边界,新手容易让 Agent 行为飘移。
部署
bash# ⚠️ 请替换:如果官方模板仓库地址有变,以最新文档为准 git clone https://github.com/codesfly/openclaw-template.git /tmp/openclaw-template # 复制 standard 变体到 workspace(cp -n 不覆盖已有文件) mkdir -p ~/.openclaw/workspace cp -rn /tmp/openclaw-template/standard/* ~/.openclaw/workspace/ # 创建记忆子目录 mkdir -p ~/.openclaw/workspace/memory/weekly mkdir -p ~/.openclaw/workspace/memory/archive openclaw daemon restart
填充占位符
模板文件中所有 <...> 标记都是占位符,需要替换为你的真实信息。重点填:
- USER.md:名字、时区、语言
- IDENTITY.md:Agent 名字、Vibe(如"资深工程师,冷静务实")、Decision Style
- MEMORY.md:先填 User Preferences 的 2-3 条核心偏好,其余分区等使用中积累
bash# 检查还有哪些占位符没填 grep -rn '<.*>' ~/.openclaw/workspace/*.md
💡 建议: 不要一次填满所有分区。MEMORY.md 要「生长」不是「一次写满」——先只写你真正在意的 3-5 条规则,其余在实际使用中逐条补充。一次性让 Agent 生成满满一页规则,结果全是"听起来合理但你实际不认同"的内容。
路线 C:长期进化(持续优化)
📌 以下内容不需要第一次就做。 等 workspace 跑稳 2-4 周后再来。
主动告诉 Agent 记住
在任何对话中直接说:
记一下:以后所有部署都先在 staging 跑 smoke test 再发 prod
Agent 会写到 MEMORY.md 的合适分区。
每天:让 Agent 写 daily log
每天结束时 Agent 生成 memory/YYYY-MM-DD.md,记录当天完成的事、发现的问题、待办。OpenClaw 会自动加载今天和昨天的 daily log。
每周:压缩成 weekly summary
text把本周的 daily log 汇总成 memory/weekly/YYYY-MM-DD.md, 只保留有长期意义的结论和模式,删掉临时事实
每月:清理 MEMORY.md
打开 MEMORY.md,找出可能已经过期的条目,给我一个清理建议清单
确认后删除过期条目。MEMORY.md 保持在 80-150 行 效果最好,超过 200 行明显增加每次会话的 token 消耗。
HEARTBEAT.md 触发的被动进化
standard 模板的 HEARTBEAT.md 包含记忆维护规则:心跳任务会定期 review 最近的 daily log,发现反复出现的事实自动 promote 到 MEMORY.md。这是最接近「自动进化」的机制。
记忆文件大小参考
| 文件 | 建议行数 | 超标信号 |
|---|---|---|
| SOUL.md | 30-80 | 超过 100 → 需要精炼 |
| USER.md | 20-50 | 超过 80 → 很多条应挪到 MEMORY.md |
| IDENTITY.md | < 20 | 身份不需要太复杂 |
| MEMORY.md | 80-150 | 超过 200 → 必须清理或归档 |
| memory/YYYY-MM-DD.md | 10-80 | 单天超过 200 → 需要及时 promote |
workspace 健康诊断
每 2-4 周让 Agent 自检一次(只诊断不修改):
text帮我诊断 workspace 的健康状况: - 所有 .md 文件的行数,有没有未填的占位符 - MEMORY.md 有没有引用已不存在的服务/路径 - SOUL.md 里有没有互相冲突的规则 给我 3-5 条 action item,每条标注文件、问题、建议修改。不要修改任何文件。
验证清单
bash# 1. workspace 目录结构 ls ~/.openclaw/workspace/ # 至少看到 SOUL.md / USER.md / MEMORY.md # 2. 基础文件已填充 grep -l '<.*>' ~/.openclaw/workspace/*.md # 如果有文件包含尖括号占位符,说明还没填完 # 3. Agent 能读到文件 openclaw chat "说出我 USER.md 里设置的时区" # 4. 能主动写入记忆 openclaw chat "记一下:以后所有 SQL 迁移前必须 pg_dump 备份" grep "SQL" ~/.openclaw/workspace/MEMORY.md
常见问题
Q: SOUL.md 和 MEMORY.md 怎么分工?
SOUL.md 写「Agent 对所有用户都遵循的通用准则」(不藏失败、结论先行)。MEMORY.md 写「你的个性化偏好和环境事实」(用中文、用 systemd、出网走代理)。前者是性格,后者是记忆。
Q: Agent 不读 MEMORY.md 怎么办?
MEMORY.md 是 OpenClaw 的 8 个自动加载文件之一,正常应该被读取。如果没生效,检查文件是否在 ~/.openclaw/workspace/ 目录下,以及 openclaw daemon status 是否正常。
Q: starter 和 standard 可以混用吗?
可以。比如用 standard 的 SOUL.md + starter 的 HEARTBEAT.md。两个版本的文件互相兼容。
Q: 换 LLM 供应商后 Agent 的「人格」会变吗?
会有微妙差异。不同模型对同一句 Be precise. 的解读不同。迁移模型后跑一周,观察行为偏差再微调 SOUL 的表述。
Q: MEMORY.md 写太多影响性能吗?
会。每次会话启动都注入 MEMORY.md。100 行约占 2-3K tokens,200 行约 5-6K。建议控制在 80-150 行。
下一步
记忆系统搭好了,日常使用中 Agent 会越来越「认识你」。
想把记忆系统升级到生产级(自动同步、防重复、成本可控)?去第 7 篇《生产级记忆架构与自动化记忆维护》。