斜杠命令
命令由 Gateway 网关处理。大多数命令必须作为以 / 开头的独立消息发送。
仅主机的 bash 聊天命令使用 ! <cmd>(/bash <cmd> 是别名)。
有两个相关系统:
- 命令:独立的
/...消息。 - 指令:
/think、/verbose、/reasoning、/elevated、/exec、/model、/queue。- 指令在模型看到消息之前被剥离。
- 在普通聊天消息中(不是仅指令消息),它们被视为"内联提示",不会持久化会话设置。
- 在仅指令消息中(消息只包含指令),它们会持久化到会话并回复确认。
- 指令仅对授权发送者生效(渠道白名单/配对加上
commands.useAccessGroups)。 未授权发送者的指令被视为纯文本。
还有一些内联快捷方式(仅限白名单/授权发送者):/help、/commands、/status、/whoami(/id)。
它们立即运行,在模型看到消息之前被剥离,剩余文本继续通过正常流程。
配置
{
commands: {
native: "auto",
nativeSkills: "auto",
text: true,
bash: false,
bashForegroundMs: 2000,
config: false,
debug: false,
restart: false,
useAccessGroups: true,
},
}
commands.text(默认true)启用解析聊天消息中的/...。- 在没有原生命令的平台上(WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams),即使你将此设置为
false,文本命令仍然有效。
- 在没有原生命令的平台上(WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams),即使你将此设置为
commands.native(默认"auto")注册原生命令。- Auto:在 Discord/Telegram 上启用;在 Slack 上禁用(直到你添加斜杠命令);在不支持原生命令的提供商上忽略。
- 设置
channels.discord.commands.native、channels.telegram.commands.native或channels.slack.commands.native以按提供商覆盖(布尔值或"auto")。 false在启动时清除 Discord/Telegram 上之前注册的命令。Slack 命令在 Slack 应用中管理,不会自动删除。
commands.nativeSkills(默认"auto")在支持时原生注册 Skill 命令。- Auto:在 Discord/Telegram 上启用;在 Slack 上禁用(Slack 需要为每个 Skill 创建一个斜杠命令)。
- 设置
channels.discord.commands.nativeSkills、channels.telegram.commands.nativeSkills或channels.slack.commands.nativeSkills以按提供商覆盖(布尔值或"auto")。
commands.bash(默认false)启用! <cmd>来运行主机 shell 命令(/bash <cmd>是别名;需要tools.elevated白名单)。commands.bashForegroundMs(默认2000)控制 bash 切换到后台模式之前等待多长时间(0立即后台运行)。commands.config(默认false)启用/config(读写openclaw.json)。commands.debug(默认false)启用/debug(仅运行时覆盖)。commands.useAccessGroups(默认true)对命令强制执行白名单/策略。
命令列表
文本 + 原生(启用时):
/help/commands/skill <name> [input](按名称运行 Skill)/status(显示当前状态;在可用时包含当前模型提供商的提供商使用量/配额)/allowlist(列出/添加/删除白名单条目)/approve <id> allow-once|allow-always|deny(解决 exec 审批提示)/context [list|detail|json](解释"上下文";detail显示每个文件 + 每个工具 + 每个 Skill + 系统提示词大小)/whoami(显示你的发送者 ID;别名:/id)/subagents list|kill|log|info|send|steer|spawn(检查、控制或创建当前会话的子智能体运行)/config show|get|set|unset(将配置持久化 到磁盘,仅所有者;需要commands.config: true)/debug show|set|unset|reset(运行时覆盖,仅所有者;需要commands.debug: true)/usage off|tokens|full|cost(每响应使用量页脚或本地成本摘要)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(控制 TTS;参见 /tts)- Discord:原生命令是
/voice(Discord 保留了/tts);文本/tts仍然有效。
- Discord:原生命令是
/stop/restart/dock-telegram(别名:/dock_telegram)(将回复切换到 Telegram)/dock-discord(别名:/dock_discord)(将回复切换到 Discord)/dock-slack(别名:/dock_slack)(将回复切换到 Slack)/activation mention|always(仅限群组)/send on|off|inherit(仅所有者)/reset或/new [model](可选模型提示;其余部分传递)/think <off|minimal|low|medium|high|xhigh>(按模型/提供商动态选择;别名:/thinking、/t)/verbose on|full|off(别名:/v)/reasoning on|off|stream(别名:/reason;启用时,发送带有Reasoning:前缀的单独消息;stream= 仅 Telegram 草稿)/elevated on|off|ask|full(别名:/elev;full跳过 exec 审批)/exec host=<sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(发送/exec显示当前设置)/model <name>(别名:/models;或agents.defaults.models.*.alias中的/<alias>)/queue <mode>(加上选项如debounce:2s cap:25 drop:summarize;发送/queue查看当前设置)/bash <command>(仅主机;! <command>的别名;需要commands.bash: true+tools.elevated白名单)
仅文本:
/compact [instructions](参见 /concepts/compaction)! <command>(仅主机;一次一个;对长时间运行的任务使用!poll+!stop)!poll(检查输出/状态;接受可选的sessionId;/bash poll也可用)!stop(停止正在运行的 bash 任务;接受可选的sessionId;/bash stop也可用)
注意事项:
- 命令接受命令和参数之间的可选
:(例如/think: high、/send: on、/help:)。 /new <model>接受模型别名、provider/model或提供商名称(模糊匹配);如果没有匹配,文本被视为消息正文。- 要获取完整的提供商使用量分解,使用
openclaw status --usage。 /allowlist add|remove需要commands.config=true并遵循渠道configWrites。/usage控制每响应使用量页脚;/usage cost从 OpenClaw 会话日志打印本地成本摘要。/restart默认禁用;设置commands.restart: true启用它。/verbose用于调试和额外可见性;在正常使用中保持关闭。/reasoning(和/verbose)在群组设置中有风险:它们可能会暴露你不打算公开的内部推理或工具输出。最好保持关闭,尤其是在群聊中。- 快速路径: 来自白名单发送者的仅命令消息会立即处理(绕过队列 + 模型)。
- 群组提及门控: 来自白名单发送者的仅命令消息绕过提及要求。
- 内联快捷方式(仅限白名单发送者): 某些命令在嵌入普通消息时也能工作,并在模型看到剩余文本之前被剥离。
- 示例:
hey /status触发状态回复,剩余文本继续通过正常流程。
- 示例:
- 目前:
/help、/commands、/status、/whoami(/id)。 - 未授权的仅命令消息被静默忽略,内联
/...令牌被视为纯文本。 - Skill 命令:
user-invocableSkills 作为斜杠命令公开。名称被清理为a-z0-9_(最多 32 个字符);冲突获得数字后缀(例如_2)。/skill <name> [input]按名称运行 Skill(当原生命令限制阻止每个 Skill 命令时有用)。- 默认情况下,Skill 命令作为普通请求转发给模型。
- Skills 可以选择声明
command-dispatch: tool将命令直接路由到工具(确定性,无模型)。 - 示例:
/prose(OpenProse 插件)— 参见 OpenProse。