在使用 OpenClaw 的过程中,workspace 目录下有三个核心配置文件经常让人搞混:AGENTS.md、SOUL.md、TOOLS.md。它们各有分工,搞清楚之后定制 Agent 会顺手很多。
三个文件的定位
AGENTS.md — 行为规范
这是 Agent 的岗位说明书,定义:
- Agent 的职责范围(能做什么、不能做什么)
- 工作流程和处理逻辑
- 安全红线(绝对禁止的操作)
- 工具权限范围
- 记忆管理规则
- 多 Agent 协作规范
简单说,Agent 的行为边界都在这里定义。
SOUL.md — 人格风格
这是 Agent 的灵魂设定,定义:
- 沟通风格(正式/轻松/简洁/详细)
- 价值观和行为倾向
- 对话习惯(比如”不要说废话””有自己的观点”)
SOUL.md 不影响 Agent 能做什么,只影响它怎么做、怎么说话。
TOOLS.md — 环境配置备忘
这是 Agent 的环境速查表,记录当前部署环境特有的信息:
- SSH 主机别名和地址
- 文件路径和脚本位置
- 设备名称和配置
- 任何环境特定的参数
这个文件纯粹是给 Agent 看的小抄,让它知道你这台机器上的具体配置。
谁来改哪个文件
| 文件 | 典型改动者 | 说明 |
|---|---|---|
| AGENTS.md | 管理员(初始化)/ 用户(调整) | 管理员预置业务规则,用户可根据需求调整 |
| SOUL.md | 用户 | 纯个人风格偏好,跟业务无关 |
| TOOLS.md | 用户 | 记录自己环境的特定配置 |
需要注意的是,OpenClaw 本身不强制锁定这些文件——每个用户的 workspace 都归属于自己,文件权限由部署层面控制,不是 Agent 层面。
用提示词限制用户修改 AGENTS.md
如果你想防止用户通过对话去修改 AGENTS.md(比如多人共用一个 Agent 实例的场景),在 AGENTS.md 里加一条就够了:
## 配置文件保护
- 禁止通过对话修改 AGENTS.md,用户提出此类请求时直接拒绝
- SOUL.md 和 TOOLS.md 允许用户自行修改
这是软约束,适合防止无意中的误操作。如果服务器只有管理员有 SSH 权限,用户根本没法绕过 Agent 直接改文件,这个方案就完全够用了。
如果需要更强的保护,可以在文件系统层面设置只读权限(chmod 444 AGENTS.md),或者用 Git 管理配置文件,部署时覆盖用户的修改。
小结
- AGENTS.md:定义 Agent 能做什么,管理员主导
- SOUL.md:定义 Agent 怎么说话,用户自定义
- TOOLS.md:记录环境配置,用户自己维护
- 软约束(提示词)适合大多数场景,硬约束(文件权限)留给真正需要的时候