OpenClaw 解決什麼問題?
AI Agent 工具(Cursor、Claude Code、AutoGPT 等)愈來愈強大,也愈來愈危險:它們能讀寫檔案、執行 shell、發起網路請求,一旦權限失控,輕則改錯設定,重則洩漏金鑰或刪除資料。在 macOS 開發場景下,這個問題更棘手——你需要完整的 Xcode 工具鏈、Apple Neural Engine 與程式碼簽章能力,Docker 容器和 Linux VM 都提供不了這些。
OpenClaw 的定位是:在真實的 macOS 實體機上,為每次 AI Agent 任務劃定可稽核、可回溯、可隨時中止的操作邊界。它不是把 Agent 關進什麼都幹不了的籠子,而是精確控制它能存取哪些目錄、呼叫哪些系統指令、連線哪些網路位址——同時保留完整的 macOS 原生能力。
如果你只需要快速跑通第一個沙箱工作階段,可以先閱讀我們的五分鐘快速上手。本文面向已經決定在生產環境使用 OpenClaw 的讀者,涵蓋從開通到維運的完整生命週期。
本文基於 OpenClaw 1.4.2、macOS Sequoia 15.3、ZilCloud Mac mini M4(Apple M4 · 10 核 · 16 GB 統一記憶體 · 256 GB SSD)在日本東京節點實測撰寫。主控台介面與 CLI 輸出可能隨版本更新略有變化,核心概念與設定結構保持穩定。
主控台完整操作流程
OpenClaw 內建於每台 ZilCloud Mac mini M4,無需單獨購買附加項目。完整開通流程分為四個階段:
-
01選購並開通 Mac mini M4 執行個體
在設定下單頁選擇節點(新加坡 / 日本東京 / 韓國首爾 / 中國香港 / 美國東部),基礎方案按天 $20.9 起。付款後 1–5 分鐘內自動交付,你會收到 SSH 憑證與 VNC 密碼。
-
02進入主控台 → 選擇執行個體 → OpenClaw 分頁
首次進入會觸發「零信任初始化」:系統產生與該執行個體綁定的 Ed25519 金鑰對,安裝
com.zilcloud.openclaw.daemon背景服務,並建立預設的稽核日誌儲存目錄/var/log/openclaw/。 -
03設定存取策略與團隊成員
在主控台的「存取控制」面板新增協作者電子郵件,為每位成員分配角色(Owner / Operator / Auditor)。Operator 可啟動沙箱工作階段;Auditor 只能檢視稽核日誌,不能進入沙箱 shell。
-
04下載 CLI 憑證並驗證環境
主控台提供一鍵安裝腳本與 session token 下載。在終端機執行
claw status,確認daemon: running且auth: valid後即可開始設定沙箱策略。
主控台還提供即時工作階段監控面板:目前活躍的沙箱工作階段數、每個工作階段的 CPU / 記憶體佔用、最近 24 小時的 BLOCK 事件統計。對於需要向資安團隊匯報的場景,可以直接從主控台匯出 PDF 格式的合規摘要報告。
CLI 指令全覽
OpenClaw CLI 工具名為 claw,所有沙箱操作都透過它完成。以下是日常最常用的指令分組:
# ── Status & health ──
claw status # daemon status, auth, active sessions
claw doctor # run environment diagnostics
# ── Session lifecycle ──
claw run --config policy.yaml # start sandboxed session
claw run --template xcode-build # start from saved template
claw attach <session-id> # attach to running session
claw stop <session-id> # gracefully terminate session
claw list # list all sessions (active + recent)
# ── Templates ──
claw template list # show built-in presets
claw template export agent > policy.yaml
claw template save my-ci-policy # save current config as named template
# ── Audit ──
claw audit tail <session> --follow # live audit stream
claw audit query --since 24h --action BLOCK
claw audit export <session> --format json
# ── Network policy testing ──
claw net test --domain api.openai.com # dry-run domain against active policy
claw doctor 是值得定期執行的診斷指令。它會檢查:守護程序是否執行、Endpoint Security 授權是否有效、稽核日誌目錄是否可寫、CLI token 是否過期。如果某次沙箱啟動失敗但錯誤訊息不明確,先跑 claw doctor 通常能定位到具體原因。
權限 YAML 設定深入解析
OpenClaw 的權限策略使用 YAML 格式定義。理解每個欄位的含義,是寫出正確策略的前提。以下是一份生產環境常用的完整設定,附帶逐段說明:
version: "1"
session:
name: "prod-agent"
auto_cleanup: false # keep workspace after session ends
max_duration: "4h" # auto-terminate after 4 hours
idle_timeout: "30m" # terminate if no activity for 30 min
filesystem:
workspace: "~/agent-workspace"
readonly_mounts:
- /Applications
- /usr/local/bin
- /Library/Developer # Xcode toolchain
deny:
- ~/.ssh
- ~/Library/Keychains
- ~/Library/Application Support/Cursor/User/globalStorage
syscalls:
preset: "agent"
deny:
- ptrace
- setuid
- mount
network:
allow_domains:
- "api.openai.com"
- "api.anthropic.com"
- "*.github.com"
- "registry.npmjs.org"
- "pypi.org"
block_all_others: true
log_blocked: true # record blocked attempts in audit log
session 段控制工作階段生命週期。auto_cleanup: false 適合需要保留 Agent 產出物的場景(如程式碼生成任務);max_duration 和 idle_timeout 是安全兜底,防止 Agent 無限期佔用資源或無人值守時繼續執行。
filesystem 段是最常出問題的部分。workspace 是 Agent 唯一的讀寫根目錄;readonly_mounts 允許讀取但不允許寫入的路徑清單;deny 是硬拒絕清單,優先級高於 readonly_mounts。注意:OpenClaw 會解析 symlink 的真實目標路徑——如果 /usr/local/bin/git 指向 Homebrew Cellar 下的路徑,你需要把 Cellar 目錄也加入 readonly_mounts,否則 git 呼叫會被攔截。
network 段的 block_all_others: true 配合 log_blocked: true,讓所有未授權的出站請求被靜默丟棄並記入稽核日誌。這比直接回傳連線錯誤更好——Agent 不會因為感知到「被擋」而嘗試繞過策略。
為 Xcode 編譯任務設定沙箱時,除了 /Applications/Xcode.app,還必須掛載 /Library/Developer(工具鏈)和 ~/Library/Developer/Xcode/DerivedData(編譯快取,需寫入權限)。漏掉 DerivedData 會導致每次全量編譯,耗時增加 3–5 倍。
多使用者零信任存取與團隊協作
在團隊場景下,不是每個人都應該擁有完整的沙箱 shell 權限。OpenClaw 的零信任模型基於三個原則:每次存取都需驗證身分、權限按最小化原則分配、所有操作可稽核。
主控台支援三種角色:
| 角色 | 可啟動沙箱 | 可檢視稽核日誌 | 可修改策略 | 典型使用者 |
|---|---|---|---|---|
| Owner | 是 | 是 | 是 | 團隊負責人 / DevOps |
| Operator | 是 | 是 | 否 | 日常開發者 |
| Auditor | 否 | 是 | 否 | 資安合規團隊 |
每個角色的存取都透過獨立的 CLI token 認證,token 有效期預設 24 小時,可在主控台強制撤銷。當某位成員離職或權限變更時,Owner 可以一鍵撤銷其所有活躍 token 並終止其正在執行的沙箱工作階段——不需要重啟執行個體或修改 SSH 金鑰。
對於需要臨時授權的場景(如外部顧問審查程式碼),可以建立限時 Guest token:指定過期時間和唯讀稽核權限,到期自動失效,無需手動清理。
CI/CD 流水線整合實戰
將 OpenClaw 沙箱嵌入 CI/CD 流水線,是讓 AI Agent 自動化任務達到生產可靠性的關鍵一步。以下是一個 GitHub Actions 工作流程範例,在 ZilCloud 雲端 Mac 上執行帶沙箱隔離的程式碼審查 Agent:
# .github/workflows/ai-review.yml
name: AI Code Review (Sandboxed)
on: [pull_request]
jobs:
review:
runs-on: self-hosted # ZilCloud Mac mini M4 as self-hosted runner
steps:
- uses: actions/checkout@v4
- name: Start OpenClaw sandbox
run: |
claw run --template ci-review --detach
SESSION=$(claw list --json | jq -r '.[0].id')
echo "SESSION_ID=$SESSION" >> $GITHUB_ENV
- name: Run AI review agent
run: |
claw attach $SESSION_ID --exec \
"claude -p 'Review the diff in this PR for security issues'"
- name: Export audit log
if: always()
run: |
claw audit export $SESSION_ID \
--format json \
--output audit-${{ github.run_id }}.json
- name: Stop sandbox
if: always()
run: claw stop $SESSION_ID
這個工作流程做了幾件重要的事:每次 PR 觸發時建立獨立的沙箱工作階段(稽核日誌按 PR 隔離);Agent 在沙箱內執行,網路策略限制為只允許存取 AI API 和 GitHub;無論審查成功還是失敗,if: always() 確保稽核日誌一定被匯出並歸檔。
建議將 ci-review 範本設定檔(YAML)提交到程式碼儲存庫的 .openclaw/ 目錄,與 CI 工作流程版本同步管理。這樣每次策略變更都有 Git 歷史可追溯,資安團隊審查時也能直接看到目前生效的權限邊界。
稽核日誌進階用法
稽核日誌是 OpenClaw 最核心的差異化能力。除了即時 tail,還有幾種進階用法值得掌握:
按條件批次查詢:當某個 Agent 任務出現異常行為時,可以用時間範圍和操作類型過濾歷史記錄:
# Find all blocked network attempts in the last 7 days
claw audit query \
--since 7d \
--action BLOCK \
--type network \
--format table
# Find all file writes outside workspace
claw audit query \
--since 24h \
--action BLOCK \
--type write \
--format json | jq '.[] | select(.target | contains("/etc"))'
合規匯出:資安稽核通常要求特定格式的報告。OpenClaw 支援 JSON、CSV 和 PDF 三種匯出格式。PDF 報告包含工作階段摘要、ALLOW/BLOCK 統計、策略設定快照和時間軸檢視,可直接提交給合規審查。
告警規則:在主控台設定告警閾值,例如「單一工作階段 BLOCK 事件超過 50 次/小時」或「偵測到對 ~/.ssh 的讀取嘗試」。觸發後透過電子郵件或 Webhook 通知 Owner,不需要人工持續盯守稽核流。
常見故障排查與效能調校
以下是我們在支援工單中遇到頻率最高的五個問題及解決方案:
| 症狀 | 可能原因 | 解決方法 |
|---|---|---|
| Agent 呼叫 git / python 失敗 | 工具路徑未加入 readonly_mounts | 檢查 symlink 目標,新增 Cellar 目錄 |
| Xcode 編譯極慢 | DerivedData 未掛載為可寫 | 將 DerivedData 路徑加入 workspace |
| claw run 啟動逾時 | Endpoint Security 授權過期 | 執行 claw doctor,按提示重新授權 |
| 網路請求全部 BLOCK | 網域未加入白名單 | 用 claw net test 逐個驗證目標網域 |
| 稽核日誌磁碟佔用高 | 高頻 Agent 產生大量記錄 | 設定日誌輪替或提高 log_level 閾值 |
效能方面,OpenClaw 的沙箱開銷在稽核模式下約 3% CPU,對 Apple M4 的 10 核來說幾乎可以忽略。如果任務對延遲極度敏感(如即時推理),可以在設定中關閉細粒度 syscall 稽核,只保留檔案系統和網路層的攔截,開銷可降至 1% 以下。但生產環境建議保持完整稽核,3% 的代價換來 100% 的可回溯性是值得的。
安全最佳實踐清單
在將 OpenClaw 用於生產環境之前,建議對照以下清單逐項確認:
- 每個獨立任務使用獨立沙箱工作階段,不共用工作階段
- 策略 YAML 納入版本控制,變更需 Code Review
~/.ssh、Keychain、Cursor/VS Code 全域儲存始終在 deny 清單- 網路策略預設
block_all_others: true,按需新增白名單 - 設定
max_duration和idle_timeout防止無人值守工作階段 - 團隊成員按最小權限分配角色,定期審查活躍 token
- CI/CD 流水線中
if: always()匯出稽核日誌 - 設定 BLOCK 事件告警,異常行為及時通知
- 執行個體退租前匯出並歸檔全部稽核日誌
本機裸跑 Agent 與公有雲方案,差在哪裡?
讀完這份指南,你可能會問:我能不能在自己的 MacBook 上直接跑 Agent,或者用 AWS / 阿里雲的 macOS 執行個體?這個問題值得認真對比。
本機 MacBook 裸跑的問題在於:Agent 擁有與你完全相同的系統權限,一旦越權操作,損害的是你的主力開發機。你沒有獨立的稽核日誌來證明 Agent 的行為邊界,資安團隊也不會接受「我相信它不會亂來」這種論證。更實際的問題是,本機不能 7×24 執行 CI 任務,風扇噪音和發熱也限制了長時間 Agent 任務的可行性。
AWS EC2 Mac 執行個體提供 macOS 環境,但起步價約 $26/天(mac2.metal),且是虛擬化執行個體而非實體機獨享——Apple Neural Engine 在虛擬化場景下無法被訪客系統直接存取,M4 的 38 TOPS AI 算力基本浪費。EC2 Mac 也沒有內建的操作級沙箱和稽核日誌,你需要自行部署第三方安全工具,成本和複雜度都顯著增加。最短租期 24 小時起,不適合按天靈活試用的場景。
GitHub Actions macOS Runner按分鐘計費,macOS Runner 費用是 Linux 的 10 倍,且你無法控制 Runner 上的安全策略——所有任務共用同一環境,沒有細粒度的權限隔離。排隊等待也是常見問題,高峰期可能等 30 分鐘以上。
ZilCloud 的方案路徑不同:Mac mini M4 實體機獨享($20.9/天起),OpenClaw 沙箱內建無需額外安裝,零信任存取 + 完整稽核日誌開箱即用,1–5 分鐘自動交付,全球 5 節點可選,7×24 真人技術支援。你得到的不只是一台能跑 Agent 的 Mac,而是一套可稽核、可隔離、可協作的生產級 AI Agent 執行環境——這正是本文所描述的完整工作流程能夠落地的前提。