2026年 OpenClaw 插件 fail-closed 與 manifest 強制聲明在遠端實體 Mac 7×24 閘道落地
openclaw doctor 稽核清單、ACP dispatch 開關與受控回滾 Runbook(grep 片段 + FAQ)
平台與資安工程師把遠端實體 Mac當無人值守閘道時,很快就會發現每個外掛都是供應鏈:一條靜默繞過 allow-list 的路徑,就能在凌晨執行未宣告的網路或檔案系統存取。本文把強制 manifest(無有效 manifest 即不載入)與 fail-closed(驗證失敗即拒絕執行、而非默默放行)收成可勾選的 openclaw doctor 項與可貼變更單的 grep;並整理兩張決策矩陣、七步受控回滾與 FAQ。若你也在多區節點上對齊解析視線,可併讀 staging 與 split-horizon DNS 的跨國實體遠端 Mac 決策矩陣;外掛治理與節點池選型可參考 2026 全球 Mac 資源池構建指南。
1. 導讀與範圍
在機房裡無頭運行的 Mac 上,外掛就是攻擊面的一部分。2026 年的主流做法是 強制 manifest(沒有合規 manifest 就不載入)加上 fail-closed(驗證失敗即拒絕執行,而非靜默放行)。
本指南把上述姿態落成 doctor 可勾選項與可附在變更單上的 grep,並把 ACP(Agent Client Protocol)dispatch 視為「誰能進入外掛排程器」的總開關。請與快照搭配,讓回滾 RTO 落在維護視窗內。範圍不含各雲端模型供應合約;假設 launchd 已釘選服務使用者與 WorkingDirectory。環境變數與 SecretRef 在 SSH/LaunchAgent 下的差異,見 OpenClaw 環境變數與 SecretRef 實戰 Runbook。
2. 痛點拆解
- 限制:隱性權限與「能跑就先上」。 manifest 未列出的
fs、network、subprocess等在 fail-open 模式下常被靜默允許,稽核無法證明「當下到底放行過什麼」。 - 隱性成本:doctor 綠燈 ≠ 政策已上線。
openclaw doctor可能涵蓋執行時與埠位,但熱重載從未讀到新的 manifest 強制旗標——對外仍是舊行為。 - 穩定與稽核:沒有成對快照的回滾只是口號。 過激的 fail-closed 會在半夜打斷合法自動化;若沒有「設定 + 外掛 bundle」成對快照,最後只能在 on-call 下徒手改 JSON,直接衝擊 7×24 SLO。
3. fail-closed × manifest 決策矩陣
第一張表回答「要硬到什麼程度」;第二張把變更訊號對到驗收動作。
| 環境 | Manifest | Fail-closed | ACP dispatch |
|---|---|---|---|
| 正式區 7×24 閘道 | 強制 | 開 | 僅 allow-list 的 clientId/workspace |
| Staging 整合 | 強制 | 開(可按外掛 shadow) | 團隊租戶放寬並保留完整 JSONL |
| 開發者筆電 | 強制(建議鏡像正式) | 可關以利迭代 | 本機全開或僅回環 |
| 變更訊號 | 建議動作 | 額外驗收 |
|---|---|---|
| 新外掛或大版本升級 | 金絲雀節點 + 雙 manifest diff | doctor + grep 宣告的 schema 版本 |
| 更多外部 ACP/agent 用戶端 | 收緊 dispatch allow list 與速率限制 | 依 requestId 追蹤外掛 span |
| 日誌大量 denied 且錯誤尖峰 | 先 shadow 計數再決定是否回滾 | diff 回滾前後五分鐘視窗 |
4. openclaw doctor 稽核清單
把 doctor 當成「政策真的載入」的證明——逐項勾在變更單上(鍵名對應發行版文件中的 openclaw.json 或環境變數)。
- 執行時與 PATH:與 launchd 使用者一致;
which openclaw與 plist 二進位路徑一致。 - Manifest 解析:印出有效的外掛根;強制開啟時拒絕無 manifest 的目錄。
- Fail-closed 旗標:doctor 印出布林值與來源檔;WARN 視為上線阻擋項。
- ACP dispatch:開關狀態與 allow-list 筆數;dispatch 開著但 allow list 為空應警告「沒有任何用戶端可進入」。
- 外部健康:本機
curl與/ready(若有)成對檢查,避免「自檢綠燈、反代紅燈」。
5. ACP dispatch 開關
此處 ACP dispatch 指:來自 agent 用戶端(IDE、CLI、外部編排器)的請求,是否允許進入外掛排程器。搭配 fail-closed 時,建議順序為 先用 manifest 驗證外掛集合,再以 dispatch 守大門,避免被入侵的用戶端直接跳進高風險 hook。
示意 JSON(上線前請替換為貴司發行 schema 的正式鍵名):
{
"plugins": {
"requireManifest": true,
"failClosed": true,
"manifestSchemaVersion": "2026-05"
},
"acp": {
"dispatchEnabled": true,
"allowedClientIds": ["ci-runner-prod", "vscode-workspace-ops"],
"denyByDefault": true
}
}
將 allowedClientIds 與內部 OAuth 或 mTLS 主體對齊,並在 JSONL 記錄 clientId × pluginId 的笛卡兒積以供鑑識。
6. 驗收用 grep 片段
於封存目錄或現場工作區執行(路徑請自行調整):
# 明確的 fail-closed/requireManifest 旗標
grep -RniE 'failClosed|fail_closed|requireManifest|require_manifest' \
~/.config/openclaw ./openclaw.json 2>/dev/null
# 每個外掛目錄皆應帶 manifest(缺檔=不應載入)
find "$OPENCLAW_PLUGIN_ROOT" -maxdepth 2 -type f \( -name 'manifest.json' -o -name 'plugin.yaml' \) | wc -l
# 正式區 ACP dispatch allow list 不得為空
grep -Rni 'dispatchEnabled|allowedClientIds|denyByDefault' ~/.config/openclaw ./openclaw.json 2>/dev/null
若第一條 grep 全無命中,多半仍停留在隱式 fail-open——請勿僅憑肌肉記憶簽核正式區。
7. 七步受控回滾 Runbook
- 凍結:公告維護;暫停會擴大呼叫面的 cron。
- 快照:將
openclaw.json、外掛樹、launchd plist 與 doctor 標準輸出打成 tar。 - 強制 manifest 開:重載、grep 驗收、觀察「拒絕載入」計數。
- fail-closed 開:對未宣告能力統一錯誤碼;保留五分鐘 JSONL 基線。
- 收緊 ACP dispatch:先 shadow(僅記錄),再 deny-by-default。
- 回滾觸發:若 SLO 破裂,還原成對快照、
launchctl kickstart、重跑 doctor。 - RCA:更新 grep 清單與工單;排程下次金絲雀。
8. 可引用數字與留存
- 觀測視窗:政策變更後至少觀察五分鐘滑動視窗再決定留用或回滾——啟動尖峰不算事故。
- 快照留存:正式區保留三份可還原設定修訂,每份附外掛 tarball 校驗和。
- 稽核留存:完整 doctor 輸出與 grep 擷取應與工單綁定至少 30 天,以滿足常見內規抽檢。
9. FAQ
manifest 明明列了能力,為何仍被視為「未宣告」?
比對 doctor 印出的解析路徑與你實際編輯的檔案;留意 schema 版本與欄位大小寫。必要時在 staging 用同一 bundle 開完整載入日誌重跑。
關閉 dispatch 後,舊工作階段還會叫用外掛嗎?
視佇列與實作而定:重載後,若 SLO 允許可丟棄未確認工作,再以唯讀煙霧測關鍵路徑。
fail-closed 能與 shadow 模式並存嗎?
可以——shadow 只累加「本將拒絕」計數而不改 HTTP 狀態;待曲線平緩再升級為硬拒絕。
10. 總結:為何在 Mac mini/macOS 上落地更順
外掛治理把信任從「口頭默契」推進到機器可驗證的政策:manifest 綁能力邊界、fail-closed 定義失敗姿態、ACP dispatch 縮小入口面,doctor 與 grep 則補上稽核期待的證據鏈。
在 macOS 上,這與 launchd、Unified Logging、Gatekeeper、SIP 疊加得很自然。Apple Silicon Mac mini M4 待機功耗約 4W 量級,適合常駐閘道與旁路探針;相較同價位泛用迷你主機,長工作階段下 OpenClaw、健康匯出器與輕量 CI Runner 共機時通常更穩。
若你希望把本文 Runbook 跑在託管實體節點而非自建機櫃,Mac mini M4 仍是 2026 年極具性價比的起步選擇——取得遠端實體 Mac,把 manifest 強制與回滾變成可重複程序。
為 OpenClaw 外掛治理準備一台 7×24 遠端 Mac
ZoneMac 提供 Apple Silicon 實體 macOS,便於 manifest 硬化、可稽核回滾與閘道觀測。