OpenClaw 存取控制:SecretRef 不是程序隔離,以及它到底解決了什麼
SecretRef 讓憑證不必以明文躺在設定檔裡,模型呼叫鏈上看到的是 process-local 的哨兵值。但官方講得很白:這不是程序隔離——真正的值仍在同一個程序的記憶體裡,而且 agent 讀得到的任何明文檔案都繞過了這層保護。
第 120 頁,共 128 頁
SecretRef 讓憑證不必以明文躺在設定檔裡,模型呼叫鏈上看到的是 process-local 的哨兵值。但官方講得很白:這不是程序隔離——真正的值仍在同一個程序的記憶體裡,而且 agent 讀得到的任何明文檔案都繞過了這層保護。
Cron 已經改名為 Automations(openclaw cron 仍是別名),而自動化現在有六種機制。核心的取捨只有一條:Automations 給你精確時間與隔離執行,Heartbeat 給你完整的主 session 脈絡與大約每 30 分鐘一次的頻率。
Standing orders 給 agent 對某個「程式」的永久操作權限,寫在 AGENTS.md 裡、每個 session 自動注入。它定義的是「被授權做什麼」,時間點則交給 automations——兩者分工,而且 automation 的提示應該引用 standing order 而不是複製它。
企業頻道全部改成 plugin 了,包含以前內建的 Slack 與 Google Chat。Slack 現在有三種傳輸模式——Socket Mode、HTTP Request URLs、Relay——而官方明說它們在功能上已經對等,要按部署形狀選,不是按功能選。
三個頻道各有一個「不知道就會卡住」的點:WhatsApp 是 QR 登入沒辦法遠端做、Telegram 是 bot 預設開著 Privacy Mode 收不到群組訊息(改完還要把 bot 退出再加回去)、Discord 是 Message Content Intent 沒開就收不到伺服器訊息。
這批頻道裡最值得看的是 Reef——不同人的 OpenClaw agent 之間的端對端加密側頻道,訊息在你的機器上封裝、雙向都經過釘死模型的守衛審查,中繼站永遠讀不到內容。它是 bundled plugin,不用另外裝。
OpenClaw 支援 31 個聊天頻道,但只有 WebChat 在核心裡——連 Slack 和 WhatsApp 都是要裝的 plugin。而群組安全其實有兩個獨立的軸:allowlist 管的是誰能觸發 agent,不管模型會看到哪些引用與歷史,後者要另外設 contextVisibility。
OpenClaw 的設定驗證是嚴格的——多一個不認識的鍵、型別不對、值無效,Gateway 就拒絕啟動。它會保留最後已知良好的設定,但啟動與熱重載都不會自動還原,只有 doctor --fix 會。
Gateway 預設只綁 loopback,而綁到 loopback 以外一律要求認證——這是它自己會擋的,不是建議。容器裡的有效預設是 auto,但 Tailscale serve/funnel 啟用時會強制回 loopback。
雲端部署 OpenClaw 要決定的其實只有四件事:Gateway 綁哪裡、state 放哪裡、誰能連進來、壞了怎麼復原。平台選擇是最不重要的一項。
OpenClaw 有六種本機安裝方式,差別不在指令而在你要不要可重現性、隔離、與自我更新。真正會卡住的是套件管理器的 lifecycle script 政策:npm 12 與 pnpm 全域安裝都預設擋掉 OpenClaw 的 build script。
OpenClaw 的容錯是兩階段:先在同一供應商內輪替 auth profile,再換模型。但真正決定行為的是「這個模型是誰選的」——你手動用 /model 選的模型是嚴格的,失敗就報錯,不會偷偷用別的模型回答你。
OpenClaw 對模型的硬需求是 tool use 加夠大的 context——onboarding 自動推薦本地模型的門檻是支援 tool 且 context 至少 16K。但更容易搞混的是 provider、model、agent runtime 其實是三層,`openai/*` 不等於走 Codex。
官方 provider 目錄現在有 60 個條目。接本地模型最常見的失敗是把 Ollama 的 base URL 寫成 /v1——那會破壞 tool calling,模型會把 tool JSON 當純文字吐出來。
一個 agent 是完整的人格範圍——workspace、auth profile、模型登錄、session 儲存全部獨立。但隔離不是絕對的:次要 agent 的 OAuth 憑證過期時,OpenClaw 會回頭讀主 agent 的同名 profile,而 workspace 只是預設工作目錄,不是硬性沙箱。
遠端 node 執行最值得看的是核准的綁定方式:exec 在核准前先備好一份標準化的 systemRunPlan,核准之後 gateway 轉發的是那份存起來的計畫,不是任何之後被呼叫端改過的指令、cwd 或 session 欄位——而且執行前會重新驗證工作目錄。
OpenClaw 有 200+ 份文件,這篇幫你搞懂全貌、知道每塊在講什麼、依你的角色決定從哪讀起。
「OpenClaw 是 Pi 的 Gateway 殼」這個說法已經過期。官方文件現在寫的是:內建 runtime id 是 openclaw,而 pi 是會被正規化掉的 legacy 別名,「已經沒有外部 agent 框架套件」。留下的第三方 pi 相關依賴只剩一個終端機元件工具包。
Node 是必要的執行期,因為標準狀態儲存用 node:sqlite——Bun 只能拿來裝依賴。Windows 這邊變化最大:新增了原生的 Windows Hub companion app,不需要管理員權限,還能自己開一個 app 專屬的 WSL 發行版來裝 Gateway。
iOS 與 Android 的 app 是 node,不是 Gateway:它們不跑 Gateway 服務,Telegram 或 WhatsApp 的訊息也是落在 Gateway 上而不是手機上。Apple Watch 比較特別——因為 watchOS 擋掉一般 app 的低階網路,它改用簽章過的 HTTPS 輪詢。