OpenClaw 会从Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json 读取一个可选的 配置。
活动配置路径必须是普通文件。符号链接的 openclaw.json
布局不支持 OpenClaw 所有的写入操作;原子写入可能会替换该路径,
而不是保留符号链接。如果你将配置保存在默认状态目录之外,
请直接将 OPENCLAW_CONFIG_PATH 指向真实文件。
如果文件缺失,OpenClaw 将使用安全默认值。添加配置的常见原因包括:
- 连接通道并控制谁可以给机器人发消息
- 设置模型、工具、沙箱或自动化(cron、hooks)
- 调整会话、媒体、网络或 UI
config.schema.lookup 获取精确的字段级文档。
本页用于任务导向的指导,配置参考用于更广泛的字段映射和默认值。
最小配置
编辑配置
- 交互式向导
- CLI(单行命令)
- 控制 UI
- 直接编辑
严格校验
openclaw config schema 会打印 Control UI 和校验所使用的规范 JSON Schema。
config.schema.lookup 会为下钻工具获取单个路径作用域节点以及子项摘要。
字段 title/description 文档元数据会贯穿嵌套对象、通配符(*)、数组项([])以及 anyOf/
oneOf/allOf 分支。运行时插件和通道架构会在清单注册表加载后合并进来。
当校验失败时:
- Gateway 不会启动
- 只有诊断命令可用(
openclaw doctor、openclaw logs、openclaw health、openclaw status) - 运行
openclaw doctor查看确切问题 - 运行
openclaw doctor --fix(或--yes)应用修复
openclaw.json
fails validation (including plugin-local validation), Gateway startup fails or
the reload is skipped and the current runtime keeps the last accepted config.
Run openclaw doctor --fix (or --yes) to repair prefixed/clobbered config or
restore the last-known-good copy. Promotion to last-known-good is skipped when a
candidate contains redacted secret placeholders such as ***.
常见任务
设置通道(WhatsApp、Telegram、Discord 等)
设置通道(WhatsApp、Telegram、Discord 等)
每个通道在
channels.<provider> 下都有自己的配置部分。请参阅对应的通道页面了解设置步骤:- WhatsApp —
channels.whatsapp - Telegram —
channels.telegram - Discord —
channels.discord - 飞书 —
channels.feishu - Google Chat —
channels.googlechat - Microsoft Teams —
channels.msteams - Slack —
channels.slack - Signal —
channels.signal - iMessage —
channels.imessage - Mattermost —
channels.mattermost
选择并配置模型
选择并配置模型
设置主模型和可选的回退模型:
agents.defaults.models定义模型目录,并作为/model的允许列表。- 使用
openclaw config set agents.defaults.models '<json>' --strict-json --merge可在不移除现有模型的情况下添加允许列表条目。会移除条目的普通替换会被拒绝,除非你传入--replace。 - 模型引用使用
provider/model格式(例如anthropic/claude-opus-4-6)。 agents.defaults.imageMaxDimensionPx控制转录/工具图像的缩放(默认1200);较低的值通常会在大量截图的运行中减少视觉 token 用量。- 有关在聊天中切换模型,请参阅 模型 CLI;有关身份验证轮换和回退行为,请参阅 模型故障转移。
- 关于自定义/自托管提供商,请参阅参考中的 自定义提供商。
控制谁可以给机器人发消息
控制谁可以给机器人发消息
DM 访问通过
dmPolicy 按通道控制:"pairing"(默认):未知发送者会收到一次性的配对码以进行批准"allowlist":仅限allowFrom中的发送者(或已配对允许存储)"open":允许所有传入 DM(需要allowFrom: ["*"])"disabled":忽略所有 DM
groupPolicy + groupAllowFrom 或通道特定允许列表。查看完整参考以了解各通道细节。设置群聊提及门控
设置群聊提及门控
群消息默认需要提及。为每个代理配置触发模式,并保持可见房间回复走默认的 message-tool 路径,除非你明确想要旧式自动最终回复:
- 元数据提及:原生 @ 提及(WhatsApp 点按提及、Telegram @bot 等)
- 文本模式:
mentionPatterns中的安全正则模式 - 可见回复:
messages.visibleReplies可在全局要求 message-tool 发送;messages.groupChat.visibleReplies可为群组/通道覆盖该设置。 - 有关可见回复模式、按通道覆盖以及自聊模式,请参阅完整参考。
限制每个代理的技能
限制每个代理的技能
调整网关通道健康监控
调整网关通道健康监控
控制 gateway 对看起来陈旧的通道重启有多激进:
- 设置
gateway.channelHealthCheckMinutes: 0可全局禁用健康监控重启。 channelStaleEventThresholdMinutes应大于或等于检查间隔。- 使用
channels.<provider>.healthMonitor.enabled或channels.<provider>.accounts.<id>.healthMonitor.enabled可仅为某个通道或账户禁用自动重启,而不关闭全局监控。 - 有关运行时调试,请参阅 Health Checks;有关所有字段,请参阅完整参考。
调整网关 WebSocket 握手超时
调整网关 WebSocket 握手超时
为本地客户端在负载较高或低性能主机上完成预认证 WebSocket 握手争取更多时间:
- 默认值为
15000毫秒。 OPENCLAW_HANDSHAKE_TIMEOUT_MS仍然会优先用于一次性的服务或 shell 覆盖。- 优先先修复启动/事件循环卡顿;这个开关适用于健康但在预热期间较慢的主机。
配置会话和重置
配置会话和重置
启用沙箱
启用沙箱
为官方 iOS 构建启用中继支持的推送
为官方 iOS 构建启用中继支持的推送
中继支持的推送在 对应的 CLI 命令:这会做什么:
openclaw.json 中配置。在 gateway 配置中设置:- 让 gateway 可以通过外部中继发送
push.test、唤醒提示以及重连唤醒。 - 使用由配对的 iOS 应用转发的注册范围发送授权。Gateway 不需要部署范围的中继令牌。
- 将每个中继支持的注册绑定到 iOS 应用所配对的 gateway 身份,因此其他 gateway 不能复用已存储的注册。
- 让本地/手动 iOS 构建继续直接使用 APNs。中继支持的发送仅适用于通过中继注册的官方分发构建。
- 必须与官方/TestFlight iOS 构建中内置的中继基础 URL 匹配,因此注册和发送流量会到达同一个中继部署。
- 安装一个使用相同中继基础 URL 编译的官方/TestFlight iOS 构建。
- 在 gateway 上配置
gateway.push.apns.relay.baseUrl。 - 将 iOS 应用配对到 gateway,并让 node 和 operator 会话都连接起来。
- iOS 应用获取 gateway 身份,使用 App Attest 加应用收据向中继注册,然后将中继支持的
push.apns.register载荷发布到已配对的 gateway。 - Gateway 存储中继句柄和发送授权,然后将它们用于
push.test、唤醒提示和重连唤醒。
- 如果你将 iOS 应用切换到不同的 gateway,请重新连接应用,以便它可以发布绑定到该 gateway 的新中继注册。
- 如果你发布了指向不同中继部署的新 iOS 构建,应用会刷新其缓存的中继注册,而不是重用旧的中继来源。
OPENCLAW_APNS_RELAY_BASE_URL和OPENCLAW_APNS_RELAY_TIMEOUT_MS仍可作为临时环境变量覆盖。OPENCLAW_APNS_RELAY_ALLOW_HTTP=true仍然是仅限回环的开发逃生口;不要在配置中持久保存 HTTP 中继 URL。
设置心跳(周期性签到)
设置心跳(周期性签到)
every:时长字符串(30m、2h)。设为0m可禁用。target:last|none|<channel-id>(例如discord、matrix、telegram或whatsapp)directPolicy:用于 DM 风格心跳目标的allow(默认)或block- 有关完整指南,请参阅 Heartbeat。
配置 cron 作业
配置 cron 作业
sessionRetention:从sessions.json中清理已完成的隔离运行会话(默认24h;设为false可禁用)。runLog:按大小和保留行数清理cron/runs/<jobId>.jsonl。- 有关功能概览和 CLI 示例,请参阅 Cron 作业。
设置 webhook(hooks)
设置 webhook(hooks)
在 Gateway 上启用 HTTP webhook 端点:安全提示:
- 将所有 hook/webhook 负载内容视为不受信任的输入。
- 使用专用的
hooks.token;不要重复使用共享的 Gateway 令牌。 - Hook 身份验证仅限请求头(
Authorization: Bearer ...或x-openclaw-token);查询字符串令牌会被拒绝。 hooks.path不能是/;请将 webhook 入口放在专用子路径下,例如/hooks。- 除非进行范围非常受限的调试,否则请保持不安全内容绕过标志为禁用(
hooks.gmail.allowUnsafeExternalContent、hooks.mappings[].allowUnsafeExternalContent)。 - 如果启用
hooks.allowRequestSessionKey,还应设置hooks.allowedSessionKeyPrefixes来限定调用方可选择的会话键。 - 对于 hook 驱动的代理,优先使用更强的现代模型层级和严格的工具策略(例如尽可能仅消息 + 沙箱)。
将配置拆分为多个文件($include)
将配置拆分为多个文件($include)
使用
$include 来组织大型配置:- Single file: replaces the containing object
- Array of files: deep-merged in order (later wins)
- Sibling keys: merged after includes (override included values)
- Nested includes: supported up to 10 levels deep
- Relative paths: resolved relative to the including file
- OpenClaw-owned writes: when a write changes only one top-level section
backed by a single-file include such as
plugins: { $include: "./plugins.json5" }, OpenClaw updates that included file and leavesopenclaw.jsonintact - Unsupported write-through: root includes, include arrays, and includes with sibling overrides fail closed for OpenClaw-owned writes instead of flattening the config
- Confinement:
$includepaths must resolve under the directory holdingopenclaw.json. To share a tree across machines or users, setOPENCLAW_INCLUDE_ROOTSto a path-list (:on POSIX,;on Windows) of additional directories that includes may reference. Symlinks are resolved and re-checked, so a path that lexically lives in a config dir but whose real target escapes every allowed root is still rejected. - Error handling: clear errors for missing files, parse errors, and circular includes
配置热重载
Gateway 会监视~/.openclaw/openclaw.json 并自动应用更改——大多数设置无需手动重启。
Direct file edits are treated as untrusted until they validate. The watcher waits
for editor temp-write/rename churn to settle, reads the final file, and rejects
invalid external edits without rewriting openclaw.json. OpenClaw-owned config
writes use the same schema gate before writing; destructive clobbers such as
dropping gateway.mode or shrinking the file by more than half are rejected and
saved as .rejected.* for inspection.
If you see config reload skipped (invalid config) or startup reports Invalid config, inspect the config, run openclaw config validate, then run openclaw doctor --fix for repair. See Gateway troubleshooting
for the checklist.
重载模式
| 模式 | 行为 |
|---|---|
hybrid(默认) | 立即热应用安全更改。对关键更改自动重启。 |
hot | 仅热应用安全更改。当需要重启时记录警告——由你来处理。 |
restart | 任意配置更改都会重启 Gateway,无论安全与否。 |
off | 禁用文件监视。更改会在下一次手动重启后生效。 |
哪些可热应用,哪些需要重启
大多数字段都可在不停机的情况下热应用。在hybrid 模式下,需要重启的更改会自动处理。
| 类别 | 字段 | 需要重启? |
| ----------------------------------------------------------------- | --------------- |
| 通道 | channels.*、web(WhatsApp)——所有内置和插件通道 | 否 |
| 代理与模型 | agent、agents、models、routing | 否 |
| 自动化 | hooks、cron、agent.heartbeat | 否 |
| 会话与消息 | session、messages | 否 |
| 工具与媒体 | tools、browser、skills、mcp、audio、talk | 否 |
| UI 与杂项 | ui、logging、identity、bindings | 否 |
| Gateway 服务器 | gateway.*(端口、bind、auth、tailscale、TLS、HTTP) | 是 |
| 基础设施 | discovery、canvasHost、plugins | 是 |
gateway.reload 和 gateway.remote 是例外——更改它们不会触发重启。重载规划
当你编辑一个通过$include 引用的源文件时,OpenClaw 会根据源作者布局来规划重载,
而不是按内存中的扁平化视图来规划。这样即使某个顶层部分位于自己独立的包含文件中,
例如 plugins: { $include: "./plugins.json5" },热重载决策(热应用还是重启)也会保持可预测。
如果源布局存在歧义,重载规划会失败关闭。
配置 RPC(程序化更新)
对于通过 gateway API 写入配置的工具,建议使用以下流程:config.schema.lookup用于检查一个子树(浅层 schema 节点 + 子节点 摘要)config.get用于获取当前快照以及hashconfig.patch用于部分更新(JSON merge patch:对象合并,null删除,数组替换)config.apply仅在你打算替换整个配置时使用update.run用于显式自更新并重启;当重启后的会话应运行一次后续回合时,请包含continuationMessageupdate.status用于检查最新的更新重启哨兵,并在重启后验证正在运行的版本
config.schema.lookup 视为获取精确
字段级文档和约束的第一站。在需要更广泛的配置映射、默认值或指向专用
子系统参考的链接时,请使用 Configuration reference。
控制平面写入(
config.apply、config.patch、update.run)在每个 deviceId+clientIp 上每 60 秒限制 3 次请求。重启
请求会合并,然后在每个重启周期之间强制执行 30 秒冷却时间。
update.status 是只读的,但需要 admin 作用域,因为重启哨兵可能
包含更新步骤摘要和命令输出尾部。config.apply 和 config.patch 都接受 raw、baseHash、sessionKey、
note 和 restartDelayMs。当
配置已存在时,这两种方法都需要 baseHash。
环境变量
OpenClaw 会从父进程以及以下位置读取环境变量:- 当前工作目录中的
.env(如果存在) ~/.openclaw/.env(全局回退)
Shell env 导入(可选)
Shell env 导入(可选)
如果启用且预期的键未设置,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 详情(包括用于
env/file/exec 的 secrets.providers)见 Secrets Management。
支持的凭据路径列在 SecretRef Credential Surface。完整参考
有关按字段的完整参考,请参见 Configuration Reference。相关:Configuration Examples · Configuration Reference · Doctor