斜杠命令
命令由 Gateway(网关) 处理。大多数命令必须作为以 / 开头的独立消息发送。仅限主机使用的 bash 聊天命令使用 ! <cmd>(以 /bash <cmd> 作为别名)。
当对话或线程绑定到 ACP 会话时,正常的后续文本将路由到该 ACP 接线器。Gateway(网关) 管理命令仍保持本地处理:/acp ... 始终到达 OpenClaw ACP 命令处理程序,而只要为该界面启用了命令处理,/status 和 /unfocus 就会保持本地处理。
有两个相关的系统:
Commands
独立的 /... 消息。
Directives
/think、/fast、/verbose、/trace、/reasoning、/elevated、/exec、/model、/queue。
- 指令在模型看到消息之前会从消息中剥离。
- 在正常聊天消息中(非仅指令消息),它们被视为“内联提示”,并且不会持久化会话设置。
- 在仅指令消息中(消息仅包含指令),它们将持久化到会话并回复确认信息。
- 指令仅应用于经过授权的发件人。如果设置了
commands.allowFrom,则它是唯一使用的允许列表;否则授权来自渠道允许列表/配对加上commands.useAccessGroups。未经授权的发件人看到的指令将被视为纯文本。
Inline shortcuts
仅允许列入白名单/已授权的发送者:/help、/commands、/status、/whoami (/id)。
它们会立即运行,并在模型看到消息之前被剥离,剩余文本将继续正常流转。
{ commands: { native: "auto", nativeSkills: "auto", text: true, bash: false, bashForegroundMs: 2000, config: false, mcp: false, plugins: false, debug: false, restart: true, ownerAllowFrom: ["discord:123456789012345678"], ownerDisplay: "raw", ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}", allowFrom: { "*": ["user1"], discord: ["user:123"], }, useAccessGroups: true, },}当前权威来源:
- 核心内置命令来自
src/auto-reply/commands-registry.shared.ts - 生成的 Dock 命令来自
src/auto-reply/commands-registry.data.ts - 插件命令来自插件
registerCommand()调用 - 网关上的实际可用性仍取决于配置标志、渠道表面以及已安装/启用的插件
核心内置命令
Section titled “核心内置命令”会话和运行
/new [model]归档当前会话并启动一个新会话;/reset原地清除当前会话。它们不是彼此的别名。- 控制界面会拦截输入的
/new以创建并切换到一个新的仪表盘会话,除非配置了session.dmScope: "main"且当前父级是代理的主会话;在后一种情况下,/new会原地重置主会话。输入/reset仍然运行 Gateway(网关) 的原地重置。 /reset soft [message]保留当前记录,丢弃已复用的 CLI 后端会话 ID,并原地重新运行启动/系统提示加载。/compact [instructions]压缩会话上下文。请参阅 压缩。/stop中止当前运行。- `/session idle
和/session max-age
管理线程绑定过期。 -/export-session [path] 将当前会话导出为 HTML。别名:/export。 - /export-trajectory [path] 请求执行批准,然后为当前会话导出 JSONL [轨迹包](/zh/tools/trajectory)。当您需要单个 OpenClaw 会话的提示、工具和记录时间线时使用它。在群组聊天中,批准提示和导出结果将私下发送给所有者。别名:/trajectory`。
模型和运行控制
- `/think
设置思考级别或清除会话覆盖。选项来自当前模型的提供商配置文件;常见级别包括off、minimal、low、medium和high,此外仅在支持的地方提供自定义级别,如 xhigh、adaptive、max或二进制on。别名:/thinking、/t。 - /verbose on|off|full 切换详细输出。别名:/v。 - /trace on|off切换当前会话的插件跟踪输出。 -/fast [status|on|off|default]显示、设置或清除快速模式。 -/reasoning [on|off|stream] 切换推理可见性。别名:/reason。 - /elevated [on|off|ask|full] 切换提升模式。别名:/elev。 - /exec host=
security=
ask=
node=
显示或设置执行默认值。 -/model [name|#|status]显示或设置模型。 -/models [provider] [page] [limit=
|size=
|all]列出已配置/已认证可用的提供商或提供商的模型;添加all 以浏览该提供商的完整目录。agents.defaults.models中的provider/*条目使/model和/models仅显示这些提供商的已发现模型。 -/queue
管理活动运行队列行为(steer、followup、collect、interrupt)以及诸如 debounce:0.5s cap:25 drop:summarize 等选项;/queue default或/queue reset清除会话覆盖。运行中的提示词默认在没有队列指令的情况下进行引导。参见 [命令队列](/zh/concepts/queue) 和 [引导队列](/zh/concepts/queue-steering)。 -/steer
将指导注入到当前会话的活动中,独立于/queue 模式。如果引导不可用或会话空闲,
将作为普通提示词继续。别名:/tell`。参见 引导。
设备发现和状态
/help显示简短的帮助摘要。/commands显示生成的命令目录。/tools [compact|verbose]显示当前代理立即可用的内容。/statusGateway(网关) 显示执行/运行时状态、Gateway(网关) 和系统正常运行时间,以及提供商的使用情况/配额(如果可用)。/diagnostics [note]Gateway(网关) 是仅限所有者使用的支持报告流程,用于 Gateway(网关) 错误和 Codex 驱动程序运行。每次运行openclaw gateway diagnostics export --jsonOpenAIOpenAIOpenClaw 之前,它都会要求明确的执行批准;不要使用“允许全部”规则批准诊断。批准后,它会发送一份可粘贴的报告,其中包含本地捆绑包路径、清单摘要、隐私说明和相关会话 ID。在群组聊天中,批准提示和报告将私下发送给所有者。当活动会话使用 OpenAI Codex 驱动程序时,相同的批准也会将相关的 Codex 反馈发送到 OpenAI 服务器,完成的回复将列出 OpenClaw 会话 ID、Codex 线程 ID 和 `codex resume
命令。请参阅 [诊断导出](/zh/gateway/diagnostics)。 -/crestodian
从所有者私信 运行 Crestodian 设置和修复助手。 -/tasks列出当前会话的活动/最近后台任务。 -/context [list|detail|map|json] 解释如何组装上下文。map发送当前会话上下文的树状图图像。 -/whoami 显示您的发送者 ID。别名:/id。 - /usage off|tokens|full|cost` 控制每次响应的使用情况页脚,或打印本地成本摘要。
Skills, allowlists, approvals
- `/skill
[input]` 按名称运行一个 Skill。
/allowlist [list|add|remove] ...管理允许列表条目。仅限文本。- `/approve
解决执行审批提示。 -/btw
提出一个附带问题,而不改变未来的会话上下文。别名:/side`。参见 BTW。
Subagents and ACP
/subagents list|kill|log|info|send|steer|spawn管理当前会话的子代理运行。/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help管理 ACP 会话和运行时选项。- `/focus
将当前的 Discord 线程或 Telegram 话题/对话绑定到会话目标。 -/unfocus移除当前绑定。 -/agents列出当前会话的线程绑定代理。 -/kill
中止一个或所有正在运行的子代理。 -/subagents steer
` 向正在运行的子代理发送转向指令。参见 Steer。
仅限所有者写入和管理员
/config show|get|set|unset读取或写入openclaw.json。仅限所有者。需要commands.config: true。/mcp show|get|set|unset读取或写入 OpenClaw 管理的位于mcp.servers下的 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设置发送策略。仅限所有者。
语音、TTS、渠道控制
/tts on|off|status|chat|latest|provider|limit|summary|audio|help控制 TTS。参见 TTS。/activation mention|always设置组激活模式。- `/bash
运行主机 Shell 命令。仅文本。别名:!
。需要 commands.bash: true以及tools.elevated白名单。 -!poll [sessionId]检查后台 bash 作业。 -!stop [sessionId]` 停止后台 bash 作业。
生成的停靠命令
Section titled “生成的停靠命令”Dock 命令将当前会话的回复路由切换到另一个关联渠道。有关设置、示例和故障排除,请参阅 Channel docking。
Dock 命令由支持原生命令的渠道插件生成。当前捆绑的集合包括:
/dock-discord(别名:/dock_discord)/dock-mattermost(别名:/dock_mattermost)/dock-slack(别名:/dock_slack)/dock-telegram(别名:/dock_telegram)
在直接聊天中使用对接命令可以将当前会话的回复路由切换到另一个关联渠道。代理保持相同的会话上下文,但该会话的未来回复将发送到选定的渠道对等端。
对接命令需要 session.identityLinks。源发送者和目标对等端必须位于同一身份组中,例如 ["telegram:123", "discord:456"]。如果 ID 为 123 的 Telegram 用户发送 /dock_discordOpenClaw,OpenClaw 会将 lastChannel: "discord" 和 lastTo: "456" 存储在活动会话上。如果发送者未链接到 Discord 对等端,该命令将回复设置提示,而不是回退到正常聊天。
对接仅更改活动会话路由。它不会创建渠道账户、授予访问权限、绕过渠道允许列表或将记录历史移动到另一个会话。使用 /dock-telegram、/dock-slack、/dock-mattermost 或其他生成的对接命令再次切换路由。
打包的插件命令
Section titled “打包的插件命令”打包的插件可以添加更多斜杠命令。此仓库中当前的打包命令包括:
/dreaming [on|off|status|help]切换记忆梦境。参见 Dreaming。/pair [qr|status|pending|approve|cleanup|notify]管理设备配对/设置流程。参见 Pairing。/phone status|arm <camera|screen|writes|all> [duration]|disarm临时启用高风险电话节点命令。/voice status|list [limit]|set <voiceId|name>管理 Talk 语音配置。在 Discord 上,本机命令名称为/talkvoice。/card ...发送 LINE 富卡片预设。参见 LINE。/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills检查和控制打包的 Codex 应用服务器绑定。参见 Codex harness。- 仅限 QQBot 的命令:
/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs
动态技能命令
Section titled “动态技能命令”用户可调用的技能也会作为斜杠命令公开:
/skill <name> [input]始终作为通用入口点工作。- 当技能/插件注册它们时,技能也可能显示为直接命令,例如
/prose。 - 原生技能命令注册由
commands.nativeSkills和channels.<provider>.commands.nativeSkills控制。 - 命令规范可以为支持本地化描述的原生表面(包括 Discord)提供
descriptionLocalizations。
参数和解析器说明
- 命令接受在命令和参数之间的可选
:(例如/think: high、/send: on、/help:)。 - `/new
接受模型别名、provider/model或提供商名称(模糊匹配);如果没有匹配,该文本将被视为消息正文。 - 有关完整的提供商使用细分,请使用openclaw status —usage。 - /allowlist add|remove需要commands.config=true并遵守渠道configWrites。 - 在多账户渠道中,针对配置的 /allowlist —account
和/config set channels.
.accounts.
…也遵守目标账户的configWrites。 - /usage 控制每次响应的使用页脚;/usage cost从 OpenClaw 会话日志中打印本地成本摘要。 -/restart默认启用;设置commands.restart: false以禁用它。 -/plugins install
接受与openclaw plugins install 相同的插件规范:本地路径/归档、npm 包、git:
或clawhub:
。由于插件源模块已更改,受管 Gateway 会自动重启。 - /plugins enable|disable` 更新插件配置并为新的 Agent 轮次触发 Gateway(网关) 插件重新加载。
特定于渠道的行为
- Discord 专属原生命令:
/vc join|leave|status控制语音渠道(不以文本形式提供)。join需要一个公会以及选定的语音/舞台渠道。需要channels.discord.voiceDiscord 和原生命令。 - Discord 线程绑定命令(
/focus、/unfocus、/agents、/session idle、/session max-age)需要启用有效的线程绑定(session.threadBindings.enabled和/或channels.discord.threadBindings.enabled)。 - ACP 命令参考和运行时行为:ACP agents。
Verbose / trace / fast / reasoning safety
/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 和 Anthropic。- 工具(工具)失败摘要仍会在相关时显示,但详细的失败文本仅在
/verbose为on或full时才会包含。 /reasoning、/verbose和/trace在群组设置中存在风险:它们可能会暴露您不打算公开的内部推理、工具(工具)输出或插件诊断信息。建议保持关闭,尤其是在群聊中。
Model switching
/modelOpenClawTUI 会立即持久化新的会话模型。- 如果代理处于空闲状态,下一次运行将立即使用该模型。
- 如果运行已在进行中,OpenClaw 会将实时切换标记为待处理,并仅在干净的重试点时重启到新模型。
- 如果工具活动或回复输出已经开始,待处理的切换可以保持排队状态,直到下一次重试机会或用户的下一轮对话。
- 在本地 TUI 中,
/crestodian [request]TUI 会从普通代理 TUI 返回到 Crestodian。这与消息渠道救援模式是分开的,并且不授予远程配置权限。
Fast path and inline shortcuts
- Fast path: 来自白名单发送者的纯命令消息会被立即处理(绕过队列 + 模型)。
- Group mention gating: 来自白名单发送者的纯命令消息绕过提及要求。
- Inline shortcuts(仅限白名单发送者): 某些命令在嵌入普通消息时也能工作,并会在模型看到剩余文本之前被剥离。
- 示例:
hey /status会触发状态回复,而剩余文本将继续通过正常流程。
- 示例:
- 目前支持:
/help、/commands、/status、/whoami(/id)。 - 未授权的纯命令消息将被静默忽略,而内联
/...标记将被视为纯文本。
Skill commands and native arguments
- Skill commands:
user-invocableskills 被作为斜杠命令公开。名称被清理为a-z0-9_(最多 32 个字符);冲突会附加数字后缀(例如_2)。- `/skill
[input]按名称运行一个 skill(当原生命令限制阻止每个 skill 的命令时很有用)。 - 默认情况下,skill 命令作为普通请求转发给模型。 - Skills 可以选择声明command-dispatch: tool 以将命令直接路由到工具(确定性的,不使用模型)。 - 示例:/prose`OpenProseOpenProse(OpenProse 插件)——参见 OpenProse。
- Native command arguments: Discord 使用自动完成功能来处理动态选项(当您省略必需参数时显示按钮菜单)。当命令支持选项且您省略参数时,Telegram 和 Slack 会显示按钮菜单。动态选项是针对目标 会话 模型解析的,因此特定于模型的选项(如
/think级别)遵循该 会话 的/model覆盖设置。
/tools
Section titled “/tools”/tools 回答的是一个运行时问题,而不是配置问题:该 agent 在此对话中此时此刻可以使用什么。
- 默认的
/tools是紧凑的,并经过优化以便快速浏览。 /tools verbose会添加简短描述。- 支持参数的原生命令界面会像
compact|verbose一样暴露相同的模式切换开关。 - 结果的作用域限定为 会话,因此更改 agent、渠道、thread、发送者授权或模型可能会改变输出。
/tools包含在运行时实际可访问的工具,包括核心工具、已连接的插件工具和 渠道 拥有的工具。
对于配置文件和覆盖设置的编辑,请使用 Control UI Tools 面板或配置/目录界面,而不要将 /tools 视为静态目录。
Usage surfaces (what shows where)
Section titled “Usage surfaces (what shows where)”- 当启用使用跟踪时,Provider usage/quota(例如:“Claude 80% left”)会显示在当前模型提供商的
/statusOpenClaw 中。OpenClaw 会将提供商的窗口标准化为% leftMiniMax;对于 MiniMax,仅剩余的百分比字段会在显示前进行反转,而model_remains响应则优先选择聊天模型条目以及带有模型标签的计划标签。 - 当实时会话快照稀疏时,
/status中的 Token/cache lines 可以回退到最新的转录使用条目。现有的非零实时值仍然优先,并且当存储的总数缺失或较小时,转录回退还可以恢复活动的运行时模型标签以及更大的面向提示的总数。 - Execution vs runtime(执行与运行时):
/status报告Execution作为有效的沙箱路径,并报告Runtime来指示实际运行会话的对象:OpenClaw Pi Default、OpenAI CodexCLI、CLI 后端或 ACP 后端。 - Per-response tokens/cost 由
/usage off|tokens|full控制(附加到正常回复中)。 /model status关乎 models/auth/endpoints,而非使用情况。
模型选择 (/model)
Section titled “模型选择 (/model)”/model 被实现为一个指令。
示例:
/model/model list/model 3/model openai/gpt-5.4/model opus@anthropic:default/model status注意:
/model和/model list显示一个紧凑的、带编号的选择器(模型系列 + 可用提供商)。- 在 Discord 上,Discord
/model和/models会打开一个交互式选择器,其中包含提供商和模型下拉菜单以及一个提交步骤。该选择器遵守agents.defaults.models,包括provider/*Discord 条目,因此提供商范围的发现可以将选择器保持在 Discord 的 25 个选项组件限制以下。 /model <#>从该选择器中进行选择(并在可能的情况下优先选择当前提供商)。/model status显示详细视图,包括已配置的提供商端点(baseUrlAPI)和 API 模式(api)(如果可用)。
/debug 允许您设置仅运行时的配置覆盖(内存中,而非磁盘)。仅限所有者。默认禁用;通过 commands.debug: true 启用。
示例:
/debug show/debug set messages.responsePrefix="[openclaw]"/debug set channels.whatsapp.allowFrom=["+1555","+4477"]/debug unset messages.responsePrefix/debug reset插件跟踪输出
Section titled “插件跟踪输出”/trace 允许您切换会话范围的插件跟踪/调试行,而无需开启完整的详细模式。
示例:
/trace/trace on/trace off注意:
- 不带参数的
/trace显示当前会话的跟踪状态。 /trace on为当前会话启用插件跟踪行。/trace off再次禁用它们。- 插件跟踪行可以出现在
/status中,也可以作为正常助手回复后的后续诊断消息出现。 /trace不会取代/debug;/debug仍然管理仅运行时的配置覆盖。/trace不会取代/verbose;正常的详细工具/状态输出仍属于/verbose。
/config 会写入您的磁盘配置(openclaw.json)。仅限所有者。默认禁用;通过 commands.config: true 启用。
示例:
/config show/config show messages.responsePrefix/config get messages.responsePrefix/config set messages.responsePrefix="[openclaw]"/config unset messages.responsePrefixMCP 更新
Section titled “MCP 更新”/mcpOpenClaw 将 OpenClaw 管理的 MCP 服务器定义写入 mcp.servers 下。仅限所有者。默认禁用;通过 commands.mcp: true 启用。
示例:
/mcp show/mcp show context7/mcp set context7={"command":"uvx","args":["context7-mcp"]}/mcp unset context7/plugins 允许操作员检查已发现的插件并切换配置中的启用状态。只读流程可以使用 /plugin 作为别名。默认禁用;通过 commands.plugins: true 启用。
示例:
/plugins/plugins list/plugin show context7/plugins enable context7/plugins disable context7Sessions per surface
- 文本命令 在正常聊天会话中运行(私信共享
mainDiscord,群组有自己的会话)。 - 原生命令 使用隔离的会话:
- Discord: `agent:
:discord:slash:
Slack - Slack: agent:
:slack:slash:
(前缀可通过channels.slack.slashCommand.sessionPrefixTelegram 配置) - Telegram: telegram:slash:
(通过CommandTargetSessionKey 定位聊天会话) - **/stop`** 以活动聊天会话为目标,以便它可以中止当前运行。
SlackSlack 细节
单个 /openclaw 风格的命令仍支持 channels.slack.slashCommand。如果启用了 commands.nativeSlack,则必须为每个内置命令创建一个 Slack 斜杠命令(名称与 /helpSlackSlack 相同)。Slack 的命令参数菜单以临时 Block Kit 按钮的形式提供。
Slack 原生例外:注册 /agentstatus(而非 /statusSlack),因为 Slack 保留了 /status。文本 /statusSlack 在 Slack 消息中仍然有效。
BTW 侧边问题
Section titled “BTW 侧边问题”/btw 是关于当前会话的一个快速侧边问题。/side 是一个别名。
与普通聊天不同:
- 它使用当前会话作为背景上下文,
- 在 Codex 线程会话中,它作为临时的 Codex 侧边线程运行,并具有 当前的 Codex 权限和原生工具表面,
- 在非 Codex 会话中,它保持较旧的直接一次性侧边调用行为,
- 它不会改变未来的会话上下文,
- 它不会被写入历史记录,
- 它作为实时侧边结果交付,而不是普通的助手消息。
这使得 /btw 在你需要临时澄清同时主任务继续进行时非常有用。
示例:
/btw what are we doing right now?/side what changed while the main run continued?有关完整行为和客户端 UX 详情,请参阅 BTW Side Questions。