chore(i18n): refresh zh-CN translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-03 18:13:08 +00:00
parent 9397f005f4
commit a0408fe705
3 changed files with 563 additions and 553 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,54 +1,54 @@
---
read_when:
- 配置渠道插件(身份验证、访问控制、多账号)
- 每个渠道配置键的故障排除
- 配置渠道插件(证、访问控制、多账号)
- 按渠道配置键名的故障排除
- 审计私信策略、群组策略或提及门控
summary: 渠道配置Slack、Discord、Telegram、WhatsApp、Matrix、iMessage 等的访问控制、配对和每渠道密钥
summary: 渠道配置Slack、Discord、Telegram、WhatsApp、Matrix、iMessage 等渠道的访问控制、配对和各渠道密钥
title: 配置 — 渠道
x-i18n:
generated_at: "2026-05-03T01:34:53Z"
generated_at: "2026-05-03T18:10:37Z"
model: gpt-5.5
provider: openai
source_hash: 5ec4aad94a844f6e2f936b2e0d208343ea264c9a4c74f7fc610c516e0353b53b
source_hash: 7deb5358980d58a917eb564d8f65a43d6b61b8bc53b80349f404353db50bbb98
source_path: gateway/config-channels.md
workflow: 16
---
`channels.*`的每渠道配置键。涵盖私信和群组访问、多账号设置、提及门控,以及 Slack、Discord、Telegram、WhatsApp、Matrix、iMessage 和其他内置渠道插件的渠道键。
每个渠道的配置键位于 `channels.*` 下。涵盖私信和群组访问、多账号设置、提及门控,以及 Slack、Discord、Telegram、WhatsApp、Matrix、iMessage 和其他内置渠道插件的渠道键。
对于智能体、工具、Gateway 网关运行时和其他顶键,请参阅
对于智能体、工具、Gateway 网关运行时和其他顶键,请参阅
[配置参考](/zh-CN/gateway/configuration-reference)。
## 渠道
每个渠道会在其配置部分存在时自动启动(除非 `enabled: false`)。
当配置段存在时,每个渠道都会自动启动(除非 `enabled: false`)。
### 私信和群组访问
所有渠道都支持私信策略和群组策略:
| 私信策略 | 行为 |
| ------------------- | --------------------------------------------------------------- |
| `pairing`(默认) | 未知发送者会获得一次性配对码;所有者必须批准 |
| `allowlist` | 仅允许 `allowFrom`(或已配对允许存储)中的发送者 |
| `open` | 允许所有入私信(需要 `allowFrom: ["*"]` |
| `disabled` | 忽略所有入私信 |
| ------------------- | ----------------------------------------------------------- |
| `pairing`(默认) | 未知发送者会收到一次性配对码;所有者必须批准 |
| `allowlist` | 仅允许 `allowFrom`(或已配对允许存储)中的发送者 |
| `open` | 允许所有入私信(需要 `allowFrom: ["*"]` |
| `disabled` | 忽略所有入私信 |
| 群组策略 | 行为 |
| 群组策略 | 行为 |
| --------------------- | ------------------------------------------------------ |
| `allowlist`(默认) | 仅允许匹配已配置允许列表的群组 |
| `open` | 绕过群组允许列表(提及门控仍然适用) |
| `disabled` | 阻止所有群组/房间消息 |
| `allowlist`(默认) | 仅允许匹配已配置允许列表的群组 |
| `open` | 绕过群组允许列表(提及门控仍会生效) |
| `disabled` | 阻止所有群组/房间消息 |
<Note>
`channels.defaults.groupPolicy` 会在提供商的 `groupPolicy` 未设置时设默认值。
配对码在 1 小时后过期。待处理的私信配对请求上限为**每个渠道 3 个**。
如果提供商块完全缺失(不存在 `channels.<provider>`),运行时群组策略会回退到 `allowlist`以关闭方式失败),并在启动时发出警告。
`channels.defaults.groupPolicy` 会在提供商的 `groupPolicy` 未设置时设默认值。
配对码在 1 小时后过期。待处理的私信配对请求上限为**每个渠道 3 个**。
如果提供商块完全缺失(不存在 `channels.<provider>`),运行时群组策略会回退到 `allowlist`失败关闭),并在启动时发出警告。
</Note>
### 渠道模型覆盖
使用 `channels.modelByChannel` 将特定渠道 ID 固定到某个模型。值接受 `provider/model` 或已配置的模型别名。当会话尚未有模型覆盖(例如通过 `/model` 设置)时,会应用渠道映射。
使用 `channels.modelByChannel` 将特定渠道 ID 固定到某个模型。值接受 `provider/model` 或已配置的模型别名。当会话尚未设置模型覆盖时(例如通过 `/model` 设置),会应用渠道映射。
```json5
{
@ -89,15 +89,15 @@ x-i18n:
}
```
- `channels.defaults.groupPolicy`:提供商级 `groupPolicy` 未设置时的回退群组策略。
- `channels.defaults.contextVisibility`:所有渠道的默认补充上下文可见性模式。值:`all`(默认,包含所有引用/线程/历史上下文)、`allowlist`(仅包含来自允许列表发送者的上下文)、`allowlist_quote`(与允许列表相同,但保留显式引用/回复上下文)。每渠道覆盖`channels.<channel>.contextVisibility`。
- `channels.defaults.heartbeat.showOk`:在 Heartbeat 输出中包含健康的渠道状态
- `channels.defaults.heartbeat.showAlerts`:在 Heartbeat 输出中包含降级/错误状态
- `channels.defaults.heartbeat.useIndicator`:渲染紧凑指示器样式 Heartbeat 输出。
- `channels.defaults.groupPolicy`提供商级 `groupPolicy` 未设置时使用的回退群组策略。
- `channels.defaults.contextVisibility`:所有渠道的默认补充上下文可见性模式。值:`all`(默认,包含所有引用/线程/历史上下文)、`allowlist`(仅包含允许列表发送者的上下文)、`allowlist_quote`(与允许列表相同,但保留显式引用/回复上下文)。各渠道覆盖项`channels.<channel>.contextVisibility`。
- `channels.defaults.heartbeat.showOk`:在 Heartbeat 输出中包含健康的渠道 Status
- `channels.defaults.heartbeat.showAlerts`:在 Heartbeat 输出中包含降级/错误 Status
- `channels.defaults.heartbeat.useIndicator`:渲染紧凑指示器样式 Heartbeat 输出。
### WhatsApp
WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在已关联会话时,它会自动启动。
WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在已链接会话时,它会自动启动。
```json5
{
@ -156,9 +156,9 @@ WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在
```
- 出站命令默认使用账号 `default`(如果存在);否则使用第一个已配置账号 ID排序后
- 可选的 `channels.whatsapp.defaultAccount` 会在匹配已配置账号 ID 时覆盖该回退默认账号选择。
- 旧版单账号 Baileys 证目录会由 `openclaw doctor` 迁移到 `whatsapp/default`
- 账号覆盖:`channels.whatsapp.accounts.<id>.sendReadReceipts`、`channels.whatsapp.accounts.<id>.dmPolicy`、`channels.whatsapp.accounts.<id>.allowFrom`。
- 可选的 `channels.whatsapp.defaultAccount` 会在匹配已配置账号 ID 时覆盖该回退默认账号选择。
- 旧版单账号 Baileys 证目录会由 `openclaw doctor` 迁移到 `whatsapp/default`
- 账号覆盖:`channels.whatsapp.accounts.<id>.sendReadReceipts`、`channels.whatsapp.accounts.<id>.dmPolicy`、`channels.whatsapp.accounts.<id>.allowFrom`。
</Accordion>
@ -217,14 +217,14 @@ WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在
}
```
- Bot 令牌:`channels.telegram.botToken` 或 `channels.telegram.tokenFile`(仅限普通文件;拒绝符号链接),默认账号的回退值为 `TELEGRAM_BOT_TOKEN`
- `apiRoot` 仅是 Telegram Bot API 根地址。使用 `https://api.telegram.org` 或你的自托管/代理根地址,不要使用 `https://api.telegram.org/bot<TOKEN>``openclaw doctor --fix` 会移除意外尾随`/bot<TOKEN>` 后缀。
- 可选的 `channels.telegram.defaultAccount` 会在匹配已配置账号 ID 时覆盖默认账号选择。
- Bot token`channels.telegram.botToken` 或 `channels.telegram.tokenFile`(仅限普通文件;符号链接会被拒绝),默认账号会以 `TELEGRAM_BOT_TOKEN` 作为回退
- `apiRoot` 仅是 Telegram Bot API 根地址。使用 `https://api.telegram.org` 或你的自托管/代理根地址,而不是 `https://api.telegram.org/bot<TOKEN>``openclaw doctor --fix` 会移除意外追加`/bot<TOKEN>` 后缀。
- 可选的 `channels.telegram.defaultAccount` 会在匹配已配置账号 ID 时覆盖默认账号选择。
- 在多账号设置2 个以上账号 ID设置显式默认值`channels.telegram.defaultAccount` 或 `channels.telegram.accounts.default`)以避免回退路由;当它缺失或无效时,`openclaw doctor` 会发出警告。
- `configWrites: false` 会阻止 Telegram 发起的配置写入(超级群 ID 迁移、`/config set|unset`)。
- 顶级 `bindings[]` 条目配合 `type: "acp"`为论坛主题配置持久 ACP 绑定(在 `match.peer.id` 中使用规范的 `chatId:topic:topicId`)。字段语义在 [ACP 智能体](/zh-CN/tools/acp-agents#persistent-channel-bindings) 中共享。
- `configWrites: false` 会阻止 Telegram 发起的配置写入(超级群 ID 迁移、`/config set|unset`)。
- 带有 `type: "acp"` 的顶层 `bindings[]` 条目会为论坛主题配置持久 ACP 绑定(在 `match.peer.id` 中使用规范的 `chatId:topic:topicId`)。字段语义在 [ACP Agents](/zh-CN/tools/acp-agents#persistent-channel-bindings) 中共享。
- Telegram 流式预览使用 `sendMessage` + `editMessageText`(适用于私聊和群聊)。
- 重试策略:参阅[重试策略](/zh-CN/concepts/retry)。
- 重试策略:参阅[重试策略](/zh-CN/concepts/retry)。
### Discord
@ -329,41 +329,41 @@ WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在
}
```
- 令牌:`channels.discord.token`,默认账户使用 `DISCORD_BOT_TOKEN` 作为回退。
- 提供显式 Discord `token` 的直接出站调用会使用该令牌发起调用;账户重试/策略设置仍来自活动运行时快照中的所选账户
- 可选的 `channels.discord.defaultAccount` 在匹配已配置账户 ID 时会覆盖默认账户选择。
- 令牌:`channels.discord.token`,默认账号以 `DISCORD_BOT_TOKEN` 作为回退。
- 提供显式 Discord `token` 的直接出站调用会使用该令牌进行调用;账号重试/策略设置仍来自活动运行时快照中选定的账号
- 可选的 `channels.discord.defaultAccount` 在匹配已配置账号 ID 时会覆盖默认账号选择。
- 使用 `user:<id>`(私信)或 `channel:<id>`(公会渠道)作为投递目标;裸数字 ID 会被拒绝。
- 公会 slug 为小写,并将空格替换为 `-`;渠道键使用 slug 化名称(不含 `#`)。优先使用公会 ID。
- 默认忽略机器人发送的消息。`allowBots: true` 会启用它们;使用 `allowBots: "mentions"`接受提及该机器人的机器人消息(仍会过滤自己的消息)。
- 公会 slug 为小写,空格替换为 `-`;渠道键使用 slug 化后的名称(无 `#`)。优先使用公会 ID。
- 默认忽略机器人作者的消息。`allowBots: true` 会启用这些消息;使用 `allowBots: "mentions"`接受提及该机器人的机器人消息(仍会过滤自己发送的消息)。
- `channels.discord.guilds.<id>.ignoreOtherMentions`(以及渠道覆盖项)会丢弃提及其他用户或角色但未提及该机器人的消息(不包括 @everyone/@here)。
- `channels.discord.mentionAliases` 会在发送前稳定的出站 `@handle` 文本映射到 Discord 用户 ID因此即使临时目录缓存为空也能确定性地提及已知队友。每账户覆盖项位于 `channels.discord.accounts.<accountId>.mentionAliases` 下。
- `maxLinesPerMessage`(默认 17即使在 2000 个字符以内也会拆分过高的消息。
- `channels.discord.mentionAliases` 会在发送前稳定的出站 `@handle` 文本映射到 Discord 用户 ID因此即使临时目录缓存为空也能确定性地提及已知队友。按账号覆盖项位于 `channels.discord.accounts.<accountId>.mentionAliases` 下。
- `maxLinesPerMessage`(默认 17即使在低于 2000 个字符时也会拆分过高的消息。
- `channels.discord.threadBindings` 控制 Discord 线程绑定路由:
- `enabled`:线程绑定会话功能(`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`,以及绑定投递/路由)的 Discord 覆盖项
- `idleHours`:非活动自动取消聚焦的 Discord 覆盖项,单位为小时(`0` 禁用)
- `maxAgeHours`:硬性最长时限的 Discord 覆盖项,单位为小时(`0` 禁用)
- `enabled`:线程绑定会话功能的 Discord 覆盖项`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`,以及绑定投递/路由)
- `idleHours`:非活动自动取消聚焦的 Discord 覆盖项,单位为小时(`0` 表示禁用)
- `maxAgeHours`:硬性最大时长的 Discord 覆盖项,单位为小时(`0` 表示禁用)
- `spawnSessions`:用于 `sessions_spawn({ thread: true })` 和 ACP 线程生成自动创建/绑定线程的开关(默认:`true`
- `defaultSpawnContext`:线程绑定生成的原生子智能体上下文(默认 `"fork"`
- `defaultSpawnContext`:线程绑定生成的原生子智能体上下文(默认 `"fork"`
- 顶层 `bindings[]` 条目配合 `type: "acp"` 可为渠道和线程配置持久 ACP 绑定(在 `match.peer.id` 中使用渠道/线程 ID。字段语义在 [ACP 智能体](/zh-CN/tools/acp-agents#persistent-channel-bindings) 中共享。
- `channels.discord.ui.components.accentColor` 设置 Discord components v2 容器的强调色。
- `channels.discord.voice` 启用 Discord 语音渠道对话,以及可选的自动加入 + LLM + TTS 覆盖项。纯文本 Discord 配置默认关闭语音;设置 `channels.discord.voice.enabled=true` 选择启用。
- `channels.discord.voice.model` 可选地覆盖用于 Discord 语音渠道响应的 LLM 模型。
- `channels.discord.voice` 启用 Discord 语音渠道对话,以及可选的自动加入 + LLM + TTS 覆盖项。纯文本 Discord 配置默认关闭语音;设置 `channels.discord.voice.enabled=true` 选择启用。
- `channels.discord.voice.model` 可选地覆盖用于 Discord 语音渠道回复的 LLM 模型。
- `channels.discord.voice.daveEncryption``channels.discord.voice.decryptionFailureTolerance` 会透传给 `@discordjs/voice` DAVE 选项(默认分别为 `true``24`)。
- `channels.discord.voice.connectTimeoutMs` 控制 `/vc join` 和自动加入尝试的初始 `@discordjs/voice` Ready 等待时间(默认 `30000`)。
- `channels.discord.voice.reconnectGraceMs` 控制断开的语音会话在 OpenClaw 销毁前可进入重连信令的时长(默认为 `15000`)。
- OpenClaw 还会在重复解密失败后通过离开/重新加入语音会话来尝试语音接收恢复
- `channels.discord.streaming` 是规范流模式键。旧版 `streamMode` 和布尔 `streaming` 会自动迁移。
- `channels.discord.autoPresence` 将运行时可用性映射到机器人在线状态healthy => online、degraded => idle、exhausted => dnd并允许可选的状态文本覆盖项。
- `channels.discord.voice.connectTimeoutMs` 控制 `/vc join` 和自动加入尝试的初始 `@discordjs/voice` Ready 等待时间(默认 `30000`)。
- `channels.discord.voice.reconnectGraceMs` 控制断开的语音会话可进入重连信令的最长时间,超过后 OpenClaw 会销毁它(默认 `15000`)。
- OpenClaw 还会在反复解密失败后,通过离开/重新加入语音会话来尝试恢复语音接收
- `channels.discord.streaming` 是规范流模式键。旧版 `streamMode` 和布尔 `streaming` 会自动迁移。
- `channels.discord.autoPresence` 将运行时可用性映射到机器人在线状态healthy => onlinedegraded => idleexhausted => dnd并允许可选的状态文本覆盖项。
- `channels.discord.dangerouslyAllowNameMatching` 会重新启用可变名称/标签匹配(应急兼容模式)。
- `channels.discord.execApprovals`Discord 原生 exec 审批投递和审批授权。
- `enabled``true`、`false` 或 `"auto"`(默认)。在自动模式下,如果可以从 `approvers``commands.ownerAllowFrom` 解析审批者exec 审批会激活
- `approvers`:允许批 exec 请求的 Discord 用户 ID。省略时回退到 `commands.ownerAllowFrom`
- `channels.discord.execApprovals`Discord 原生 exec 审批投递和审批授权。
- `enabled``true`、`false` 或 `"auto"`(默认)。在自动模式下,当可从 `approvers``commands.ownerAllowFrom` 解析审批人时,会激活 exec 审批
- `approvers`:允许批 exec 请求的 Discord 用户 ID。省略时回退到 `commands.ownerAllowFrom`
- `agentFilter`:可选的智能体 ID 允许列表。省略则转发所有智能体的审批。
- `sessionFilter`:可选的会话键模式(子字符串或正则表达式)。
- `target`发送审批提示的位置。`"dm"`(默认)发送到审批者私信,`"channel"` 发送到来源渠道,`"both"` 同时发送到两者。当 target 包含 `"channel"` 时,按钮仅可由已解析的审批者使用。
- `target`审批提示发送位置。`"dm"`(默认)发送到审批人私信,`"channel"` 发送到来源渠道,`"both"` 同时发送到两者。当目标包含 `"channel"` 时,按钮只能由已解析的审批人使用。
- `cleanupAfterResolve`:为 `true` 时,在批准、拒绝或超时后删除审批私信。
**反应通知模式:** `off`(无)、`own`(机器人的消息,默认)、`all`(所有消息)、`allowlist`(来自所有消息上的 `guilds.<id>.users`)。
**反应通知模式:**`off`(无)、`own`(机器人的消息,默认)、`all`(所有消息)、`allowlist`(来自所有消息上的 `guilds.<id>.users`)。
### Google Chat
@ -394,8 +394,8 @@ WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在
}
```
- 服务账 JSON内联`serviceAccount`)或基于文件(`serviceAccountFile`)。
- 也支持服务账 SecretRef`serviceAccountRef`)。
- 服务账 JSON内联`serviceAccount`)或基于文件(`serviceAccountFile`)。
- 也支持服务账 SecretRef`serviceAccountRef`)。
- 环境变量回退:`GOOGLE_CHAT_SERVICE_ACCOUNT` 或 `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`
- 使用 `spaces/<spaceId>``users/<userId>` 作为投递目标。
- `channels.googlechat.dangerouslyAllowNameMatching` 会重新启用可变电子邮件主体匹配(应急兼容模式)。
@ -470,35 +470,44 @@ WhatsApp 通过 Gateway 网关的 Web 渠道Baileys Web运行。当存在
}
```
- **Socket mode** 需要同时提供 `botToken``appToken`(默认账户环境变量回退为 `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`)。
- **HTTP mode** 需要 `botToken``signingSecret`(位于根级别或每账户)。
- `socketMode` 会将 Slack SDK Socket Mode 传输调优透传给公开的 Bolt 接收器 API。仅在调查 ping/pong 超时或陈旧 websocket 行为时使用它。
- `botToken`、`appToken`、`signingSecret` 和 `userToken` 接受明文字符串或 SecretRef 对象。
- Slack 账户快照会公开每个凭证的来源/状态字段,例如 `botTokenSource`、`botTokenStatus`、`appTokenStatus`,以及 HTTP mode 中的 `signingSecretStatus`。`configured_unavailable` 表示账户已通过 SecretRef 配置,但当前命令/运行时路径无法解析密钥值。
- **Socket mode** 需要同时提供 `botToken``appToken`(默认账号环境变量回退为 `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`)。
- **HTTP mode** 需要 `botToken``signingSecret`(位于根级或按账号配置)。
- `socketMode` 会把 Slack SDK Socket Mode 传输调优透传到公共 Bolt receiver API。仅在调查 ping/pong 超时或过期 websocket 行为时使用。
- `botToken`、`appToken`、`signingSecret` 和 `userToken` 接受明文
字符串或 SecretRef 对象。
- Slack 账号快照会暴露按凭据划分的来源/状态字段,例如
`botTokenSource`、`botTokenStatus`、`appTokenStatus`,以及在 HTTP mode 下的
`signingSecretStatus`。`configured_unavailable` 表示账号已
通过 SecretRef 配置,但当前命令/运行时路径无法
解析密钥值。
- `configWrites: false` 会阻止 Slack 发起的配置写入。
- 可选的 `channels.slack.defaultAccount` 在匹配已配置账户 ID 时会覆盖默认账户选择。
- `channels.slack.streaming.mode` 是规范的 Slack 流模式键。`channels.slack.streaming.nativeTransport` 控制 Slack 的原生流式传输协议。旧版 `streamMode`、布尔 `streaming``nativeStreaming` 值会自动迁移。
- 可选的 `channels.slack.defaultAccount` 在匹配已配置账号 ID 时会覆盖默认账号选择。
- `channels.slack.streaming.mode` 是规范 Slack 流模式键。`channels.slack.streaming.nativeTransport` 控制 Slack 的原生流传输。旧版 `streamMode`、布尔 `streaming``nativeStreaming` 会自动迁移。
- 使用 `user:<id>`(私信)或 `channel:<id>` 作为投递目标。
**反应通知模式:** `off`、`own`(默认)、`all`、`allowlist`(来自 `reactionAllowlist`)。
**反应通知模式:**`off`、`own`(默认)、`all`、`allowlist`(来自 `reactionAllowlist`)。
**线程会话隔离:** `thread.historyScope` 为每线程(默认)或跨渠道共享。`thread.inheritParent` 会将父渠道转录复制到新线程。
**线程会话隔离:**`thread.historyScope` 是按线程(默认)或在渠道内共享。`thread.inheritParent` 会把父渠道转录复制到新线程。
- Slack 原生流式传输加上 Slack assistant 风格的“正在输入...”线程状态需要回复线程目标。顶层私信默认保持在线程外,因此它们仍可通过 Slack 草稿发布并编辑预览进行流式传输,而不是显示线程风格的原生流/状态预览。
- `typingReaction` 会在回复运行时向入站 Slack 消息添加一个临时反应,然后在完成时移除。使用 Slack emoji 短代码,例如 `"hourglass_flowing_sand"`
- `channels.slack.execApprovals`Slack 原生 exec 审批投递和审批者授权。与 Discord 相同的 schema`enabled``true`/`false`/`"auto"`)、`approvers`Slack 用户 ID、`agentFilter`、`sessionFilter` 和 `target``"dm"`、`"channel"` 或 `"both"`)。
- Slack 原生流式传输加 Slack 助手风格的 “is typing...” 线程状态需要回复线程目标。顶层私信默认保持在线程外,因此仍可通过 Slack 草稿发布并编辑预览来流式传输,而不是显示线程风格的原生流/状态预览。
- `typingReaction` 会在回复运行时向传入的 Slack 消息添加临时反应,并在完成时移除它。使用 Slack emoji shortcode,例如 `"hourglass_flowing_sand"`
- `channels.slack.execApprovals`Slack 原生 exec 审批投递和审批人授权。架构与 Discord 相同`enabled``true`/`false`/`"auto"`)、`approvers`Slack 用户 ID、`agentFilter`、`sessionFilter` 和 `target``"dm"`、`"channel"` 或 `"both"`)。
| 操作组 | 默认值 | 说明 |
| ------------ | ------ | ------------------ |
| reactions | 已启用 | 添加反应 + 列出反应 |
| messages | 已启用 | 读取/发送/编辑/删除 |
| pins | 已启用 | 置顶/取消置顶/列出 |
| memberInfo | 已启用 | 成员信息 |
| emojiList | 已启用 | 自定义 emoji 列表 |
| 操作组 | 默认值 | 备注 |
| ------------ | ------- | ---------------------- |
| reactions | enabled | 添加反应 + 列出反应 |
| messages | enabled | 读取/发送/编辑/删除 |
| pins | enabled | 固定/取消固定/列出 |
| memberInfo | enabled | 成员信息 |
| emojiList | enabled | 自定义 emoji 列表 |
### Mattermost
Mattermost 在当前 OpenClaw 版本中作为内置插件提供。较旧版本或自定义构建可以使用 `openclaw plugins install @openclaw/mattermost` 安装当前 npm 包。固定版本前,请查看 [npmjs.com/package/@openclaw/mattermost](https://www.npmjs.com/package/@openclaw/mattermost) 获取当前 dist-tags。
Mattermost 在当前 OpenClaw 版本中作为内置插件提供。较旧或
自定义构建可以使用
`openclaw plugins install @openclaw/mattermost` 安装当前 npm 包。固定版本前,请查看
[npmjs.com/package/@openclaw/mattermost](https://www.npmjs.com/package/@openclaw/mattermost)
了解当前 dist-tags。
```json5
{
@ -528,18 +537,18 @@ Mattermost 在当前 OpenClaw 版本中作为内置插件提供。较旧版本
}
```
聊天模式:`oncall`(在 @ 提及时响应,默认)、`onmessage`(每条消息)、`onchar`(以触发前缀开头的消息)。
聊天模式:`oncall`(在 @-mention 时回复,默认)、`onmessage`(每条消息)、`onchar`(以触发前缀开头的消息)。
启用 Mattermost 原生命令时:
- `commands.callbackPath` 必须是路径(例如 `/api/channels/mattermost/command`),不能是完整 URL。
- `commands.callbackUrl` 必须解析到 OpenClaw Gateway 网关端点,并且 Mattermost 服务器可以访问。
- 原生斜杠回调使用 Mattermost 在斜杠命令注册期间返回的每命令令牌进行身份验证。如果注册失败或没有命令被激活OpenClaw 会以 `Unauthorized: invalid command token.` 拒绝回调。
- 对于私有/tailnet/内部回调主机Mattermost 可能要求 `ServiceSettings.AllowedUntrustedInternalConnections` 包含回调主机/域名。使用主机/域名值,不要使用完整 URL。
- `commands.callbackUrl` 必须解析到 OpenClaw Gateway 网关端点,并且 Mattermost 服务器能够访问。
- 原生斜杠回调使用 Mattermost 在斜杠命令注册期间返回的每命令令牌进行认证。如果注册失败或没有激活任何命令OpenClaw 会使用 `Unauthorized: invalid command token.` 拒绝回调。
- 对于私有、tailnet 或内部回调主机Mattermost 可能要求 `ServiceSettings.AllowedUntrustedInternalConnections` 包含回调主机/域名。使用主机/域名值,而不是完整 URL。
- `channels.mattermost.configWrites`:允许或拒绝 Mattermost 发起的配置写入。
- `channels.mattermost.requireMention`要求在渠道中回复前先 `@mention`
- `channels.mattermost.groups.<channelId>.requireMention`:按渠道覆盖提及门控(`"*"` 表示默认)。
- 可选的 `channels.mattermost.defaultAccount` 会在匹配已配置的账号 id 时覆盖默认账号选择。
- `channels.mattermost.requireMention`在渠道中回复前要求 `@mention`
- `channels.mattermost.groups.<channelId>.requireMention`:按渠道覆盖提及门控(`"*"` 表示默认)。
- 可选的 `channels.mattermost.defaultAccount` 在匹配已配置账号 ID 时覆盖默认账号选择。
### Signal
@ -560,11 +569,11 @@ Mattermost 在当前 OpenClaw 版本中作为内置插件提供。较旧版本
}
```
**表情反应通知模式:**`off`、`own`(默认)、`all`、`allowlist`(来自 `reactionAllowlist`)。
**表情回应通知模式:** `off`、`own`(默认)、`all`、`allowlist`(来自 `reactionAllowlist`)。
- `channels.signal.account`:将渠道启动固定到特定 Signal 账号身份。
- `channels.signal.configWrites`:允许或拒绝 Signal 发起的配置写入。
- 可选的 `channels.signal.defaultAccount` 会在匹配已配置的账号 id 时覆盖默认账号选择。
- 可选的 `channels.signal.defaultAccount` 在匹配已配置账号 ID 时覆盖默认账号选择。
### BlueBubbles
@ -583,14 +592,14 @@ BlueBubbles 是推荐的 iMessage 路径(由插件支持,在 `channels.blueb
}
```
- 这里覆盖的核心键路径:`channels.bluebubbles`、`channels.bluebubbles.dmPolicy`。
- 可选的 `channels.bluebubbles.defaultAccount` 会在匹配已配置的账号 id 时覆盖默认账号选择。
- 顶层 `bindings[]` 条目配合 `type: "acp"` 可以将 BlueBubbles 对话绑定到持久 ACP 会话。在 `match.peer.id` 中使用 BlueBubbles 句柄或目标字符串(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)。共享字段语义:[ACP Agents](/zh-CN/tools/acp-agents#persistent-channel-bindings)。
- 完整 BlueBubbles 渠道配置见 [BlueBubbles](/zh-CN/channels/bluebubbles)。
- 此处涵盖的核心键路径:`channels.bluebubbles`、`channels.bluebubbles.dmPolicy`。
- 可选的 `channels.bluebubbles.defaultAccount` 在匹配已配置账号 ID 时覆盖默认账号选择。
- 带有 `type: "acp"`顶层 `bindings[]` 条目可以将 BlueBubbles 对话绑定到持久 ACP 会话。在 `match.peer.id` 中使用 BlueBubbles 句柄或目标字符串(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)。共享字段语义:[ACP 智能体](/zh-CN/tools/acp-agents#persistent-channel-bindings)。
- 完整的 BlueBubbles 渠道配置记录在 [BlueBubbles](/zh-CN/channels/bluebubbles)
### iMessage
OpenClaw 会启动 `imsg rpc`(通过 stdio 运行 JSON-RPC。不需要守护进程或端口。
OpenClaw 会生成 `imsg rpc`(通过 stdio 的 JSON-RPC。不需要守护进程或端口。
```json5
{
@ -614,15 +623,15 @@ OpenClaw 会启动 `imsg rpc`(通过 stdio 运行 JSON-RPC。不需要守
}
```
- 可选的 `channels.imessage.defaultAccount` 会在匹配已配置的账号 id 时覆盖默认账号选择。
- 可选的 `channels.imessage.defaultAccount` 在匹配已配置账号 ID 时覆盖默认账号选择。
- 需要对 Messages DB 授予完整磁盘访问权限。
- 需要 Messages 数据库的完整磁盘访问权限。
- 优先使用 `chat_id:<id>` 目标。使用 `imsg chats --limit 20` 列出聊天。
- `cliPath` 可以指向 SSH 包装器;设置 `remoteHost``host` 或 `user@host`)用于通过 SCP 获取附件。
- `attachmentRoots``remoteAttachmentRoots` 限制入附件路径(默认:`/Users/*/Library/Messages/Attachments`)。
- `cliPath` 可以指向 SSH 包装器;设置 `remoteHost``host` 或 `user@host`)用于 SCP 附件获取
- `attachmentRoots``remoteAttachmentRoots` 限制入附件路径(默认:`/Users/*/Library/Messages/Attachments`)。
- SCP 使用严格的主机密钥检查,因此请确保中继主机密钥已存在于 `~/.ssh/known_hosts` 中。
- `channels.imessage.configWrites`:允许或拒绝 iMessage 发起的配置写入。
- 顶层 `bindings[]` 条目配合 `type: "acp"` 可以将 iMessage 对话绑定到持久 ACP 会话。在 `match.peer.id` 中使用规范化句柄或显式聊天目标(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)。共享字段语义:[ACP Agents](/zh-CN/tools/acp-agents#persistent-channel-bindings)。
- 带有 `type: "acp"`顶层 `bindings[]` 条目可以将 iMessage 对话绑定到持久 ACP 会话。在 `match.peer.id` 中使用规范化句柄或显式聊天目标(`chat_id:*`、`chat_guid:*`、`chat_identifier:*`)。共享字段语义:[ACP 智能体](/zh-CN/tools/acp-agents#persistent-channel-bindings)。
<Accordion title="iMessage SSH 包装器示例">
@ -665,21 +674,21 @@ Matrix 由插件支持,并在 `channels.matrix` 下配置。
}
```
- 令牌身份验证使用 `accessToken`;密码身份验证使用 `userId` + `password`
- 令牌认证使用 `accessToken`;密码认证使用 `userId` + `password`
- `channels.matrix.proxy` 会通过显式 HTTP(S) 代理路由 Matrix HTTP 流量。命名账号可以用 `channels.matrix.accounts.<id>.proxy` 覆盖它。
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` 允许私有/内部 homeserver。`proxy` 与此网络选择加入是相互独立的控制项。
- `channels.matrix.defaultAccount` 在多账号设置中选择首选账号。
- `channels.matrix.autoJoin` 默认为 `off`,因此受邀房间和新的私信式邀请会被忽略,直到你设置带有 `autoJoinAllowlist``autoJoin: "allowlist"``autoJoin: "always"`
- `channels.matrix.execApprovals`Matrix 原生 exec 审批投递和审批人授权。
- `enabled``true`、`false` 或 `"auto"`(默认)。在自动模式下,当可以从 `approvers``commands.ownerAllowFrom` 解析审批人时exec 审批会激活。
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` 允许私有/内部 homeserver。`proxy` 和这个网络选择加入是独立控制项。
- `channels.matrix.defaultAccount` 在多账号设置中选择首选账号。
- `channels.matrix.autoJoin` 默认为 `off`,因此被邀请的房间和新的私信样式邀请会被忽略,直到你设置带有 `autoJoinAllowlist``autoJoin: "allowlist"``autoJoin: "always"`
- `channels.matrix.execApprovals`Matrix 原生 exec 批准投递和批准者授权。
- `enabled``true`、`false` 或 `"auto"`(默认)。在自动模式下,当可以从 `approvers``commands.ownerAllowFrom` 解析批准者时exec 批准会激活。
- `approvers`:允许批准 exec 请求的 Matrix 用户 ID例如 `@owner:example.org`)。
- `agentFilter`:可选的智能体 ID 允许列表。省略时会转发所有智能体的审批
- `sessionFilter`:可选会话键模式(子字符串或正则表达式)。
- `target`:发送批提示的位置。`"dm"`(默认)、`"channel"`(来源房间)或 `"both"`
- `agentFilter`:可选智能体 ID 允许列表。省略则转发所有智能体的批准
- `sessionFilter`:可选会话键模式(子字符串或正则表达式)。
- `target`:发送批提示的位置。`"dm"`(默认)、`"channel"`(来源房间)或 `"both"`
- 按账号覆盖:`channels.matrix.accounts.<id>.execApprovals`。
- `channels.matrix.dm.sessionScope` 控制 Matrix 私信如何分组为会话:`per-user`(默认)按路由后的对共享,而 `per-room` 会隔离每个私信房间。
- Matrix 状态探测和实时目录查找使用与运行时流量相同的代理策略。
- 完整 Matrix 配置、定向规则和设置示例见 [Matrix](/zh-CN/channels/matrix)
- `channels.matrix.dm.sessionScope` 控制 Matrix 私信如何分组为会话:`per-user`(默认)按路由后的对等方共享,而 `per-room` 会隔离每个私信房间。
- Matrix Status 探测和实时目录查找使用与运行时流量相同的代理策略。
- 完整的 Matrix 配置、目标规则和设置示例记录在 [Matrix](/zh-CN/channels/matrix) 中
### Microsoft Teams
@ -698,8 +707,8 @@ Microsoft Teams 由插件支持,并在 `channels.msteams` 下配置。
}
```
- 这里覆盖的核心键路径:`channels.msteams`、`channels.msteams.configWrites`。
- 完整 Teams 配置凭证、webhook、私信/群组策略、按团队/按渠道覆盖) [Microsoft Teams](/zh-CN/channels/msteams)。
- 此处涵盖的核心键路径:`channels.msteams`、`channels.msteams.configWrites`。
- 完整 Teams 配置凭证、webhook、私信/群组策略、按团队/按渠道覆盖)记录在 [Microsoft Teams](/zh-CN/channels/msteams)
### IRC
@ -724,13 +733,13 @@ IRC 由插件支持,并在 `channels.irc` 下配置。
}
```
- 这里覆盖的核心键路径:`channels.irc`、`channels.irc.dmPolicy`、`channels.irc.configWrites`、`channels.irc.nickserv.*`。
- 可选的 `channels.irc.defaultAccount` 会在匹配已配置的账号 id 时覆盖默认账号选择。
- 完整 IRC 渠道配置(主机/端口/TLS/渠道/允许列表/提及门控)见 [IRC](/zh-CN/channels/irc)
- 此处涵盖的核心键路径:`channels.irc`、`channels.irc.dmPolicy`、`channels.irc.configWrites`、`channels.irc.nickserv.*`。
- 可选的 `channels.irc.defaultAccount` 在匹配已配置账号 ID 时覆盖默认账号选择。
- 完整 IRC 渠道配置(主机/端口/TLS/渠道/允许列表/提及门控)记录在 [IRC](/zh-CN/channels/irc) 中
### 多账号(所有渠道)
每个渠道运行多个账号(每个账号都有自己的 `accountId`
每个渠道运行多个账号(每个都有自己的 `accountId`
```json5
{
@ -754,31 +763,31 @@ IRC 由插件支持,并在 `channels.irc` 下配置。
- 省略 `accountId` 时使用 `default`CLI + 路由)。
- 环境变量令牌仅适用于**默认**账号。
- 基础渠道设置会应用于所有账号,除非按账号覆盖。
- 使用 `bindings[].match.accountId` 将每个账号路由到不同智能体。
- 如果你在仍使用单账号顶层渠道配置时,通过 `openclaw channels add`或渠道新手引导添加非默认账号OpenClaw 会先将账号作用域的顶层单账号值提升到渠道账号映射中,以便原账号继续工作。大多数渠道会将它们移入 `channels.<channel>.accounts.default`Matrix 可以改为保留现有匹配的命名/默认目标。
- 现有仅渠道绑定(没有 `accountId`)会继续匹配默认账号;账号作用域绑定仍然是可选的
- `openclaw doctor --fix` 也会通过将账号作用域的顶层单账号值移入为该渠道选择的已提升账号来修复混合形态。大多数渠道使用 `accounts.default`Matrix 可以改为保留现有匹配的命名/默认目标。
- 使用 `bindings[].match.accountId` 将每个账号路由到不同智能体。
- 如果你在仍使用单账号顶层渠道配置时,通过 `openclaw channels add`或渠道新手引导添加非默认账号OpenClaw 会先将账号范围的顶层单账号值提升到渠道账号映射中,以便原账号继续工作。大多数渠道会将它们移入 `channels.<channel>.accounts.default`Matrix 可以改为保留现有匹配的命名/默认目标。
- 现有仅渠道绑定(`accountId`)继续匹配默认账号;账号范围绑定仍为可选
- `openclaw doctor --fix` 还会通过将账号范围的顶层单账号值移入为该渠道选择的已提升账号来修复混合形态。大多数渠道使用 `accounts.default`Matrix 可以改为保留现有匹配的命名/默认目标。
### 其他插件渠道
许多插件渠道配置为 `channels.<id>`,并在各自专用的渠道页面中记录(例如 Feishu、Matrix、LINE、Nostr、Zalo、Nextcloud Talk、Synology Chat 和 Twitch
查看完整渠道索引:[Channels](/zh-CN/channels)。
许多插件渠道配置为 `channels.<id>`,并记录在各自专用的渠道页面中(例如 Feishu、Matrix、LINE、Nostr、Zalo、Nextcloud Talk、Synology Chat 和 Twitch
查看完整渠道索引:[渠道](/zh-CN/channels)。
### 群聊提及门控
群组消息默认**要求提及**(元数据提及或安全正则模式)。适用于 WhatsApp、Telegram、Discord、Google Chat 和 iMessage 群聊。
群组消息默认**要求提及**(元数据提及或安全正则表达式模式)。适用于 WhatsApp、Telegram、Discord、Google Chat 和 iMessage 群聊。
可见回复单独控制。群组/渠道房间默认为 `messages.groupChat.visibleReplies: "message_tool"`OpenClaw 仍会处理该轮对话,但普通最终回复保持私密,可见房间输出需要 `message(action=send)`。仅当你需要旧版行为,即普通回复也发回房间时,才设置为 `"automatic"`。若要将相同的仅工具可见回复行为也应用到直接聊天,请设置 `messages.visibleReplies: "message_tool"`Codex harness 也将这种仅工具行为作为未设置的直接聊天默认值。
可见回复单独控制。群组/渠道房间默认为 `messages.groupChat.visibleReplies: "message_tool"`OpenClaw 仍会处理本轮,但普通最终回复保持私密,可见房间输出需要 `message(action=send)`。仅当你想要旧版行为,即普通回复发布回房间时,才设置 `"automatic"`。要把相同的仅工具可见回复行为也应用到直接聊天,请设置 `messages.visibleReplies: "message_tool"`Codex harness 也使用该仅工具行为作为其未设置直接聊天默认值。
如果消息工具在当前工具策略下不可用OpenClaw 会回退到自动可见回复,而不是静默抑制响应。`openclaw doctor` 会对这种不匹配发出警告。
如果在当前工具策略下消息工具不可用OpenClaw 会回退到自动可见回复,而不是静默抑制响应。`openclaw doctor` 会对不匹配发出警告。
Gateway 网关会在文件保存后热重载 `messages` 配置。仅当部署中禁用了文件监听或配置重载时才需要重启。
Gateway 网关会在文件保存后热重载 `messages` 配置。仅当部署中禁用文件监视或配置重载时才重启。
**提及类型:**
- **元数据提及**:原生平台 @-提及。在 WhatsApp 自聊模式会被忽略。
- **文本模式**`agents.list[].groupChat.mentionPatterns` 中的安全正则模式。无效模式和不安全的嵌套重复会被忽略。
- 仅当可以检测时(原生提及或至少一个模式),才会强制执行提及门控。
- **元数据提及**:原生平台 @-提及。在 WhatsApp 自聊模式会被忽略。
- **文本模式**`agents.list[].groupChat.mentionPatterns` 中的安全正则表达式模式。无效模式和不安全的嵌套重复会被忽略。
- 仅在可检测时(原生提及或至少一个模式)强制执行提及门控。
```json5
{
@ -797,7 +806,7 @@ Gateway 网关会在文件保存后热重载 `messages` 配置。仅当部署中
`messages.groupChat.historyLimit` 设置全局默认值。渠道可以用 `channels.<channel>.historyLimit`(或按账号)覆盖。设为 `0` 可禁用。
`messages.visibleReplies` 是全局源回合默认值;`messages.groupChat.visibleReplies` 会为群组/渠道源回合覆盖它。当 `messages.visibleReplies` 未设置时harness 可以提供自己的直接/源默认值Codex harness 默认为 `message_tool`。渠道允许列表和提及门控仍会决定是否处理某个回合
`messages.visibleReplies` 是全局来源轮次默认值;`messages.groupChat.visibleReplies` 会为群组/渠道来源轮次覆盖它。当 `messages.visibleReplies` 未设置时harness 可以提供自己的直接/来源默认值Codex harness 默认使用 `message_tool`。渠道 allowlist 和提及门控仍会决定是否处理某个轮次
#### 私信历史限制
@ -870,28 +879,28 @@ Gateway 网关会在文件保存后热重载 `messages` 配置。仅当部署中
<Accordion title="Command details">
- 此块配置命令界面。有关当前内置 + 内置打包命令目录,请参阅 [Slash Commands](/zh-CN/tools/slash-commands)。
- 此页面是**配置键参考**,不是完整命令目录。渠道/插件拥有的命令,例如 QQ Bot `/bot-ping` `/bot-help` `/bot-logs`、LINE `/card`、设备配对 `/pair`、记忆 `/dreaming`、手机控制 `/phone` 和 Talk `/voice`,记录在其渠道/插件页面以及 [Slash Commands](/zh-CN/tools/slash-commands) 中。
- 文本命令必须是`/` 开头的**独立**消息。
- `native: "auto"` 会为 Discord/Telegram 启原生命令,保持 Slack 关闭。
- `nativeSkills: "auto"` 会为 Discord/Telegram 启原生 Skills 命令,保持 Slack 关闭。
- 按渠道覆盖:`channels.discord.commands.native`(布尔值或 `"auto"`)。`false` 会清除此前注册的命令
- 此块配置命令界面。要查看当前内置 + 捆绑的命令目录,请参阅 [Slash Commands](/zh-CN/tools/slash-commands)。
- 本页是**配置键参考**,不是完整命令目录。渠道/插件拥有的命令(例如 QQ Bot `/bot-ping` `/bot-help` `/bot-logs`、LINE `/card`、设备配对 `/pair`、记忆 `/dreaming`、手机控制 `/phone` 和 Talk `/voice`)记录在各自的渠道/插件页面以及 [Slash Commands](/zh-CN/tools/slash-commands) 中。
- 文本命令必须是带前导 `/` 的**独立**消息。
- `native: "auto"` 会为 Discord/Telegram 启原生命令Slack 保持关闭。
- `nativeSkills: "auto"` 会为 Discord/Telegram 启原生 Skills 命令Slack 保持关闭。
- 按渠道覆盖:`channels.discord.commands.native`(布尔值或 `"auto"`)。对于 Discord`false` 会在启动期间跳过原生命令注册和清理
- 使用 `channels.<provider>.commands.nativeSkills` 按渠道覆盖原生 Skills 注册。
- `channels.telegram.customCommands` 会添加额外的 Telegram 机器人菜单条目。
- `bash: true` 为主机 shell 启用 `! <cmd>`。需要 `tools.elevated.enabled`,且发送者在 `tools.elevated.allowFrom.<channel>` 中。
- `config: true` 启用 `/config`(读取/写入 `openclaw.json`)。对于 Gateway 网关 `chat.send` 客户端,持久 `/config set|unset` 写入还需要 `operator.admin`;只读 `/config show` 仍可供普通写入作用域的 operator 客户端使用。
- `mcp: true` `mcp.servers` 下由 OpenClaw 管理的 MCP 服务器配置启用 `/mcp`
- `plugins: true` 为插件发现、安装以及启用/禁用控制启用 `/plugins`
- `channels.<provider>.configWrites` 按渠道控配置变更默认值true
- 对于多账号渠道,`channels.<provider>.accounts.<id>.configWrites` 也会控制面向该账号的写入(例如 `/allowlist --config --account <id>``/config set channels.<provider>.accounts.<id>...`)。
- `restart: false` 禁用 `/restart` 和 Gateway 网关重启工具操作。默认值:`true`。
- `ownerAllowFrom` 是仅限所有者命令/工具的显式所有者允许列表。它与 `allowFrom` 分开
- `ownerDisplay: "hash"` 会在系统提示中哈希所有者 ID。设置 `ownerDisplaySecret` 可控制哈希。
- `allowFrom` 按提供商设置。设置后,它是**唯一**授权来源(渠道允许列表/配对和 `useAccessGroups` 会被忽略)。
- `channels.telegram.customCommands` 会添加额外的 Telegram Bot 菜单条目。
- `bash: true` 启用面向宿主 shell 的 `! <cmd>`。需要 `tools.elevated.enabled`,且发送者位于 `tools.elevated.allowFrom.<channel>` 中。
- `config: true` 启用 `/config`(读取/写入 `openclaw.json`)。对于 Gateway 网关 `chat.send` 客户端,持久 `/config set|unset` 写入还需要 `operator.admin`;只读 `/config show` 仍可供普通写入范围的 operator 客户端使用。
- `mcp: true` 启用 `/mcp`,用于 `mcp.servers` 下由 OpenClaw 管理的 MCP server 配置
- `plugins: true` 启用 `/plugins`,用于插件发现、安装和启用/禁用控制
- `channels.<provider>.configWrites` 按渠道控配置变更默认值true
- 对于多账号渠道,`channels.<provider>.accounts.<id>.configWrites` 也会门控以该账号为目标的写入(例如 `/allowlist --config --account <id>``/config set channels.<provider>.accounts.<id>...`)。
- `restart: false` 禁用 `/restart` 和 Gateway 网关重启工具操作。默认值:`true`。
- `ownerAllowFrom` 是仅限 owner 命令/工具的显式 owner allowlist。它独立于 `allowFrom`
- `ownerDisplay: "hash"` 会在系统提示中哈希 owner id。设置 `ownerDisplaySecret` 可控制哈希。
- `allowFrom` 按提供商设置。设置后,它就是**唯一**授权来源(渠道 allowlist/配对和 `useAccessGroups` 会被忽略)。
- 当未设置 `allowFrom` 时,`useAccessGroups: false` 允许命令绕过访问组策略。
- 命令文档映射:
- 内置 + 内置打包目录:[Slash Commands](/zh-CN/tools/slash-commands)
- 渠道特定命令界面:[Channels](/zh-CN/channels)
- 内置 + 捆绑目录:[Slash Commands](/zh-CN/tools/slash-commands)
- 渠道特定命令界面:[渠道](/zh-CN/channels)
- QQ Bot 命令:[QQ Bot](/zh-CN/channels/qqbot)
- 配对命令:[Pairing](/zh-CN/channels/pairing)
- LINE 卡片命令:[LINE](/zh-CN/channels/line)
@ -903,6 +912,6 @@ Gateway 网关会在文件保存后热重载 `messages` 配置。仅当部署中
## 相关内容
- [配置参考](/zh-CN/gateway/configuration-reference) — 顶
- [配置参考](/zh-CN/gateway/configuration-reference) — 顶
- [配置 — 智能体](/zh-CN/gateway/config-agents)
- [渠道概览](/zh-CN/channels)

View File

@ -3,20 +3,20 @@ read_when:
- 使用或配置聊天命令
- 调试命令路由或权限
sidebarTitle: Slash commands
summary: 斜杠命令:文本与原生、配置和支持的命令
summary: 斜杠命令:文本与原生命令、配置和支持的命令
title: 斜杠命令
x-i18n:
generated_at: "2026-05-03T17:32:48Z"
generated_at: "2026-05-03T18:10:24Z"
model: gpt-5.5
provider: openai
source_hash: 02b7c1f3daa9598515085fd94570172f82779ce61a2af34edac02a36ccc87543
source_hash: 9fbdd76ccd43159cabfbc3f15f7bddd2a7ada07fcd6eea2e169d2d88df18f28c
source_path: tools/slash-commands.md
workflow: 16
---
命令由 Gateway 网关处理。大多数命令必须作为以 `/` 开头的**独立**消息发送。仅主机 bash 聊天命令使用 `! <cmd>``/bash <cmd>` 别名)。
命令由 Gateway 网关处理。大多数命令必须作为以 `/` 开头的**独立**消息发送。仅主机 bash 聊天命令使用 `! <cmd>``/bash <cmd>` 作为别名)。
当对话或线程绑定到 ACP 会话时,普通后续文本会路由到该 ACP harness。Gateway 网关管理命令仍保留在本地:`/acp ...` 始终到达 OpenClaw ACP 命令处理器;只要该表面启用了命令处理,`/status` 和 `/unfocus` 也会保留在本地
当对话或线程绑定到 ACP 会话时,普通后续文本会路由到该 ACP harness。Gateway 网关管理命令仍保持本地处理:`/acp ...` 始终会到达 OpenClaw ACP 命令处理程序,并且只要该表面启用了命令处理,`/status` 和 `/unfocus` 就会保持本地处理
有两个相关系统:
@ -27,16 +27,16 @@ x-i18n:
<Accordion title="指令">
`/think`、`/fast`、`/verbose`、`/trace`、`/reasoning`、`/elevated`、`/exec`、`/model`、`/queue`。
- 指令会在模型看到消息之前从消息中移除
- 在普通聊天消息中(不是仅指令消息),它们会被视为“内联提示”,并且**不会**持久化会话设置。
- 指令会在模型看到消息之前从消息中剥离
- 在普通聊天消息中(仅指令消息),它们会被视为“内联提示”,并且**不会**持久化会话设置。
- 在仅指令消息中(消息只包含指令),它们会持久化到会话,并回复确认。
- 指令只会应用于**已授权发送者**。如果设置了 `commands.allowFrom`,它就是唯一使用的允许列表;否则授权来自渠道允许列表/配对以及 `commands.useAccessGroups`。未授权发送者的指令会被当作纯文本处理。
- 指令只会应用于**已授权发送者**。如果设置了 `commands.allowFrom`,它就是唯一使用的允许列表;否则授权来自渠道允许列表/配对以及 `commands.useAccessGroups`。未授权发送者的指令会被当作纯文本处理。
</Accordion>
<Accordion title="内联快捷命令">
限允许列表中/已授权的发送者:`/help`、`/commands`、`/status`、`/whoami``/id`)。
<Accordion title="内联快捷方式">
允许列表内/已授权发送者:`/help`、`/commands`、`/status`、`/whoami``/id`)。
它们会立即运行,并在模型看到消息之前被移除,剩余文本继续走普通流程
它们会立即运行,在模型看到消息之前被剥离,剩余文本会继续按正常流程处理
</Accordion>
</AccordionGroup>
@ -72,17 +72,17 @@ x-i18n:
启用在聊天消息中解析 `/...`。在没有原生命令的表面WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams即使你将它设置为 `false`,文本命令仍然可用。
</ParamField>
<ParamField path="commands.native" type='boolean | "auto"' default='"auto"'>
注册原生命令。自动:对 Discord/Telegram 开启;对 Slack 关闭(直到你添加斜杠命令);对没有原生支持的提供商会被忽略。设置 `channels.discord.commands.native`、`channels.telegram.commands.native` 或 `channels.slack.commands.native` 可按提供商覆盖(布尔值或 `"auto"`)。`false` 会在启动时清除 Discord/Telegram 上先前注册的命令。Slack 命令在 Slack 应用中管理,不会自动移除。
注册原生命令。自动:对 Discord/Telegram 开启;对 Slack 关闭(直到你添加斜杠命令);对没有原生支持的提供商忽略。设置 `channels.discord.commands.native`、`channels.telegram.commands.native` 或 `channels.slack.commands.native` 可按提供商覆盖(布尔值或 `"auto"`)。在 Discord 上,`false` 会跳过启动期间的斜杠命令注册和清理;之前注册的命令可能会保持可见,直到你从 Discord 应用中移除它们。Slack 命令在 Slack 应用中管理,不会自动移除。
</ParamField>
在 Discord 上,原生命令规可以包含 `descriptionLocalizations`OpenClaw 会将其发布为 Discord `description_localizations`,并纳入调和比较。
在 Discord 上,原生命令规可以包含 `descriptionLocalizations`OpenClaw 会将其发布为 Discord `description_localizations`,并纳入对账比较。
<ParamField path="commands.nativeSkills" type='boolean | "auto"' default='"auto"'>
在支持时原生注册 **skill** 命令。自动:对 Discord/Telegram 开启;对 Slack 关闭Slack 要为每个 skill 创建一个斜杠命令)。设置 `channels.discord.commands.nativeSkills`、`channels.telegram.commands.nativeSkills` 或 `channels.slack.commands.nativeSkills` 可按提供商覆盖(布尔值或 `"auto"`)。
在支持时原生方式注册 **skill** 命令。自动:对 Discord/Telegram 开启;对 Slack 关闭Slack 要为每个 skill 创建一个斜杠命令)。设置 `channels.discord.commands.nativeSkills`、`channels.telegram.commands.nativeSkills` 或 `channels.slack.commands.nativeSkills` 可按提供商覆盖(布尔值或 `"auto"`)。
</ParamField>
<ParamField path="commands.bash" type="boolean" default="false">
启用 `! <cmd>` 运行主机 shell 命令(`/bash <cmd>` 是别名;需要 `tools.elevated` 允许列表)。
启用 `! <cmd>` 运行主机 shell 命令(`/bash <cmd>` 是别名;需要 `tools.elevated` 允许列表)。
</ParamField>
<ParamField path="commands.bashForegroundMs" type="number" default="2000">
控制 bash 在切换到后台模式前等待多久(`0` 表示立即转入后台)。
控制 bash 在切换到后台模式前等待的时长(`0` 表示立即进入后台)。
</ParamField>
<ParamField path="commands.config" type="boolean" default="false">
启用 `/config`(读取/写入 `openclaw.json`)。
@ -91,87 +91,87 @@ x-i18n:
启用 `/mcp`(读取/写入 `mcp.servers` 下由 OpenClaw 管理的 MCP 配置)。
</ParamField>
<ParamField path="commands.plugins" type="boolean" default="false">
启用 `/plugins`(插件发现/Status以及安装 + 启用/禁用控制)。
启用 `/plugins`(插件发现/Status以及安装启用/禁用控制)。
</ParamField>
<ParamField path="commands.debug" type="boolean" default="false">
启用 `/debug`(仅运行时覆盖)。
</ParamField>
<ParamField path="commands.restart" type="boolean" default="true">
启用 `/restart` 以及 Gateway 网关重启工具作。
启用 `/restart` 以及 Gateway 网关重启工具作。
</ParamField>
<ParamField path="commands.ownerAllowFrom" type="string[]">
为仅所有者命令/工具表面设置显式所有者允许列表。这是可以批准危险操作并运行 `/diagnostics`、`/export-trajectory` 和 `/config` 等命令的人类操作员账。它独立于 `commands.allowFrom`,也独立于私信配对访问。
为仅所有者命令/工具表面设置显式所有者允许列表。这是可以批准危险操作并运行 `/diagnostics`、`/export-trajectory` 和 `/config` 等命令的人类操作员账。它独立于 `commands.allowFrom`,也独立于私信配对访问。
</ParamField>
<ParamField path="channels.<channel>.commands.enforceOwnerForCommands" type="boolean" default="false">
按渠道设置:让仅所有者命令要求**所有者身份**才能在该表面运行。当为 `true` 时,发送者必须匹配已解析的所有者候选项(例如 `commands.ownerAllowFrom` 中的条目或提供商原生所有者元数据),或在内部消息渠道上持有内部 `operator.admin` 作用域。渠道 `allowFrom` 中的通配符条目,或空的/未解析的所有者候选列表,**不足以**满足要求——仅所有者命令会在该渠道上失败关闭。如果你希望仅所有者命令只由 `ownerAllowFrom` 和标准命令允许列表控制,请保持关闭。
按渠道:让仅所有者命令在该表面运行时要求**所有者身份**。当为 `true` 时,发送者必须匹配已解析的所有者候选项(例如 `commands.ownerAllowFrom` 中的条目或提供商原生所有者元数据),或在内部消息渠道上持有内部 `operator.admin` scope。渠道 `allowFrom` 中的通配符条目,或空的/未解析的所有者候选列表,**不足以**满足要求——仅所有者命令会在该渠道上默认关闭失败。如果你希望仅所有者命令只受 `ownerAllowFrom` 和标准命令允许列表控制,请保持关闭。
</ParamField>
<ParamField path="commands.ownerDisplay" type='"raw" | "hash"'>
控制所有者 id 在系统提示中如何显示
控制所有者 ID 在系统提示中的显示方式
</ParamField>
<ParamField path="commands.ownerDisplaySecret" type="string">
可选设置当 `commands.ownerDisplay="hash"` 时使用的 HMAC 密钥
可选设置当 `commands.ownerDisplay="hash"` 时使用的 HMAC secret
</ParamField>
<ParamField path="commands.allowFrom" type="object">
用于命令授权的按提供商允许列表。配置后,它就是命令和指令的唯一授权来源(会忽略渠道允许列表/配对和 `commands.useAccessGroups`)。使用 `"*"` 作为全局默认值;提供商特定键会覆盖它。
用于命令授权的按提供商允许列表。配置后,它就是命令和指令的唯一授权来源(渠道允许列表/配对以及 `commands.useAccessGroups` 会被忽略)。使用 `"*"` 作为全局默认值;提供商特定键会覆盖它。
</ParamField>
<ParamField path="commands.useAccessGroups" type="boolean" default="true">
当未设置 `commands.allowFrom` 时,命令强制执行允许列表/策略。
当未设置 `commands.allowFrom` 时,命令强制执行允许列表/策略。
</ParamField>
## 命令列表
当前权威来源:
当前事实来源:
- 核心内置项来自 `src/auto-reply/commands-registry.shared.ts`
- 生成的 dock 命令来自 `src/auto-reply/commands-registry.data.ts`
- 生成的停靠命令来自 `src/auto-reply/commands-registry.data.ts`
- 插件命令来自插件 `registerCommand()` 调用
- 你的 Gateway 网关上的实际可用性仍取决于配置标志、渠道表面以及已安装/已启用的插件
- 你的 Gateway 网关上的实际可用性仍取决于配置标志、渠道表面以及已安装/已启用的插件
### 核心内置命令
<AccordionGroup>
<Accordion title="会话和运行">
- `/new [model]` 启动新会话;`/reset` 是重置别名。
- Control UI 会拦截输入的 `/new`,创建并切换到新的仪表盘会话;输入的 `/reset`运行 Gateway 网关的原地重置。
- `/reset soft [message]` 保留当前转录,丢弃复用的 CLI 后端会话 id并在原地重新运行启动/系统提示加载。
- `/compact [instructions]` 压缩会话上下文。参见 [压缩](/zh-CN/concepts/compaction)。
- Control UI 会拦截键入的 `/new`,以创建并切换到新的仪表板会话;键入的 `/reset` 仍会运行 Gateway 网关的原地重置。
- `/reset soft [message]` 保留当前转录,丢弃已复用的 CLI 后端会话 ID原地重新运行启动/系统提示加载。
- `/compact [instructions]` 压缩会话上下文。参见[压缩](/zh-CN/concepts/compaction)。
- `/stop` 中止当前运行。
- `/session idle <duration|off>``/session max-age <duration|off>` 管理线程绑定过期。
- `/session idle <duration|off>``/session max-age <duration|off>` 管理线程绑定过期时间
- `/export-session [path]` 将当前会话导出为 HTML。别名`/export`。
- `/export-trajectory [path]` 请求 exec 批准,然后为当前会话导出 JSONL [trajectory bundle](/zh-CN/tools/trajectory)。当你需要一个 OpenClaw 会话的提示、工具和转录时间线时使用它。在群聊中,批准提示和导出结果会私下发送给所有者。别名:`/trajectory`。
- `/export-trajectory [path]` 请求 exec 批准,然后为当前会话导出 JSONL [轨迹包](/zh-CN/tools/trajectory)。当你需要一个 OpenClaw 会话的提示、工具和转录时间线时使用它。在群聊中,批准提示和导出结果会私下发送给所有者。别名:`/trajectory`。
</Accordion>
<Accordion title="模型和运行控制">
- `/think <level>` 设置 thinking 级别。选项来自当前模型的提供商配置;常见级别为 `off`、`minimal`、`low`、`medium` 和 `high`,自定义级别(如 `xhigh`、`adaptive`、`max`)或二进制 `on` 仅在受支持处可用。别名:`/thinking`、`/t`。
- `/think <level>` 设置思考级别。选项来自活动模型的提供商配置文件;常见级别包括 `off`、`minimal`、`low`、`medium` 和 `high`,而 `xhigh`、`adaptive`、`max` 或二进制 `on` 等自定义级别仅在支持的位置可用。别名:`/thinking`、`/t`。
- `/verbose on|off|full` 切换详细输出。别名:`/v`。
- `/trace on|off` 切换当前会话的插件 trace 输出。
- `/trace on|off` 为当前会话切换插件 trace 输出。
- `/fast [status|on|off]` 显示或设置快速模式。
- `/reasoning [on|off|stream]` 切换 reasoning 可见性。别名:`/reason`。
- `/elevated [on|off|ask|full]` 切换 elevated 模式。别名:`/elev`。
- `/reasoning [on|off|stream]` 切换推理可见性。别名:`/reason`。
- `/elevated [on|off|ask|full]` 切换提升模式。别名:`/elev`。
- `/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` 显示或设置 exec 默认值。
- `/model [name|#|status]` 显示或设置模型。
- `/models [provider] [page] [limit=<n>|size=<n>|all]` 列出已配置/认证可用的提供商,或某个提供商的模型;添加 `all` 可浏览该提供商的完整目录。
- `/queue <mode>` 管理队列行为(`steer`、旧版 `queue`、`followup`、`collect`、`steer-backlog`、`interrupt`以及类似 `debounce:0.5s cap:25 drop:summarize`选项;`/queue default` 或 `/queue reset` 会清除会话覆盖。参见 [命令队列](/zh-CN/concepts/queue) 和 [Steering queue](/zh-CN/concepts/queue-steering)。
- `/models [provider] [page] [limit=<n>|size=<n>|all]` 列出已配置/可用认证的提供商,或某个提供商的模型;添加 `all` 可浏览该提供商的完整目录。
- `/queue <mode>` 管理队列行为(`steer`、旧版 `queue`、`followup`、`collect`、`steer-backlog`、`interrupt`,以及 `debounce:0.5s cap:25 drop:summarize`选项;`/queue default` 或 `/queue reset` 会清除会话覆盖。参见[命令队列](/zh-CN/concepts/queue)和 [Steering queue](/zh-CN/concepts/queue-steering)。
</Accordion>
<Accordion title="设备发现和状态">
<Accordion title="设备发现和 Status">
- `/help` 显示简短帮助摘要。
- `/commands` 显示生成的命令目录。
- `/tools [compact|verbose]` 显示当前智能体现在可以使用什么。
- `/status` 显示执行/运行时状态,包括 `Execution`/`Runtime` 标签,以及在可用时显示提供商用量/配额。
- `/diagnostics [note]` 是用于 Gateway 网关 bug 和 Codex harness 运行的仅所有者支持报告流程。它每次都会在运行 `openclaw gateway diagnostics export --json` 前请求显式 exec 批准;不要用允许全部规则批准 diagnostics。批准后它会发送一份可粘贴的报告包含本地 bundle 路径、清单摘要、隐私说明和相关会话 id。在群聊中,批准提示和报告会私下发送给所有者。当活动会话使用 OpenAI Codex harness 时,同一次批准也会将相关 Codex feedback 发送到 OpenAI 服务器,完成后的回复会列出 OpenClaw 会话 id、Codex 线程 id 和 `codex resume <thread-id>` 命令。参见 [Diagnostics Export](/zh-CN/gateway/diagnostics)。
- `/status` 显示执行/运行时 Status包括 `Execution`/`Runtime` 标签,以及可用时的提供商用量/配额。
- `/diagnostics [note]` 是用于 Gateway 网关 bug 和 Codex harness 运行的仅所有者支持报告流程。它每次都会在运行 `openclaw gateway diagnostics export --json` 前请求显式 exec 批准;不要使用 allow-all 规则批准诊断。批准后,它会发送一份可粘贴报告,其中包含本地包路径、清单摘要、隐私说明和相关会话 ID。在群聊中,批准提示和报告会私下发送给所有者。当活动会话使用 OpenAI Codex harness 时,同一批准还会将相关 Codex 反馈发送到 OpenAI 服务器,完成后的回复会列出 OpenClaw 会话 ID、Codex 线程 ID 和 `codex resume <thread-id>` 命令。参见[诊断导出](/zh-CN/gateway/diagnostics)。
- `/crestodian <request>` 从所有者私信运行 Crestodian 设置和修复助手。
- `/tasks` 列出当前会话的活动/最近后台任务。
- `/context [list|detail|json]` 解释上下文如何组装。
- `/whoami` 显示你的发送者 id。别名:`/id`。
- `/usage off|tokens|full|cost` 控制每条响应的用量页脚,或打印本地成本摘要。
- `/whoami` 显示你的发送者 ID。别名:`/id`。
- `/usage off|tokens|full|cost` 控制每条回复的用量页脚,或打印本地成本摘要。
</Accordion>
<Accordion title="Skills、允许列表批准">
<Accordion title="Skills、允许列表批准">
- `/skill <name> [input]` 按名称运行一个 skill。
- `/allowlist [list|add|remove] ...` 管理允许列表条目。仅文本。
- `/approve <id> <decision>` 解决 exec 批准提示。
- `/btw <question>` 询问一个旁支问题,而不改变未来会话上下文。别名:`/side`。参见 [BTW](/zh-CN/tools/btw)。
- `/btw <question>` 提出一个旁支问题,而不改变未来会话上下文。别名:`/side`。参见 [BTW](/zh-CN/tools/btw)。
</Accordion>
<Accordion title="子智能体和 ACP">
@ -179,34 +179,33 @@ x-i18n:
- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` 管理 ACP 会话和运行时选项。
- `/focus <target>` 将当前 Discord 线程或 Telegram 话题/对话绑定到一个会话目标。
- `/unfocus` 移除当前绑定。
- `/agents` 列出当前会话的线程绑定智能体。
- `/agents` 列出当前会话中绑定到线程的智能体。
- `/kill <id|#|all>` 中止一个或所有正在运行的子智能体。
- `/steer <id|#> <message>` 向正在运行的子智能体发送引导。别名:`/tell`。
</Accordion>
<Accordion title="仅所有者写入和管理">
- `/config show|get|set|unset` 读取或写入 `openclaw.json`。仅所有者。需要 `commands.config: true`
- `/mcp show|get|set|unset` 读取或写入 `mcp.servers` 下由 OpenClaw 管理的 MCP 服务器配置。仅所有者。需要 `commands.mcp: true`
- `/plugins list|inspect|show|get|install|enable|disable` 检查或变更插件状态。`/plugin` 是别名。写入仅限所有者。需要 `commands.plugins: true`
- `/debug show|set|unset|reset` 管理仅运行时生效的配置覆盖。仅所有者。需要 `commands.debug: true`
<Accordion title="仅所有者写入和管理">
- `/config show|get|set|unset` 读取或写入 `openclaw.json`。仅所有者。需要 `commands.config: true`
- `/mcp show|get|set|unset` 读取或写入 `mcp.servers` 下由 OpenClaw 管理的 MCP 服务器配置。仅所有者。需要 `commands.mcp: true`
- `/plugins list|inspect|show|get|install|enable|disable` 检查或修改插件状态。`/plugin` 是别名。写入仅限所有者。需要 `commands.plugins: true`
- `/debug show|set|unset|reset` 管理仅运行时生效的配置覆盖。仅所有者。需要 `commands.debug: true`
- `/restart` 在启用时重启 OpenClaw。默认启用设置 `commands.restart: false` 可禁用它。
- `/send on|off|inherit` 设置发送策略。仅所有者。
- `/send on|off|inherit` 设置发送策略。仅所有者。
</Accordion>
<Accordion title="语音、TTS渠道控制">
<Accordion title="语音、TTS渠道控制">
- `/tts on|off|status|chat|latest|provider|limit|summary|audio|help` 控制 TTS。参见 [TTS](/zh-CN/tools/tts)。
- `/activation mention|always` 设置群组激活模式。
- `/bash <command>` 运行主机 shell 命令。仅文本。别名:`! <command>`。需要 `commands.bash: true` `tools.elevated` 允许列表。
- `!poll [sessionId]` 检查后台 bash 作业
- `!stop [sessionId]` 停止后台 bash 作业
- `/bash <command>` 运行主机 shell 命令。仅文本。别名:`! <command>`。需要 `commands.bash: true` 以及 `tools.elevated` 允许列表。
- `!poll [sessionId]` 检查后台 bash 任务
- `!stop [sessionId]` 停止后台 bash 任务
</Accordion>
</AccordionGroup>
### 生成的停靠命令
停靠命令会将当前会话的回复路由切换到另一个已关联的
渠道。设置、示例和故障排除见[渠道停靠](/zh-CN/concepts/channel-docking)。
停靠命令会将当前会话的回复路由切换到另一个已链接的渠道。有关设置、示例和故障排除,请参见[渠道停靠](/zh-CN/concepts/channel-docking)。
停靠命令由支持原生命令的渠道插件生成。当前内置集合:
@ -215,15 +214,15 @@ x-i18n:
- `/dock-slack`(别名:`/dock_slack`
- `/dock-telegram`(别名:`/dock_telegram`
在直接聊天中使用停靠命令,将当前会话的回复路由切换到另一个已关联的渠道。智能体会保留同一个会话上下文,但该会话后续回复会发送到所选的渠道对端。
在直接聊天中使用停靠命令,将当前会话的回复路由切换到另一个已链接的渠道。智能体会保留相同的会话上下文,但该会话之后的回复会发送到所选渠道对端。
停靠命令需要 `session.identityLinks`。源发送者和目标对端必须位于同一身份组,例如 `["telegram:123", "discord:456"]`。如果 id`123` 的 Telegram 用户发送 `/dock_discord`OpenClaw 会在活跃会话上存储 `lastChannel: "discord"``lastTo: "456"`。如果发送者未关联到 Discord 对端,该命令会回复一条设置提示,而不是落入普通聊天流程。
停靠命令需要 `session.identityLinks`。源发送者和目标对端必须位于同一身份组,例如 `["telegram:123", "discord:456"]`。如果 ID`123` 的 Telegram 用户发送 `/dock_discord`OpenClaw 会在活跃会话上存储 `lastChannel: "discord"``lastTo: "456"`。如果发送者未链接到 Discord 对端,该命令会回复设置提示,而不会落入普通聊天流程。
停靠只会改变活跃会话路由。它不会创建渠道账户、授予访问权限、绕过渠道允许列表,或将转录历史移动到另一个会话。使用 `/dock-telegram`、`/dock-slack`、`/dock-mattermost` 或另一个生成的停靠命令再次切换路由。
停靠只会更改活跃会话路由。它不会创建渠道账号、授予访问权限、绕过渠道允许列表,也不会将对话历史移动到另一个会话。使用 `/dock-telegram`、`/dock-slack`、`/dock-mattermost` 或另一个生成的停靠命令再次切换路由。
### 内置插件命令
内置插件可以添加更多斜杠命令。此仓库中当前内置命令:
内置插件可以添加更多斜杠命令。此仓库中当前内置命令:
- `/dreaming [on|off|status|help]` 切换记忆 Dreaming。参见 [Dreaming](/zh-CN/concepts/dreaming)。
- `/pair [qr|status|pending|approve|cleanup|notify]` 管理设备配对/设置流程。参见[配对](/zh-CN/channels/pairing)。
@ -238,90 +237,90 @@ x-i18n:
- `/bot-upgrade`
- `/bot-logs`
### 动态 Skills 命令
### 动态 Skill 命令
用户可调用的 Skills 也会公开为斜杠命令
用户可调用的 Skills 也会作为斜杠命令公开
- `/skill <name> [input]` 始终作为通用入口点可用。
- 当 skill/插件注册Skills 也可能以 `/prose` 这样的直接命令出现。
- 原生 skill 命令注册由 `commands.nativeSkills``channels.<provider>.commands.nativeSkills` 控制。
- 命令规格可以为支持本地化描述的原生面提供 `descriptionLocalizations`,包括 Discord。
- `/skill <name> [input]` 始终可作为通用入口点使用。
- 当 Skill/插件注册直接命令Skills 也可能以 `/prose` 这样的直接命令出现。
- 原生 Skill 命令注册由 `commands.nativeSkills``channels.<provider>.commands.nativeSkills` 控制。
- 命令规格可以为支持本地化描述的原生面提供 `descriptionLocalizations`,包括 Discord。
<AccordionGroup>
<Accordion title="参数和解析器说明">
- 命令在命令和参数之间接受可选的 `:`(例如 `/think: high`、`/send: on`、`/help:`)。
- `/new <model>` 接受模型别名、`provider/model` 或提供商名称(模糊匹配);如果没有匹配,文本会被视为消息正文。
- 要查看完整的提供商使用情况明细,请使用 `openclaw status --usage`
- 命令允许在命令和参数之间使用可选的 `:`(例如 `/think: high`、`/send: on`、`/help:`)。
- `/new <model>` 接受模型别名、`provider/model` 或提供商名称(模糊匹配);如果没有匹配,文本会被视为消息正文。
- 如需完整的提供商用量细分,请使用 `openclaw status --usage`
- `/allowlist add|remove` 需要 `commands.config=true`,并遵循渠道 `configWrites`
- 在多账户渠道中,面向配置目标`/allowlist --account <id>``/config set channels.<provider>.accounts.<id>...` 也会遵循目标账`configWrites`
- `/usage` 控制每条回复的用量页脚;`/usage cost` 会从 OpenClaw 会话日志打印本地成本摘要
- 在多账号渠道中,面向配置`/allowlist --account <id>``/config set channels.<provider>.accounts.<id>...` 也会遵循目标账`configWrites`
- `/usage` 控制每条回复的用量页脚;`/usage cost` 会根据 OpenClaw 会话日志打印本地费用汇总
- `/restart` 默认启用;设置 `commands.restart: false` 可禁用它。
- `/plugins install <spec>` 接受与 `openclaw plugins install` 相同的插件规格:本地路径/归档、npm 包、`git:<repo>` 或 `clawhub:<pkg>`,然后请求重启 Gateway 网关,因为插件源模块已更改
- `/plugins enable|disable` 更新插件配置,并为新的智能体轮次触发 Gateway 网关插件重载。
- `/plugins install <spec>` 接受与 `openclaw plugins install` 相同的插件规格:本地路径/归档、npm 包、`git:<repo>` 或 `clawhub:<pkg>`,然后由于插件源码模块已更改而请求重启 Gateway 网关。
- `/plugins enable|disable` 更新插件配置,并为新的智能体轮次触发 Gateway 网关插件重新加载。
</Accordion>
<Accordion title="渠道特定行为">
- 仅 Discord 原生命令:`/vc join|leave|status` 控制语音频道(不能作为文本使用)。`join` 需要一个 guild 和选定的语音/舞台频道。需要 `channels.discord.voice` 和原生命令。
- Discord 线程绑定命令(`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`)需要启用有效线程绑定(`session.threadBindings.enabled` 和/或 `channels.discord.threadBindings.enabled`)。
<Accordion title="特定渠道行为">
- 仅 Discord 原生命令:`/vc join|leave|status` 控制语音渠道(不能作为文本使用)。`join` 需要一个服务器和所选的语音/舞台渠道。需要 `channels.discord.voice` 和原生命令。
- Discord 线程绑定命令(`/focus`、`/unfocus`、`/agents`、`/session idle`、`/session max-age`)需要启用有效线程绑定(`session.threadBindings.enabled` 和/或 `channels.discord.threadBindings.enabled`)。
- ACP 命令参考和运行时行为:[ACP 智能体](/zh-CN/tools/acp-agents)。
</Accordion>
<Accordion title="Verbose / trace / fast / reasoning 安全性">
- `/verbose` 用于调试和提供额外可见性;正常使用时请保持**关闭**。
- `/trace``/verbose` 范围更窄:它只显示插件拥有的 trace/debug 行,并保持普通 verbose 工具噪声关闭。
- `/fast on|off` 会持久化一个会话覆盖。使用会话 UI 的 `inherit` 选项清除它,并回退到配置默认值。
- `/fast` 与提供商相关OpenAI/OpenAI Codex 会在原生 Responses 端点上将其映射到 `service_tier=priority`,而直接的公开 Anthropic 请求,包括发送到 `api.anthropic.com` 的 OAuth 认证流量,会将其映射到 `service_tier=auto``standard_only`。参见 [OpenAI](/zh-CN/providers/openai) 和 [Anthropic](/zh-CN/providers/anthropic)。
- 相关时仍会显示工具失败摘要,但详细失败文本`/verbose``on``full` 时包含。
- `/reasoning`、`/verbose` 和 `/trace` 在群组场景中有风险:它们可能暴露你无意公开的内部推理、工具输出或插件诊断。建议保持关闭,尤其是在群聊中。
<Accordion title="详细输出 / 跟踪 / 快速 / 推理安全性">
- `/verbose` 用于调试和额外可见性;日常使用时保持**关闭**。
- `/trace``/verbose` 范围更窄:它只显示插件拥有的跟踪/调试行,并保持常规详细工具输出关闭。
- `/fast on|off` 会持久保存一个会话覆盖项。使用会话 UI 的 `inherit` 选项可清除它,并回退到配置默认值。
- `/fast` 是提供商特定的OpenAI/OpenAI Codex 会在原生 Responses 端点上将其映射为 `service_tier=priority`,而直接的公共 Anthropic 请求(包括发送到 `api.anthropic.com` 的 OAuth 认证流量)会将其映射为 `service_tier=auto``standard_only`。参见 [OpenAI](/zh-CN/providers/openai) 和 [Anthropic](/zh-CN/providers/anthropic)。
- 相关时仍会显示工具失败摘要,但详细失败文本只会`/verbose``on``full` 时包含。
- `/reasoning`、`/verbose` 和 `/trace` 在群组环境中有风险:它们可能暴露你不想公开的内部推理、工具输出或插件诊断信息。最好保持关闭,尤其是在群聊中。
</Accordion>
<Accordion title="模型切换">
- `/model` 会立即持久新的会话模型。
- 如果智能体空闲,下一次运行会立刻使用它。
- `/model` 会立即持久保存新的会话模型。
- 如果智能体处于空闲状态,下一次运行会立刻使用它。
- 如果已有运行处于活跃状态OpenClaw 会将实时切换标记为待处理,并且只会在干净的重试点重启到新模型。
- 如果工具活动或回复输出已经开始,待处理切换可能会继续排队,直到后续重试机会或下一轮用户输入
- 在本地 TUI 中,`/crestodian [request]` 会从普通智能体 TUI 返回到 Crestodian。这与消息渠道救援模式分开,也不会授予远程配置权限。
- 如果工具活动或回复输出已经开始,待处理的切换可能会一直排队到之后的重试机会或下一个用户轮次
- 在本地 TUI 中,`/crestodian [request]` 会从普通智能体 TUI 返回到 Crestodian。这独立于消息渠道救援模式,也不会授予远程配置权限。
</Accordion>
<Accordion title="快速路径和快捷方式">
- **快速路径:**来自允许列表发送者的纯命令消息会立即处理(绕过队列 + 模型)。
- **群组提及门控:**来自允许列表发送者的纯命令消息会绕过提及要求。
- **内快捷方式(仅允许列表发送者):**某些命令嵌入普通消息时也可工作,并会在模型看到剩余文本之前被剥离
- 示例:`hey /status` 会触发状态回复,剩余文本继续走普通流程。
<Accordion title="快速路径和内快捷方式">
- **快速路径:** 来自允许列表发送者的纯命令消息会立即处理(绕过队列 + 模型)。
- **群组提及门控:** 来自允许列表发送者的纯命令消息会绕过提及要求。
- **内快捷方式(仅允许列表发送者):** 某些命令嵌入普通消息时也可工作,并会在模型看到剩余文本前被移除
- 示例:`hey /status` 触发状态回复,剩余文本继续进入普通流程。
- 当前:`/help`、`/commands`、`/status`、`/whoami``/id`)。
- 未授权的纯命令消息会被静默忽略,内联 `/...` 标记会被视为纯文本。
- 未授权的纯命令消息会被静默忽略,行内 `/...` 片段会被视为普通文本。
</Accordion>
<Accordion title="Skill 命令和原生参数">
- **Skill 命令:**`user-invocable` Skills 会公开为斜杠命令。名称会被清理为 `a-z0-9_`(最多 32 个字符);冲突会获得数字后缀(例如 `_2`)。
- `/skill <name> [input]` 按名称运行一个 skill当原生命令限制阻止按 skill 提供命令时很有用)。
- 默认情况下,skill 命令会作为普通请求转发给模型。
- Skills 可以选择声明 `command-dispatch: tool`,将命令直接路由到工具(确定性,不经过模型)。
- 示例:`/prose`OpenProse 插件)- 参见 [OpenProse](/zh-CN/prose)。
- **原生命令参数:**Discord 对动态选项使用自动补全省略必需参数时使用按钮菜单。Telegram 和 Slack 在命令支持选择项且你省略参数时显示按钮菜单。动态选择项会基于目标会话模型解析,因此 `/think` 级别等特定模型选项会遵循该会话的 `/model` 覆盖。
- **Skill 命令:** `user-invocable` Skills 会作为斜杠命令公开。名称会清理为 `a-z0-9_`(最多 32 个字符);冲突时会添加数字后缀(例如 `_2`)。
- `/skill <name> [input]` 按名称运行一个 Skill当原生命令限制无法为每个 Skill 创建命令时很有用)。
- 默认情况下,Skill 命令会作为普通请求转发给模型。
- Skills 可以选择声明 `command-dispatch: tool`,将命令直接路由到工具(确定性、无模型)。
- 示例:`/prose`OpenProse 插件) 参见 [OpenProse](/zh-CN/prose)。
- **原生命令参数:** Discord 对动态选项使用自动补全缺少必需参数时使用按钮菜单。当命令支持选项且你省略参数时Telegram 和 Slack 会显示按钮菜单。动态选项会根据目标会话模型解析,因此 `/think` 级别等模型特定选项会遵循该会话的 `/model` 覆盖
</Accordion>
</AccordionGroup>
## `/tools`
`/tools` 回答的是运行时问题,而不是配置问题:**这个智能体现在在此对话中可以使用什么**。
`/tools` 回答的是运行时问题,而不是配置问题:**这个智能体在当前对话中现在可以使用什么**。
- 默认 `/tools` 很紧凑,并针对快速浏览优化。
- `/tools verbose` 添加简短描述。
- 支持参数的原生命令表面会公开同样的模式切换:`compact|verbose`
- 结果按会话限定范围,因此更改智能体、渠道、线程、发送者授权或模型都可能改变输出。
- `/tools`含运行时实际可访问的工具,包括核心工具、已连接的插件工具以及渠道拥有的工具。
- 默认`/tools` 简洁,并针对快速扫描优化。
- `/tools verbose` 添加简短描述。
- 支持参数的原生命令界面会公开相同的模式切换,即 `compact|verbose`
- 结果按会话限定,因此更改智能体、渠道、线程、发送者授权或模型都可能改变输出。
- `/tools`括运行时实际可达的工具,包括核心工具、已连接的插件工具以及渠道拥有的工具。
要编辑配置文件和覆盖,请使用 Control UI 工具面板或配置/目录表面,而不是将 `/tools` 视为静态目录。
如需编辑配置文件和覆盖项,请使用 Control UI Tools 面板或配置/目录界面,而不要把 `/tools` 当作静态目录。
## 使用情况表面(哪里显示什么)
## 用量界面(哪里显示什么)
- **提供商使用量/配额**示例“Claude 剩余 80%”)会在启用使用量跟踪时显示在当前模型提供商的 `/status` 中。OpenClaw 会将提供商窗口规范化为“剩余 %”;对于 MiniMax仅剩余百分比字段会在显示前取反,并且 `model_remains` 响应会优先使用聊天模型条目以及带模型标记的套餐标签。
- `/status` 中的 **token/cache 行** 可以在实时会话快照稀疏时回退到最新的转录使用量条目。已有的非零实时值仍然优先,转录回退还可以恢复活动运行时模型标签,以及在存储总量缺失或更小时恢复更大的面向提示词的总量。
- **执行与运行时:** `/status` 会为有效沙箱路径报告 `Execution`,并为实际运行会话的一方报告 `Runtime``OpenClaw Pi Default`、`OpenAI Codex`、CLI 后端或 ACP 后端。
- **每次响应的 token/成本**`/usage off|tokens|full` 控制(加到普通回复中)。
- `/model status` 关注的是**模型/身份验证/端点**,不是使用量。
- **提供商用量/配额**示例“Claude 剩余 80%”)会在启用用量跟踪时显示在当前模型提供商的 `/status` 中。OpenClaw 会将提供商窗口规范化为“剩余百分比”;对于 MiniMax仅表示剩余的百分比字段会在显示前取反,并且 `model_remains` 响应会优先使用聊天模型条目以及带模型标记的套餐标签。
- **Token/缓存行**`/status` 中可以在实时会话快照信息稀疏时回退到最新的转录用量条目。已有的非零实时值仍然优先,并且在已存总量缺失或更小时,转录回退还可以恢复当前运行时模型标签以及更大的、面向提示词的总量。
- **执行与运行时:** `/status` 会为有效沙箱路径报告 `Execution`,并为实际运行会话的对象报告 `Runtime``OpenClaw Pi Default`、`OpenAI Codex`、CLI 后端或 ACP 后端。
- **每次响应的 token/成本**`/usage off|tokens|full` 控制(加到普通回复中)。
- `/model status` 关注的是 **模型/凭证/端点**,而不是用量。
## 模型选择(`/model`
@ -338,16 +337,16 @@ x-i18n:
/model status
```
说明
注意
- `/model``/model list` 会显示一个紧凑的编号选择器(模型系列 + 可用提供商)。
- 在 Discord 上,`/model` 和 `/models` 会打开一个交互式选择器,其中包含提供商和模型下拉框以及 Submit 步骤。
- `/model``/model list` 会显示一个紧凑的编号选择器(模型家族 + 可用提供商)。
- 在 Discord 上,`/model` 和 `/models` 会打开一个交互式选择器,其中包含提供商和模型下拉菜单以及提交步骤。
- `/model <#>` 会从该选择器中选择(并在可能时优先使用当前提供商)。
- `/model status` 会显示详细视图,包括已配置的提供商端点(`baseUrl`)和 API 模式(`api`,如可用
- `/model status` 会显示详细视图,包括已配置的提供商端点(`baseUrl`)和 API 模式(`api`,如可用。
## 调试覆盖
`/debug` 允许你设置**仅运行时**的配置覆盖(内存中,不写入磁盘)。仅所有者可用。默认禁用;使用 `commands.debug: true` 启用。
`/debug` 让你设置**仅运行时**配置覆盖(内存中,而不是磁盘)。仅限所有者。默认禁用;使用 `commands.debug: true` 启用。
示例:
@ -360,12 +359,12 @@ x-i18n:
```
<Note>
覆盖会立即应用新的配置读取,但**不会**写入 `openclaw.json`。使用 `/debug reset` 清除所有覆盖并返回磁盘上的配置。
覆盖会立即应用新的配置读取,但**不会**写入 `openclaw.json`。使用 `/debug reset` 清除所有覆盖并返回磁盘上的配置。
</Note>
## 插件 trace 输出
## 插件跟踪输出
`/trace` 允许你在不打开完整详细模式的情况下,切换**会话范围的插件 trace/debug 行**
`/trace` 让你切换**会话范围内的插件跟踪/调试行**,无需开启完整详细模式
示例:
@ -375,18 +374,18 @@ x-i18n:
/trace off
```
说明
注意
- 不带参数的 `/trace` 会显示当前会话 trace 状态。
- `/trace on` 会为当前会话启用插件 trace 行。
- 不带参数的 `/trace` 会显示当前会话跟踪状态。
- `/trace on` 会为当前会话启用插件跟踪行。
- `/trace off` 会再次禁用它们。
- 插件 trace 行可以出现在 `/status` 中,也可以在普通助手回复之后作为后续诊断消息出现。
- 插件跟踪行可能出现在 `/status` 中,也可能在普通助手回复之后作为后续诊断消息出现。
- `/trace` 不会替代 `/debug``/debug` 仍然管理仅运行时配置覆盖。
- `/trace` 不会替代 `/verbose`;普通的详细工具/Status 输出仍属于 `/verbose`
- `/trace` 不会替代 `/verbose`;普通的详细工具/Status 输出仍属于 `/verbose`
## 配置更新
`/config` 会写入你磁盘上的配置(`openclaw.json`)。仅所有者可用。默认禁用;使用 `commands.config: true` 启用。
`/config` 会写入你磁盘配置(`openclaw.json`)。仅所有者。默认禁用;使用 `commands.config: true` 启用。
示例:
@ -399,12 +398,12 @@ x-i18n:
```
<Note>
写入前会验证配置;无效更改会被拒绝。`/config` 更新会在重启后保留。
配置会在写入前进行验证;无效更改会被拒绝。`/config` 更新会在重启后保留。
</Note>
## MCP 更新
`/mcp` 会在 `mcp.servers` 下写入由 OpenClaw 管理的 MCP 服务器定义。仅所有者可用。默认禁用;使用 `commands.mcp: true` 启用。
`/mcp` 会在 `mcp.servers` 下写入由 OpenClaw 管理的 MCP 服务器定义。仅所有者。默认禁用;使用 `commands.mcp: true` 启用。
示例:
@ -416,12 +415,12 @@ x-i18n:
```
<Note>
`/mcp` 将配置存储在 OpenClaw 配置中,而不是 Pi 所有的项目设置中。运行时适配器会决定哪些传输协议实际可执行。
`/mcp` 将配置存储在 OpenClaw 配置中,而不是 Pi 拥有的项目设置中。运行时适配器决定哪些传输协议实际可执行。
</Note>
## 插件更新
`/plugins` 允许操作员检查已发现的插件,并在配置中切换启用状态。只读流程可以将 `/plugin` 用作别名。默认禁用;使用 `commands.plugins: true` 启用。
`/plugins` 让操作员检查已发现的插件,并在配置中切换启用状态。只读流程可以使用 `/plugin` 作为别名。默认禁用;使用 `commands.plugins: true` 启用。
示例:
@ -436,8 +435,8 @@ x-i18n:
<Note>
- `/plugins list``/plugins show` 会基于当前工作区以及磁盘上的配置执行真实插件发现。
- `/plugins install` 会从 ClawHub、npm、git、本地目录和归档安装。
- `/plugins enable|disable` 只会更新插件配置;它不会安装或卸载插件。
- 启用和禁用更改会为新的智能体轮次热重载 Gateway 网关插件运行时表面;安装会请求 Gateway 网关重启,因为插件源模块已更改
- `/plugins enable|disable` 更新插件配置;它不会安装或卸载插件。
- 启用和禁用更改会为新的智能体轮次热重载 Gateway 网关插件运行时表面;安装会请求 Gateway 网关重启,因为插件源模块发生了变化
</Note>
@ -445,35 +444,35 @@ x-i18n:
<AccordionGroup>
<Accordion title="每个表面的会话">
- **文本命令**在普通聊天会话中运行(私信共享 `main`,群组有自己的会话)。
- **原生命令**使用隔离会话:
- **文本命令** 在普通聊天会话中运行(私信共享 `main`,群组有自己的会话)。
- **原生命令** 使用隔离会话:
- Discord`agent:<agentId>:discord:slash:<userId>`
- Slack`agent:<agentId>:slack:slash:<userId>`(前缀可通过 `channels.slack.slashCommand.sessionPrefix` 配置)
- Telegram`telegram:slash:<userId>`(通过 `CommandTargetSessionKey` 定位聊天会话)
- **`/stop`** 会定位到活动聊天会话,因此它可以中止当前运行。
- Telegram`telegram:slash:<userId>`(通过 `CommandTargetSessionKey` 定位聊天会话)
- **`/stop`** 定位当前聊天会话,因此它可以中止当前运行。
</Accordion>
<Accordion title="Slack 细节">
`channels.slack.slashCommand` 仍支持单个 `/openclaw` 风格的命令。如果你启用 `commands.native`必须为每个内置命令创建一个 Slack 斜杠命令(名称与 `/help` 相同。Slack 的命令参数菜单会以临时 Block Kit 按钮形式发送。
`channels.slack.slashCommand`支持单个 `/openclaw` 风格的命令。如果你启用 `commands.native`则必须为每个内置命令创建一个 Slack slash command名称与 `/help` 相同。Slack 的命令参数菜单会作为临时的 Block Kit 按钮发送。
Slack 原生例外:注册 `/agentstatus`(而不是 `/status`),因为 Slack 保留了 `/status`。文本 `/status` 在 Slack 消息中仍然可用。
Slack 原生例外:注册 `/agentstatus`(而不是 `/status`),因为 Slack 保留了 `/status`。文本 `/status` 仍可在 Slack 消息中使用。
</Accordion>
</AccordionGroup>
## BTW 旁支问题
## BTW 附带问题
`/btw` 是关于当前会话的快速**旁支问题**。`/side` 是别名。
`/btw` 是关于当前会话的快速**附带问题**。`/side` 是别名。
与普通聊天不同:
- 它使用当前会话作为背景上下文,
- 它单独的**无工具**一次性调用运行,
- 它不会改未来的会话上下文,
- 它作为单独的**无工具**一次性调用运行,
- 它不会改未来的会话上下文,
- 它不会写入转录历史,
- 它会作为实时旁支结果发送,而不是普通助手消息。
- 它作为实时附带结果发送,而不是普通助手消息。
这使得 `/btw` 适合在主任务继续推进时获取临时澄清
这使得 `/btw` 在你希望主任务继续进行时获得临时说明很有用
示例:
@ -482,7 +481,7 @@ x-i18n:
/side what changed while the main run continued?
```
完整行为和客户端 UX 详情请参阅 [BTW 旁支问题](/zh-CN/tools/btw)
查看 [BTW 附带问题](/zh-CN/tools/btw),了解完整行为和客户端 UX 细节
## 相关