配置
OpenClaw 会从~/.openclaw/openclaw.json 读取一个可选的 配置文件。
如果文件不存在,OpenClaw 将使用安全默认值。添加配置的常见原因包括:
- 连接渠道并控制谁可以给机器人发消息
- 设置模型、工具、沙箱环境或自动化(定时任务、钩子)
- 调整会话、媒体、网络或 UI
最小配置
编辑配置
- 交互式向导
- 命令行(单行命令)
- 控制面板 UI
- 直接编辑
严格校验
校验失败时:- Gateway 不启动
- 仅诊断命令可用(
openclaw doctor、openclaw logs、openclaw health、openclaw status) - 运行
openclaw doctor查看具体问题 - 运行
openclaw doctor --fix(或--yes)自动修复
常见任务
设置渠道(WhatsApp、Telegram、Discord 等)
设置渠道(WhatsApp、Telegram、Discord 等)
每个渠道都有自己的配置节,位于
channels.<provider> 下。请参见对应渠道页面的设置步骤:- WhatsApp —
channels.whatsapp - Telegram —
channels.telegram - Discord —
channels.discord - Slack —
channels.slack - Signal —
channels.signal - iMessage —
channels.imessage - Google Chat —
channels.googlechat - Mattermost —
channels.mattermost - MS Teams —
channels.msteams
选择并配置模型
选择并配置模型
控制谁可以给机器人发消息
控制谁可以给机器人发消息
私信访问通过渠道的
dmPolicy 控制:"pairing"(默认):未知发送者获得一次性配对码用于批准"allowlist":仅允许allowFrom中的发送者(或配对的允许存储)"open":允许所有入站私信(需设为allowFrom: ["*"])"disabled":忽略所有私信
groupPolicy + groupAllowFrom 或渠道特定的允许列表。详情请参阅完整参考。设置群聊@提及门控
设置群聊@提及门控
群消息默认 需要提及。可按代理配置匹配模式:
- 元数据提及:原生的 @-提及(WhatsApp 点击@,Telegram @bot 等)
- 文本模式:
mentionPatterns中的正则表达式 - 详见完整参考了解渠道覆盖和自聊模式
配置会话与重置
配置会话与重置
启用沙箱环境
启用沙箱环境
设置心跳(周期性签到)
设置心跳(周期性签到)
every:时间间隔字符串(如30m、2h),设置0m禁用。target:last|whatsapp|telegram|discord|nonedirectPolicy:DM 风格心跳目标的策略,默认为allow,可设为block- 详见心跳指南
配置定时任务
配置定时任务
sessionRetention:清理完成的隔离运行会话,默认 24 小时,设为false禁用。runLog:限制cron/runs/<jobId>.jsonl文件大小及保留行数。- 详见定时任务获取功能概览和 CLI 示例。
设置 Webhook(钩子)
设置 Webhook(钩子)
在 Gateway 上启用 HTTP webhook 端点:安全注意事项:
- 所有钩子/Webhook 负载内容均视为不可信输入。
- 除非进行严格范围的调试,否则保持不安全内容绕过标记(
hooks.gmail.allowUnsafeExternalContent、hooks.mappings[].allowUnsafeExternalContent)关闭状态。 - 钩子驱动的代理建议优先使用现代高级模型和严格的工具策略(例如仅限消息传递且尽可能使用沙箱)。
拆分配置文件($include)
拆分配置文件($include)
使用
$include 组织大型配置:- 单文件:替换包含对象
- 文件数组:顺序深度合并(后者覆盖前者)
- 同级键:合并在包含后,覆盖包含值
- 嵌套包含:支持最多 10 层深度
- 相对路径:相对于包含文件解析
- 错误处理:缺少文件、解析错误和循环包含均有清晰报错
配置热重载
Gateway 会监视~/.openclaw/openclaw.json 并自动应用更改 — 大多数设置无需手动重启。
重载模式
| 模式 | 行为 |
|---|---|
hybrid(默认) | 安全更改即时热应用。关键信息变更自动重启。 |
hot | 仅热应用安全更改。需要重启时记录警告,由你负责重启。 |
restart | 任何配置变更(安全或非安全)均重启 Gateway。 |
off | 关闭文件监视。变更仅在下次手动重启时生效。 |
哪些更改热应用,哪些需要重启
大部分字段可热应用且无停机。hybrid 模式会自动处理需要重启的更改。
| 分类 | 字段 | 需重启? |
|---|---|---|
| 渠道 | channels.*、web(WhatsApp)— 所有内置及扩展渠道 | 否 |
| 代理与模型 | agent, agents, models, routing | 否 |
| 自动化 | hooks, cron, agent.heartbeat | 否 |
| 会话与消息 | session, messages | 否 |
| 工具与媒体 | tools, browser, skills, audio, talk | 否 |
| UI 与杂项 | ui, logging, identity, bindings | 否 |
| Gateway 服务器 | gateway.*(端口、绑定、认证、tailscale、TLS、HTTP) | 是 |
| 基础架构 | discovery, canvasHost, plugins | 是 |
gateway.reload 和 gateway.remote 是例外——更改它们不会触发重启。配置 RPC(编程式更新)
控制面写入 RPC(
config.apply、config.patch、update.run)对每个 deviceId+clientIp 限制为每 60 秒最多 3 次请求。限制时,RPC 返回 UNAVAILABLE 并带 retryAfterMs。config.apply(完整替换)
config.apply(完整替换)
验证并写入完整配置,同时重启 Gateway。参数:
raw(字符串)— 整个配置的 JSON5 内容baseHash(可选)— 来自config.get的配置哈希(配置已存在时必须)sessionKey(可选)— 重启后唤醒 ping 使用的会话密钥note(可选)— 重启哨兵的注释restartDelayMs(可选)— 重启前延迟,默认 2000 毫秒
config.patch(部分更新)
config.patch(部分更新)
按 JSON 合并补丁语义,将部分更新合并到现有配置:
- 对象递归合并
null删除键- 数组替换
raw(字符串)— 仅包含要更改的键的 JSON5baseHash(必填)— 来自config.get的配置哈希sessionKey、note、restartDelayMs— 同config.apply
config.apply 相同:合并挂起的重启请求并设 30 秒冷却。环境变量
OpenClaw 会读取父进程的环境变量,以及:- 当前工作目录下的
.env(如果存在) ~/.openclaw/.env(全局备用)
Shell 环境导入(可选)
Shell 环境导入(可选)
如果启用且缺少预期的键,OpenClaw 会运行登录 shell,仅导入缺少的键:等价环境变量:
OPENCLAW_LOAD_SHELL_ENV=1配置值中的环境变量替换
配置值中的环境变量替换
在任何配置字符串中,可以用 规则:
${VAR_NAME} 引用环境变量:- 仅匹配大写名称:
[A-Z_][A-Z0-9_]* - 缺失或空值在加载时抛错
- 用
$${VAR}转义输出字面量 - 可用于
$include文件中 - 内联替换例子:
"${BASE}/v1"→"https://api.example.com/v1"
Secret 引用(env、file、exec)
Secret 引用(env、file、exec)
对支持 SecretRef 对象的字段,可以使用:SecretRef 详情(包括
secrets.providers 的 env/file/exec)见秘密管理。支持的凭据路径列于SecretRef 凭据接口。完整参考
字段逐项完整参考,请参阅 配置参考。相关内容:配置示例 · 配置参考 · 诊断