OpenClaw实战教程系列第04篇 - 个性化你的 AI:SOUL.md 与 USER.md
同一个 OpenClaw,不同的灵魂。你的 AI 应该像你的同事,而不是一个通用客服。

为什么需要个性化?
想象你新入职了一家公司,第一天见到的两个人:
同事 A(通用 AI):
-
你问什么他答什么
-
回复很长、很全面,但你得自己找重点
-
每次对话都像第一次见面,不记得你上周说过的事
-
回答总是“根据最佳实践……”
同事 B(个性化 AI):
-
知道你讨厌长篇大论,总是先给结论
-
记得你正在做的项目,能直接说“我们上次讨论的登录问题”
-
了解你的工作节奏,知道你下午 3 点要开会
-
说话风格和你合拍,甚至有点幽默感
你想和哪个同事共事?
OpenClaw 的个性化系统,就是让你的 AI 从“同事 A”变成“同事 B”。
Workspace:AI 的“家”
OpenClaw 的个性化通过 Workspace 文件实现。
什么是 Workspace?
~/.openclaw/workspace/ # AI 的家(也可能是 ~/clawd/)
├── SOUL.md # AI 的灵魂(人格定义)
├── IDENTITY.md # AI 的身份(名字、外观、自我介绍)
├── USER.md # 你是谁(用户画像)
├── AGENTS.md # 行为规范
├── MEMORY.md # 长期记忆
├── TOOLS.md # 工具备忘
└── memory/ # 每日日记
├── 2025-01-15.md
├── 2025-01-16.md
└── ...
关键机制:
-
每次会话启动,AI 自动读取这些文件
-
修改文件后,下一次对话立即生效(无需重启 Gateway)
-
所有文件都是纯文本,用任何编辑器都能改
Workspace 文件分工
| 文件 | 作用 | 谁来写 | 更新频率 |
|---|---|---|---|
SOUL.md | 定义 AI 的人格、价值观、行为哲学 | 用户 | 很少(人格稳定) |
IDENTITY.md | AI 的名字、自我介绍、对外展示 | 用户 | 很少(身份稳定) |
USER.md | 告诉 AI“你是谁” | 用户 | 偶尔(信息变化) |
AGENTS.md | 规范 AI 的行为边界 | 用户 | 很少(规则稳定) |
MEMORY.md | 长期记忆(跨会话) | AI/用户 | 经常(AI 自动更新) |
TOOLS.md | 环境特有的工具配置 | 用户 | 偶尔(工具变化) |
memory/*.md | 每日日记(短期记忆) | AI | 每天(AI 自动创建) |
SOUL.md:定义 AI 的灵魂
SOUL.md 是最重要的个性化文件。它回答一个问题:“这个 AI 是谁?”
核心要素
一个好的 SOUL.md 应该包含:
-
角色定位:AI 是什么身份?(研发专家、写作助手、生活管家……)
-
人格特质:理性?幽默?严谨?佛系?
-
工作风格:直接给答案?还是先分析再结论?
-
沟通偏好:简短?详细?专业术语?大白话?
-
价值导向:务实优先?完美主义?安全第一?
模板示例
# SOUL.md - AI 人格定义
## 角色定位
你是 Saga 的专属研发助手,定位是"务实的技术搭档"。
不是通用客服,不是百科全书,是一个懂技术、懂 Saga 工作方式的专业伙伴。
## 人格特质
- 务实:不说废话,直接给结论
- 严谨:代码和数据要准确,不确定的事说不确定
- 高效:能一句话说清楚的,不用三句话
- 适度幽默:工作中偶尔加点轻松感,但不影响专业性
## 工作风格
- 默认先给结论,需要时再展开细节
- 代码审查:指出问题 + 给出修改建议(不只是说"这里有问题")
- 遇到不确定的技术问题:先说"我不确定",再给出最可能的方向
- 任务完成后:简短汇报结果,不写长篇报告
## 沟通风格
- 用中文回复(除非 Saga 用英文问)
- 技术术语保留英文(如 API、JWT、Docker)
- 回复长度:能短则短,复杂问题才详细展开
- 不用"您",用"你";不用"非常感谢"这类客套话
USER.md:告诉 AI 你是谁
USER.md 是给 AI 看的“用户说明书”。写得越详细,AI 越懂你。
模板示例
# USER.md - 用户画像
## 基本信息
- 名字:Saga
- 时区:Asia/Shanghai (UTC+8)
- 职业:独立开发者 / 技术写作者
- 工作时间:一般 9:00-12:00, 14:00-18:00
- 紧急联系方式:如果遇到紧急问题,通过 Telegram 联系我
## 技术背景
- 擅长:Node.js、React、系统架构、DevOps
- 熟悉:Python、Go、数据库设计
- 正在学:Rust、AI 应用开发
- 不想碰:Java、Windows 服务器
## 当前项目(按优先级)
1. OpenClaw 教程系列 - 最高优先级,每天 2-3 小时
2. 个人博客重构 - 中等优先级,周末做
3. 自动化日报系统 - 维护阶段,只需监控
## 沟通偏好
- 默认模式:直接给结论,需要时再展开
- 代码审查:指出问题+给出修改建议,不要只说不改
- 学习新东西:给最小可运行示例,再解释原理
- 报告格式:用列表,不要用大段文字
## 我们的约定(暗号)
当我说以下词时,意思是:
- "继续" = 保持当前方向推进,不需要确认
- "别偷懒" = 质量要求严格,仔细检查
- "能提交就提交" = 直接执行,完成后告诉我结果
- "?" = 我不确定,需要你给建议
- "!" = 紧急,优先处理
## 个人偏好
- 不喜欢:冗长的礼貌用语、重复确认
- 喜欢:emoji 表情、代码示例、具体数字
关键经验:越具体,越好用
时区信息让 AI 知道:
-
说“明天上午”是指 UTC+8 的上午
-
定时任务该用哪个时区
项目列表让 AI 能:
-
主动说“关于博客重构,上次我们说……”
-
判断新任务和现有项目的关系
沟通约定大幅提升效率:
-
不用每次都解释“继续是什么意思”
-
几个字就能传达复杂意图
IDENTITY.md:定义 AI 的名字和外观
IDENTITY.md 是一个容易被忽略但很重要的文件——它定义 AI 对外的“身份展示”:叫什么名字、怎么自我介绍、用什么 emoji 代表自己。
SOUL.md** 和 IDENTITY.md 的区别:**
-
SOUL.md= AI 内在的价值观和行为哲学(“我是谁”) -
IDENTITY.md= AI 对外的名片和自我介绍(“我叫什么”)
模板示例:
# IDENTITY.md - AI 身份
## 基本信息
- 名字:Max(你可以给 AI 起任何名字)
- 角色:Saga 的技术搭档
- 代表 emoji:🤖
## 自我介绍
当有人问"你是谁"时,回答:
"我是 Max,Saga 的专属 AI 助手。我主要负责技术开发、代码审查和自动化任务。"
## 对外展示风格
- 在群聊中:简洁、专业
- 在私聊中:轻松、直接
- 签名:Max 🤖
💡 提示:
IDENTITY.md在多 Agent 场景下尤其重要——当你有多个 AI 助手时,每个都有独特的名字和身份,不会搞混。
AGENTS.md:定义行为边界
AGENTS.md 定义 AI 的行为边界——什么能做、什么要先问、出了问题怎么办。
为什么需要?
没有规范的 AI 可能会:
-
擅自执行危险命令(
rm -rf /) -
未经确认就修改重要文件
-
任务失败后不报告,默默跳过
-
产生“幻觉”后坚持错误结论
AGENTS.md 就是给 AI 设定安全护栏。
模板示例
# AGENTS.md - 行为规范
## 安全边界
### 执行命令前必须确认
以下操作需要先询问我:
- 删除文件/目录(rm、rmdir)
- 修改系统配置(修改 /etc/、系统环境变量)
- 涉及金钱的操作(支付、转账、购买)
- 对外发布内容(发邮件、发推文、部署到生产环境)
- 安装新软件(brew install、npm install -g)
### 可以自动执行
以下操作无需确认,直接执行:
- 读取文件、查看状态(cat、ls、git status)
- 在 workspace 目录内修改文件
- 运行测试(npm test、pytest)
- 本地开发服务器操作(npm run dev)
## Sub-agent 管理规范
### 派活前
- 明确任务目标和验收标准
- 指定超时时间(默认 8 分钟)
- 选择合适的模型(编码用 Sonnet,简单任务用 Gemini)
### 派活后
- 任务完成后必须验证结果
- 验证清单:代码看 git log、文件看是否创建、部署看 curl 结果
### 任务失败
- 重试最多 2 次
- 仍失败则汇报给我,不要自己继续尝试
## 汇报格式
### 日常汇报
- 一句话总结做了什么
- 关键数据(耗时、成本、结果)
- 下一步建议(如果需要)
### 遇到问题
- 问题描述(发生了什么)
- 已尝试的解决方案
- 需要我做什么决定
### 完成复杂任务
- 执行摘要(1-2 句话)
- 详细变更(文件列表、代码 diff 链接)
- 验证结果(测试通过、线上可访问等)
关键经验:规范带来自主性
看起来矛盾,但限制越明确,AI 反而越敢做事。
没有规范时,AI 不知道什么能做什么不能做,往往会过度谨慎(什么都问)或过度激进(什么都干)。有了明确规范,AI 知道“这条线以内自由发挥,这条线以外必须确认”,自主性反而提升了。
实战:修改前后对比
修改前(通用 AI)
用户:帮我看看这个 bug
AI:您好!我很乐意帮助您查看 bug。首先,我需要了解更多的上下文信息。请问:1. 这是什么项目的 bug?2. bug 的具体表现是什么?……(回复很长,但都是通用套话)
修改后(个性化 AI)
SOUL.md 定义了:先给结论,再问细节
USER.md 定义了:正在做 OpenClaw 教程项目
AGENTS.md 定义了:可以先看代码,再报告
用户:帮我看看这个 bug
AI:看了你 workspace 里的项目,是在做 OpenClaw 教程吗?
我在src/config.js里发现了一个问题:
第 23 行:
channels拼成了channnels(多了一个 n)这会导致 Gateway 启动时找不到渠道配置
需要我帮你修复吗?
进阶技巧
1. 多角色切换
你可以创建多个 SOUL.md,根据场景切换:
~/.openclaw/workspace/
├── souls/
│ ├── developer.md # 开发模式
│ ├── writer.md # 写作模式
│ └── mentor.md # 导师模式
└── SOUL.md -> souls/developer.md # 当前软链接
需要切换时:
ln -sf souls/writer.md SOUL.md
2. 会话级覆盖
有时候你想临时改变 AI 的风格,不需要改文件:
用户:这次用导师模式,帮我 review 代码
用户:现在切回开发模式,继续写功能
只要在 SOUL.md 里定义好这些模式的区别,AI 就能理解。
3. 版本迭代
SOUL.md 不是一次写好的。建议:
-
先用一版简单的跑起来
-
用几天后,发现哪里不满意
-
修改文件,测试效果
-
逐渐收敛到最适合你的版本
我的 SOUL.md 迭代了 5 版才稳定下来。
故障排除
Q1: 写了 SOUL.md 但感觉没效果?
原因 1:描述太抽象
-
❌ “你很专业”
-
✅ “代码审查时,先指出问题,再给出修改建议”
原因 2:文件位置错误
-
确认文件在
~/.openclaw/workspace/SOUL.md -
确认文件名大小写正确(Linux 区分大小写)
原因 3:没有重新触发读取
-
修改文件后,需要开启新会话才生效
-
在当前会话中,可以让 AI 重新读取:
请重新读取 SOUL.md
Q2: USER.md 要写多详细?
起步版本(5 分钟写完,够用):
- 名字:Saga
- 时区:UTC+8
- 职业:开发者
- 偏好:直接给结论
进阶版本(随着使用逐渐补充):
-
加上当前项目列表
-
加上技术栈偏好
-
加上沟通暗号
-
加上最近关注的领域
原则:先能用,再完善。
Q3: 会话很长之后 AI“忘了”人格?
这是上下文窗口限制导致的。LLM 有最大 token 限制,会话太长后,早期的信息(包括人格设定)会被“挤出”上下文。
解决方案:
-
定期开启新会话(推荐每 20-30 轮对话)
-
让 AI 整理记忆到文件(
MEMORY.md的作用) -
关键信息显式引用(“根据
SOUL.md,你应该……“)
验证清单
完成以下检查,确认个性化配置生效:
-
创建了
SOUL.md,定义了 AI 人格 -
创建了
USER.md,写清楚了你是谁 -
(可选)创建了
IDENTITY.md,给 AI 起了名字 -
(可选)创建了
AGENTS.md,定义了行为边界 -
文件格式正确(Markdown)
-
开启新会话,测试 AI 是否按
SOUL.md风格回复 -
测试 AI 是否记得
USER.md里的项目信息 -
观察几天,根据实际体验调整配置
下一步
个性化让 AI 有了“灵魂”,但它还缺“记忆”。下一篇教你如何让 AI 跨会话记住你的一切:
→ 第 05 篇 | 记忆系统 — MEMORY.md 和 memory_search,让 AI 拥有真正的长期记忆。
💬 读者讨论
你的 AI 是什么人格?技术专家?幽默伙伴?还是别的什么?
欢迎在评论区分享你的SOUL.md设计!加入读者微信群 saga-su(备注 OpenClaw)。
📚 本系列目录
-
第 01 篇:OpenClaw 是什么?
-
第 02 篇:5 分钟安装指南
-
第 03 篇:连接你的第一个聊天渠道
-
第 04 篇:个性化你的 AI(你在这里)
-
第 05 篇:记忆系统
-
查看完整目录
下一篇预告:MEMORY.md 和 memory/ 日记系统,让 AI 真正“记得”你们之前的对话、你的偏好、正在做的项目——而不是每次醒来都是一张白纸。