Skip to content

OpenClaw 的斜杠命令由 Gateway 处理,分为文本命令、原生命令、指令和内联快捷方式。配置文件中 commands 对象控制所有开关,如 commands.text(文本命令解析默认开启)、commands.native(原生注册默认 auto)等。命令分为独立消息(/开头)和内置指令(/think、/fast 等),指令在模型看到前剥离。权限由 commands.allowFromcommands.useAccessGroups 以及频道 allowlist 控制。关键命令包括会话控制(/new、/reset)、模型切换(/model)、调试(/debug)、配置读写(/config)、插件管理(/plugins)等。平台差异:Discord 和 Telegram 自动注册原生斜杠命令,Slack 需手动创建;技能命令通过 commands.nativeSkills 控制。

OpenClaw 斜杠命令怎么配置 — 支持的命令与权限说明

配置

json5
{
  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.text(默认 true):启用聊天消息中的 /... 解析。在不支持原生命令的平台(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)上,即使设置为 false,文本命令仍然有效。
  • commands.native(默认 "auto"):注册原生命令。Auto 表示 Discord/Telegram 开启,Slack 关闭(直到你手动添加斜杠命令),不支持原生注册的 Provider 忽略。可设置 channels.discord.commands.nativechannels.telegram.commands.nativechannels.slack.commands.native 按渠道覆盖(bool 或 "auto")。Discord 上 false 会在启动时跳过注册和清理,但已注册的命令可能保留可见;Slack 命令在 Slack 应用中管理,不会自动删除。
  • commands.nativeSkills(默认 "auto"):在支持的平台上为技能注册原生斜杠命令。Auto 表示 Discord/Telegram 开启,Slack 关闭(每个技能需手动创建斜杠命令)。可设置相应渠道覆盖。
  • commands.bash(默认 false):启用 ! <cmd> 运行宿主 shell 命令(/bash <cmd> 是别名,需要 tools.elevated 白名单)。
  • commands.bashForegroundMs(默认 2000):bash 在前台运行的多长时间后切换后台(0 立即后台)。
  • commands.config(默认 false):启用 /config(读写 openclaw.json)。
  • commands.mcp(默认 false):启用 /mcp(读写 OpenClaw 管理的 MCP 配置,位于 mcp.servers 下)。
  • commands.plugins(默认 false):启用 /plugins(插件发现/状态、安装、启用/禁用)。
  • commands.debug(默认 false):启用 /debug(运行时配置覆盖)。
  • commands.restart(默认 true):启用 /restart 和 Gateway 重启工具操作。
  • commands.ownerAllowFrom:设置所有者白名单,用于所有者专属命令表面和所有者门控渠道操作。这是人类操作员账户,可批准危险操作并运行 /diagnostics/export-trajectory/config 等命令。与 commands.allowFrom 和 DM 配对访问分开。
  • commands.ownerDisplay"raw""hash"):控制所有者 ID 在系统 prompt 中的显示方式。
  • commands.ownerDisplaySecret:可选,当 ownerDisplay"hash" 时使用的 HMAC 密钥。
  • commands.allowFrom:按 Provider 设置命令授权的白名单。配置后,它是命令和指令的唯一授权来源(忽略渠道 allowlist/配对和 commands.useAccessGroups)。"*" 表示全局默认,特定 Provider 键覆盖。
  • commands.useAccessGroups(默认 true):当 commands.allowFrom 未设置时,对命令执行 allowlist/策略。

另外,每个渠道可设 channels.<channel>.commands.enforceOwnerForCommands(默认 false),为 true 时所有者专属命令需要所有者身份才能在该渠道执行。发送者必须匹配已解析的所有者候选(如 commands.ownerAllowFrom 中的条目或 Provider 原生所有者元数据),或持有内部 operator.admin 作用域。通配符 allowFrom 或空/未解析的所有者候选列表不够,所有者命令将在该渠道失败关闭。如果想只通过 ownerAllowFrom 和标准命令 allowlist 门控所有者命令,保持该选项关闭。

命令列表

核心内置命令

会话和运行

  • /new [model]:归档当前会话并开始新会话。/reset 就地清除当前会话。两者不是别名。Control UI 截获打字的 /new 创建并切换新仪表板会话,除非 session.dmScope: "main" 且当前父会话是智能体的主会话,此时 /new 重置主会话。打字的 /reset 仍运行 Gateway 的就地重置。
  • /reset soft [message]:保留当前转录,丢弃重用的 CLI 后端会话 ID,就地重新加载启动/system-prompt。
  • /compact [instructions]:压缩会话上下文。参见 Compaction
  • /stop:中止当前运行。
  • /session idle <duration|off>/session max-age <duration|off>:管理线程绑定过期。
  • /export-session [path](别名 /export):导出当前会话为 HTML。
  • /export-trajectory [path](别名 /trajectory):需要 exec 批准,导出当前会话的 JSONL 轨迹包。群聊中批准提示和结果私有发送给所有者。

模型和运行控制

  • /think <level|default>:设置思考级别或清除会话覆盖。选项来自活动模型 Provider 配置;常见级别有 offminimallowmediumhigh,还有 xhighadaptivemax 或仅二进制 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=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=&lt;id&gt;:显示或设置 exec 默认值。
  • /model [name|#|status]:显示或设置模型。
  • /models [provider] [page] [limit=&lt;n&gt;|size=&lt;n&gt;|all]:列出配置/可用的 Provider 或某 Provider 的模型;加 all 浏览完整目录。agents.defaults.models 中的 provider/* 条目会使 /model/models 只显示这些 Provider 的模型。
  • /queue &lt;mode&gt;:管理活动运行队列行为(steerfollowupcollectinterrupt)及选项如 debounce:0.5s cap:25 drop:summarize/queue default/queue reset 清除会话覆盖。
  • /steer &lt;message&gt;(别名 /tell):向当前会话的运行中注入引导,独立于 /queue 模式。如果不可用或会话空闲,则作为正常 prompt 处理。参见 Steer

发现和状态

  • /help:显示简短帮助。
  • /commands:显示生成的命令目录。
  • /tools [compact|verbose]:显示当前智能体此刻可用的工具。
  • /status:显示执行/运行时状态、Gateway 和系统运行时间,以及 Provider 用量/配额(如可用)。
  • /diagnostics [note]:所有者专属支持报告流程。每次运行前需要 exec 批准,生成可粘贴报告。群聊中私有发送给所有者。当活动会话使用 OpenAI Codex harness 时,会发送相关 Codex 反馈给 OpenAI 服务器。参见 Diagnostics Export
  • /crestodian &lt;request&gt;:从所有者 DM 运行 Crestodian 设置和修复助手。
  • /tasks:列出当前会话的活动/近期后台任务。
  • /context [list|detail|map|json]:解释上下文如何组装。map 发送当前会话上下文的树图图片。
  • /whoami(别名 /id):显示发送者 ID。
  • /usage off|tokens|full|cost:控制每次响应的用量页脚或打印本地费用摘要。

技能、白名单、审批

  • /skill &lt;name&gt; [input]:按名称运行技能。
  • /allowlist [list|add|remove] ...:管理白名单条目。仅文本。
  • /approve &lt;id&gt; &lt;decision&gt;:解决 exec 或插件审批提示。
  • /btw &lt;question&gt;(别名 /side):询问临时问题,不改变未来会话上下文。参见 BTW

子智能体和 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 &lt;target&gt;:将当前 Discord 线程或 Telegram 话题/会话绑定到会话目标。
  • /unfocus:移除当前绑定。
  • /agents:列出当前会话的线程绑定智能体。
  • /kill <id|#|all>:中止一个或所有运行中的子智能体。
  • /subagents steer <id|#> &lt;message&gt;:向运行中的子智能体发送引导。参见 Steer

所有者专属写操作和管理

  • /config show|get|set|unset:读写 openclaw.json。仅所有者。需要 commands.config: true
  • /mcp show|get|set|unset:读写 OpenClaw 管理的 MCP 服务器配置(mcp.servers)。仅所有者。需要 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 &lt;command&gt;(别名 ! &lt;command&gt;):运行宿主 shell 命令。仅文本。需要 commands.bash: truetools.elevated 白名单。
  • !poll [sessionId]:检查后台 bash 作业状态。
  • !stop [sessionId]:停止后台 bash 作业。

生成的 Dock 命令

Dock 命令将当前会话的回复路由切换到另一个链接渠道。从直接聊天中使用 dock 命令切换当前会话的回复目标。需要 session.identityLinks,源发送者和目标对等者必须在同一身份组中。参见 Channel docking

当前内置 dock 命令:

  • /dock-discord(别名 dock_discord
  • /dock-mattermost(别名 dock_mattermost
  • /dock-slack(别名 dock_slack
  • /dock-telegram(别名 dock_telegram

捆绑插件命令

  • /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 应用服务器 harness。参见 Codex harness
  • QQBot 专属:/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs

动态技能命令

用户可调用的技能也会作为斜杠命令暴露:

  • /skill &lt;name&gt; [input] 始终作为通用入口。
  • 技能可能直接注册为命令如 /prose
  • 原生技能命令注册由 commands.nativeSkills 和渠道覆盖控制。
  • 命令 spec 可为支持本地化描述的渠道(如 Discord)提供 descriptionLocalizations

参数和解析说明

  • 命令和参数间可接受可选冒号(如 /think: high/send: on/help:)。
  • /new &lt;model&gt; 接受模型别名、provider/model 或 Provider 名称(模糊匹配);无匹配则文本视为消息体。
  • /allowlist add|remove 需要 commands.config=true 并遵守渠道 configWrites
  • 多账号渠道中,配置定向的 /allowlist --account &lt;id&gt;/config set channels.&lt;provider&gt;.accounts.&lt;id&gt;... 也遵守目标账号的 configWrites
  • /usage 控制每次响应的用量页脚;/usage cost 从 OpenClaw 会话日志打印本地费用摘要。
  • /restart 默认启用;设置 commands.restart: false 关闭。
  • /plugins install &lt;spec&gt; 接受与 openclaw plugins install 相同的规格:本地路径/压缩包、npm 包、git:&lt;repo&gt;clawhub:&lt;pkg&gt;。管理 Gateway 自动重启(由于插件源码模块变更)。
  • /plugins enable|disable 更新插件配置并触发 Gateway 插件重载(新智能体轮次生效)。

渠道特定行为

  • Discord 专属原生命令:/vc join|leave|status 控制语音频道(不支持文本)。需要 channels.discord.voice 和原生命令。
  • Discord 线程绑定命令(/focus/unfocus/agents/session idle/session max-age)需要有效线程绑定启用(session.threadBindings.enabled 和/或 channels.discord.threadBindings.enabled)。
  • ACP 命令参考:参见 ACP agents

Verbose / Trace / Fast / Reasoning 安全提示

  • /verbose 用于调试和额外可见性;正常使用保持关闭。
  • /trace/verbose 窄,仅显示插件追踪/调试行。
  • /fast on|off 持久化会话覆盖。使用 Sessions UI 的 inherit 选项回退到配置默认。
  • /fast 是 Provider 特定的:OpenAI 映射到 service_tier=priority,Anthropic 直接公共请求映射到 service_tier=autostandard_only
  • 工具失败摘要仍会显示,但详细失败文本仅当 /verbose full 启用时包含。
  • /reasoning/verbose/trace 在群组中有风险:可能暴露内部推理、工具输出或插件诊断。建议关闭,尤其在群聊中。

模型切换

  • /model 立即持久化新会话模型。
  • 如果智能体空闲,下次运行立即使用。如果运行已活动,OpenClaw 标记现场切换为待处理,并在干净重试点重启到新模型。如果工具活动或回复输出已开始,待处理切换可能排队直到后续重试机会或用户下次消息。
  • 本地 TUI 中,/crestodian [request] 从正常智能体 TUI 返回到 Crestodian。

快速路径和内联快捷方式

  • 快速路径:来自白名单发送者的仅命令消息立即处理(绕过队列和模型)。
  • 群组提及门控:白名单发送者的仅命令消息绕过提及要求。
  • 内联快捷方式(仅白名单发送者):某些命令嵌入普通消息中会被剥离,剩余文本继续正常流程。当前:/help/commands/status/whoami/id)。
  • 未授权的仅命令消息被静默忽略,内联 /... token 被视为普通文本。

技能命令和原生参数

  • 技能命令:user-invocable 技能暴露为斜杠命令。名称清理为 a-z0-9_(最多 32 字符),冲突添加数字后缀。
  • 默认转发给模型作为普通请求。技能可选择声明 command-dispatch: tool 直接路由到工具(确定性,不经过模型)。
  • Native 命令参数:Discord 使用自动补全;Telegram 和 Slack 在命令支持选择且省略参数时显示按钮菜单。动态选择针对目标会话模型解析。

/tools

/tools 回答运行时问题:这个智能体现在这次对话中可以使用什么

  • 默认紧凑输出;/tools verbose 添加短描述。
  • 支持参数的原生命令平台暴露相同模式切换。
  • 结果会话作用域:更改智能体、渠道、线程、发送者授权或模型可能改变输出。
  • 包括运行时实际可达的工具(核心、插件、渠道拥有的工具)。
  • Profile 和覆盖编辑应使用 Control UI 工具面板或配置/目录表面。

用量显示(哪里显示什么)

  • Provider 用量/配额(如 "Claude 80% left")在 /status 中显示,当用量追踪启用时。
  • Token/缓存行在 /status 中可回退到最新转录用量条目(当活动会话快照稀疏时)。现有非零活动值仍然优先,转录回退也可恢复活动运行时模型标签和更大的面向 prompt 总数。
  • 执行 vs 运行时:/status 报告 Execution 为有效沙箱路径,Runtime 为实际运行会话的实体:OpenClaw Pi DefaultOpenAI 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

注意:

  • 显示紧凑编号选择器。
  • Discord 上打开交互式选择器,遵守 agents.defaults.models 中的 provider/* 条目。
  • /model <#> 从选择器选择(优先当前 Provider)。
  • /model status 显示详细视图,包括配置的 Provider 端点(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

覆盖立即对新配置读取生效,但写入 openclaw.json。使用 /debug reset 清除所有覆盖。

配置更新

/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 写入 OpenClaw 管理的 MCP 服务器定义(mcp.servers)。仅所有者。默认禁用;启用 commands.mcp: true

示例:

text
/mcp show
/mcp show context7
/mcp set context7={"command":"uvx","args":["context7-mcp"]}
/mcp unset context7

配置存储在 OpenClaw 配置中,不是 Pi 项目设置。运行时适配器决定哪些传输可执行。

插件更新

/plugins 让操作员检查已发现的插件并在配置中切换启用状态。只读流程可使用别名 /plugin。默认禁用;启用 commands.plugins: true

示例:

text
/plugins
/plugins list
/plugin show context7
/plugins enable context7
/plugins disable context7
  • /plugins list/plugins show 使用真实插件发现(当前工作区 + 磁盘配置)。
  • /plugins install 从 ClawHub、npm、git、本地目录和压缩包安装。
  • /plugins enable|disable 仅更新插件配置,不安装/卸载。热重载 Gateway 插件运行时(新智能体轮次生效)。安装引起管理 Gateway 自动重启。

表面说明(Surface notes)

每表面的会话

  • 文本命令:在普通聊天会话中运行(DM 共享 main,群组有自身会话)。
  • 原生命令:使用隔离会话:
    • Discord:agent:<agentId>:discord:slash:<userId>
    • Slack:agent:<agentId>:slack:slash:<userId>(前缀可通过 channels.slack.slashCommand.sessionPrefix 配置)
    • Telegram:telegram:slash:<userId>(通过 CommandTargetSessionKey 指向聊天会话)
  • /stop:指向活动聊天会话,可中止当前运行。

Slack 特定

  • channels.slack.slashCommand 仍支持单个 /openclaw 风格命令。启用 commands.native 后,必须为每个内置命令创建一个 Slack 斜杠命令(名称与 /help 等相同)。命令参数菜单以临时 Block Kit 按钮提供。
  • Slack 原生例外:注册 /agentstatus 而不是 /status(因为 Slack 保留 /status)。文本 /status 在 Slack 消息中仍有效。

BTW 临时问题

/btw 关于当前会话的快速临时问题。别名 /side

与普通聊天不同:

  • 使用当前会话作为背景上下文。
  • 在 Codex harness 会话中,作为一次性 Codex 侧线程运行(使用当前 Codex 权限和原生工具表面)。
  • 非 Codex 会话中,保持旧的直接一次性侧调用行为。
  • 不改变未来会话上下文,不写入转录历史。
  • 作为实时侧结果交付,而不是普通助手消息。

示例:

text
/btw what are we doing right now?
/side what changed while the main run continued?

参见 BTW Side Questions

常见问题

斜杠命令没反应,怎么排查?

先确认消息是否以 / 开头且是独立消息(不是嵌入普通文字)。检查配置文件中 commands.text: true(文本命令)或 commands.native 已启用。对于原生命令(Discord/Telegram),查看 commands.allowFromcommands.useAccessGroups 是否将你的账号加入白名单。可以尝试在 DM 中发送 /status 看是否有回复,若无回复则检查 Gateway 日志日志。

为什么在 Slack 上看不到 /help 等原生命令?

Slack 默认不自动注册原生斜杠命令。需要手动为每个命令创建 Slack 斜杠命令(例如 /help/commands 等)。如果启用 commands.native,OpenClaw 会尝试注册,但 Slack 要求你在 Slack App 配置中先定义命令。另外 Slack 保留了 /status,原生命令请使用 /agentstatus,但文本 /status 在消息中仍有效。

/config 命令不起作用,提示什么?

确保 commands.config: true 已在配置文件中设置(默认 false)。只有所有者(配置了 commands.ownerAllowFrom 或通过 Provider 原生所有者元数据解析)才能使用 /config。检查发送者是否是 ownerAllowFrom 中列出的 ID(例如 "discord:123456789012345678")。如果使用了 commands.allowFrom,它成为唯一授权来源,忽略普通白名单,请确认该列表包含你的所有者 ID。