gateway.mode=local,升級成雲上單一事實源 + 多臺工作機 gateway.mode=remote 指向同一 gateway.remote.url 與鑑權的可審計拓撲。本文寫清服務端與客戶端的職責邊界、最小遷移順序(哪些鍵改完必須重啟監督進程)、遠端模式下「進程仍在但 RPC 探針失敗」的診斷分叉(先把探針 URL 與 bind 對齊,再走頻道)、以及高配 M4 Pro 常駐與美東或新加坡等區域近源組合的注意點;並與站內 全天候常駐、升級與隧道、診斷梯子 三篇互鏈——本篇刻意少復讀命令流水線,而把 remote 拓撲的決策與排錯短路寫在前排。2026 年五條典型誤判:把 remote 當成「多裝幾個 CLI」而不是「單一控制面」
OpenClaw 的 Gateway 是控制面:通道、會話與工具路由都依賴它長期穩定在線。把 gateway.mode 切成 remote 的意義,是讓唯一的 Gateway 進程跑在具備固定出口、可寫 launchd 合同、以及可預測 CPU 與統一內存水位的機器上——典型就是 KVMNODE 獨佔雲 Mac;而工程師的筆記本只保留 CLI 與 UI,把 gateway.remote.url 指到受保護 WebSocket 端點。若仍習慣「每個開發者本機都起一個 Gateway 再互相同步配置」,你會得到多份 token、多個 supervisor 單位、以及探針目標隨 DHCP 漂移的組合故障,夜間值班無法對齊同一套日誌籤名。
下面五條在 remote 落地前必須逐條排除;否則會在「Runtime running 但 Connectivity probe failed」上無限循環,卻誤以為是模型或頻道 API 不穩定。
服務端仍 local、客戶端已 remote:雲主機 gateway.mode 未改或 plist 未重載,外部 URL 實際沒有 listener,探針永遠紅。
URL 寫內網 IP 卻從公網客戶端探:探針走筆記本默認路由,目標不可達,與 Gateway 是否 healthy 無關。
token 只寫進用戶 shell 配置、未進入監督環境:服務側實際 token 為空,遠程客戶端攜正確值仍 401。
混用兩個 state 目錄:OPENCLAW_STATE_DIR 或 profile 在服務端與客戶端不一致,doctor 通過而探針讀錯文件。
跳過後切回 local 的回歸步驟:試點結束未清理 remote 鍵,CI 與人工機各自 half-remote,排障時輸出互相矛盾。
若初裝尚未完成,請先 安裝排障清單 再進入 remote;若已運行 local 生產,請至少做一次配置快照再改 mode,避免與 升級 token 遷移 類問題疊乘。
對照表:local 全棧、remote 客戶端、以及雲上「僅 Gateway 節點」三種職責切分
把「誰跑 launchd」「誰持有 token 真值」「誰對外暴露 WS」寫進變更單第一行,財務與審計才能理解為何要多一臺常駐雲節點。下表刻意不把 Tailscale 綁死為唯一方案——你可以用 SSH 本地轉發或受控邊緣代理——但**無論哪條路徑,探針目標必須與工程師實際點擊的 URL 同源**。
| 拓撲 | Gateway 進程位置 | 典型客戶端 | 第一約束 |
|---|---|---|---|
| local 全棧 | 與 CLI 同機 | 單用戶調試 | 機器必須從不睡眠且網絡穩定 |
| remote 客戶端 | 獨佔雲 Mac(launchd) | 多臺筆記本 CLI / UI | WS URL 與 token 在兩側 profile 對齊 |
| 混合(過渡期) | 灰度中雙機 | 部分用戶仍 local | 必須命名空間化 profile,禁止同一用戶雙模式並存 |
| 觀測 | 優先懷疑 | 下一動作 |
|---|---|---|
| 服務端 status 綠、客戶端探針紅 | remote URL 或 TLS 終端與探針不一致 | 在客戶端執行帶 --url 的 status 對照官方文檔 |
| 兩側 doctor 結果矛盾 | PATH 或 binary 版本分裂 | 對齊 openclaw --version 與 plist ProgramArguments |
| 頻道間歇斷 | 雲端 CPU 尖峰或 cron 與峰值重疊 | 回到 診斷梯子 的 channels 與 cron 段 |
remote 的價值是「一個寫進合同的 Gateway 地址」,不是「很多個本地實驗進程」。
區域上,若團隊主體在新加坡或美東協作、模型與工具 API 也有區域親和,可把常駐節點落在對應 KVMNODE 區域以減少長肥 RTT;這與 多地區選區與租期 中的「最熱三跳」敘事一致,只是本文把第三跳換成 Gateway WebSocket 而非 Git。
最小遷移序列:服務端先穩、再切客戶端 remote(含需重啟項)
推薦順序是「雲節點完成 local 健康證明 → 固定對外可達 URL(隧道或受控 bind)→ 筆記本批量改 remote」。不要在 Gateway 仍只監聽 127.0.0.1 且未建立隧道時,先把團隊筆記本改成 remote,否則你會在無效 URL 上浪費半天頻道調試。
openclaw config set gateway.mode local openclaw gateway status openclaw doctor openclaw config set gateway.mode remote openclaw config set gateway.remote.url "wss://your-edge.example/gateway" openclaw gateway restart
提示:真實鍵名與 profile 以你安裝渠道與官方 schema 為準;上圖是「順序意圖」而非可逐字粘貼的神諭。改 gateway 段後通常需要重啟監督進程才能被 launchd 子進程繼承。
隧道與 bind 細節仍建議與 升級與遠程訪問 對照閱讀:本篇強調長期拓撲,那篇強調升級後 token 與分裂修復。
六步:從 POC 到團隊默認 remote 工作流
在雲節點跑通 local health:Runtime running 與探針均 ok,再談外網可達。
凍結 URL 與證書策略:寫明 wss 終端由誰運維、續期與吊銷流程。
把 gateway.auth.token 寫入監督可見存儲:避免僅存在於交互 shell。
選一臺試點筆記本改 remote:驗證完整讀寫路徑再擴面。
文檔化「誰可以旋轉 token」:與內部訪問審批同一套工單。
把監控接到 Gateway 進程與 WS 握手:不僅 ping 公網 IP。
可引用口徑:常駐算力、統一內存與「單控制面」預算欄位
常駐 vCPU 與統一內存:Gateway 與模型側車並存時,為峰值 concurrent tool 調用預留 headroom;M4 Pro 64GB 檔常見用於多會話與本地緩存。
WS RTT 目標:交互式調試路徑儘量與團隊主體同區;跨洲僅適合批處理或異步任務。
單一控制面計數:預算表寫「1× Gateway + N× remote client」,避免把 N 臺筆記本的隱形 Gateway 算成零成本。
注意:把 Gateway 綁到公網而不完成應用層鑑權與審計,會在合規審查時直接否決;遠程訪問應優先隧道或零信任邊緣。
純本地 Mac 或家用線路難以提供 7×24 的進程監督與可預測出口;虛擬化嵌套層也會放大時鐘與 IO 抖動。需要在新加坡、日本、韓國、香港與美東美西等點位獲得可寫進合同的獨佔 Apple Silicon、透明檔位與按天到按月的租期彈性時,把 Gateway 落在雲端節點通常比堆疊個人設備更符合運維與採購敘事。對要把 AI Agent 控制面寫進變更系統、減少「誰筆記本又睡了」類事故的團隊,KVMNODE 的 Mac Mini 雲端租賃通常是更優解:獨佔硬體、區域可選、並與長期 remote 拓撲天然契合。