Skip to main content
Gateway 处理以 / 开头并作为独立消息发送的命令。 仅限主机的 bash 命令使用 ! <cmd>/bash <cmd> 是别名)。 当会话绑定到 ACP 会话时,普通文本会路由到 ACP 运行框架。Gateway 管理命令仍然保持本地:/acp ... 始终会到达 OpenClaw 命令处理程序,而当该界面启用命令处理时,/status/unfocus 会保持本地。

三种命令类型

命令

由 Gateway 处理的独立 /... 消息。必须作为消息中的唯一内容发送。

指令

/think/fast/verbose/trace/reasoning/elevated/exec/model/queue —— 在模型看到消息之前会从消息中剥离。 单独发送时会持久化会话设置;与其他文本一起发送时则作为行内提示。

行内快捷方式

/help/commands/status/whoami —— 会立即运行,并在模型看到剩余文本之前被剥离。仅限授权发送者。
  • 指令会在模型看到消息之前从消息中剥离。
  • 仅含指令的消息中(消息仅包含指令),指令会持久化到会话,并回复确认信息。
  • 在包含其他文本的普通聊天消息中,指令会作为行内提示,不会持久化会话设置。 模型选择是例外:经过授权的行内 /model 或已配置的 /<alias> 会持久化会话选择;所有者/管理员在不带 -s 的情况下进行选择时,还可能请求更新已配置的默认值。
  • 指令仅适用于授权发送者。如果设置了 commands.allowFrom,则只使用该允许列表;否则,授权来自频道允许列表、配对机制以及始终启用的访问组强制机制。未经授权的发送者发送的指令会被视为普通文本。

配置

boolean
default:"true"
启用在聊天消息中解析 /...。在没有原生命令的界面(WhatsApp、WebChat、Signal、iMessage、Google Chat、Microsoft Teams)上,即使设为 false,文本命令也可正常工作。
boolean | "auto"
default:"\"auto\""
注册原生命令。自动:Discord/Telegram 开启;Slack 关闭;对于不支持原生命令的提供方则忽略。可通过 channels.<provider>.commands.native 按频道覆盖。在 Discord 上,false 会跳过斜杠命令注册;之前已注册的命令可能仍会可见,直到被移除。
boolean | "auto"
default:"\"auto\""
在支持时以原生方式注册技能命令。自动:Discord/Telegram 开启;Slack 关闭。可通过 channels.<provider>.commands.nativeSkills 覆盖。
boolean
default:"false"
启用 ! <cmd> 运行主机 shell 命令(/bash <cmd> 别名)。需要 tools.elevated 允许列表。
number
default:"2000"
bash 在切换到后台模式前等待的时间(0 会立即转入后台)。
boolean
default:"false"
启用 /config(读写 openclaw.json)。仅限所有者。
boolean
default:"false"
启用 /mcp(读写 mcp.servers 下由 OpenClaw 管理的 MCP 配置)。仅限所有者。
boolean
default:"false"
启用 /plugins(插件发现/状态以及安装 + 启用/禁用)。写操作仅限所有者。
boolean
default:"false"
启用 /debug(仅运行时配置覆盖)。仅限所有者。
boolean
default:"true"
启用 /restart 和外部 SIGUSR1 重启请求。
string[]
仅限所有者的命令界面的显式所有者允许列表。与 commands.allowFrom 和 DM 配对访问分开。
boolean
default:"false"
每个频道:要求所有者身份才能执行仅限所有者的命令。为 true 时,发送者必须匹配 commands.ownerAllowFrom 或拥有内部 operator.admin 范围。通配符 allowFrom 条目不足以满足要求
object
按提供方划分的命令授权允许列表。配置后,它是命令和指令的唯一授权来源。使用 "*" 作为全局默认值;特定提供方的键会覆盖它。
当未配置 commands.allowFrom 时,命令授权遵循频道的允许列表和配对状态。 频道允许列表中引用的访问组条目会自动解析;不存在命令级访问组开关。

命令列表

命令来自三个来源:
  • 核心内置: src/auto-reply/commands-registry.shared.ts
  • 生成的 Dock 命令: src/auto-reply/commands-registry.data.ts
  • 插件命令: 插件的 registerCommand() 调用
可用性取决于配置标志、频道界面,以及已安装/已启用的 插件。

核心命令

显式的 /export-session 路径会替换工作区内已有文件。省略路径可生成一个避免冲突的文件名。
控制界面会拦截输入的 /new,以创建并切换到新的 仪表盘会话,除非配置了 session.dmScope: "main", 且当前父级是代理的主会话——在这种情况下,/new 会原地重置主会话。输入的 /reset 仍会运行 Gateway 的 原地重置。当你想清除固定的会话模型选择时,请使用 /model default
  • /verbose 用于调试——正常使用时请保持关闭
  • /trace 只会显示插件拥有的跟踪/调试行;普通的 verbose 输出仍保持关闭。
  • /fast auto|on|off 会持久化会话覆盖;使用 Sessions UI 的 inherit 选项可清除它。
  • /fast 具有提供方特定行为:OpenAI/Codex 将其映射为 service_tier=priority;直接 Anthropic 请求映射为 service_tier=autostandard_only
  • /reasoning/verbose/trace 在群组场景中存在风险——它们可能泄露内部推理或插件诊断信息。请在群聊中保持关闭。
一句话说明范围: owner/管理员直接执行 /model <model> 会更改会话,并请求尽力更新已配置的默认值;-s 仅更改当前会话。当代理继承 agents.defaults.model 时,更新目标是该共享的全局回退值。已配置的 /<alias> 简写接受与 /model <alias> 相同的末尾 --runtime-s--session 选项。非 owner 执行的 /model <model> 选择同样只对当前会话有效,因为其无法写入已配置的默认值。不可变配置保持不变,异步写入失败会被记录,但不会回退会话选择。明确的用户模型/配置文件固定设置会跨越 /new/reset、会话轮换、压缩和冷却窗口而保留;自动配置文件固定设置可能会轮换或清除。使用 /model default -s 重置会清除会话模型选择,保留兼容的身份验证固定设置,并清除不兼容的固定设置。它不会恢复先前由 owner/管理员选择替换的已配置默认值。
  • 如果代理处于空闲状态,下一次运行会立即使用它。
  • 如果当前有运行正在进行,切换会被标记为待处理,并在下一个干净的重试点应用。

Dock 命令

Dock 命令会将当前会话的回复路由切换到另一个关联频道。 参见 Channel docking 了解配置和故障排查。 由支持原生命令的频道插件生成:
  • /dock-discord(别名:/dock_discord
  • /dock-mattermost(别名:/dock_mattermost
  • /dock-slack(别名:/dock_slack
  • /dock-telegram(别名:/dock_telegram
Dock 命令需要 session.identityLinks。源发送者和目标对端 必须属于同一个身份组。

内置插件命令

仅 QQBot:/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs

技能命令

用户可调用的技能会以斜杠命令形式暴露:
  • /skill <name> [input] 始终作为通用入口可用。
  • 技能可以注册为直接命令(例如 OpenProse 的 /prose)。
  • 原生技能命令注册由 commands.nativeSkills
  • channels.<provider>.commands.nativeSkills 控制。
  • 名称会被规范化为 a-z0-9_(最多 32 个字符);冲突会追加数字后缀。
默认情况下,技能命令会作为普通请求路由到模型。技能可以声明 command-dispatch: tool,从而直接路由到某个工具 (确定性执行,不涉及模型)。示例:/prose(OpenProse 插件) —— 参见 OpenProse
当省略必需参数时,Discord 会使用自动补全来处理动态选项和按钮菜单。Telegram 和 Slack 会为具有选项的命令显示按钮菜单。动态选项会针对目标会话模型进行解析,因此像 /think 等特定于模型的选项级别会遵循会话的 /model 覆盖。

/tools:代理现在可以使用什么

/tools 回答的是一个运行时问题:这个代理在当前会话里现在能用什么 —— 不是静态配置目录。
结果按会话范围生效。更换代理、通道、线程、发送者授权或模型都可能改变输出。要编辑 profile 和 override,请使用 Control UI 的 Tools 面板或配置界面。

/loop:循环对话工作

/loop 仅限所有者使用,因为它使用 cron 控制平面工具。/loop 5m check deploy status 会要求代理在当前对话中创建一个固定频率的 cron 作业。没有间隔时,/loop watch for new issues 会创建一个自适应循环,在活跃时更频繁地检查,并在安静时逐步退避到 1 小时。/loop status 会列出该对话的循环作业;/loop stop [name] 会将其移除。

/model:模型选择

直接所有者/管理员的 /model <model> 请求使用默认作用域:它会更改当前会话,并开始尽力更新已配置的默认值。添加 -s 使用会话作用域:仅更改当前会话。对于未显式指定主模型的代理,更新目标是共享的全局 agents.defaults.model 回退值。
在 Discord 上,/model/models 会打开一个交互式选择器,其中包含提供商和模型下拉菜单,并遵循直接命令流程。所有者/管理员提交的请求会尽力更新已配置的默认值。Telegram 回调选择器中的选择仅限当前会话。该选择器遵循 agents.defaults.modelPolicy.allow,包括 provider/* 条目。如果没有显式的允许列表,模型条目和别名不会限制选择。

/config:磁盘上的配置写入

仅限 owner。默认禁用——通过启用 commands.config: true 打开。
写入前会进行配置校验。无效更改会被拒绝。/config 的更新会在重启后保留。

/mcp:MCP 服务器配置

仅限所有者。默认禁用——通过启用 commands.mcp: true 打开。
/mcp 将配置存储在 OpenClaw 配置中,而不是嵌入式代理项目设置中。
/mcp show 会对含有凭据的字段、已识别的凭据标志值以及已知的密钥形参数组进行脱敏。
当在群组中运行时,配置将私下发送给所有者;如果没有可用的私有所有者路由,命令将默认失败并要求所有者从直接聊天中重试。

/debug:仅运行时覆盖

/plugins:插件管理

仅限所有者执行写入操作。默认禁用——通过启用 commands.plugins: true 打开。
/plugins enable|disable 会更新插件配置,并为新的代理回合热重载网关插件运行时。由于插件源模块已更改,/plugins install 会自动重启受管网关。受信任的 ClawHub 和官方目录安装不需要额外确认。任意的 npm、 git、archive、npm-pack: 和本地路径来源会显示来源警告,并且在你审查 来源后需要在末尾添加 --force。此标志表示你已确认该来源,并允许替换 现有安装;它不会绕过 security.installPolicy 或安装器安全检查。带有风 险警告的 ClawHub 发布版本仍然需要单独的仅 shell 使用的 --acknowledge-clawhub-risk 标志。市场、已链接和已固定安装也仍然仅限 shell 使用。

/trace:插件跟踪输出

/trace 会显示会话范围内的插件跟踪/调试行,而不会进入完整 verbose 模式。它不能替代 /debug(运行时覆盖)或 /verbose(正常工具输出)。

/btw:附带问题

/btw 是一个关于当前会话上下文的快速顺便提问。别名:/side
不同于普通消息:
  • 使用当前会话作为背景上下文。
  • 在 Codex harness 会话中,会作为一个临时的 Codex side thread 运行。
  • 不会更改未来的会话上下文。
  • 不会写入 transcript 历史。
在 Control UI 中,/btw/side 会打开会话侧栏,并询问其只读伴随对象,而不是启动分离的 BTW 路径。上文所述的 TUI 和外部通道行为保持不变。 参见 BTW side questions 了解完整行为。

界面说明

  • 文本命令: 在普通聊天会话中运行(DM 共享 main,群组拥有各自的会话)。
  • 原生 Discord 命令: agent:<agentId>:discord:slash:<userId>
  • 原生 Slack 命令: agent:<agentId>:slack:slash:<userId>(前缀可通过 channels.slack.slashCommand.sessionPrefix 配置)
  • 原生 Telegram 命令: telegram:slash:<userId>(通过 CommandTargetSessionKey 作用于聊天会话)
  • /login codex 仅通过私聊或 Web UI 响应路径发送设备配对码。Telegram 群组/话题调用会改为提示所有者私聊机器人。
  • /stop 会作用于当前活动聊天会话,以中止当前运行。
channels.slack.slashCommand 支持单个 /openclaw 风格命令。 在 commands.native: true 时,为每个内置命令创建一个 Slack slash 命令。 注册 /agentstatus(而不是 /status),因为 Slack 保留了 /status。 文本形式的 /status 仍可在 Slack 消息中正常使用。
  • 来自允许列表发送者的仅命令消息会被立即处理(绕过队列 + 模型)。
  • 内联快捷方式(/help/commands/status/whoami)也可以嵌入普通消息中使用,并会在模型看到剩余文本之前被移除。
  • 未授权的仅命令消息会被静默忽略;内联 /... 标记会被当作普通文本处理。
  • 命令接受在命令与参数之间可选的 :/think: high/send: on)。
  • /new <model> 接受模型别名、provider/model,或 provider 名称(模糊匹配);如果没有匹配,文本会被当作消息正文。
  • /allowlist add|remove 需要 commands.config: true,并遵守通道的 configWrites

提供者使用情况和状态

  • 提供者使用量/配额(例如,“Claude 还剩 80%”)会在启用使用情况跟踪时显示在当前模型提供者的 /status 中。
  • /status 中的 token/缓存行 在实时会话快照较少时,可能会回退到最新的转录使用条目。
  • 执行 vs 运行时: /status 会报告 Execution,以指示实际的沙箱路径;并报告 Runtime,以指示当前正在运行会话的是谁:OpenClaw DefaultOpenAI Codex、CLI backend 或 ACP backend。
  • 每次响应的 token/成本:/usage off|tokens|full 控制。
  • /model status 重点关注模型/认证/端点,而不是使用情况。

相关内容

技能

技能 slash 命令如何注册和受限。

创建技能

构建一个会注册自己的 slash 命令的 skill。

顺便问问

在不改变会话上下文的情况下提出顺便问题。

引导

使用 /steer 在运行中引导代理。