Technical Guide
03. 配置和模型:openclaw.json、状态目录和 auth profiles
看懂 OpenClaw 的配置入口:状态目录、Gateway、Channels、模型、凭证和 sessions 分别放在哪里。
这篇解决什么问题
OpenClaw 的很多问题,看起来像 Agent 问题,实际是配置问题。
例如:Gateway 能启动但平台消息没响应、模型调用失败、channel 收不到消息、agent session 找不到历史、cron 触发了但没有投递。
这类问题先看配置和状态目录。
默认状态目录
默认状态目录是:
~/.openclaw
官方 runtime workflow 文档也写到:如果设置了 OPENCLAW_STATE_DIR,就使用该目录。
你会在这里看到:
openclaw.json
credentials/
agents/<agentId>/sessions/
agents/<agentId>/agent/auth-profiles.json
sessions/ # 可能存在 legacy path
workspace/
cron/
logs/
不同版本和迁移历史下,目录可能会有差异。排障时不要只看一个路径。
主配置文件
常见主配置是:
~/.openclaw/openclaw.json
它会涉及 Gateway、channels、agents、sandbox、tools、skills、model/provider、safety policy。
源码里配置相关逻辑主要在:
src/config/
这个目录很大,因为 OpenClaw 要兼容很多 channel、provider、旧配置迁移和安全策略。
模型和 auth profiles
OpenClaw 支持多 provider。README 里提到模型配置和 CLI 在 Models 页面,auth profile rotation 和 fallbacks 在 Model failover 页面。
本地状态里,官方 workflow 文档提到:
agents/<agentId>/agent/auth-profiles.json
用于模型 auth profiles,例如 API keys + OAuth。
这意味着模型凭证不一定都在主配置里。排查 401、provider 不可用时,要同时看 config 和 auth profile。
Channels 配置
OpenClaw 支持很多 channel。每个 channel 都有自己的 token、allowlist、pairing、webhook 或长连接方式。
相关源码主要在:
src/channels/
extensions/<channel>/
src/config/types.<channel>.ts
不要把 channel 问题都归到 Gateway。Gateway 是控制平面,具体平台接入还有 channel adapter 和 extension。
DM pairing 和 allowlist
README 明确提醒:OpenClaw 连接真实消息平台,inbound DMs 要当成不可信输入。
陌生人发消息时,可能只收到 pairing code,不会进入 Agent。
这不是 bug,是安全默认值。
配置排查顺序
1. OPENCLAW_STATE_DIR 是否设置
2. ~/.openclaw/openclaw.json 是否是当前实例读取的文件
3. Gateway 是否运行
4. channel 是否启用并有凭证
5. allowlist / dmPolicy 是否允许当前发送者
6. agentId / session 是否路由正确
7. 模型 auth profile 是否可用
8. 工具/sandbox 是否被策略限制
下一篇看什么
下一篇看项目结构。