技能
斜杠命令
命令由 Gateway 网关处理。大多数命令必须作为以 / 开头的独立消息发送。仅主机可用的 bash 聊天命令使用 ! <cmd>(/bash <cmd> 是别名)。
当对话或线程绑定到 ACP 会话时,普通后续文本会路由到该 ACP harness。Gateway 网关管理命令仍然保持本地处理:/acp ... 始终到达 OpenClaw ACP 命令处理器,并且只要该界面启用了命令处理,/status 和 /unfocus 就会保持本地处理。
有两个相关系统:
命令
独立的 /... 消息。
指令
/think, /fast, /verbose, /trace, /reasoning, /elevated, /exec, /model, /queue.
- 指令会在模型看到消息之前从消息中剥离。
- 在普通聊天消息中(非仅指令消息),它们会被视为“内联提示”,并且不会持久化会话设置。
- 在仅指令消息中(消息只包含指令),它们会持久化到会话,并回复确认。
- 指令只会应用于已授权发送者。如果设置了
commands.allowFrom,它就是唯一使用的允许名单;否则授权来自渠道允许名单/配对以及commands.useAccessGroups。未授权发送者的指令会被当作纯文本处理。
内联快捷命令
仅限允许名单中/已授权发送者:/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,
},
}
commands.textboolean启用在聊天消息中解析 /...。在没有原生命令的界面上(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams),即使你将其设置为 false,文本命令仍然可用。
commands.nativeboolean | "auto"注册原生命令。自动:对 Discord/Telegram 开启;对 Slack 关闭(直到你添加斜杠命令);对没有原生支持的提供商忽略。设置 channels.discord.commands.native、channels.telegram.commands.native 或 channels.slack.commands.native 可按提供商覆盖(布尔值或 "auto")。在 Discord 上,false 会在启动期间跳过斜杠命令注册和清理;之前注册的命令可能仍然可见,直到你从 Discord 应用中移除它们。Slack 命令在 Slack 应用中管理,不会自动移除。
在 Discord 上,原生命令规范可以包含 descriptionLocalizations,OpenClaw 会将其发布为 Discord description_localizations,并纳入协调比较。
commands.nativeSkillsboolean | "auto"在受支持时以原生方式注册 skill 命令。自动:对 Discord/Telegram 开启;对 Slack 关闭(Slack 要求为每个 skill 创建一个斜杠命令)。设置 channels.discord.commands.nativeSkills、channels.telegram.commands.nativeSkills 或 channels.slack.commands.nativeSkills 可按提供商覆盖(布尔值或 "auto")。
commands.bashboolean启用 ! <cmd> 以运行主机 shell 命令(/bash <cmd> 是别名;需要 tools.elevated 允许名单)。
commands.bashForegroundMsnumber控制 bash 在切换到后台模式前等待多久(0 表示立即转入后台)。
commands.configboolean启用 /config(读取/写入 openclaw.json)。
commands.mcpboolean启用 /mcp(读取/写入 mcp.servers 下由 OpenClaw 管理的 MCP 配置)。
commands.pluginsboolean启用 /plugins(插件发现/Status,以及安装 + 启用/禁用控制)。
commands.debugboolean启用 /debug(仅运行时覆盖)。
commands.restartboolean启用 /restart 以及 Gateway 网关重启工具操作。
commands.ownerAllowFromstring[]为仅所有者可用的命令/工具界面设置显式所有者允许名单。这是可以批准危险操作并运行 /diagnostics、/export-trajectory 和 /config 等命令的人类操作员账号。它独立于 commands.allowFrom,也独立于私信配对访问。
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9ImNoYW5uZWxzLjxjaGFubmVs
.commands.enforceOwnerForCommands" type="boolean" default="false">
按渠道:让仅所有者可用的命令在该界面上运行时要求所有者身份。当为 true 时,发送者必须匹配已解析的所有者候选项(例如 commands.ownerAllowFrom 中的条目或提供商原生所有者元数据),或在内部消息渠道上持有内部 operator.admin 作用域。渠道 allowFrom 中的通配符条目,或空的/未解析的所有者候选列表,不足以满足要求,仅所有者可用的命令会在该渠道上默认失败并关闭访问。如果你希望仅所有者可用的命令只由 ownerAllowFrom 和标准命令允许名单把关,请保持此项关闭。
commands.ownerDisplay"raw" | "hash"控制所有者 id 在系统提示中的显示方式。
commands.ownerDisplaySecretstring可选设置当 commands.ownerDisplay="hash" 时使用的 HMAC 密钥。
commands.allowFromobject用于命令授权的按提供商允许名单。配置后,它就是命令和指令的唯一授权来源(渠道允许名单/配对以及 commands.useAccessGroups 会被忽略)。使用 "*" 作为全局默认值;提供商特定键会覆盖它。
commands.useAccessGroupsboolean当未设置 commands.allowFrom 时,对命令强制执行允许名单/策略。
命令列表
当前真实来源:
- 核心内置命令来自
src/auto-reply/commands-registry.shared.ts - 生成的 dock 命令来自
src/auto-reply/commands-registry.data.ts - 插件命令来自插件
registerCommand()调用 - 你的 Gateway 网关上的实际可用性仍取决于配置标志、渠道界面以及已安装/已启用的插件
核心内置命令
会话和运行
/new [model]启动新会话;/reset是重置别名。- Control UI 会拦截输入的
/new,创建并切换到新的仪表盘会话;输入的/reset仍会运行 Gateway 网关的就地重置。 /reset soft [message]保留当前转录,丢弃复用的 CLI 后端会话 id,并就地重新运行启动/系统提示加载。/compact [instructions]压缩会话上下文。参见 压缩。/stop中止当前运行。/session idle <duration|off>和/session max-age <duration|off>管理线程绑定过期时间。/export-session [path]将当前会话导出为 HTML。别名:/export。/export-trajectory [path]请求 exec 批准,然后为当前会话导出 JSONL 轨迹包。当你需要一个 OpenClaw 会话的提示、工具和转录时间线时使用它。在群聊中,批准提示和导出结果会私下发送给所有者。别名:/trajectory。
模型和运行控制
/think <level>设置思考级别。选项来自活动模型的提供商配置;常见级别包括off、minimal、low、medium和high,自定义级别如xhigh、adaptive、max,或二元on仅在受支持处可用。别名:/thinking、/t。/verbose on|off|full切换详细输出。别名:/v。/trace on|off为当前会话切换插件跟踪输出。/fast [status|on|off]显示或设置快速模式。/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会清除会话覆盖。参见 命令队列 和 Steering queue。/steer <message>将引导注入当前会话的活动运行,独立于/queue模式。当会话空闲时,它不会启动新的运行。别名:/tell。参见 Steer。
设备发现和 Status
/help显示简短帮助摘要。/commands显示生成的命令目录。/tools [compact|verbose]显示当前智能体现在可以使用的内容。/status显示执行/运行时 Status、Gateway 网关和系统运行时间,以及可用时的提供商用量/配额。/diagnostics [note]是用于 Gateway 网关 bug 和 Codex harness 运行的仅所有者支持报告流程。它每次都会在运行openclaw gateway diagnostics export --json之前请求显式 exec 批准;不要使用允许全部规则批准诊断。批准后,它会发送一份可粘贴的报告,包含本地包路径、清单摘要、隐私说明和相关会话 id。在群聊中,批准提示和报告会私下发送给所有者。当活动会话使用 OpenAI Codex harness 时,同一批准还会将相关 Codex 反馈发送到 OpenAI 服务器,完成后的回复会列出 OpenClaw 会话 id、Codex 线程 id 和codex resume <thread-id>命令。参见 诊断导出。/crestodian <request>从所有者私信运行 Crestodian 设置和修复助手。/tasks列出当前会话的活动/近期后台任务。/context [list|detail|json]说明上下文如何组装。/whoami显示你的发送者 id。别名:/id。/usage off|tokens|full|cost控制每条回复的用量页脚,或打印本地成本摘要。
Skills、允许名单、批准
/skill <name> [input]按名称运行一个 skill。/allowlist [list|add|remove] ...管理允许名单条目。仅文本。/approve <id> <decision>解决 exec 批准提示。/btw <question>提出旁路问题,而不改变未来会话上下文。别名:/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 <target>将当前 Discord 线程或 Telegram 话题/对话绑定到会话目标。/unfocus移除当前绑定。/agents列出当前会话中绑定到线程的智能体。/kill <id|#|all>中止一个或所有正在运行的子智能体。/subagents steer <id|#> <message>向正在运行的子智能体发送 Steering。参见 Steer。
Owner-only writes and admin
/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设置发送策略。仅所有者可用。
Voice, TTS, channel control
/tts on|off|status|chat|latest|provider|limit|summary|audio|help控制 TTS。参见 TTS。/activation mention|always设置群组激活模式。/bash <command>运行主机 shell 命令。仅文本。别名:! <command>。需要commands.bash: true以及tools.elevated允许列表。!poll [sessionId]检查后台 bash 作业。!stop [sessionId]停止后台 bash 作业。
生成的停靠命令
停靠命令会将当前会话的回复路由切换到另一个已链接的 渠道。有关设置、示例和故障排除,请参见频道停靠。
停靠命令由支持原生命令的渠道插件生成。当前内置集合:
/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_discord,OpenClaw 会在活动会话上存储 lastChannel: "discord" 和 lastTo: "456"。如果发送者未链接到 Discord 对端,该命令会回复设置提示,而不是落入普通聊天。
停靠只会更改活动会话路由。它不会创建渠道账号、授予访问权限、绕过渠道允许列表,也不会将转录历史移动到另一个会话。使用 /dock-telegram、/dock-slack、/dock-mattermost 或另一个生成的停靠命令可再次切换路由。
内置插件命令
内置插件可以添加更多斜杠命令。此仓库中的当前内置命令:
/dreaming [on|off|status|help]切换记忆 Dreaming。参见 Dreaming。/pair [qr|status|pending|approve|cleanup|notify]管理设备配对/设置流程。参见配对。/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 应用服务器 harness。参见 Codex harness。- 仅 QQBot 可用的命令:
/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs
动态 Skill 命令
用户可调用的 Skills 也会作为斜杠命令公开:
/skill <name> [input]始终作为通用入口点可用。- 当 Skill/插件注册时,Skills 也可能显示为
/prose这样的直接命令。 - 原生 Skill 命令注册由
commands.nativeSkills和channels.<provider>.commands.nativeSkills控制。 - 命令规范可以为支持本地化描述的原生表面(包括 Discord)提供
descriptionLocalizations。
Argument and parser notes
- 命令接受命令与参数之间可选的
:(例如/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 会话日志打印本地成本摘要。/restart默认启用;设置commands.restart: false可将其禁用。/plugins install <spec>接受与openclaw plugins install相同的插件规范:本地路径/归档、npm 包、git:<repo>或clawhub:<pkg>,随后会请求重启 Gateway 网关,因为插件源模块已更改。/plugins enable|disable更新插件配置,并为新的智能体轮次触发 Gateway 网关插件重新加载。
Channel-specific behavior
- 仅 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 智能体。
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
/model会立即持久化新的会话模型。- 如果智能体处于空闲状态,下一次运行会立刻使用它。
- 如果已有运行处于活动状态,OpenClaw 会将实时切换标记为待处理,并且只会在干净的重试点重启到新模型。
- 如果工具活动或回复输出已经开始,待处理的切换可能会一直排队到后续重试机会或下一次用户轮次。
- 在本地 TUI 中,
/crestodian [request]会从普通智能体 TUI 返回到 Crestodian。这与消息渠道救援模式相互独立,并且不会授予远程配置权限。
Fast path and inline shortcuts
- 快速路径: 来自允许列表发送者的纯命令消息会立即处理(绕过队列 + 模型)。
- 群组提及门控: 来自允许列表发送者的纯命令消息会绕过提及要求。
- 内联快捷方式(仅允许列表发送者): 某些命令嵌入普通消息时也能工作,并会在模型看到剩余文本前被剥离。
- 示例:
hey /status会触发状态回复,剩余文本继续走普通流程。
- 示例:
- 当前包括:
/help、/commands、/status、/whoami(/id)。 - 未授权的纯命令消息会被静默忽略,内联
/...标记会被视为纯文本。
Skill commands and native arguments
- Skill 命令:
user-invocableSkills 会作为斜杠命令公开。名称会被清理为a-z0-9_(最多 32 个字符);冲突会获得数字后缀(例如_2)。/skill <name> [input]按名称运行 Skill(当原生命令限制阻止为每个 Skill 创建命令时很有用)。- 默认情况下,Skill 命令会作为普通请求转发给模型。
- Skills 可以选择声明
command-dispatch: tool,将命令直接路由到工具(确定性,无模型)。 - 示例:
/prose(OpenProse 插件)— 参见 OpenProse。
- 原生命令参数: Discord 对动态选项使用自动补全(并在你省略必需参数时使用按钮菜单)。当命令支持选择且你省略参数时,Telegram 和 Slack 会显示按钮菜单。动态选项会根据目标会话模型解析,因此
/think级别等模型特定选项会遵循该会话的/model覆盖。
/tools
/tools 回答的是运行时问题,而不是配置问题:此智能体此刻在此对话中可以使用什么。
- 默认
/tools紧凑,并针对快速浏览优化。 /tools verbose添加简短描述。- 支持参数的原生命令表面会公开相同的模式切换,即
compact|verbose。 - 结果以会话为作用域,因此更改智能体、渠道、线程、发送者授权或模型都可能改变输出。
/tools包含运行时实际可达的工具,包括核心工具、已连接的插件工具和渠道拥有的工具。
对于配置文件和覆盖编辑,请使用 Control UI 工具面板或配置/目录表面,而不是将 /tools 视为静态目录。
用量表面(哪里显示什么)
- 提供商使用量/配额(示例:“Claude 还剩 80%”)会在启用使用量跟踪时显示在当前模型提供商的
/status中。OpenClaw 会将提供商窗口统一为“剩余 %”;对于 MiniMax,仅剩余百分比字段会在显示前反转,model_remains响应优先使用聊天模型条目以及带模型标记的计划标签。 - Token/缓存行 可以在实时会话快照稀疏时回退到最新的转录使用量条目。已有的非零实时值仍然优先,转录回退还可以在已存总量缺失或更小时恢复当前活跃运行时模型标签,以及更大的面向提示词的总量。
- 执行与运行时:
/status会为有效沙箱路径报告Execution,并用Runtime报告实际运行会话的主体:OpenClaw Pi Default、OpenAI Codex、CLI 后端或 ACP 后端。 - 每条响应的 token/成本 由
/usage off|tokens|full控制(附加到普通回复中)。 /model status关注的是模型/凭证/端点,不是使用量。
模型选择(/model)
/model 作为指令实现。
示例:
/model
/model list
/model 3
/model openai/gpt-5.4
/model opus@anthropic:default
/model status
说明:
/model和/model list会显示一个紧凑的编号选择器(模型系列 + 可用提供商)。- 在 Discord 上,
/model和/models会打开一个交互式选择器,其中包含提供商和模型下拉菜单,以及提交步骤。 /model <#>会从该选择器中选择(并在可能时优先使用当前提供商)。/model status会显示详细视图,包括已配置的提供商端点(baseUrl)和 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
插件跟踪输出
/trace 允许你切换会话范围内的插件跟踪/调试行,无需开启完整详细模式。
示例:
/trace
/trace on
/trace off
说明:
- 不带参数的
/trace会显示当前会话跟踪状态。 /trace on会为当前会话启用插件跟踪行。/trace off会再次禁用它们。- 插件跟踪行可以出现在
/status中,也可以在普通助手回复之后作为后续诊断消息出现。 /trace不会替代/debug;/debug仍然管理仅运行时配置覆盖。/trace不会替代/verbose;普通的详细工具/Status 输出仍属于/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.responsePrefix
MCP 更新
/mcp 会在 mcp.servers 下写入由 OpenClaw 管理的 MCP 服务器定义。仅所有者可用。默认禁用;使用 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 context7
表面说明
每个表面的会话
- 文本命令 在普通聊天会话中运行(私信共享
main,群组有自己的会话)。 - 原生命令 使用隔离会话:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(前缀可通过channels.slack.slashCommand.sessionPrefix配置) - Telegram:
telegram:slash:<userId>(通过CommandTargetSessionKey定位聊天会话)
- Discord:
/stop定位活跃聊天会话,因此它可以中止当前运行。
Slack 细节
channels.slack.slashCommand 仍支持单个 /openclaw 风格命令。如果你启用 commands.native,必须为每个内置命令创建一个 Slack 斜杠命令(名称与 /help 相同)。Slack 的命令参数菜单会作为临时 Block Kit 按钮交付。
Slack 原生例外:注册 /agentstatus(而不是 /status),因为 Slack 保留了 /status。文本 /status 仍可在 Slack 消息中使用。
BTW 旁路问题
/btw 是关于当前会话的快速旁路问题。/side 是别名。
与普通聊天不同:
- 它使用当前会话作为背景上下文,
- 它作为单独的无工具一次性调用运行,
- 它不会改变未来会话上下文,
- 它不会写入转录历史,
- 它作为实时旁路结果交付,而不是普通助手消息。
当你希望在主任务继续进行时获得临时澄清,/btw 会很有用。
示例:
/btw what are we doing right now?
/side what changed while the main run continued?
完整行为和客户端 UX 细节请参阅 BTW 旁路问题。