OpenClaw 指令與配置指南:快速設定 Slash Commands
指令是由 Gateway 處理的。大多數指令必須作為以 / 開頭的獨立訊息發送。Host-only 的 bash 聊天指令使用 ! <cmd>(/bash <cmd> 為別名)。
這裡有兩個相關系統:
- 指令 (Commands):獨立的
/...訊息。 - 指令語 (Directives):
/think,/fast,/verbose,/reasoning,/elevated,/exec,/model,/queue。- 指令語在模型看到訊息之前會被移除。
- 在一般聊天訊息中(非僅含指令語的訊息),它們被視為「行內提示」,不會持久化 Session 設定。
- 在僅含指令語的訊息中,它們會持久化到 Session 並回覆確認訊息。
- 指令語僅適用於授權發送者。如果設定了
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.text(預設為true):啟用聊天訊息中的/...解析。- 在沒有原生指令的介面(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)上,即使你將此項設為
false,文字指令仍然有效。
- 在沒有原生指令的介面(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)上,即使你將此項設為
commands.native(預設為"auto"):註冊原生指令。- Auto:Discord/Telegram 開啟;Slack 關閉(直到你手動添加 Slash commands);對於不支援原生指令的 Provider 則忽略。
- 設定
channels.discord.commands.native、channels.telegram.commands.native或channels.slack.commands.native來覆蓋每個 Provider 的設定(布林值或"auto")。 false會在啟動時清除 Discord/Telegram 上先前註冊的指令。Slack 指令在 Slack App 中管理,不會自動移除。
commands.nativeSkills(預設為"auto"):在支援時以原生方式註冊 skill 指令。- Auto:Discord/Telegram 開啟;Slack 關閉(Slack 需要為每個 skill 建立一個 Slash command)。
- 設定
channels.discord.commands.nativeSkills、channels.telegram.commands.nativeSkills或channels.slack.commands.nativeSkills來覆蓋每個 Provider 的設定。
commands.bash(預設為false):啟用! <cmd>來執行 host shell 指令(/bash <cmd>是別名;需要tools.elevated白名單)。commands.bashForegroundMs(預設為2000):控制 bash 在切換到背景模式前等待的時間(0表示立即轉入背景)。commands.config(預設為false):啟用/config(讀取/寫入openclaw.json)。commands.mcp(預設為false):啟用/mcp(讀取/寫入mcp.servers下由 OpenClaw 管理的 MCP 設定)。commands.plugins(預設為false):啟用/plugins(外掛查找/狀態,以及安裝 + 啟用/停用控制)。commands.debug(預設為false):啟用/debug(僅限執行時的覆蓋設定)。commands.restart(預設為true):啟用/restart以及 Gateway 重啟工具動作。commands.ownerAllowFrom(選填):為僅限擁有者的指令/工具介面設定明確的擁有者白名單。這與commands.allowFrom是分開的。commands.ownerDisplay:控制擁有者 ID 在系統提示詞中的顯示方式:raw或hash。commands.ownerDisplaySecret(選填):當commands.ownerDisplay="hash"時,設定所使用的 HMAC 密鑰。commands.allowFrom(選填):為指令授權設定每個 Provider 的白名單。配置後,它是指令和指令語的唯一授權來源(頻道白名單/配對和commands.useAccessGroups將被忽略)。使用"*"作為全域預設值;特定 Provider 的 key 會覆蓋它。commands.useAccessGroups(預設為true):當未設定commands.allowFrom時,對指令強制執行白名單/策略。
目前的內容來源:
- 核心內建指令來自
src/auto-reply/commands-registry.shared.ts - 生成的 dock 指令來自
src/auto-reply/commands-registry.data.ts - 外掛指令來自外掛的
registerCommand()呼叫 - 你的 Gateway 上的實際可用性仍取決於設定 flag、頻道介面以及已安裝/啟用的外掛
核心內建指令
Section titled “核心內建指令”目前可用的內建指令:
/new [model]:開始新 Session;/reset是重置別名。/compact [instructions]:壓縮 Session 上下文。參見 /concepts/compaction。/stop:中止當前執行。/session idle <duration|off>和/session max-age <duration|off>:管理 Thread 綁定的過期時間。/think <off|minimal|low|medium|high|xhigh>:設定思考層級。別名:/thinking,/t。/verbose on|off|full:切換詳細輸出。別名:/v。/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>:顯示或設定執行預設值。/model [name|#|status]:顯示或設定模型。/models [provider] [page] [limit=<n>|size=<n>|all]:列出 Provider 或特定 Provider 的模型。/queue <mode>:管理隊列行為(steer,interrupt,followup,collect,steer-backlog)以及debounce:2s cap:25 drop:summarize等選項。/help:顯示簡短的幫助摘要。/commands:顯示生成的指令目錄。/tools [compact|verbose]:顯示當前 Agent 現在可以使用什麼工具。/status:顯示執行狀態,包括可用的 Provider 用量/配額。/tasks:列出當前 Session 的活動中/最近的背景任務。/context [list|detail|json]:解釋上下文是如何組裝的。/export-session [path]:將當前 Session 匯出為 HTML。別名:/export。/whoami:顯示你的發送者 ID。別名:/id。/skill <name> [input]:按名稱執行 Skill。/allowlist [list|add|remove] ...:管理白名單項目。僅限文字。/approve <id> <decision>:處理執行審批提示。/btw <question>:詢問側邊問題而不改變未來的 Session 上下文。參見 /tools/btw。/subagents list|kill|log|info|send|steer|spawn:管理當前 Session 的 Sub-agent 執行。/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help:管理 ACP Session 和執行選項。/focus <target>:將當前 Discord Thread 或 Telegram Topic/對話綁定到 Session 目標。/unfocus:移除當前綁定。/agents:列出當前 Session 綁定到 Thread 的 Agent。/kill <id|#|all>:中止一個或所有執行中的 Sub-agent。/steer <id|#> <message>:向執行中的 Sub-agent 發送引導訊息。別名:/tell。/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。/usage off|tokens|full|cost:控制每條回覆的用量頁尾,或列印本地費用摘要。/tts on|off|status|provider|limit|summary|audio|help:控制 TTS。參見 /tools/tts。/restart:在啟用時重啟 OpenClaw。預設:啟用;設定commands.restart: false來停用。/activation mention|always:設定群組啟動模式。/send on|off|inherit:設定發送策略。僅限擁有者。/bash <command>:執行 host shell 指令。僅限文字。別名:! <command>。需要commands.bash: true以及tools.elevated白名單。!poll [sessionId]:檢查背景 bash 工作。!stop [sessionId]:停止背景 bash 工作。
生成的 Dock 指令
Section titled “生成的 Dock 指令”Dock 指令是從支援原生指令的頻道外掛生成的。目前內建的組合:
/dock-discord(別名:/dock_discord)/dock-mattermost(別名:/dock_mattermost)/dock-slack(別名:/dock_slack)/dock-telegram(別名:/dock_telegram)
內建外掛指令
Section titled “內建外掛指令”內建外掛可以添加更多 Slash commands。此儲存庫中目前內建的指令:
/dreaming [on|off|status|help]:切換記憶夢境(Memory dreaming)。參見 Dreaming。/pair [qr|status|pending|approve|cleanup|notify]:管理裝置配對/設定流程。參見 Pairing。/phone status|arm <camera|screen|writes|all> [duration]|disarm:暫時武裝高風險的 Phone Node 指令。/voice status|list [limit]|set <voiceId|name>:管理 Talk 語音設定。在 Discord 上,原生指令名稱為/talkvoice。/card ...:發送 LINE 豐富圖文卡片預設值。參見 LINE。/codex status|models|threads|resume|compact|review|account|mcp|skills:檢查並控制內建的 Codex App 伺服器。參見 Codex Harness。- 僅限 QQBot 的指令:
/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs
動態 Skill 指令
Section titled “動態 Skill 指令”使用者可呼叫的 Skill 也會作為 Slash commands 釋出:
/skill <name> [input]始終作為通用入口點有效。- 當 Skill/外掛註冊它們時,Skill 也可能以直接指令的形式出現(例如
/prose)。 - 原生 Skill 指令註冊由
commands.nativeSkills和channels.<provider>.commands.nativeSkills控制。
注意:
- 指令接受在指令和參數之間使用選填的
:(例如/think: high,/send: on,/help:)。 /new <model>接受模型別名、provider/model或 Provider 名稱(模糊匹配);如果沒有匹配,文字將被視為訊息正文。- 如需完整的 Provider 用量明細,請使用
openclaw status --usage。 /allowlist add|remove需要commands.config=true並遵循頻道的configWrites設定。- 在多帳號頻道中,針對特定設定的
/allowlist --account <id>和/config set channels.<provider>.accounts.<id>...也會遵循目標帳號的configWrites。 /usage控制每條回覆的用量頁尾;/usage cost從 OpenClaw Session 日誌中列印本地費用摘要。/restart預設啟用;設定commands.restart: false來停用它。/plugins install <spec>接受與openclaw plugins install相同的規範:本地路徑/壓縮檔、npm 套件或clawhub:<pkg>。/plugins enable|disable會更新外掛設定,並可能提示重啟。- 僅限 Discord 的原生指令:
/vc join|leave|status控制語音頻道(需要channels.discord.voice和原生指令;不提供文字版)。 - Discord Thread 綁定指令(
/focus,/unfocus,/agents,/session idle,/session max-age)需要啟用有效的 Thread 綁定(session.threadBindings.enabled和/或channels.discord.threadBindings.enabled)。 - ACP 指令參考和執行行為:ACP Agents。
/verbose僅用於偵錯和額外的可見性;在正常使用中請保持 off。/fast on|off會持久化 Session 覆蓋。使用 Sessions UI 的inherit選項來清除它並回退到設定預設值。/fast是特定於 Provider 的:OpenAI/OpenAI Codex 將其映射到原生 Responses 端點上的service_tier=priority,而直接的 Anthropic 請求(包括發送到api.anthropic.com的 OAuth 認證流量)將其映射到service_tier=auto或standard_only。參見 OpenAI 和 Anthropic。- 工具失敗摘要在相關時仍會顯示,但詳細的失敗文字僅在
/verbose為on或full時包含。 /reasoning(以及/verbose)在群組環境中具有風險:它們可能會洩露你不打算公開的內部推理或工具輸出。建議保持關閉,尤其是在群組聊天中。/model會立即持久化新的 Session 模型。- 如果 Agent 處於閒置狀態,下一次執行會立即使用它。
- 如果執行已經在活動中,OpenClaw 會將即時切換標記為掛起,並且僅在乾淨的重試點重啟進入新模型。
- 如果工具活動或回覆輸出已經開始,掛起的切換可能會保持在隊列中,直到稍後的重試機會或下一個使用者回合。
- 快速路徑: 來自白名單發送者的僅限指令訊息會立即處理(繞過隊列 + 模型)。
- 群組提及門檻: 來自白名單發送者的僅限指令訊息會繞過提及要求。
- 行內捷徑(僅限白名單發送者): 某些指令在嵌入一般訊息時也有效,並在模型看到剩餘文字前被移除。
- 範例:
hey /status會觸發狀態回覆,剩餘文字則繼續正常流程。
- 範例:
- 目前包括:
/help,/commands,/status,/whoami(/id)。 - 未經授權的僅限指令訊息會被靜默忽略,行內的
/...token 則被視為純文字。 - Skill 指令: 「使用者可呼叫」的 Skill 會作為 Slash commands 釋出。名稱會被清理為
a-z0-9_(最多 32 字元);衝突時會加上數字後綴(例如_2)。/skill <name> [input]按名稱執行 Skill(當原生指令限制阻止為每個 Skill 建立指令時很有用)。- 預設情況下,Skill 指令會作為正常請求轉發給模型。
- Skill 可以選擇宣告
command-dispatch: tool來將指令直接路由到工具(確定性的,不經過模型)。 - 範例:
/prose(OpenProse 外掛) — 參見 OpenProse。
- 原生指令參數: Discord 使用自動補全來處理動態選項(當你省略必要參數時會顯示按鈕選單)。Telegram 和 Slack 在指令支援選擇且你省略參數時會顯示按鈕選單。
/tools 指令
Section titled “/tools 指令”/tools 回答的是執行時期的問題,而不是設定問題:這個 agent 在目前的對話中究竟可以使用什麼。
- 預設的
/tools非常精簡,方便你快速瀏覽。 /tools verbose會加入簡短的描述。- 支援參數的原生指令介面也提供一樣的
compact|verbose模式切換。 - 結果會受到工作階段(session)影響,所以更換 agent、頻道、討論串、發送者權限或模型,都可能改變輸出的內容。
/tools包含執行時期實際可用的工具,這涵蓋了核心工具、已連線的 plugin 工具,以及頻道所屬的工具。
如果你要編輯 profile 或進行覆寫(override),請使用 Control UI 的 Tools 面板或 config/catalog 介面,不要把 /tools 當成靜態目錄。
使用介面(各項資訊顯示位置)
Section titled “使用介面(各項資訊顯示位置)”- 供應商用量/額度(例如:「Claude 剩餘 80%」):當啟用了用量追蹤時,會顯示在目前模型供應商的
/status中。OpenClaw 會將供應商的視窗標準化為% left;針對 MiniMax,剩餘百分比欄位在顯示前會先反轉,且model_remains的回應會優先採用 chat-model 項目加上標記模型的方案標籤。 - Token/快取行:在
/status中,當即時工作階段快照(live session snapshot)資料不足時,可以回退到最新的對話紀錄(transcript)用量項目。現有的非零即時數值仍會優先採用,當儲存的總計缺失或較小時,對話紀錄回退機制也能找回啟用的執行時期模型標籤,以及較大的 prompt 導向總計。 - 單次回應的 Token/費用:由
/usage off|tokens|full控制(會附加在一般回覆之後)。 /model status是關於 模型/認證/端點 (endpoints) 的資訊,與用量無關。
模型選擇 (/model)
Section titled “模型選擇 (/model)”/model 是以指令(directive)的形式實作的。
範例:
/model/model list/model 3/model openai/gpt-5.4/model opus@anthropic:default/model status備註:
/model和/model list會顯示一個精簡的數字編號選擇器(包含模型系列與可用的 provider)。- 在 Discord 上,
/model和/models會開啟一個互動式選擇器,包含 provider 和模型的下拉選單,以及一個 Submit 步驟。 /model <#>會從該選擇器中進行挑選(並在可能的情況下優先使用目前的 provider)。/model status會顯示詳細檢視,包括已設定的 provider 端點 (baseUrl) 和 API 模式 (api)(如果有的話)。
Debug 覆蓋設定
Section titled “Debug 覆蓋設定”/debug 讓你設定**僅限執行時(runtime-only)**的設定覆蓋(存在記憶體中,而非硬碟)。這僅限擁有者(Owner)使用。預設為停用;你可以透過 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 更新
Section titled “Config 更新”/config 會直接寫入你的磁碟設定檔 (openclaw.json)。這項功能僅限 Owner 使用。預設情況下是停用的,你可以透過 commands.config: true 來開啟它。
範例:
/config show/config show messages.responsePrefix/config get messages.responsePrefix/config set messages.responsePrefix="[openclaw]"/config unset messages.responsePrefix注意:
- 設定在寫入前會經過驗證,無效的變更會被拒絕。
- 透過
/config進行的更新在重啟後依然會保留。
MCP 更新
Section titled “MCP 更新”/mcp 會在 mcp.servers 下寫入由 OpenClaw 管理的 MCP server 定義。這同樣是 Owner 限定功能。預設為停用,你可以透過 commands.mcp: true 開啟。
範例:
/mcp show/mcp show context7/mcp set context7={"command":"uvx","args":["context7-mcp"]}/mcp unset context7注意:
/mcp會將設定儲存在 OpenClaw 設定中,而不是 Pi 擁有的專案設定。- Runtime adapters 會決定哪些 transports 實際上是可以執行的。
Plugin 更新
Section titled “Plugin 更新”/plugins 讓維運人員可以檢查已發現的 Plugin 並在設定中切換啟用狀態。唯讀流程可以使用 /plugin 作為別名。此功能預設為停用;請透過 commands.plugins: true 來啟用。
範例:
/plugins/plugins list/plugin show context7/plugins enable context7/plugins disable context7注意事項:
/plugins list和/plugins show會針對目前的 Workspace 以及磁碟上的設定進行實際的 Plugin 掃描。/plugins enable|disable僅更新 Plugin 設定;它不會安裝或卸載 Plugin。- 在變更啟用/停用設定後,請重啟 Gateway 以套用變更。
- Text commands 在一般的對話 Session 中執行(私訊共享
main,群組則有各自的 Session)。 - Native commands 使用獨立的 Session:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(前綴可透過channels.slack.slashCommand.sessionPrefix設定) - Telegram:
telegram:slash:<userId>(透過CommandTargetSessionKey指向對話 Session)
- Discord:
/stop會針對目前的對話 Session,以便中止當前的執行。- Slack:
channels.slack.slashCommand仍然支援單一的/openclaw風格指令。如果你啟用了commands.native,你必須為每個內建指令建立一個 Slack Slash Command(名稱與/help相同)。Slack 的指令參數選單會以暫時性的 Block Kit 按鈕形式傳送。- Slack Native 例外:請註冊
/agentstatus(而非/status),因為 Slack 保留了/status。在 Slack 訊息中輸入文字/status仍然有效。
- Slack Native 例外:請註冊
BTW 側邊提問
Section titled “BTW 側邊提問”/btw 是針對目前 Session 進行快速側邊提問的功能。
與一般對話不同:
- 它使用目前的 Session 作為背景上下文,
- 它作為一個獨立的、不帶 Tool 的單次調用執行,
- 它不會改變未來的 Session 上下文,
- 它不會被寫入對話歷史紀錄,
- 它會以即時側邊結果的形式呈現,而不是一般的 Assistant 訊息。
這讓 /btw 在你想要於主任務進行時獲取臨時說明時非常有用。
範例:
/btw what are we doing right now?參閱 BTW Side Questions 了解完整行為與 Client UX 細節。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。