AI 自動化

一點就閃退?openclaw doctor 揪出閘道未啟動、模型鑑權與六步自救 runbook(2026 Mac)

openclaw doctor 指令在 Mac mini 上排查 OpenClaw 閘道連線與閃退

你雙擊捷徑——或在 Terminal 輸入 openclaw——視窗就消失了。 沒有堆疊追蹤、沒有友善對話框,只有沉默。同時 Slack 仍顯示「gateway not active」,模型選擇器轉個不停,昨天你按掉的權限彈窗又以紅字回來。這不是「你不會用電腦」;而是環境漂移:Node 版本不對、使用者不對、設定檔不對,或閘道行程從未在 launchd 下存活。

openclaw doctor 是 OpenClaw 官方自我診斷指令。 它輸出結構化檢查清單——CLI 是否在 PATH、設定是否可讀、閘道是否可達、auth profile、磁碟餘量——讓你一次修一行,而不是照部落格重裝。本教學是新手救援路線:doctor 查什麼、如何解讀黃行與紅行、可貼進工單的六步 runbook,以及兩則新手常見錯誤的故障排查食譜。若在租用 Mac 上完成 onboard 後需要 SLA 級驗收,請讀另文 上線後 doctor 矩陣;本文對應的是「今天又閃退了。」

首次提及時請搭配 OpenClaw 第零小時安裝合約(Node 22+ 底線)、限流與預算報警(避免重試偽裝成當機),以及本地模型取代雲端金鑰時的 OpenClaw + Ollama 耦合。上游安裝參考:OpenClaw 安裝腳本閘道設定範例。硬體背景:Apple Mac mini 技術規格

披露說明:KvmZone 僅在租用 Mac 能給新手乾淨 SSH shell 執行 openclaw doctor 時提及。多數步驟在你已有的 Mac 上同樣適用。

為何 doctor 勝過從頭重裝

新手描述的症狀doctor 通常會浮現
啟動時 Terminal「閃退」shell profile 錯誤;非登入 shell 找不到 CLI PATH
UI 顯示「gateway not active」daemon 未執行;埠衝突;plist 使用者過期
模型永遠連不上缺少 API key 環境變數;auth profile 指向錯誤檔案
macOS 更新後權限錯誤TCC 提示被擋;doctor 標記 Keychain / 完整磁碟存取缺口
可引用規則:rm -rf ~/.openclaw 之前先跑 openclaw doctor。未修正 PATH 或 launchd 使用者不一致就重裝,十分鐘內會重現相同當機。

若 npm registry 逾時或出口代理過濾,OpenClaw 看起來像壞掉,而真因只是 registry 連線失敗——doctor 的 network/TLS 行是第一份證據。doctor 本身不需要香港或新加坡租用主機。

架構:openclaw doctor 檢查什麼

Terminal / launchd → openclaw CLI → doctor 模組 → 讀取 ~/.openclaw/* → 探測閘道 HTTP → 輸出 PASS/WARN/FAIL 行

檔案與角色

元件路徑 / 指令用途
即時設定~/.openclaw/openclaw.json閘道埠、auth profile、模型路由
日誌~/.openclaw/logs/(典型)doctor 全綠後的當機證據
CLI 二進位which openclaw必須與 launchd 使用的一致
Node 執行環境node -v → 2026 年底線 v22.xNode 不一致是 #1「瞬間退出」原因
閘道探測doctor 後執行 openclaw status確認行程,而非僅設定語法
非登入一致性sudo -u <daemon-user> openclaw doctor抓出「只在 Terminal 能用」

Doctor 不能取代負載測試或 webhook POP 規劃——那是 上線後矩陣 的範圍。它告訴你現在是否還不能怪模型廠商。

決策矩陣:當機類型 → 第一個指令

若你看到…先執行doctor 對 PATH 顯示 WARN合併策略
視窗 <2 秒內關閉在 Terminal.app 執行 openclaw doctor修正 ~/.zprofile / ~/.zshrc;用 nvm 或 Homebrew 只留一套 NodePATH 未綠前不要開閘道
UI:gateway not activeopenclaw doctor + openclaw status重載 launchd plist;對齊 UserNamestatus 未 OK 90 秒前阻擋 demo
模型聊天 401/403doctor auth 區段在 plist EnvironmentVariables 匯出金鑰輪替金鑰;重跑 doctor
掛住 >60 秒後退出doctor + df -h /磁碟可用 < 18GB → 清理 npm/skills加新 skill 前先擴容

建議路徑: 若 shell 閃退,先互動式跑 doctor——不要透過 GUI 捷徑除錯。若 doctor 已綠但選單列 agent 仍顯示 inactive,launchd 使用者與埠,不要先動 LLM API 金鑰。

六步 openclaw doctor 救援 runbook

Step 1 — 開真正的 shell(不要雙擊別名)

# macOS:使用 Terminal.app 或 iTerm — 記下使用者名稱
whoami
echo $SHELL

保存輸出;跳過登入 shell 的捷徑會藏住 PATH 修正。

Step 2 — 確認 Node 22+ 與 CLI 在 PATH

node -v
which openclaw
openclaw --version

通過: node 回報 v22 或更新;which openclaw 回傳 /opt/homebrew 下或你文件化的全域 prefix 的單一路徑。

Step 3 — 執行 doctor 並保存 transcript

openclaw doctor 2>&1 | tee ~/openclaw-doctor-$(date +%Y%m%d).log

把此檔附到任何支援工單。每次修正後重跑——不要堆疊猜測。

Step 4 — 修第一個 FAIL(通常是 PATH 或設定 JSON)

# 範例:重啟前驗證 JSON
python3 -m json.tool < ~/.openclaw/openclaw.json > /dev/null && echo "JSON OK"

若 JSON 失敗,從備份還原:

cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak.$(date +%Y%m%d)

Step 5 — 對齊 daemon 使用者(gateway inactive 修正)

# 查看 launchd 使用的使用者(label 依安裝而異)
launchctl print system/com.openclaw.gateway 2>/dev/null | head -20
# 若與 Step 1 不同,以該使用者執行 doctor
sudo -u _openclaw openclaw doctor 2>&1 | tee ~/openclaw-doctor-daemon.log

通過: 互動式與 daemon transcript 一致,或每個差異都有文件。

Step 6 — 重啟閘道並驗證 status

openclaw gateway restart   # 或依安裝文件用 launchctl kickstart
sleep 5
openclaw status
openclaw doctor

通過: status 顯示監聽埠;doctor 無未解釋的 FAIL 行。然後——且僅然後——重試 agent 或捷徑。

僅 SSH 的租用主機,請用 遠端 Mac SSH 流程,除非文件化的 GUI gate 要求像素工具。

故障排查

錯誤模式:zsh: command not found: openclaw(或視窗瞬間關閉)

症狀: 腳本或 .app 包裝在 UI 出現前退出;doctor 從未執行。

修正:

echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zprofile
source ~/.zprofile
npm install -g openclaw@latest
openclaw doctor

launchd plist 的 EnvironmentVariables 對齊相同 PATH(見 第零小時合約)。

錯誤模式:gateway not active / ECONNREFUSED 127.0.0.1

症狀: CLI 存在;UI 或 openclaw status 無法連到本機閘道。

修正:

lsof -iTCP -sTCP:LISTEN | grep -i openclaw
openclaw doctor
openclaw gateway restart

若埠被其他使用者佔用,停止孤兒行程或變更 ~/.openclaw/openclaw.jsongateway.port,然後重跑 doctor。閘道穩定後設定 限流——重試風暴感覺像當機。

FAQ

openclaw doctor 會刪除我的 agent 或 skill 嗎?+
不會。Doctor 是唯讀診斷加上建議修正。它可能要求你編輯 ~/.openclaw/openclaw.json 或釋放磁碟,但不會清空 ~/.openclaw,除非你另外執行解除安裝指令。
為何 Terminal 通過但 cron/launchd 失敗?+
非登入 shell 載入不同的 profile 檔。修正方式是把 PATH 與 API 金鑰匯出複製到 plist,或使用 launchctl config user path——Step 5 有說明。
「gateway not active」一定是網路問題嗎?+
通常是本機:daemon 停止、埠錯誤或 macOS 使用者不對。只有在 doctor 與 openclaw status 都綠之後才追 CDN/區域;webhook 地理見 上線後 POP 矩陣
新手該多久跑一次 doctor?+
每次 macOS 更新、OpenClaw 升級或神秘當機之後——以及在向隊友 demo 前,以 daemon 使用者跑一次。主機健康時每次 不到 90 秒
在東京或首爾租用的 Apple Silicon Mac mini 上能用 doctor 嗎?+
可以。Doctor 是同一套 CLI;區域只影響之後的 webhook 延遲。東京/首爾節點在 APAC 回呼來源時有幫助——可選,非 doctor 必要條件。

僅在需要乾淨 SSH 實驗環境時再 Compare 地域

多數 doctor 步驟在你已有的 Mac 上即可完成。若需租用機做 daemon 使用者對照,可在定價頁 Compare 六地域 Mac mini M4,並依 webhook 入口選節點。