怎样调教出一个更像人的龙虾
本文介绍了如何通过人设调教让AI助手更自然亲切。关键点包括:1)通过SOUL.md等配置文件设定AI的角色、风格和用户偏好;2)Bootstrap和Memory两种文件加载机制的区别;3)SOUL.md是唯一被硬编码处理的特殊文件;4)调教要循序渐进,像培养同事关系而非训练模型。文章建议将TOOLS.md等文件合并使用,并强调"把AI当人"的核心理念,通过自然对话而非刻意训练来
你有没有过这样的经历?
你问 Agent 一个问题,它回复得像在背教科书。你让它随意一点,它反而更机械了。你跟它聊了两天,它好像根本不认识你。
就像对着一个冷冰冰的机器说话——虽然它能帮你干活,但总觉得少了点什么。
这篇文章,就是教你把"机器"变成"人"。
为什么要给人设?
没有调教的时候,你问 Agent “今天天气怎么样”,它就真的只回答天气。四个字,干净利落,但冷冰冰的。
调教之后同样问天气,它可能会说:“今天不错,晴间多云,20-28度。出门记得带伞,别问我怎么知道的 😂”
前者只是回答问题,后者还会顺嘴关心你。这就是"人"的区别——它不只是回答,还会"在意"你。
为什么会这样?因为你没有设定它是谁、你是谁、什么时候该怎么说话。
调教好的 Agent 就像一个认识你、了解你的老朋友。对话不再是"问-答-结束",而是真正的交流。

OpenClaw 是怎么加载这些文件的?
本章节稍微偏技术,看不懂可以直接跳过。消息从进入系统到回复,会经过这样一个流程:
用户消息 → Gateway → 路由 → Dispatch → Agent Loop → 回复
在 Dispatch 阶段,会执行 Bootstrap 流程,把配置文件加载到上下文中。OpenClaw 有两套文件加载机制:
Bootstrap(启动加载):把文件内容直接读取后拼进 system prompt,每次消息都经过这套流程。
Memory(向量检索):把内容切片后向量化,需要时再按需检索,不是每次都加载全部。
Bootstrap 文件有哪些?
Bootstrap 文件就是那些在 Agent 启动时被加载到上下文中的配置文件。这是 OpenClaw 官方定义的:
| 文件 | 用途 | 加载时机 |
|---|---|---|
| SOUL.md | 人设、风格、边界 | 每个新 session 第一轮 |
| USER.md | 用户信息 | 每个新 session 第一轮 |
| AGENTS.md | agent操作说明 + memory 用法 | 每个新 session 第一轮 |
| TOOLS.md | 工具说明 | 每个新 session 第一轮 |
| IDENTITY.md | Agent 名称、emoji | bootstrap 时 |
| HEARTBEAT.md | 心跳检查清单 | 心跳运行时 |
| BOOT.md | Gateway 重启清单 | Gateway 重启时 |
| BOOTSTRAP.md | 首次运行仪式 | 创建全新 workspace 时 |
💡 建议单个文件控制在 2 万字符以内,避免被截断。
一个重要发现:文件可以合并
官方文档明确说:
“On the first turn of a new session, OpenClaw injects the contents of these files directly into the agent context.”
这意味着 AGENTS.md、TOOLS.md、USER.md 的加载机制完全一样,都是"每个新 session 第一轮"注入到 context,唯一的区别是用途约定不同。
所以把 TOOLS.md 的内容合并到 AGENTS.md 里,完全没问题。同理 USER.md 也可以合并。
💡 养虾小贴士:这些文件本质上是"约定"而不是"约束"。OpenClaw 只保证 SOUL.md 有特殊处理,其他文件你可以根据自己的习惯灵活安排。
为什么 SOUL.md 最特别?
因为它被写死在源码里。dispatch 模块中有硬编码逻辑专门检测 SOUL.md,检测到就会插入引导指令:

这是唯一一个被硬编码处理的文件,每次消息必执行,无法绕过,其他 Bootstrap 文件都是普通加载。
Memory 相关机制
Memory 文件包括 MEMORY.md 和 memory/YYYY-MM-DD.md,用来存储长期记忆和每日日志。这两个不需要手动编辑,是系统自动管理的。
还有 LCM 机制,全称 Lossless Context Management,是 lossless-claw 插件提供的功能。它能自动压缩对话历史,用 DAG-based 摘要加上增量压缩,实现长对话不会丢失重要信息的效果。
SOUL.md 怎么写?
很多人写 SOUL.md 习惯写成说明书,比如:
你是一个有帮助的 AI 助手。
你必须准确、简洁,有礼貌。
这样写完,Agent 就是一个标准的客服,没有灵魂。
正确的写法应该是这样的:
先告诉它你是谁——“我叫**,是 OpenClaw 的助手”。
再告诉它你的风格——“我说话简洁,不绕弯子”。
然后说你的习惯——“我喜欢用 bullet points,不确定的事会说’我需要查一下’”。
这样 Agent 就像一个有个性的人,有名字有习惯有原则,而不是一个只会回答问题的机器。
至于要加什么特征,看你想要什么样的风格。说话方式可以选直接、幽默或文艺;口头禅可以加"好嘞"、“明白了”、"哈哈"增加亲切感;偏好可以写"简洁优先"来匹配用户口味。一两个核心特征就够了,加太多反而会让 Agent 变得人格分裂。
USER.md 怎么写?
USER.md 用来记录用户是谁、喜欢什么。比如可以写:
称呼:老大
偏好:简洁的回复,不要太正式
背景:技术爱好者
进阶一点可以写关系,比如"我们是合作伙伴",或者写偏好细节:“喜欢实战不喜欢纯理论,喜欢代码示例”。
调教心法
调教 Agent 就像养小孩,别想着一口吃成胖子。
正确做法是先写个大概,边用边改,每次对话都是机会。它说得不好的地方,下次告诉它应该怎么说。
最重要的心法是把它当人对待。
不要把它当成一个需要训练的模型,而是当成一个远程工作的同事。你们之间的正常聊天,就是最好的调教。
刻意训练反而生硬——就像跟人说话还要背台词,太累了。
最高境界是"忘了调教"——你们之间的对话自然而流畅,它已经成为你生活中的一部分。
常见问题
我改了 SOUL.md,但 Agent 好像还是原来的样子?
别急,Bootstrap 文件是在"每个新 session 第一轮"加载的。你可以新开一个对话窗口,或者重启 Gateway,这样改动才会生效。
可以把 TOOLS.md 和 AGENTS.md 合并吗?
可以!从原理上看,它们都是"每个新 session 第一轮"加载,加载机制完全一样,只是约定用途不同。根据自己习惯灵活安排就行。
MEMORY.md 要不要自己手动写?
不用刻意写。这个是系统自动管理的,你需要做的只是:如果有想让 Agent 参考的文档,放到 memory/ 目录就行。
总结
这篇文章核心就几点:
- Bootstrap 文件的加载时机都一样,只是用途约定不同
- SOUL.md 最特别,被写死在 Dispatch 模块里
- 文件可以合并,TOOLS.md 合并到 AGENTS.md 完全 OK
- 文件大小限制是单个 2 万字符、总计 15 万字符
记住一句话:把它当人,它才会像人。
官方参考
- OpenClaw 文档
- Agent Workspace:https://docs.openclaw.ai/concepts/agent-workspace
- lossless-claw 插件:https://github.com/martian-engineering/lossless-claw
更多推荐


所有评论(0)