Skip to content

Slash 命令

命令由 Gateway 处理,必须作为独立消息发送(以 / 开头)。有两套系统:

  • 命令(Commands):独立的 /... 消息,触发特定操作
  • 指令(Directives)/think/exec/model 等,会从消息中剥离,不被模型看到
    • 仅包含指令的消息:设置会话状态并回复确认
    • 混合消息(指令 + 正文):作为"内联提示",不持久化

权限控制

命令和指令只对授权发送者生效:

json5
{
  commands: {
    // 全局白名单(覆盖渠道级设置)
    allowFrom: {
      "*": ["user1"],
      discord: ["user:123"],
    },
    useAccessGroups: true,  // 默认:渠道白名单/配对策略生效
  },
}

未授权发送者发送命令会被静默忽略;内联 /... 作为普通文本处理。

常用命令速查

基础操作

命令说明
/help显示帮助
/commands列出所有可用命令
/status显示当前状态(含模型、Provider 用量)
/whoami/id显示你的发送者 ID
/stop停止当前正在运行的 Agent
/restart重启 Agent

会话管理

命令说明
/new [模型]/reset开始新会话,可选指定初始模型
/compact [指令]手动触发上下文压缩
/context [list|detail|json]查看上下文大小(文件、工具、Skills、系统提示)
/export-session [路径]导出当前会话为 HTML
/session idle <时长|off>Discord:管理 thread 绑定空闲超时
/session max-age <时长|off>Discord:管理 thread 绑定最大时长

模型与推理

命令说明
/model显示当前模型(紧凑选择器)
/model list列出可用模型(编号)
/model 3按编号选择模型
/model <别名>按别名切换(如 /model Sonnet
/model status详细认证状态(含 Provider 端点信息)
/think <级别>设置思考深度:off/minimal/low/medium/high/xhigh
/verbose on|full|off显示详细调试信息(谨慎在群聊中使用)
/reasoning on|off|stream显示推理过程(Telegram 支持流式草稿)

执行与工具

命令说明
/exec host=<位置> security=<模式>设置当前会话的 exec 执行配置
/elevated on|off|ask|full设置提升权限模式(full 跳过审批)
/approve <id> allow-once|allow-always|deny处理 exec 审批请求
/allowlist列出/添加/删除白名单条目(需要 commands.config: true
! <命令>/bash <命令>在宿主机执行 Shell 命令(需要 commands.bash: true
!poll查询后台任务输出
!stop停止后台 bash 任务

Sub-Agent 管理

命令说明
/subagents list列出当前会话的子 Agent 运行
/subagents kill <id|#|all>立即终止子 Agent
/kill <id|#|all>同上(快捷别名)
/steer <id|#> <消息>向运行中的子 Agent 发送引导消息
/tell <id|#> <消息>/steer 的别名
/subagents spawn手动启动子 Agent

Discord 专属

命令说明
/focus <目标>将当前 thread 绑定到指定会话/子 Agent
/unfocus解除 thread 绑定
/agents列出此 session 的 thread 绑定 Agent
/vc join|leave|status控制语音频道(需原生命令支持)

用量与成本

命令说明
/usage off|tokens|full|cost控制每次回复后的 token/成本显示
/status显示当前 Provider 用量/配额

队列控制

命令说明
/queue <模式>设置消息队列模式(详见 Agent 配置)

Skills 命令

用户可调用(user-invocable)的 Skills 自动注册为 slash 命令:

  • /skill <名称> [输入]:按名称运行 Skill(当原生命令数量受限时使用)
  • 各 Skill 也会自动注册为独立命令(如 /prose/gemini

命令配置

json5
{
  commands: {
    native: "auto",         // auto:Discord/Telegram 开启,Slack 关闭
    nativeSkills: "auto",   // Skills 是否注册为原生命令
    text: true,             // 文本消息中解析 / 命令
    bash: false,            // 启用 ! <cmd> 宿主 Shell 执行
    config: false,          // 启用 /config 命令(读写配置文件)
    debug: false,           // 启用 /debug 命令(运行时覆盖)
    restart: true,          // 启用 /restart 命令
  },
}

内联快捷命令

以下命令可以嵌入普通消息中(白名单用户),触发后从消息中剥离,剩余文字正常发送:

  • /help/commands/status/whoami/id

示例:你好 /status → 触发状态回复,"你好"继续发送给模型。

运行时调试

/debug 允许在不修改磁盘配置的情况下临时覆盖设置(需要 commands.debug: true):

/debug show
/debug set messages.responsePrefix="[openclaw]"
/debug unset messages.responsePrefix
/debug reset   ← 清除所有临时覆盖

持久化配置(/config)

/config 写入 openclaw.json(需要 commands.config: true,仅 Owner):

/config show
/config get messages.responsePrefix
/config set messages.responsePrefix="[openclaw]"
/config unset messages.responsePrefix