斜線指令

指令由閘道處理。大多數指令必須以獨立訊息傳送,開頭為 /。 僅限主機的 bash 聊天指令使用 ! <cmd>/bash <cmd> 為別名)。

有兩個相關的系統:

  • 指令:獨立的 /... 訊息。
  • 指示詞/think/fast/verbose/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,
    debug: false,
    restart: false,
    allowFrom: {
      "*": ["user1"],
      discord: ["user:123"],
    },
    useAccessGroups: true,
  },
}
  • commands.text(預設 true)啟用在聊天訊息中解析 /...
    • 在沒有原生指令支援的平台上(WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams),即使設為 false 文字指令仍可使用。
  • commands.native(預設 "auto")註冊原生指令。
    • Auto:Discord/Telegram 開啟;Slack 關閉(直到你加入斜線指令);沒有原生支援的供應商則忽略。
    • 設定 channels.discord.commands.nativechannels.telegram.commands.nativechannels.slack.commands.native 可按供應商覆寫(布林或 "auto")。
    • false 在啟動時清除 Discord/Telegram 上先前註冊的指令。Slack 指令在 Slack 應用程式中管理,不會自動移除。
  • commands.nativeSkills(預設 "auto")在支援的平台上以原生方式註冊技能指令。
    • Auto:Discord/Telegram 開啟;Slack 關閉(Slack 需要為每個技能建立斜線指令)。
    • 設定 channels.discord.commands.nativeSkillschannels.telegram.commands.nativeSkillschannels.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.allowFrom(選填)設定每供應商的指令授權允許清單。設定後,它是 指令與指示詞的唯一授權來源(頻道允許清單/配對和 commands.useAccessGroups 會被忽略)。使用 "*" 作為全域預設;供應商專屬鍵值會覆寫它。
  • commands.useAccessGroups(預設 true)在未設定 commands.allowFrom 時強制執行指令的允許清單/策略。

指令清單

文字 + 原生(啟用時):

  • /help
  • /commands
  • /skill <name> [input](按名稱執行技能)
  • /status(顯示目前狀態;如有,包含當前模型供應商的用量/配額)
  • /allowlist(列出/新增/移除允許清單項目)
  • /approve <id> allow-once|allow-always|deny(處理 exec 審批提示)
  • /context [list|detail|json](說明「上下文」;detail 顯示每檔案 + 每工具 + 每技能 + 系統提示詞大小)
  • /export-session [path](別名:/export)(匯出當前工作階段為含完整系統提示詞的 HTML)
  • /whoami(顯示你的發送者 id;別名:/id
  • /session idle <duration|off>(管理聚焦執行緒綁定的閒置自動解除聚焦)
  • /session max-age <duration|off>(管理聚焦執行緒綁定的硬性最大壽命自動解除聚焦)
  • /subagents list|kill|log|info|send|steer|spawn(檢視、控制或衍生當前工作階段的子代理執行)
  • /acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(檢視與控制 ACP 執行環境工作階段)
  • /agents(列出此工作階段的執行緒綁定代理)
  • /focus <target>(Discord:將此執行緒綁定到工作階段/子代理目標,或建立新執行緒)
  • /unfocus(Discord:移除目前的執行緒綁定)
  • /kill <id|#|all>(立即中止當前工作階段的一個或所有子代理;無確認訊息)
  • /steer <id|#> <message>(立即引導運行中的子代理:執行中時就地引導,否則中止當前工作並在引導訊息上重新開始)
  • /tell <id|#> <message>/steer 的別名)
  • /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 仍可使用。
  • /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
  • /fast status|on|off(省略引數顯示目前生效的快速模式狀態)
  • /verbose on|full|off(別名:/v
  • /reasoning on|off|stream(別名:/reason;開啟時以 Reasoning: 前綴傳送獨立訊息;stream = 僅 Telegram 草稿)
  • /elevated on|off|ask|full(別名:/elevfull 跳過 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
  • 在多帳號頻道中,指定設定目標的 /allowlist --account <id>/config set channels.<provider>.accounts.<id>... 也遵循目標帳號的 configWrites
  • /usage 控制每次回應的用量頁尾;/usage cost 列印 OpenClaw 工作階段日誌的本機成本摘要。
  • /restart 預設為啟用;設定 commands.restart: false 可停用。
  • 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 代理
  • /verbose 用於除錯和額外可見性;正常使用時請保持關閉
  • /fast on|off 持久化工作階段覆寫。使用工作階段 UI 的 inherit 選項清除它並回到設定預設值。
  • 工具失敗摘要在相關時仍會顯示,但詳細的失敗文字只在 /verboseonfull 時才會包含。
  • /reasoning(和 /verbose)在群組環境中有風險:可能會洩露你不想暴露的內部推理或工具輸出。建議保持關閉,尤其在群組聊天中。
  • **快速路徑:**來自已列入允許清單的發送者的僅指令訊息會立即處理(繞過佇列 + 模型)。
  • **群組提及控制:**來自已列入允許清單的發送者的僅指令訊息繞過提及要求。
  • **行內捷徑(僅限已列入允許清單的發送者):**某些指令嵌入一般訊息中時也能運作,在模型看到其餘文字前被移除。
    • 範例:hey /status 觸發狀態回覆,其餘文字繼續走正常流程。
  • 目前支援:/help/commands/status/whoami/id)。
  • 未授權的僅指令訊息會被靜默忽略,行內的 /... token 被視為純文字。
  • 技能指令:user-invocable 的技能會暴露為斜線指令。名稱正規化為 a-z0-9_(最多 32 字元);衝突時加數字後綴(例如 _2)。
    • /skill <name> [input] 按名稱執行技能(原生指令數量限制時特別實用)。
    • 預設情況下,技能指令會作為一般請求轉發給模型。
    • 技能可選擇宣告 command-dispatch: tool 將指令直接路由到工具(確定性、不經模型)。
    • 範例:/prose(OpenProse 外掛)— 參閱 OpenProse
  • **原生指令引數:**Discord 使用自動完成來提供動態選項(省略必填引數時使用按鈕選單)。Telegram 和 Slack 在指令支援選項且省略引數時顯示按鈕選單。

用量顯示面(什麼顯示在哪裡)

  • 供應商用量/配額(例如:“Claude 80% left”)在當前模型供應商啟用用量追蹤時顯示在 /status 中。
  • 每次回應的 token/成本/usage off|tokens|full 控制(附加到一般回覆)。
  • /model status 關於模型/認證/端點,不是用量。

模型選擇(/model

/model 以指示詞方式實作。

範例:

/model
/model list
/model 3
/model openai/gpt-5.2
/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

注意事項:

  • 覆寫立即套用到新的設定讀取,但不會寫入 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

注意事項:

  • 設定在寫入前會驗證;無效的變更會被拒絕。
  • /config 的更新在重啟後持續有效。

介面注意事項

  • 文字指令在一般聊天工作階段中執行(私訊共享 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 相同)。Slack 的指令引數選單以暫態 Block Kit 按鈕傳送。
    • Slack 原生例外:註冊 /agentstatus(而非 /status),因為 Slack 保留了 /status。文字 /status 在 Slack 訊息中仍可使用。