快速解答,加上針對真實環境設定(本機開發、VPS、多代理、OAuth/API 金鑰、模型容錯移轉)的深入疑難排解。執行階段診斷請參閱疑難排解。完整設定參考請參閱設定。Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
如果發生故障,前 60 秒先做這些
-
快速狀態(第一項檢查)
快速本機摘要:作業系統 + 更新、gateway/服務可達性、代理/工作階段、提供者設定 + 執行階段問題(當 gateway 可達時)。
-
可貼上的報告(可安全分享)
唯讀診斷,包含日誌尾端(權杖已遮蔽)。
-
Daemon + 連接埠狀態
顯示 supervisor 執行階段與 RPC 可達性、探測目標 URL,以及服務可能使用的設定。
-
深度探測
執行即時 Gateway 健康探測,支援時也包含頻道探測 (需要可達的 Gateway)。請參閱健康狀態。
-
追蹤最新日誌
如果 RPC 無法使用,請改用:檔案日誌與服務日誌是分開的;請參閱日誌記錄與疑難排解。
-
執行 doctor(修復)
修復/遷移設定與狀態,並執行健康檢查。請參閱Doctor。
-
Gateway 快照
向正在執行的 Gateway 要求完整快照(僅限 WS)。請參閱健康狀態。
快速開始與首次執行設定
首次執行的問答 — 安裝、onboard、驗證路由、訂閱、初始失敗 — 位於首次執行 FAQ。OpenClaw 是什麼?
What is OpenClaw, in one paragraph?
What is OpenClaw, in one paragraph?
Value proposition
Value proposition
- 你的裝置,你的資料: 在你想要的任何地方執行 Gateway(Mac、Linux、VPS),並將 工作區 + 工作階段歷史保留在本機。
- 真實頻道,不是網頁沙盒: WhatsApp/Telegram/Slack/Discord/Signal/iMessage/等等, 加上支援平台上的行動語音和 Canvas。
- 模型無關: 使用 Anthropic、OpenAI、MiniMax、OpenRouter 等,並可針對每個代理設定路由 與容錯移轉。
- 僅限本機選項: 執行本機模型,因此如果你願意,所有資料都可以留在你的裝置上。
- 多代理路由: 依頻道、帳戶或任務分離代理,每個代理都有自己的 工作區和預設值。
- 開源且可改造: 可以檢查、擴充並自行託管,不受供應商鎖定。
I just set it up - what should I do first?
I just set it up - what should I do first?
- 建立網站(WordPress、Shopify,或簡單的靜態網站)。
- 製作行動應用程式原型(大綱、畫面、API 規劃)。
- 整理檔案和資料夾(清理、命名、標記)。
- 連接 Gmail 並自動化摘要或後續追蹤。
What are the top five everyday use cases for OpenClaw?
What are the top five everyday use cases for OpenClaw?
- 個人簡報: 摘要你關心的收件匣、行事曆和新聞。
- 研究與撰寫: 快速研究、摘要,以及電子郵件或文件的初稿。
- 提醒與後續追蹤: 由 Cron 或 Heartbeat 驅動的提醒和檢查清單。
- 瀏覽器自動化: 填寫表單、收集資料,以及重複執行網頁任務。
- 跨裝置協調: 從手機送出任務,讓 Gateway 在伺服器上執行,並在聊天中取回結果。
Can OpenClaw help with lead gen, outreach, ads, and blogs for a SaaS?
Can OpenClaw help with lead gen, outreach, ads, and blogs for a SaaS?
What are the advantages vs Claude Code for web development?
What are the advantages vs Claude Code for web development?
- 跨工作階段的持久記憶 + 工作區
- 多平台存取(WhatsApp、Telegram、TUI、WebChat)
- 工具協調(瀏覽器、檔案、排程、hooks)
- 常駐 Gateway(在 VPS 上執行,從任何地方互動)
- 用於本機瀏覽器/螢幕/相機/exec 的 Node
Skills 與自動化
How do I customize skills without keeping the repo dirty?
How do I customize skills without keeping the repo dirty?
~/.openclaw/skills/<name>/SKILL.md(或透過 ~/.openclaw/openclaw.json 中的 skills.load.extraDirs 加入資料夾)。優先順序是 <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → 隨附項目 → skills.load.extraDirs,因此受管理的覆寫仍會勝過隨附的 Skills,而不必碰 git。如果你需要全域安裝該 Skill,但只讓部分代理看見,請將共用副本放在 ~/.openclaw/skills,並用 agents.defaults.skills 和 agents.list[].skills 控制可見性。只有值得上游收錄的編輯才應放在 repo 中並以 PR 送出。Can I load skills from a custom folder?
Can I load skills from a custom folder?
~/.openclaw/openclaw.json 中的 skills.load.extraDirs 加入額外目錄(最低優先順序)。預設優先順序是 <workspace>/skills → <workspace>/.agents/skills → ~/.agents/skills → ~/.openclaw/skills → 隨附項目 → skills.load.extraDirs。clawhub 預設會安裝到 ./skills,OpenClaw 會在下一個工作階段將其視為 <workspace>/skills。如果該 Skill 只應對特定代理可見,請搭配 agents.defaults.skills 或 agents.list[].skills。How can I use different models for different tasks?
How can I use different models for different tasks?
The bot freezes while doing heavy work. How do I offload that?
The bot freezes while doing heavy work. How do I offload that?
How do thread-bound subagent sessions work on Discord?
How do thread-bound subagent sessions work on Discord?
- 使用
sessions_spawn並搭配thread: true產生(也可選用mode: "session"以便持久後續追蹤)。 - 或使用
/focus <target>手動繫結。 - 使用
/agents檢查繫結狀態。 - 使用
/session idle <duration|off>和/session max-age <duration|off>控制自動取消聚焦。 - 使用
/unfocus分離討論串。
- 全域預設值:
session.threadBindings.enabled、session.threadBindings.idleHours、session.threadBindings.maxAgeHours。 - Discord 覆寫:
channels.discord.threadBindings.enabled、channels.discord.threadBindings.idleHours、channels.discord.threadBindings.maxAgeHours。 - 產生時自動繫結:
channels.discord.threadBindings.spawnSessions預設為true;設為false可停用討論串繫結的工作階段產生。
A subagent finished, but the completion update went to the wrong place or never posted. What should I check?
A subagent finished, but the completion update went to the wrong place or never posted. What should I check?
- 完成模式的子代理傳遞,會優先使用任何已繫結的討論串或對話路由(如果存在)。
- 如果完成來源只帶有頻道,OpenClaw 會退回使用請求者工作階段中儲存的路由(
lastChannel/lastTo/lastAccountId),因此直接傳遞仍可能成功。 - 如果既沒有已繫結路由,也沒有可用的已儲存路由,直接傳遞可能失敗,結果會改為退回到排隊的工作階段傳遞,而不是立即張貼到聊天。
- 無效或過期的目標仍可能強制退回佇列,或導致最終傳遞失敗。
- 如果子項最後可見的助理回覆是精確的靜默權杖
NO_REPLY/no_reply,或精確為ANNOUNCE_SKIP,OpenClaw 會刻意抑制公告,而不是張貼較早的過期進度。 - 如果子項在只有工具呼叫之後逾時,公告可能會將其摺疊成簡短的部分進度摘要,而不是重播原始工具輸出。
Cron or reminders do not fire. What should I check?
Cron or reminders do not fire. What should I check?
Cron 已觸發,但沒有傳送任何內容到頻道。為什麼?
Cron 已觸發,但沒有傳送任何內容到頻道。為什麼?
--no-deliver/delivery.mode: "none"表示不預期有執行器備援傳送。- 缺少或無效的公告目標(
channel/to)表示執行器略過了對外傳送。 - 頻道驗證失敗(
unauthorized、Forbidden)表示執行器嘗試傳送,但認證資料阻擋了它。 - 靜默的隔離結果(只有
NO_REPLY/no_reply)會被視為有意不可傳送,因此執行器也會抑制佇列中的備援傳送。
message
工具直接傳送。--announce 只控制執行器的
備援路徑,用於代理程式尚未傳送的最終文字。除錯:為什麼隔離 Cron 執行會切換模型或重試一次?
為什麼隔離 Cron 執行會切換模型或重試一次?
如何在 Linux 上安裝 Skills?
如何在 Linux 上安裝 Skills?
openclaw skills 指令,或將 Skills 放入你的工作區。macOS Skills UI 在 Linux 上不可用。
可在 https://clawhub.ai 瀏覽 Skills。openclaw skills install 會寫入作用中工作區的 skills/
目錄。只有在你想發布或同步自己的 Skills 時,才需要安裝獨立的 clawhub CLI。
若要在多個代理程式之間共用安裝,請將 Skill 放在
~/.openclaw/skills 底下,並在你想限制哪些代理程式可看見它時使用
agents.defaults.skills 或 agents.list[].skills。OpenClaw 可以按排程或持續在背景執行任務嗎?
OpenClaw 可以按排程或持續在背景執行任務嗎?
我可以從 Linux 執行僅限 Apple macOS 的 Skills 嗎?
我可以從 Linux 執行僅限 Apple macOS 的 Skills 嗎?
metadata.openclaw.os 加上必要二進位檔的限制,而且 Skills 只有在 Gateway 主機上符合資格時,才會出現在系統提示中。在 Linux 上,除非你覆寫限制,否則僅限 darwin 的 Skills(例如 apple-notes、apple-reminders、things-mac)不會載入。你有三種受支援的模式:選項 A - 在 Mac 上執行 Gateway(最簡單)。
在 macOS 二進位檔存在的地方執行 Gateway,然後從 Linux 以遠端模式或透過 Tailscale 連線。由於 Gateway 主機是 macOS,Skills 會正常載入。選項 B - 使用 macOS Node(不需 SSH)。
在 Linux 上執行 Gateway,配對一個 macOS Node(選單列應用程式),並在 Mac 上將 Node 執行指令設為「一律詢問」或「一律允許」。當必要二進位檔存在於 Node 上時,OpenClaw 可以將僅限 macOS 的 Skills 視為符合資格。代理程式會透過 nodes 工具執行這些 Skills。如果你選擇「一律詢問」,在提示中核准「一律允許」會將該指令加入允許清單。選項 C - 透過 SSH 代理 macOS 二進位檔(進階)。
將 Gateway 保留在 Linux 上,但讓必要的 CLI 二進位檔解析為會在 Mac 上執行的 SSH 包裝器。接著覆寫 Skill 以允許 Linux,讓它維持符合資格。-
為該二進位檔建立 SSH 包裝器(範例:Apple Notes 的
memo): -
將包裝器放到 Linux 主機的
PATH上(例如~/bin/memo)。 -
覆寫 Skill 中繼資料(工作區或
~/.openclaw/skills)以允許 Linux: - 啟動新的工作階段,讓 Skills 快照重新整理。
你們有 Notion 或 HeyGen 整合嗎?
你們有 Notion 或 HeyGen 整合嗎?
- 自訂 Skill / Plugin: 最適合可靠的 API 存取(Notion/HeyGen 都有 API)。
- 瀏覽器自動化: 不需要程式碼也能運作,但較慢且較脆弱。
- 每位客戶一個 Notion 頁面(情境 + 偏好 + 進行中的工作)。
- 要求代理程式在工作階段開始時擷取該頁面。
skills/ 目錄。若要在代理程式之間共用 Skills,請將它們放在 ~/.openclaw/skills/<name>/SKILL.md。如果只有部分代理程式應該看見共用安裝,請設定 agents.defaults.skills 或 agents.list[].skills。某些 Skills 預期透過 Homebrew 安裝二進位檔;在 Linux 上這表示 Linuxbrew(請參閱上方的 Homebrew Linux 常見問題項目)。請參閱 Skills、Skills 設定 和 ClawHub。如何搭配 OpenClaw 使用我現有已登入的 Chrome?
如何搭配 OpenClaw 使用我現有已登入的 Chrome?
user 瀏覽器設定檔,它會透過 Chrome DevTools MCP 連接:existing-session / user 的目前限制:- 動作以 ref 驅動,而不是以 CSS selector 驅動
- 上傳需要
ref/inputRef,且目前一次支援一個檔案 responsebody、PDF 匯出、下載攔截和批次動作仍需要受管理的瀏覽器或原始 CDP 設定檔
沙箱與記憶體
Docker 感覺受限 - 如何啟用完整功能?
Docker 感覺受限 - 如何啟用完整功能?
node 使用者執行,因此不
包含系統套件、Homebrew 或 bundled browsers。若要使用更完整的設定:- 使用
OPENCLAW_HOME_VOLUME保留/home/node,讓快取能持續存在。 - 使用
OPENCLAW_DOCKER_APT_PACKAGES將系統相依項目烘焙進映像檔。 - 透過隨附 CLI 安裝 Playwright 瀏覽器:
node /app/node_modules/playwright-core/cli.js install chromium - 設定
PLAYWRIGHT_BROWSERS_PATH,並確保該路徑會被保留。
我可以用一個代理程式讓私訊保持個人化,但讓群組公開/沙箱化嗎?
我可以用一個代理程式讓私訊保持個人化,但讓群組公開/沙箱化嗎?
agents.defaults.sandbox.mode: "non-main",讓群組/頻道工作階段(非主要鍵)在已設定的沙箱後端中執行,而主要私訊工作階段保持在主機上。如果你沒有選擇後端,Docker 是預設後端。然後透過 tools.sandbox.tools 限制沙箱工作階段中可用的工具。設定逐步說明 + 範例設定:群組:個人私訊 + 公開群組關鍵設定參考:Gateway 設定如何將主機資料夾繫結到沙箱?
如何將主機資料夾繫結到沙箱?
記憶體如何運作?
記憶體如何運作?
memory/YYYY-MM-DD.md中的每日筆記MEMORY.md中經整理的長期筆記(僅主要/私人工作階段)
記憶體一直忘記事情。如何讓它記住?
記憶體一直忘記事情。如何讓它記住?
記憶體會永久保留嗎?有哪些限制?
記憶體會永久保留嗎?有哪些限制?
語意記憶搜尋需要 OpenAI API key 嗎?
語意記憶搜尋需要 OpenAI API key 嗎?
OPENAI_API_KEY 或 models.providers.openai.apiKey)。如果你沒有明確設定提供者,OpenClaw 會在可以解析 API key 時自動選擇提供者
(auth profiles、models.providers.*.apiKey 或環境變數)。
如果能解析 OpenAI key,會優先使用 OpenAI;否則如果能解析 Gemini key,
則使用 Gemini,接著是 Voyage,再來是 Mistral。如果沒有可用的遠端 key,
記憶搜尋會保持停用,直到你完成設定。如果你已設定且存在本機模型路徑,
OpenClaw 會優先使用 local。明確設定
memorySearch.provider = "ollama" 時,支援 Ollama。如果你偏好維持本機模式,請設定 memorySearch.provider = "local"(並可選擇性設定
memorySearch.fallback = "none")。如果你想使用 Gemini embeddings,請設定
memorySearch.provider = "gemini" 並提供 GEMINI_API_KEY(或
memorySearch.remote.apiKey)。我們支援 OpenAI、Gemini、Voyage、Mistral、Ollama 或 local embedding
模型 - 設定細節請參閱記憶。磁碟上的位置
所有與 OpenClaw 搭配使用的資料都會儲存在本機嗎?
所有與 OpenClaw 搭配使用的資料都會儲存在本機嗎?
OpenClaw 將資料儲存在哪裡?
OpenClaw 將資料儲存在哪裡?
$OPENCLAW_STATE_DIR 底下(預設:~/.openclaw):| 路徑 | 用途 |
|---|---|
$OPENCLAW_STATE_DIR/openclaw.json | 主要設定(JSON5) |
$OPENCLAW_STATE_DIR/credentials/oauth.json | 舊版 OAuth 匯入(首次使用時複製到 auth profiles) |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.json | Auth profiles(OAuth、API keys,以及選用的 keyRef/tokenRef) |
$OPENCLAW_STATE_DIR/secrets.json | file SecretRef 提供者的選用檔案後端祕密 payload |
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.json | 舊版相容性檔案(靜態 api_key 項目已清除) |
$OPENCLAW_STATE_DIR/credentials/ | 提供者狀態(例如 whatsapp/<accountId>/creds.json) |
$OPENCLAW_STATE_DIR/agents/ | 每個代理程式的狀態(agentDir + sessions) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/ | 對話歷史與狀態(每個代理程式) |
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.json | 工作階段中繼資料(每個代理程式) |
~/.openclaw/agent/*(由 openclaw doctor 遷移)。你的工作區(AGENTS.md、記憶檔案、skills 等)是分開的,並透過 agents.defaults.workspace 設定(預設:~/.openclaw/workspace)。AGENTS.md / SOUL.md / USER.md / MEMORY.md 應該放在哪裡?
AGENTS.md / SOUL.md / USER.md / MEMORY.md 應該放在哪裡?
~/.openclaw。- 工作區(每個代理程式):
AGENTS.md、SOUL.md、IDENTITY.md、USER.md、MEMORY.md、memory/YYYY-MM-DD.md、選用的HEARTBEAT.md。 小寫根目錄memory.md僅作為舊版修復輸入;當兩個檔案同時存在時,openclaw doctor --fix可以將它合併進MEMORY.md。 - 狀態目錄(
~/.openclaw):設定、頻道/提供者狀態、auth profiles、sessions、記錄檔, 以及共用 skills(~/.openclaw/skills)。
~/.openclaw/workspace,可透過以下設定:建議的備份策略
建議的備份策略
~/.openclaw 底下的任何內容(憑證、工作階段、token 或加密祕密 payload)。
如果你需要完整還原,請分別備份工作區和狀態目錄
(請參閱上方的遷移問題)。文件:代理程式工作區。如何完全解除安裝 OpenClaw?
如何完全解除安裝 OpenClaw?
代理程式可以在工作區之外運作嗎?
代理程式可以在工作區之外運作嗎?
agents.defaults.sandbox 或每個代理程式的沙箱設定。如果你
想讓某個 repo 成為預設工作目錄,請將該代理程式的
workspace 指向 repo 根目錄。OpenClaw repo 只是原始碼;除非你刻意希望代理程式在其中工作,
否則請將工作區分開。範例(repo 作為預設 cwd):遠端模式:工作階段儲存區在哪裡?
遠端模式:工作階段儲存區在哪裡?
設定基礎
設定是什麼格式?在哪裡?
設定是什麼格式?在哪裡?
$OPENCLAW_CONFIG_PATH 讀取選用的 JSON5 設定(預設:~/.openclaw/openclaw.json):~/.openclaw/workspace)。我設定了 gateway.bind: "lan"(或 "tailnet"),現在沒有任何東西在監聽 / UI 顯示未授權
我設定了 gateway.bind: "lan"(或 "tailnet"),現在沒有任何東西在監聽 / UI 顯示未授權
- shared-secret auth:token 或 password
gateway.auth.mode: "trusted-proxy"位於正確設定的身分感知反向代理後方
gateway.remote.token/.password不會自行啟用本機 gateway auth。- 只有在未設定
gateway.auth.*時,本機呼叫路徑才可以使用gateway.remote.*作為 fallback。 - 對於 password auth,請改為設定
gateway.auth.mode: "password"加上gateway.auth.password(或OPENCLAW_GATEWAY_PASSWORD)。 - 如果
gateway.auth.token/gateway.auth.password是透過 SecretRef 明確設定且無法解析,解析會以關閉方式失敗(不會用遠端 fallback 掩蓋)。 - Shared-secret 控制 UI 設定會透過
connect.params.auth.token或connect.params.auth.password(儲存在 app/UI 設定中)進行驗證。Tailscale Serve 或trusted-proxy等帶有身分的模式則使用請求標頭。避免將 shared secrets 放在 URL 中。 - 使用
gateway.auth.mode: "trusted-proxy"時,同主機 loopback 反向代理需要明確設定gateway.auth.trustedProxy.allowLoopback = true,並在gateway.trustedProxies中加入 loopback 項目。
為什麼現在 localhost 上需要 token?
為什麼現在 localhost 上需要 token?
gateway.auth.token、gateway.auth.password、OPENCLAW_GATEWAY_TOKEN 或 OPENCLAW_GATEWAY_PASSWORD。這會阻止其他本機程序呼叫 Gateway。如果你偏好不同的 auth 路徑,可以明確選擇 password 模式(或對身分感知反向代理使用 trusted-proxy)。如果你真的想要開放 loopback,請在設定中明確設定 gateway.auth.mode: "none"。Doctor 可隨時為你產生 token:openclaw doctor --generate-gateway-token。變更設定後必須重新啟動嗎?
變更設定後必須重新啟動嗎?
gateway.reload.mode: "hybrid"(預設):hot-apply 安全變更,針對關鍵變更重新啟動- 也支援
hot、restart、off
如何停用有趣的 CLI 標語?
如何停用有趣的 CLI 標語?
cli.banner.taglineMode:off:隱藏標語文字,但保留橫幅標題/版本列。default:每次都使用All your chats, one OpenClaw.。random:輪替有趣/季節性標語(預設行為)。- 如果你完全不想顯示橫幅,請設定環境變數
OPENCLAW_HIDE_BANNER=1。
如何啟用網頁搜尋(和網頁擷取)?
如何啟用網頁搜尋(和網頁擷取)?
web_fetch 不需要 API key 即可運作。web_search 取決於你選擇的
提供者:- Brave、Exa、Firecrawl、Gemini、Grok、Kimi、MiniMax Search、Perplexity 和 Tavily 等 API 後端提供者需要其一般 API key 設定。
- Ollama Web Search 不需要 key,但它使用你設定的 Ollama 主機,且需要
ollama signin。 - DuckDuckGo 不需要 key,但它是非官方的 HTML 型整合。
- SearXNG 不需要 key/可自架;設定
SEARXNG_BASE_URL或plugins.entries.searxng.config.webSearch.baseUrl。
openclaw configure --section web 並選擇提供者。
環境替代方案:- Brave:
BRAVE_API_KEY - Exa:
EXA_API_KEY - Firecrawl:
FIRECRAWL_API_KEY - Gemini:
GEMINI_API_KEY - Grok:
XAI_API_KEY - Kimi:
KIMI_API_KEY或MOONSHOT_API_KEY - MiniMax Search:
MINIMAX_CODE_PLAN_KEY、MINIMAX_CODING_API_KEY或MINIMAX_API_KEY - Perplexity:
PERPLEXITY_API_KEY或OPENROUTER_API_KEY - SearXNG:
SEARXNG_BASE_URL - Tavily:
TAVILY_API_KEY
plugins.entries.<plugin>.config.webSearch.* 底下。
舊版 tools.web.search.* 供應商路徑仍會暫時載入以維持相容性,但不應用於新的設定。
Firecrawl 網頁擷取後援設定位於 plugins.entries.firecrawl.config.webFetch.* 底下。注意事項:- 如果你使用允許清單,請加入
web_search/web_fetch/x_search或group:web。 web_fetch預設為啟用(除非明確停用)。- 如果省略
tools.web.fetch.provider,OpenClaw 會從可用憑證中自動偵測第一個已就緒的擷取後援供應商。目前內建的供應商是 Firecrawl。 - 常駐程式會從
~/.openclaw/.env(或服務環境)讀取環境變數。
config.apply 清除了我的設定。我要如何復原並避免這種情況?
config.apply 清除了我的設定。我要如何復原並避免這種情況?
config.apply 會取代整份設定。如果你傳送部分物件,其他所有內容都會被移除。目前的 OpenClaw 會防止許多意外覆寫:- OpenClaw 擁有的設定寫入會在寫入前驗證完整的變更後設定。
- 無效或具破壞性的 OpenClaw 擁有寫入會被拒絕,並儲存為
openclaw.json.rejected.*。 - 如果直接編輯導致啟動或熱重新載入中斷,Gateway 會關閉失敗或略過重新載入;它不會重寫
openclaw.json。 openclaw doctor --fix負責修復,並可在將被拒絕的檔案儲存為openclaw.json.clobbered.*時還原最後已知良好的設定。
- 檢查
openclaw logs --follow是否有Invalid config at、Config write rejected:或config reload skipped (invalid config)。 - 檢查有效設定旁最新的
openclaw.json.clobbered.*或openclaw.json.rejected.*。 - 執行
openclaw config validate和openclaw doctor --fix。 - 只使用
openclaw config set或config.patch複製預期的鍵。 - 如果你沒有最後已知良好的設定或被拒絕的酬載,請從備份還原,或重新執行
openclaw doctor並重新設定頻道/模型。 - 如果這不是預期行為,請回報錯誤並附上你最後已知的設定或任何備份。
- 本機編碼代理通常可以從日誌或歷史紀錄重建可運作的設定。
- 小幅變更請使用
openclaw config set。 - 互動式編輯請使用
openclaw configure。 - 當你不確定確切路徑或欄位形狀時,請先使用
config.schema.lookup;它會傳回淺層結構描述節點,以及用於深入查看的直接子項摘要。 - 部分 RPC 編輯請使用
config.patch;config.apply只保留用於完整設定取代。 - 如果你在代理執行中使用僅限擁有者的
gateway工具,它仍會拒絕寫入tools.exec.ask/tools.exec.security(包括會正規化為相同受保護執行路徑的舊版tools.bash.*別名)。
我要如何跨裝置執行具備專門工作者的中央 Gateway?
我要如何跨裝置執行具備專門工作者的中央 Gateway?
OpenClaw 瀏覽器可以以 headless 執行嗎?
OpenClaw 瀏覽器可以以 headless 執行嗎?
false(有介面)。Headless 在某些網站上較可能觸發反機器人檢查。請參閱瀏覽器。Headless 使用相同的 Chromium 引擎,並適用於大多數自動化(表單、點擊、擷取、登入)。主要差異:- 沒有可見的瀏覽器視窗(如果需要視覺內容,請使用螢幕截圖)。
- 某些網站對 headless 模式中的自動化限制更嚴格(CAPTCHA、反機器人)。 例如,X/Twitter 經常封鎖 headless 工作階段。
我要如何使用 Brave 進行瀏覽器控制?
我要如何使用 Brave 進行瀏覽器控制?
browser.executablePath 設為你的 Brave 二進位檔(或任何 Chromium 架構的瀏覽器),然後重新啟動 Gateway。
請參閱瀏覽器中的完整設定範例。遠端 Gateway 和 Node
指令如何在 Telegram、gateway 和 Node 之間傳播?
指令如何在 Telegram、gateway 和 Node 之間傳播?
node.* → Node → Gateway → TelegramNode 不會看到傳入的供應商流量;它們只會接收 Node RPC 呼叫。如果 Gateway 託管在遠端,我的代理要如何存取我的電腦?
如果 Gateway 託管在遠端,我的代理要如何存取我的電腦?
node.* 工具(螢幕、相機、系統)。典型設定:- 在永遠開機的主機(VPS/家用伺服器)上執行 Gateway。
- 將 Gateway 主機和你的電腦放在同一個 tailnet 上。
- 確保 Gateway WS 可連線(tailnet 綁定或 SSH 通道)。
- 在本機開啟 macOS app,並以透過 SSH 遠端模式(或直接 tailnet)連線, 讓它可以註冊為 Node。
-
在 Gateway 上核准 Node:
system.run。只配對你信任的裝置,並查看安全性。文件:Node、Gateway 協定、macOS 遠端模式、安全性。Tailscale 已連線,但我收不到回覆。現在該怎麼辦?
Tailscale 已連線,但我收不到回覆。現在該怎麼辦?
兩個 OpenClaw 執行個體可以彼此交談嗎(本機 + VPS)?
兩個 OpenClaw 執行個體可以彼此交談嗎(本機 + VPS)?
openclaw agent --message ... --deliver 呼叫另一個 Gateway,目標是另一個 bot
監聽的聊天。如果其中一個 bot 位於遠端 VPS,請透過 SSH/Tailscale 將你的 CLI 指向該遠端 Gateway
(請參閱遠端存取)。範例模式(從可連到目標 Gateway 的電腦執行):多個代理需要個別 VPS 嗎?
多個代理需要個別 VPS 嗎?
相較於從 VPS 使用 SSH,在我的個人筆電上使用 Node 有好處嗎?
相較於從 VPS 使用 SSH,在我的個人筆電上使用 Node 有好處嗎?
- 不需要傳入 SSH。 Node 會向外連線到 Gateway WebSocket 並使用裝置配對。
- 更安全的執行控制。
system.run會受到該筆電上的 Node 允許清單/核准把關。 - 更多裝置工具。 除了
system.run,Node 還會公開canvas、camera和screen。 - 本機瀏覽器自動化。 將 Gateway 保留在 VPS 上,但透過筆電上的 Node 主機在本機執行 Chrome,或透過 Chrome MCP 附加到主機上的本機 Chrome。
Node 會執行 gateway 服務嗎?
Node 會執行 gateway 服務嗎?
gateway、discovery 和託管 Plugin 表面變更需要完整重新啟動。是否有 API / RPC 方式可以套用設定?
是否有 API / RPC 方式可以套用設定?
config.schema.lookup:在寫入前,檢查一個 config 子樹,以及其淺層 schema 節點、符合的 UI 提示和直接子項摘要config.get:擷取目前的快照 + hashconfig.patch:安全的局部更新(大多數 RPC 編輯的建議做法);可行時熱重新載入,必要時重新啟動config.apply:驗證 + 取代完整 config;可行時熱重新載入,必要時重新啟動- 僅限擁有者的
gateway執行階段工具仍會拒絕改寫tools.exec.ask/tools.exec.security;舊版tools.bash.*別名會正規化為相同的受保護 exec 路徑
首次安裝的最小合理 config
首次安裝的最小合理 config
如何在 VPS 上設定 Tailscale,並從我的 Mac 連線?
如何在 VPS 上設定 Tailscale,並從我的 Mac 連線?
-
在 VPS 上安裝 + 登入
-
在你的 Mac 上安裝 + 登入
- 使用 Tailscale app,並登入同一個 tailnet。
-
啟用 MagicDNS(建議)
- 在 Tailscale admin console 中啟用 MagicDNS,讓 VPS 有穩定名稱。
-
使用 tailnet hostname
- SSH:
ssh user@your-vps.tailnet-xxxx.ts.net - Gateway WS:
ws://your-vps.tailnet-xxxx.ts.net:18789
- SSH:
如何將 Mac node 連接到遠端 Gateway(Tailscale Serve)?
如何將 Mac node 連接到遠端 Gateway(Tailscale Serve)?
- 確認 VPS + Mac 位於同一個 tailnet。
- 在 Remote mode 使用 macOS app(SSH target 可以是 tailnet hostname)。 app 會 tunnel Gateway port,並以 node 身分連線。
-
在 gateway 上核准 node:
我應該在第二台筆電上安裝,還是只新增一個 node?
我應該在第二台筆電上安裝,還是只新增一個 node?
Env vars 與 .env 載入
OpenClaw 如何載入環境變數?
OpenClaw 如何載入環境變數?
- 目前工作目錄中的
.env - 來自
~/.openclaw/.env的全域 fallback.env(也就是$OPENCLAW_STATE_DIR/.env)
.env 檔案都不會覆寫既有的 env vars。你也可以在 config 中定義 inline env vars(只有在 process env 中缺少時才會套用):我透過 service 啟動 Gateway,但我的 env vars 消失了。現在該怎麼辦?
我透過 service 啟動 Gateway,但我的 env vars 消失了。現在該怎麼辦?
- 將缺少的 keys 放入
~/.openclaw/.env,如此即使 service 沒有繼承你的 shell env 也能被讀取。 - 啟用 shell import(選擇性便利功能):
OPENCLAW_LOAD_SHELL_ENV=1、OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000。我設定了 COPILOT_GITHUB_TOKEN,但 models status 顯示 "Shell env: off." 為什麼?
我設定了 COPILOT_GITHUB_TOKEN,但 models status 顯示 "Shell env: off." 為什麼?
openclaw models status 回報的是 shell env import 是否已啟用。“Shell env: off”
不 表示你的 env vars 缺失,這只表示 OpenClaw 不會自動載入
你的 login shell。如果 Gateway 以 service(launchd/systemd)執行,它不會繼承你的 shell
環境。請用以下其中一種方式修正:-
將 token 放入
~/.openclaw/.env: -
或啟用 shell import(
env.shellEnv.enabled: true)。 -
或將它加入你的 config
envblock(只有在缺少時才會套用)。
COPILOT_GITHUB_TOKEN(也包括 GH_TOKEN / GITHUB_TOKEN)讀取。
請參閱 /concepts/model-providers 和 /environment。Sessions 與多個聊天
如何開始新的對話?
如何開始新的對話?
/new 或 /reset 作為獨立訊息傳送。請參閱 Session management。如果我從不傳送 /new,sessions 會自動重設嗎?
如果我從不傳送 /new,sessions 會自動重設嗎?
session.idleMinutes 之後到期,但這 預設停用(預設為 0)。
將它設為正值即可啟用閒置到期。啟用後,閒置期間之後的 下一則
訊息會為該 chat key 啟動新的 session id。
這不會刪除 transcripts,只是啟動新的 session。有辦法建立一組 OpenClaw instances 團隊(一位 CEO 和許多 agents)嗎?
有辦法建立一組 OpenClaw instances 團隊(一位 CEO 和許多 agents)嗎?
為什麼 context 會在工作途中被截斷?如何避免?
為什麼 context 會在工作途中被截斷?如何避免?
- 請 bot 摘要目前狀態,並寫入檔案。
- 在長任務前使用
/compact,並在切換主題時使用/new。 - 將重要 context 保存在 workspace 中,並請 bot 讀回。
- 對長時間或平行工作使用 sub-agents,讓主聊天保持較小。
- 如果這種情況經常發生,請選擇 context window 較大的 model。
如何完全重設 OpenClaw 但保留安裝?
如何完全重設 OpenClaw 但保留安裝?
- 如果 onboarding 偵測到既有 config,也會提供 Reset。請參閱 Onboarding (CLI)。
- 如果你使用 profiles(
--profile/OPENCLAW_PROFILE),請重設每個 state dir(預設為~/.openclaw-<profile>)。 - Dev reset:
openclaw gateway --dev --reset(僅限 dev;會清除 dev config + credentials + sessions + workspace)。
我遇到 "context too large" 錯誤,該如何 reset 或 compact?
我遇到 "context too large" 錯誤,該如何 reset 或 compact?
-
Compact(保留對話,但摘要較早的 turns):
或使用
/compact <instructions>來引導摘要。 -
Reset(為同一個 chat key 建立新的 session ID):
- 啟用或調整 session pruning(
agents.defaults.contextPruning)以修剪舊 tool output。 - 使用 context window 較大的 model。
為什麼我看到 "LLM request rejected: messages.content.tool_use.input field required"?
為什麼我看到 "LLM request rejected: messages.content.tool_use.input field required"?
tool_use block,但缺少必要的
input。這通常表示 session history 已過時或毀損(常見於長 threads
或 tool/schema change 之後)。修正方式:使用 /new(獨立訊息)開始新的 session。為什麼我每 30 分鐘就收到 heartbeat 訊息?
為什麼我每 30 分鐘就收到 heartbeat 訊息?
HEARTBEAT.md 存在但實際上是空的(只有空白行和 markdown
headers,例如 # Heading),OpenClaw 會跳過 heartbeat run 以節省 API calls。
如果檔案缺失,heartbeat 仍會執行,並由 model 決定要做什麼。Per-agent overrides 使用 agents.list[].heartbeat。文件:Heartbeat。我需要將一個 "bot account" 加到 WhatsApp 群組嗎?
我需要將一個 "bot account" 加到 WhatsApp 群組嗎?
groupPolicy: "allowlist")。如果你希望只有 你 能觸發 group replies:如何取得 WhatsApp 群組的 JID?
如何取得 WhatsApp 群組的 JID?
為什麼 OpenClaw 不在群組中回覆?
為什麼 OpenClaw 不在群組中回覆?
- Mention gating 已開啟(預設)。你必須 @mention bot(或符合
mentionPatterns)。 - 你設定了
channels.whatsapp.groups,但沒有設定"*",且該群組未列入 allowlist。
群組/threads 會和 DMs 共用 context 嗎?
群組/threads 會和 DMs 共用 context 嗎?
我可以建立多少個工作區與代理?
我可以建立多少個工作區與代理?
- 磁碟成長: 工作階段與逐字記錄位於
~/.openclaw/agents/<agentId>/sessions/下。 - Token 成本: 更多代理代表更多並行模型使用量。
- 營運負擔: 每個代理各自的驗證設定檔、工作區與頻道路由。
- 每個代理保留一個作用中工作區(
agents.defaults.workspace)。 - 如果磁碟用量成長,請修剪舊工作階段(刪除 JSONL 或儲存項目)。
- 使用
openclaw doctor找出零散工作區與設定檔不相符的問題。
我可以同時執行多個機器人或聊天(Slack)嗎?該如何設定?
我可以同時執行多個機器人或聊天(Slack)嗎?該如何設定?
- 常駐 Gateway 主機(VPS/Mac mini)。
- 每個角色一個代理(繫結)。
- Slack 頻道繫結到這些代理。
- 需要時透過 Chrome MCP 或 Node 使用本機瀏覽器。
模型、故障轉移與驗證設定檔
模型問答(預設值、選擇、別名、切換、故障轉移、驗證設定檔) 位於模型常見問題。Gateway:連接埠、「已在執行」與遠端模式
Gateway 使用哪個連接埠?
Gateway 使用哪個連接埠?
gateway.port 控制 WebSocket + HTTP(控制 UI、hook 等)的單一多工連接埠。優先順序:為什麼 openclaw gateway status 顯示「Runtime: running」但「Connectivity probe: failed」?
為什麼 openclaw gateway status 顯示「Runtime: running」但「Connectivity probe: failed」?
openclaw gateway status,並信任這些行:Probe target:(探測實際使用的 URL)Listening:(連接埠上實際繫結的內容)Last gateway error:(程序仍在執行但連接埠未監聽時的常見根本原因)
為什麼 openclaw gateway status 顯示的「Config (cli)」與「Config (service)」不同?
為什麼 openclaw gateway status 顯示的「Config (cli)」與「Config (service)」不同?
--profile / OPENCLAW_STATE_DIR 不相符)。修正:--profile / 環境執行該命令。「another gateway instance is already listening」是什麼意思?
「another gateway instance is already listening」是什麼意思?
ws://127.0.0.1:18789),以強制執行執行階段鎖定。如果繫結因 EADDRINUSE 失敗,會擲出 GatewayLockError,表示另一個執行個體已在監聽。修正:停止另一個執行個體、釋放連接埠,或使用 openclaw gateway --port <port> 執行。如何以遠端模式執行 OpenClaw(用戶端連線到其他地方的 Gateway)?
如何以遠端模式執行 OpenClaw(用戶端連線到其他地方的 Gateway)?
gateway.mode: "remote",並指向遠端 WebSocket URL,可選擇搭配共享祕密遠端憑證:openclaw gateway只會在gateway.mode為local時啟動(或你傳入覆寫旗標)。- macOS app 會監看設定檔,並在這些值變更時即時切換模式。
gateway.remote.token/.password只是用戶端遠端憑證;它們本身不會啟用本機 gateway 驗證。
控制 UI 顯示「unauthorized」(或一直重新連線)。現在該怎麼辦?
控制 UI 顯示「unauthorized」(或一直重新連線)。現在該怎麼辦?
我設定了 gateway.bind tailnet,但無法繫結,也沒有任何東西在監聽
我設定了 gateway.bind tailnet,但無法繫結,也沒有任何東西在監聽
tailnet 繫結會從你的網路介面選擇 Tailscale IP(100.64.0.0/10)。如果該機器不在 Tailscale 上(或介面已關閉),就沒有可繫結的目標。修正:- 在該主機上啟動 Tailscale(讓它具有 100.x 位址),或
- 切換到
gateway.bind: "loopback"/"lan"。
tailnet 是明確設定。auto 會偏好 loopback;當你想要僅限 tailnet 的繫結時,請使用 gateway.bind: "tailnet"。我可以在同一台主機上執行多個 Gateway 嗎?
我可以在同一台主機上執行多個 Gateway 嗎?
OPENCLAW_CONFIG_PATH(每個執行個體的設定)OPENCLAW_STATE_DIR(每個執行個體的狀態)agents.defaults.workspace(工作區隔離)gateway.port(唯一連接埠)
- 每個執行個體使用
openclaw --profile <name> ...(自動建立~/.openclaw-<name>)。 - 在每個設定檔設定中設定唯一的
gateway.port(或手動執行時傳入--port)。 - 安裝每個設定檔專用服務:
openclaw --profile <name> gateway install。
ai.openclaw.<profile>;舊版 com.openclaw.*、openclaw-gateway-<profile>.service、OpenClaw Gateway (<profile>))。
完整指南:多個 gateway。「invalid handshake」/ 代碼 1008 是什麼意思?
「invalid handshake」/ 代碼 1008 是什麼意思?
connect frame。如果收到其他任何內容,就會以
代碼 1008(政策違規)關閉連線。常見原因:- 你在瀏覽器中開啟了 HTTP URL(
http://...),而不是使用 WS 用戶端。 - 你使用了錯誤的連接埠或路徑。
- Proxy 或隧道移除了驗證標頭,或送出了非 Gateway 要求。
- 使用 WS URL:
ws://<host>:18789(如果是 HTTPS 則用wss://...)。 - 不要在一般瀏覽器分頁中開啟 WS 連接埠。
- 如果已啟用驗證,請在
connectframe 中包含 token/password。
記錄與偵錯
記錄在哪裡?
記錄在哪裡?
logging.file 設定穩定路徑。檔案記錄層級由 logging.level 控制。主控台詳細程度由 --verbose 與 logging.consoleLevel 控制。最快的記錄追蹤:- macOS:
$OPENCLAW_STATE_DIR/logs/gateway.log與gateway.err.log(預設:~/.openclaw/logs/...;設定檔使用~/.openclaw-<profile>/logs/...) - Linux:
journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager - Windows:
schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST
如何啟動/停止/重新啟動 Gateway 服務?
如何啟動/停止/重新啟動 Gateway 服務?
我在 Windows 上關閉了終端機,該如何重新啟動 OpenClaw?
我在 Windows 上關閉了終端機,該如何重新啟動 OpenClaw?
Gateway 已啟動,但回覆從未送達。我該檢查什麼?
Gateway 已啟動,但回覆從未送達。我該檢查什麼?
"已中斷與 Gateway 的連線:沒有原因" - 現在怎麼辦?
"已中斷與 Gateway 的連線:沒有原因" - 現在怎麼辦?
Telegram setMyCommands 失敗。我該檢查什麼?
Telegram setMyCommands 失敗。我該檢查什麼?
BOT_COMMANDS_TOO_MUCH:Telegram 選單的項目太多。OpenClaw 已經會裁減到 Telegram 限制並以較少指令重試,但某些選單項目仍需要移除。請減少 plugin/skill/自訂指令,或者如果你不需要選單,請停用channels.telegram.commands.native。TypeError: fetch failed、Network request for 'setMyCommands' failed!,或類似網路錯誤:如果你在 VPS 上或位於 Proxy 後方,請確認允許對外 HTTPS,且 DNS 可解析api.telegram.org。
TUI 沒有顯示輸出。我該檢查什麼?
TUI 沒有顯示輸出。我該檢查什麼?
我要如何完全停止再啟動 Gateway?
我要如何完全停止再啟動 Gateway?
簡單說明:openclaw gateway restart 與 openclaw gateway
簡單說明:openclaw gateway restart 與 openclaw gateway
openclaw gateway restart:重新啟動背景服務(launchd/systemd)。openclaw gateway:在這個終端機工作階段中以前景方式執行 gateway。
openclaw gateway。發生失敗時取得更多詳細資訊的最快方式
發生失敗時取得更多詳細資訊的最快方式
--verbose 啟動 Gateway,以取得更多主控台細節。接著檢查日誌檔案中的頻道驗證、模型路由和 RPC 錯誤。媒體與附件
我的 Skill 產生了圖片/PDF,但沒有送出任何內容
我的 Skill 產生了圖片/PDF,但沒有送出任何內容
MEDIA:<path-or-url>(獨立成行)。請參閱 OpenClaw 助理設定 和 代理傳送。CLI 傳送:- 目標頻道支援對外媒體,且未被允許清單封鎖。
- 檔案在提供者的大小限制內(圖片會調整為最大 2048px)。
tools.fs.workspaceOnly=true會將本機路徑傳送限制在工作區、暫存/媒體儲存區,以及經沙盒驗證的檔案。tools.fs.workspaceOnly=false允許MEDIA:傳送代理已能讀取的主機本機檔案,但僅限媒體加上安全的文件類型(圖片、音訊、影片、PDF 和 Office 文件)。純文字和類似秘密的檔案仍會被封鎖。
安全性與存取控制
將 OpenClaw 暴露給傳入 DM 安全嗎?
將 OpenClaw 暴露給傳入 DM 安全嗎?
- 在支援 DM 的頻道上,預設行為是配對:
- 未知傳送者會收到配對碼;機器人不會處理他們的訊息。
- 使用以下指令核准:
openclaw pairing approve --channel <channel> [--account <id>] <code> - 待處理請求上限為每個頻道 3 個;如果沒有收到代碼,請檢查
openclaw pairing list --channel <channel> [--account <id>]。
- 公開開放 DM 需要明確選擇加入(
dmPolicy: "open"和允許清單"*")。
openclaw doctor 以顯示有風險的 DM 政策。提示注入只需要擔心公開機器人嗎?
提示注入只需要擔心公開機器人嗎?
- 使用唯讀或停用工具的「reader」代理來摘要不受信任的內容
- 對啟用工具的代理關閉
web_search/web_fetch/browser - 也將解碼後的檔案/文件文字視為不受信任:OpenResponses
input_file和媒體附件擷取都會將擷取出的文字包在 明確的外部內容邊界標記中,而不是傳遞原始檔案文字 - 使用沙盒和嚴格的工具允許清單
我的機器人應該有自己的電子郵件、GitHub 帳號或電話號碼嗎?
我的機器人應該有自己的電子郵件、GitHub 帳號或電話號碼嗎?
我可以讓它自主處理我的簡訊嗎?這安全嗎?
我可以讓它自主處理我的簡訊嗎?這安全嗎?
- 將 DM 保持在配對模式或嚴格的允許清單中。
- 如果你想讓它代表你傳送訊息,請使用獨立號碼或帳號。
- 讓它先草擬,然後在傳送前核准。
我可以使用較便宜的模型來處理個人助理任務嗎?
我可以使用較便宜的模型來處理個人助理任務嗎?
我在 Telegram 中執行 /start,但沒有收到配對碼
我在 Telegram 中執行 /start,但沒有收到配對碼
dmPolicy: "pairing" 已啟用時才會送出。單獨執行 /start 不會產生代碼。檢查待處理請求:dmPolicy: "open"。WhatsApp:它會傳訊息給我的聯絡人嗎?配對如何運作?
WhatsApp:它會傳訊息給我的聯絡人嗎?配對如何運作?
channels.whatsapp.selfChatMode。聊天指令、中止任務,以及「它不會停止」
我要如何阻止內部系統訊息顯示在聊天中?
我要如何阻止內部系統訊息顯示在聊天中?
我要如何停止/取消正在執行的任務?
我要如何停止/取消正在執行的任務?
/ 開頭作為獨立訊息傳送,但少數捷徑(例如 /status)也可供允許清單中的傳送者行內使用。我要如何從 Telegram 傳送 Discord 訊息?("跨情境訊息遭拒")
我要如何從 Telegram 傳送 Discord 訊息?("跨情境訊息遭拒")
為什麼感覺機器人會「忽略」快速連續的訊息?
為什麼感覺機器人會「忽略」快速連續的訊息?
/queue 變更模式:steer- 將所有待處理的引導排入目前執行中的下一個模型邊界queue- 舊版一次一個引導followup- 一次執行一則訊息collect- 批次收集訊息並回覆一次steer-backlog- 立即引導,然後處理積壓訊息interrupt- 中止目前執行並重新開始
steer。你可以為後續模式加入像是 debounce:0.5s cap:25 drop:summarize 的選項。請參閱命令佇列和Steering 佇列。其他
使用 API 金鑰時,Anthropic 的預設模型是什麼?
使用 API 金鑰時,Anthropic 的預設模型是什麼?
ANTHROPIC_API_KEY(或在驗證設定檔中儲存 Anthropic API 金鑰)會啟用驗證,但實際的預設模型會是你在 agents.defaults.model.primary 中設定的模型(例如 anthropic/claude-sonnet-4-6 或 anthropic/claude-opus-4-6)。如果你看到 No credentials found for profile "anthropic:default",這表示 Gateway 在執行中代理程式預期的 auth-profiles.json 中找不到 Anthropic 認證資訊。仍然卡住嗎?請到 Discord 詢問,或開啟 GitHub 討論。