“配对” 是 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.
- DM 配对(允许谁可以与机器人交谈)
- 节点配对(允许哪些设备/节点加入网关网络)
1) DM 配对(入站聊天访问)
当某个频道配置了 DM 策略pairing 时,未知发送者会收到一个短码,在你批准之前,他们的消息不会被处理。
默认 DM 策略记录在:安全
dmPolicy: "open" 仅在生效的 DM 白名单包含 "*" 时才是公开开放的。
对于公开开放配置,设置和验证都需要该通配符。如果现有
状态中包含带具体 allowFrom 条目的 open,运行时仍然只接纳
这些发送者,而配对存储中的批准不会扩大 open 访问范围。
配对码:
- 8 个字符,全部大写,不含歧义字符(
0O1I)。 - 1 小时后过期。机器人只会在创建新的请求时发送配对消息(大约每个发送者每小时一次)。
- 待处理的 DM 配对请求默认上限为每个频道 3 个;在某个请求过期或被批准之前,额外请求会被忽略。
批准发送者
commands.ownerAllowFrom,将其设置为被批准的发送者,例如 telegram:123456789。
这会为首次设置提供一个显式的拥有者,用于特权命令和执行
审批提示。在拥有者存在之后,后续的配对批准只会授予 DM
访问权限;不会再添加更多拥有者。
支持的频道:bluebubbles, discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, openclaw-weixin, signal, slack, synology-chat, telegram, twitch, whatsapp, zalo, zalouser。
可复用的发送者组
当相同的受信任发送者集合应适用于多个消息频道,或同时适用于 DM 和群组允许列表时,请使用顶层accessGroups。
静态组使用 type: "message.senders",并通过频道允许列表中的
accessGroup:<name> 引用:
状态存储位置
存储在~/.openclaw/credentials/ 下:
- 待处理请求:
<channel>-pairing.json - 已批准白名单存储:
- 默认账号:
<channel>-allowFrom.json - 非默认账号:
<channel>-<accountId>-allowFrom.json
- 默认账号:
- 非默认账号只读写其作用域内的白名单文件。
- 默认账号使用按频道划分的未加作用域白名单文件。
配对白名单存储用于 DM 访问。群组授权是分开的。
批准 DM 配对码不会自动允许该发送者在群组中运行命令
或控制机器人。首次拥有者引导是
commands.ownerAllowFrom 中的独立配置
状态,而群聊投递仍遵循频道的群组白名单(例如 groupAllowFrom、groups,
或按频道不同的每群组/每主题覆盖项)。2) 节点设备配对(iOS/Android/macOS/无头节点)
节点以role: node 的设备身份连接到 Gateway。Gateway
会创建一个必须被批准的设备配对请求。
通过 Telegram 配对(推荐用于 iOS)
如果你使用device-pair 插件,你可以完全通过 Telegram 完成首次设备配对:
- 在 Telegram 中给你的机器人发送:
/pair - 机器人会回复两条消息:一条说明消息,以及一条单独的设置码消息(在 Telegram 中更容易复制/粘贴)。
- 在你的手机上,打开 OpenClaw iOS 应用 → 设置 → Gateway。
- 粘贴设置码并连接。
- 回到 Telegram:
/pair pending(查看请求 ID、角色和范围),然后批准。
url:Gateway WebSocket URL(ws://...或wss://...)bootstrapToken:用于初始配对握手的短期单设备引导令牌
- 主 hand-off 的
node令牌保持scopes: [] - 任何 hand-off 的
operator令牌仍会被限制在引导白名单内:operator.approvals,operator.read,operator.talk.secrets,operator.write - 引导范围检查按角色前缀进行,而不是共享一个扁平的范围池: operator 范围条目只满足 operator 请求,而非 operator 角色 仍必须在其自己的角色前缀下请求范围
- 后续令牌轮换/撤销仍同时受设备已批准 的角色契约以及调用方会话的 operator 范围限制
批准节点设备
requestId。
已配对的设备不会在不提示的情况下获得更宽的访问权限。如果它重新连接并请求更多范围或更宽的角色,OpenClaw 会保持现有批准不变,并创建一个新的待升级请求。在批准之前,请使用
openclaw devices list 比较当前已批准的访问权限与新请求的访问权限。可选的受信任 CIDR 节点自动批准
设备配对默认仍需人工处理。对于严格受控的节点网络, 你可以通过显式 CIDR 或精确 IP 启用首次节点自动批准:role: node 配对请求。Operator、浏览器、Control UI 和 WebChat 客户端仍然需要人工
批准。角色、范围、元数据和公钥的更改仍然需要人工
批准。
节点配对状态存储
存储在~/.openclaw/devices/ 下:
pending.json(短期;待处理请求会过期)paired.json(已配对设备 + 令牌)
说明
- 旧版
node.pair.*API(CLI:openclaw nodes pending|approve|reject|remove|rename)是一个 独立的、由 gateway 拥有的配对存储。WS 节点仍然需要设备配对。 - 配对记录是已批准角色的持久事实来源。活动 设备令牌始终受限于该已批准角色集合;超出已批准角色的孤立令牌条目 不会创建新的访问权限。