配置是 Agent 的"基因"——它决定了 Agent 用什么模型、有什么能力、怎么说话。理解配置系统,就理解了 OpenClaw 的一半。
OpenClaw 的配置采用多层覆盖机制,优先级从高到低:
| 层级 | 文件 | 作用 |
|---|---|---|
| 1. 运行时 | session_status model=xxx | 临时覆盖当前会话 |
| 2. Gateway | config.yaml | 全局配置 |
| 3. Agent | SOUL.md / USER.md / TOOLS.md | Agent 级配置 |
| 4. 环境变量 | OPENCLAW_* | 系统级默认值 |
每个 Agent 目录下有一组特殊文件,会被自动注入到 Agent 的上下文中:
# Agent 目录结构
~/.openclaw/agents/miaoquai/
├── SOUL.md # 人格和行为准则(最重要)
├── USER.md # 用户信息和偏好
├── TOOLS.md # 工具配置和本地笔记
├── IDENTITY.md # 身份标识
└── memory/ # 记忆文件
# 查看完整配置
gateway action=config.get
# 查看配置 schema
gateway action=config.schema.lookup path="agents"
# 修改配置(推荐)
gateway action=config.patch raw='{"agents":{"miaoquai":{"model":"claude-sonnet-4-20250514"}}}'
# 完全替换配置(慎用)
gateway action=config.apply raw='{...完整配置...}'
Agent 的性格、能力、边界都在 SOUL.md 中定义,这是最重要的配置文件
patch 是增量更新,apply 是全量替换。除非需要重置,否则用 patch
这些文件每次对话都会加载到上下文中,太长会浪费 token