课程大纲
课程大纲系列主页
学习进度已完成 0/12

记忆系统、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.mdAgent 的灵魂——人格、原则、行为边界、沟通风格几乎不变✅ 是
USER.md你是谁——名字、时区、语言、工作偏好很少改✅ 是
MEMORY.md长期记忆——跨会话保留的决策、规则、环境事实缓慢生长✅ 是
IDENTITY.mdAgent 叫什么、什么气质、决策风格很少改📌 可选
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

bash
vim ~/.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

bash
vim ~/.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

bash
vim ~/.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 步:验证

bash
openclaw daemon restart
openclaw chat "读一遍你的 SOUL.md 和 MEMORY.md,告诉我你理解了什么"

Agent 会用自己的话复述你的人格和偏好。如果复述和预期不一致,说明某些表达过于模糊,回去改。

最小可用路线到此完成。 后续想扩展到完整模板,继续读路线 B。


路线 B:模板部署(30 分钟)

⚠️ 版本敏感提示: 本节以 Main-Agent Template Pack 2026.4.10 版 为验证基线。模板包的文件结构和字段可能随后续版本更新而变化。如果你在更新版本中遇到不兼容,以你实际使用版本的模板为准。

模板包包含什么

官方模板包提供 starter(极简 7 文件)和 standard(完整 10 文件)两个变体:

区别starterstandard
文件数710
SOUL.md5 条核心原则完整定位 + 五大原则 + 行为边界 + 连续性机制
IDENTITY.md名字/角色/风格多一个 Decision Style 区块(行动偏好、错误处理、风险容忍度)
MEMORY.md4 个分区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

填充占位符

模板文件中所有 <...> 标记都是占位符,需要替换为你的真实信息。重点填:

  1. USER.md:名字、时区、语言
  2. IDENTITY.md:Agent 名字、Vibe(如"资深工程师,冷静务实")、Decision Style
  3. 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.md30-80超过 100 → 需要精炼
USER.md20-50超过 80 → 很多条应挪到 MEMORY.md
IDENTITY.md< 20身份不需要太复杂
MEMORY.md80-150超过 200 → 必须清理或归档
memory/YYYY-MM-DD.md10-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 篇《生产级记忆架构与自动化记忆维护》

记忆系统、SOUL 与个性化进化 | 资讯狗 | Zixungou