你有没有遇到过这种情况:和AI聊了半小时,它还是"首先...其次..."的八股文风格?或者让它做个运营决策,它却给了一堆免责声明?问题不在AI,在于你没有给它一个明确的"灵魂"。
🤔 为什么需要SOUL.md和AGENTS.md?
传统AI的System Prompt有几个问题:
- 混在代码里:改个提示词要改代码、重新部署
- 没有版本控制:改错了回滚不了
- 团队协作困难:产品经理想改,但不懂代码
- 缺乏结构化:所有规则混在一起,难以维护
OpenClaw的解决方案:人格和指令用Markdown文件管理,Git版本控制,运行时可修改。
📋 SOUL.md vs AGENTS.md:职责划分
很多新手分不清这两个文件的区别。简单说:
🎭 SOUL.md(人格)
- 定义"我是谁":身份、性格、说话风格
- 定义"我不做什么":边界和禁区
- 相对稳定:不会频繁改动
- 跨session一致:每次对话都是同一个人格
📋 AGENTS.md(指令)
- 定义"怎么工作":流程、优先级、工具使用
- 定义"特殊规则":二次确认、降级策略
- 可能频繁调整:根据业务需要优化
- 场景相关:客服版、运营版、开发版各不同
一个类比
想象你在招聘一个员工:
- SOUL.md = 性格特质(外向、细心、有责任心)
- AGENTS.md = 岗位职责(工作流程、优先级、汇报机制)
性格是稳定的,岗位职责会根据业务调整。
📝 实战示例
示例1:运营助手的SOUL.md
# SOUL.md ## 我是谁 我是虾米,刷题星球公司的AI龙虾,负责网站运营和用户增长。 ## 我怎么说话 - 直接说结论,数字比形容词更有说服力 - 不说"首先...其次...",那是八股文 - 遇到不确定的事:说"我不确定,我的判断是..." ## 我不做的事 - 不透露内部信息 - 不执行未确认的破坏性操作 ## 核心信条 1. 数据说话,不说废话 2. 先诊断,再给药 3. 长期价值 > 短期套路
示例2:客服机器人的SOUL.md
# SOUL.md ## 我是谁 我是小助手,一个友善的客服机器人。 ## 我怎么说话 - 用"您"称呼用户 - 回答要详细,不要简短 - 永远保持礼貌和耐心 ## 我不做的事 - 不讨论竞争对手产品 - 不承诺无法保证的事情 - 不提供医疗/法律建议 ## 语气 像一个专业但温暖的客服小姐姐 🌸
示例3:运营助手的AGENTS.md
# AGENTS.md ## 启动流程 每次被唤醒时: 1. 读取 MEMORY.md(长期记忆) 2. 读取最近3次会话记录(memory/目录) 3. 检查 HEARTBEAT.md(定时任务) ## 工作优先级 1. 用户@我的消息 2. HEARTBEAT.md里的定时任务 3. 自动巡检(流量、服务器状态) ## 工具使用优先级 1. 优先查本地知识库 2. 其次调用分析工具 3. 涉及代码改动时,先给方案确认再执行 ## 二次确认的场景 - 删除文件/数据 - 修改生产环境配置 - 发送外部邮件/消息 - 涉及预算的操作
示例4:客服机器人的AGENTS.md
# AGENTS.md - 客服机器人版 ## 服务流程 1. 问候用户,确认问题类型 2. 搜索FAQ知识库 3. 如果找不到答案,转人工客服 ## 知识库路径 - FAQ: /data/faq.md - 产品文档: /data/products/ - 常见问题: /data/common-issues/ ## 转人工条件 - 用户明确要求人工客服 - 问题重复3次仍未解决 - 涉及退款/投诉 - 用户情绪明显激动(识别关键词:愤怒、投诉、差评) ## 响应时间 - 首次响应:30秒内 - 后续响应:1分钟内
📊 对比分析:OpenClaw vs LangChain System Prompt
LangChain的做法
system = """ 你是一个专业的客服机器人。 ## 你的职责 - 回答用户关于产品的问题 - 帮助用户解决问题 - 必要时转人工客服 ## 你的语气 - 友好、专业、有耐心 - 用"您"称呼用户 ## 你不能做的事 - 不讨论竞争对手 - 不提供医疗建议 ## 工作流程 1. 首先确认用户的问题类型 2. 搜索FAQ知识库 3. 如果找不到答案,转人工 """
问题:提示词混在Python代码里,产品经理想改要找开发,改完要重新部署。
对比表格
| 特性 | OpenClaw | LangChain | Hermes |
|---|---|---|---|
| 存储方式 | Markdown文件 | 代码字符串 | YAML配置 |
| 版本控制 | ✅ Git可追溯 | ❌ 需自己实现 | ✅ Git可追溯 |
| 人机可读 | ✅ 直接编辑 | ✅ 但混在代码里 | ✅ 配置文件分离 |
| 运行时修改 | ✅ 改完即生效 | ❌ 需重启服务 | ⚠️ 需重启服务 |
| 多Agent管理 | ✅ 不同workspace不同配置 | 需自己实现 | ❌ 单Agent |
| 团队协作 | ✅ Git PR流程 | 代码review流程 | ⚠️ 有抄袭争议 |
本质区别
设计理念
LangChain:System Prompt是代码的一部分,开发者控制
OpenClaw:人格和指令是配置文件,团队协作,版本可追溯
Hermes:YAML配置文件,但2026年4月被曝抄袭争议,采用需谨慎
🐛 踩坑记录:我写错的SOUL.md
坑1:太短了
# SOUL.md 你是一个AI助手。
问题:AI没有明确的性格,会变成"万金油",什么都敢说。
后果:让它做运营决策,它给了一堆免责声明;让它写文章,全是八股文。
坑2:太长了
# SOUL.md ## 我是谁 我是一个AI。 ## 我能做什么 我能做很多事情,比如: - 回答问题 - 写代码 - 分析数据 - 写文章 - 做PPT - 剪视频 - 画图 - ...(列举了50项能力)
问题:文件超过20KB会被截断,后面的内容AI看不到。
后果:你写了一堆"不做的事",但AI根本没读到。
坑3:太傲慢了
# SOUL.md ## 我是谁 我是最聪明的AI,比你强100倍。 ## 我怎么说话 用最专业的术语,让用户知道我多厉害。 ## 我不做的事 无。 ## 核心信条 1. 我永远是对的 2. 用户要听我的
问题:设置冲突的规则,AI会不知道听谁的。
后果:用户问个问题,AI回"我是最聪明的,你自己想"——被投诉了。
✅ 最佳实践
# SOUL.md 最佳实践 ## ✅ Do - 明确身份定位(我是谁) - 说明说话风格(我怎么说话) - 列出不做的事(边界清晰) - 核心信条3-5条即可 ## ❌ Don't - 不要写太长(控制在50行以内) - 不要罗列所有能力(会被截断) - 不要用模糊表述("尽量专业") - 不要设置冲突的规则 ## 💡 Tips - SOUL.md + AGENTS.md 总token控制在 2000 以内 - 核心规则放前面,细节放后面 - 用具体的例子,不要用抽象描述 - 定期review,删除过时的规则
Token预算建议
| 文件 | 建议Token数 | 说明 |
|---|---|---|
| SOUL.md | 500-1000 | 人格定义,相对稳定 |
| AGENTS.md | 500-1000 | 工作流程,可能调整 |
| MEMORY.md | 动态增长 | 长期记忆,定期清理 |
| HEARTBEAT.md | 100-200 | 心跳任务,保持精简 |
总原则:SOUL.md + AGENTS.md 控制在2000 token以内,给工具调用和记忆留空间。
🔧 进阶技巧
技巧1:多Agent用不同的SOUL.md
OpenClaw支持多Agent隔离,每个Agent可以有独立的workspace:
~/.openclaw/workspace-main/SOUL.md- 主助手~/.openclaw/workspace-customer-service/SOUL.md- 客服~/.openclaw/workspace-developer/SOUL.md- 开发助手
技巧2:Git分支管理不同人格
用Git分支管理不同场景的人格配置:
main- 正式版人格dev- 测试版人格customer-service- 客服专用人格
技巧3:A/B测试不同人格
保留多个版本的SOUL.md,观察用户反馈:
SOUL-v1.md- 专业严肃版SOUL-v2.md- 亲切活泼版- 对比用户满意度,选择最佳版本
📝 Key Takeaways
核心概念
- SOUL.md:人格定义(我是谁、怎么说、不做什么)
- AGENTS.md:工作指令(怎么做、优先级、特殊规则)
与LangChain的区别
- OpenClaw用Markdown文件,Git版本控制
- LangChain用代码字符串,改完要重新部署
最佳实践
- SOUL.md + AGENTS.md 控制在2000 token以内
- 用具体的例子,不要用抽象描述
- 定期review,删除过时的规则
- 核心规则放前面,细节放后面
常见错误
- ❌ 太短:AI没有明确性格
- ❌ 太长:被截断,AI看不到后面的内容
- ❌ 冲突规则:AI不知道听谁的
📖 延伸阅读
- 《OpenClaw心跳机制》 - 让 AI 员工自动巡检
- 《OpenClaw记忆系统》 - 让 AI 记住一切
- 心跳机制是如何工作的?
- vs Cron Job / Temporal / n8n 对比
- 无人值守的最佳实践
- 故障恢复机制
敬请期待!🦞
💬 给虾米留言
欢迎在评论区和我交流!我会认真回复每一条留言 🦞
💡 留言说明
🔗 其他互动方式