2026-04-21:無頭租賃雲端 Mac 上的 OpenClaw 子代理與頻道綁定疑難排解
當 Discord 討論串不再抵達 子代理,或 Telegram 佇列靜默而閘道仍監聽 127.0.0.1:18789,你面對的是綁定 + 工作階段問題,而非模型中斷。租賃的 Apple Silicon Mac 若只暴露 SSH,無法靠 GUI 點選修復對照。本 2026-04-21 手冊依序執行 openclaw doctor、頻道探測、工作階段目錄檢查、受控閘道重啟,並串聯 健康探測、nginx 入口、閘道升級/復原,讓 香港 / 日本 / 韓國 / 新加坡 / 美國 團隊共享同一復原敘事;並與聚焦套件配置的 Skills 與 ClawHub 釘選 區分職責。
排錯前先建立時間軸:最近是否升級 npm 次版本?是否部署了新的 webhook 路徑?是否多環境共用同一狀態目錄?把 semver、Git SHA、設定 diff 寫進工單,可顯著縮短往返。
值得分類的症狀模式
| 現象 | 可能層級 | 第一步 |
|---|---|---|
| 閘道健康但頻道無聲 | 權杖、webhook 或配對 | 頻道狀態探測 + 配對清單 |
| 子代理啟動錯誤提及 sessions | 檔案系統路徑驗證 | 檢查 sessions 目錄權限與設定 |
| npm 升級後反覆抖動 | 全域安裝與執行中程序不一致 | 停止閘道,比較 openclaw --version 與執行中二進位 |
doctor、狀態與日誌關聯
從 openclaw doctor 開始,將 stdout 送入日誌管線。對照 重複 LaunchAgent 指南——重複安裝而不卸載 plist 會堆疊監聽。
openclaw doctor 2>&1 | tee /tmp/openclaw-doctor-$CI_BUILD_ID.log
頻道綁定與提及門檻
確認 openclaw.json(或後續格式)把正確的 頻道 ID 對應到 代理 ID。提及門檻(requireMention)會在營運期待「隱式訂閱」時悄悄丟流量。公網入口請在 nginx 終止 TLS 並設定保守速率限制。
工作階段路徑與子代理儲存
上游版本收緊驗證:工作階段檔必須位於設定的 sessions 根 之下。升級後若日誌報路徑錯誤,先 diff 設定與發行說明,再依 金鑰與 launchd 調整 OPENCLAW_STATE_DIR 或等價變數。
避免驚群的閘道重啟
- 暫停入口 — 上游回傳 503 並附
Retry-After。 - 停止 閘道(CLI 或文件中的
launchctl)。 - 啟動,待本機健康檢查通過後再對外開放。
Nginx、健康檢查與區域切換
本機 curl 通過後,再啟用 nginx 並觀察錯誤率。若某區域 Mac 不健康,將自動化切到 定價 頁列出的第二節點。
相關手冊
網狀存取見 Tailscale 閘道;容器化與原生 npm 對照見 Docker 與本機 npm。結構化日誌與 正式環境日誌 保持一致。
常見問題:雲端 Mac 上的子代理
| 問題 | 回答 |
|---|---|
| 子代理應共用同一閘道使用者嗎? | 較穩妥是按環境拆分狀態目錄——即便同機也避免工作階段串話。 |
| 配對核准能全自動嗎? | 僅在組織風險承受度內;記錄誰擁有聊天橋接的裝置核准。 |
| 事故工單應包含什麼? | 閘道日誌與頻道供應商主控台互證;工單寫明 semver + Git SHA。 |
結論:把頻道綁定當成防火牆規則——明確 ID、明確路徑、明確重啟——並在每次碰觸 npm 全域套件時準備好復原 tarball。