1. 痛點與邊界
控制面重劃的是審批與供應鏈,不是多一個資料表。若 CI 仍自動裝最新技能、正式環境與開發機共用 workspace,夜間審批堆積與日間靜默拒絕會同時出現。
2. 症狀矩陣
| 現象 | 假設 | 動作 |
|---|---|---|
| 審批 pending | 分類未白名單 | 只讀 doctor;匯出策略 diff |
| 技能 blocked | fail-closed 與釘版不一致 | 核對摘要;禁止預設強制不安全安裝 |
| 401 | 雙真源 token | 對照 Docker/升級文收斂 env 與 JSON |
3. 五步驟
- 快照與只讀 doctor。
- 凍結
OPENCLAW_*真源(plist/Compose/shell)。 - 審批表:寫碟、執行 shell、改設定分類。
- Staging 釘版技能演練。
- probe 通過前不改模型路由;logs 分時間窗。
4. 門檻
gateway.auth.token可寫入路徑多於一處 → P0 阻擋至收斂。- 策略變更後 24 小時內必做高風險寫入演練並留存 logs。
- 遠端 Mac 上 logs 與 supervision 埠不一致 → 先修監控設定。
5. FAQ:與 Docker、升級、暴露面的交界
問:已依《Docker WS》對齊 Token,為何仍 401?常見是裝置鑑權 v2與 Task Brain 後節點觸發面縮小疊加;請依《升級 breaking》逐條消去 OPENCLAW_* 與 JSON 的雙真源。
問:語意審批能否先全域放行?僅限隔離 staging;正式環境應維持 fail-closed,以顯式白名單類別漸進放寬,並設自動過期避免寬策略變永久預設。
問:ClawHub 技能要不要釘版?要。摘要、標籤、安裝指令須寫在同一變更單;審計節奏對齊《暴露面》文的技能稽核表。
問:遠端 Mac 與筆電雙跑 Gateway?會造成資料目錄與權杖爭用,出現間歇無回覆;同一網段僅保留一個可寫入 Gateway,其餘只做 CLI 或唯讀節點。
問:openclaw logs 太大怎麼切?以時間窗+ request id過濾;避免在正式機對巨型檔案全文 grep 拖垮磁碟 I/O。
6. 深度案例:兩週內從「能跑」收斂到「可稽核」
某團隊在控制面大版本後仍讓 CI 自動安裝最新技能,且正式與開發共用 workspace,導致夜間審批塞車、日間靜默拒絕。收斂順序:先把技能安裝移到獨立 staging job並釘雜湊;再把審批表切成「寫磁碟/執行 shell/改設定」三類;最後以 launchd EnvironmentVariables 單點注入 OPENCLAW_*,刪除 shell profile 重複匯出。
他們另建立每週策略差異報告:自動比對本週與上週審批通過率、平均等待時間、被拒絕的工具面類型;若某類拒絕率陡升,先檢查是否為「誤分類」而非惡意行為。此報告與 on-call 週會綁定,避免數字只在儀表板卻無人解讀。
兩週末他們補做讀寫隔離演練:同時模擬高頻讀取與單筆高風險寫入,確認 SQLite 鎖與頻道 webhook 不互相餓死;演練紀錄納入版本庫,成為下次升級的基準線。
最後補上一條人員離職/權杖輪替檢查:審批人帳號停用後,佇列是否自動轉派;若否,須在 IAM 變更當日手動更新策略,以免幽靈卡關與稽核缺口。
與《install.sh》銜接時,強制新人依「init → doctor → channels probe → security audit」順序,避免「先裝再補安全」造成雙真源。遠端節點沿用《SSH/VNC》的跳板與日誌回傳約定,禁止 Gateway 綁 0.0.0.0 裸服務。
稽核要求每次策略變更附十分鐘內 logs 樣張與重現指令;Docker 場景另要求 PR 同步更新 Compose 環境變數對照表,否則 review 直接擋下。
7. 對內評審:證據包與 diff 範圍
除 doctor 輸出,應含審批策略版本號、技能釘版清單、OPENCLAW_* 真源截圖或 plist 片段、channels probe 成功時間戳。並附升級前後 JSON diff,標註 JSON5 註解、尾隨逗號是否被格式化器改動,避免「倉庫與線上語意漂移」。
遠端 Mac 應附 launchd 單元路徑、LastExitStatus、節流參數意圖;若走聚合日誌,需說明取樣與捨棄規則,避免高頻錯誤被平均掉。另附回滾決策表:哪些 log 模式觸發立即回滾、哪些僅降級模型路由。
8. 語意審批與工具面分類(帳冊化)
將「能做什麼」寫成機器可執行類別:唯讀查詢、寫入受控工作區、執行外部命令、改 Gateway/頻道設定等;每類綁定預設動作與逾時回落,避免審批人離線卡死佇列。
| 工具面 | 風險 | 預設建議 | 日誌關鍵字 |
|---|---|---|---|
| 列目錄、讀檔 | 低 | 可自動放行+速率限制 | tool:read |
| 寫入工作區外路徑 | 高 | 雙人審批或拒絕 | path_escape |
| 管線載體 shell | 極高 | 拒絕或專用沙箱 worker | carrier:inline-shell |
改 gateway.auth | 極高 | 變更窗+人工 | config:auth |
帳冊須版本化並與 CI 校驗;任何寬鬆救火策略須設到期時間與行事曆提醒,避免暫時放行變長態。
實務上可把「讀取內部 wiki」與「寫入客戶工單系統」分屬不同風險帶:前者可自動附帶速率與單次 token 上限,後者必須要求工單號格式校驗與重試冪等鍵,避免審批通過後在下游造出重複工單。對跨部門流程,建議每季做一次桌面演練:隨機抽三個工具面,驗證預設動作與實際風險是否仍匹配。
若組織採雙重控制,請把第二簽核人的時區與備援寫進 on-call 文件;Task Brain 統計若顯示某類請求長期卡在「等待第二人」,代表流程設計失衡,而不是模型太慢。
9. ClawHub:CI 閘口、啟用與回滾劇本
將「下載/雜湊校驗」留在 CI,「正式啟用」走變更工單;雜湊不符即失敗。回滾劇本需列停用技能 ID、清快取目錄、是否需 Gateway 冷重啟,缺一即可能在回滾後仍見幽靈行為。灰度須有最長時間窗與樣本會話數門檻,並以結構化 JSON 行寫入可查儲存,讓控制面統計能反哺策略。
若技能會觸發外部 API,請把速率限制、退避與 429 處理與站內《429 Runbook》對齊;否則審批通過後仍會在尖峰被供應商限流,誤判成「模型不回」。另將MEMORY 與上下文膨脹策略與《記憶》文一致:長對話下工具結果若無截斷,會放大審批佇列的尾延遲。
對 monorepo,PR 範本應強制勾選「是否影響工具面映射」;跨倉依賴用單一 manifest鎖技能與模型 profile。審計日誌要能回答「誰在何時把某技能從灰度推全量」,以滿足事後究責與合規抽查。
10. 遠端 Mac:單實例、日誌分區與禁止雙寫
同一資料目錄被兩個 Gateway 開啟是結構性事故:應規定單一可寫入 Gateway;除錯用前景行程須獨立埠與暫存 workspace,結束後完整退出。日誌建議分控制面/介面卡/工具執行三路,以 request id 串聯;並設輪替與壓縮,避免長假後日誌塞滿分割區造成假死。與 Docker 並行時,容器內 127.0.0.1 與宿主不同,launchd 託管服務須寫可解析服務名或宿主位址,不可長期改 hosts 硬撐。
夜間維運建議把健康檢查與日誌水位綁在同一儀表板:CPU 低但延遲高時,優先查記憶體頻寬與磁碟佇列,而不是先調模型。對跨時區團隊,應寫清誰能批准寫磁碟類請求與備援窗口,避免「審批者在睡眠、佇列在燃燒」。
若使用 Tailscale 或 SSH 隧道,請把來源 IP 段與失敗登入閾值寫進與《暴露面》一致的清單;Task Brain 收緊後,錯誤的來源白名單會以「靜默拒絕」呈現,比 401 更難查,必須靠分層 logs 還原。
11. 收束:Linux 雲主機也能跑 OpenClaw,但防守面與圖形/常駐體驗仍不同
(1)限制:通用 Linux 在權限模型與桌面型渠道上與 macOS 不同;審批與外掛策略若未工程化,多租戶腳本會快速腐爛。(2)遠端 Mac:與 Apple 工具鏈一致,launchd 重啟與日誌歸集可預期。(3)MACGPU:可用免登入方案頁試用遠端節點承載常駐 Gateway(見 CTA)。(4)自檢:升級後 24 小時內完成 probe 與高風險寫入演練;日誌須能還原 request id 與策略版本,否則暫緩放量。