1–5 分鐘交付

給 AI Agent
一個隔離沙箱

$21.1 / 天起 · 實體機獨享
線上租借 Mac
OpenClaw 沙箱 操作審計

OpenClaw 完整指南:雲端 Mac AI Agent 沙箱從零到上線

讓 AI Agent 直接操作 macOS 檔案系統、跑 shell、呼叫 API——一旦權限失控,一次誤刪或金鑰外洩就可能波及整條流水線。這篇手冊記錄在 PixVPS 獨享 Mac mini M4 節點上,從控制台開通 OpenClaw、撰寫權限 YAML,到多使用者零信任連線、CI/CD 掛載與審計日誌檢索的完整路徑,附我們在真實 Agent 任務裡驗證過的配置片段與故障排除備忘。

AI Agent 跑在 macOS 上,為什麼必須加沙箱

過去一年,Cursor、Windsurf 等 AI 程式設計工具把「讓模型改程式碼」變成了日常操作。 但當 Agent 從 IDE 外掛擴展到自主執行 shell、讀寫金鑰、呼叫系統 API時, 風險模型完全不同:它不再只是建議 diff,而是會以你的使用者身份在機器上真實落盤。 我們在內部測試中發現,未加約束的 Agent 在一次多檔重構任務裡曾嘗試寫入 ~/.ssh/id_ed25519 同級目錄、並呼叫 security find-identity 列舉鑰匙圈—— 這些操作對開發者本地機也許可接受,對承載 CI 簽名金鑰的雲端 Mac 卻是紅線。

傳統做法是用 Docker 或虛擬機做隔離,但 macOS 上的容器方案要麼無法存取完整 Xcode 工具鏈, 要麼與 Apple 簽名體系不相容。另一條路是給 Agent 一台專用實體機, 再透過策略引擎把檔案系統、網路、程序三個維度鎖死在白名單內——這正是 OpenClaw 的設計出發點。 它執行在 PixVPS 獨享 Mac mini M4 節點上,與宿主系統共享 Apple Silicon 算力, 卻在操作層提供獨立審計與權限邊界,讓 Agent 能幹活、又碰不到不該碰的資源。

本文實測環境

硬體:Mac mini M4 · 10 核 CPU · 16 GB 統一記憶體 · 256 GB NVMe · 1 Gbps 獨享頻寬(PixVPS 新加坡節點)。
系統:macOS 15 Sequoia。OpenClaw CLI 0.9.4,策略格式 v2。
Agent 執行時:自研編排腳本 + LangGraph 0.2;對照任務為「掃描倉庫 → 產生補丁 → 跑單元測試」。
連線:SSH 零信任令牌 + 控制台 VNC 旁路觀察。

OpenClaw 架構:三層隔離模型

可以把 OpenClaw 理解成疊在 macOS 之上、Agent 之下的策略與審計中間層,由三個元件協同工作:

  • 策略引擎(Policy Engine):讀取 YAML 宣告式規則,在 Agent 每次系統呼叫前做 allow/deny 判定;拒絕時回傳結構化錯誤碼,供編排層重試或降級。
  • 沙箱執行時(Sandbox Runtime):為每個 Agent 工作階段掛載獨立的可寫工作區,預設只暴露 /workspace 與顯式白名單路徑;對 ~/Library/Keychains/etc 等敏感區一律攔截。
  • 審計匯流排(Audit Bus):把所有檔案讀寫、子程序啟動、網路出站記錄為 JSON 行日誌,支援按工作階段 ID、策略版本、時間視窗檢索,保留期預設 90 天。

與「整機重灌」或「換使用者帳號」相比,OpenClaw 的優勢在於策略可版本化、可回滾: 同一台 M4 節點上可以並行跑「唯讀程式碼分析 Agent」和「可寫 /workspace 的建置 Agent」, 各自綁定不同 YAML,互不干擾。M4 的 38 TOPS Neural Engine 算力仍由宿主獨佔,沙箱層幾乎不增加推理延遲—— 我們在 200 次連續工具呼叫壓測中,策略判定平均開銷 1.8 ms,可忽略。

1.8 ms 單次策略判定開銷
90 天 審計日誌預設保留
3 層 檔案 / 程序 / 網路隔離
v2 當前策略 YAML 版本

控制台開通與環境準備

OpenClaw 隨 PixVPS 標準 Mac mini M4 實例一併提供,無需單獨購買附加項。 若你尚未有雲端節點,先在下單頁選擇區域與租期—— 付款後 1–5 分鐘內 SSH 憑證會出現在控制台。以下步驟假設你已能 SSH 登入實例。

  1. 01
    在控制台啟用 OpenClaw

    進入實例詳情 →「安全與沙箱」→ 打開 OpenClaw 開關。首次啟用會產生實例級 instance-token,僅顯示一次,請立即儲存到團隊金鑰庫。

  2. 02
    安裝 CLI 並綁定實例

    SSH 登入後執行下方命令。CLI 透過 PixVPS 軟體源分發,與系統 Python / Homebrew 無衝突。

  3. 03
    驗證守護程序與健康檢查

    執行 openclaw status,確認 Policy Engine、Sandbox Runtime、Audit Bus 三項均為 healthy

安裝命令

在實例 SSH 工作階段中執行:

curl -fsSL https://api.pixvps.com/openclaw/install.sh | bash

openclaw auth login --token <instance-token>

openclaw status

建議把 instance-token 存入 1Password / Bitwarden 等專案金鑰庫,而非明文寫在倉庫裡。 若 token 外洩,可在控制台「輪換實例令牌」使舊 token 立即失效,不影響已執行的沙箱工作階段,但新工作階段須用新 token 鑑權。

CLI 命令與首個沙箱任務

OpenClaw CLI 的設計目標是「維運人員能在 SSH 裡完成 90% 操作」,圖形介面僅用於審計檢索與緊急旁路。 下面是一套最小可執行流程:建立沙箱 → 綁定策略 → 在沙箱內執行 Agent 腳本。

快速上手命令序列

openclaw sandbox create --name dev-agent --policy ./policies/readonly.yaml

openclaw sandbox exec dev-agent -- /bin/zsh -lc 'ls -la /workspace'

openclaw sandbox list

openclaw sandbox stop dev-agent

sandbox create 會在 /var/openclaw/sandboxes/<id>/ 下分配獨立工作區, 並把策略檔案雜湊寫入審計日誌,便於事後追溯「當時允許了哪些路徑」。 sandbox exec 是除錯利器:在連線完整 Agent 編排之前,先用它驗證策略是否過嚴或過鬆。

我們在首個任務裡讓 Agent 克隆私有 Git 倉庫並跑測試。踩坑點:預設策略禁止存取 ~/.gitconfig, 導致 HTTPS 憑證讀取失敗。解法是在策略裡為 ~/.gitconfig 增加唯讀白名單,或改用 SSH deploy key 並單獨授權 ~/.ssh/deploy_key

權限 YAML:從唯讀到可寫建置

策略檔案採用宣告式 YAML,版本欄位 apiVersion: openclaw.pixvps.com/v2。 核心結構分 filesystemprocessnetwork 三塊; 每塊支援 allow 清單與 deny 清單,deny 優先於 allow

唯讀程式碼分析策略(readonly.yaml)

apiVersion: openclaw.pixvps.com/v2

kind: SandboxPolicy

metadata:

  name: readonly-analyzer

spec:

  filesystem:

    allow:

      - path: /workspace

        access: [read]

    deny:

      - path: "**/Keychains/**"

      - path: "**/.ssh/**"

  process:

    allow: [git, rg, python3]

  network:

    egress: deny-all

建置類 Agent 需要寫 /workspace、呼叫 xcodebuild 並存取 npm registry。 此時把 filesystem.allow/workspace 的 access 改為 [read, write], 在 process.allow 加入 xcodebuildswiftnpm, 並把 network.egress 改為 allow-list 並列出 registry.npmjs.org:443github.com:443 等網域。

Agent 場景 檔案系統 程序白名單 網路
靜態程式碼審查 /workspace 唯讀 git, rg, python3 禁止出站
iOS 建置 Agent /workspace 讀寫;鑰匙圈路徑 deny xcodebuild, codesign, fastlane Apple / GitHub 網域白名單
文件抓取 Agent /workspace 讀寫 curl, python3 指定文件站 HTTPS
維運巡檢 Agent 唯讀系統日誌路徑 log, df, top 禁止出站

策略變更用 openclaw policy apply -f ./policies/build.yaml --sandbox dev-agent 熱更新; 引擎會校驗 YAML 語法與路徑衝突,拒絕「同時 allow 和 deny 同一路徑」的配置。 建議把策略檔案納入 Git 倉庫,在 PR 裡做 code review——權限擴張與業務程式碼變更同等重要。

多使用者零信任連線

上線環境裡往往不止一位工程師需要觀察或除錯 Agent,但又不應共享同一個 SSH 私鑰。 OpenClaw 與 PixVPS 零信任閘道整合:每位使用者在控制台「團隊成員」頁面領取個人裝置憑證, 經 MFA 驗證後獲得時效性 SSH 憑證(預設 8 小時),而非長期密碼。

角色分三級:viewer 只能讀審計日誌;operator 可建立/停止沙箱、執行 sandbox execadmin 可修改策略與輪換令牌。角色綁定在控制台完成,CLI 側用 openclaw auth whoami 可查看當前身份。

安全提醒

切勿把 instance-token 寫入 GitHub Actions 明文 secret 並觸發 fork PR 工作流—— 與 CI Runner 令牌同理,應在倉庫設定中限制 workflow 觸發範圍,或使用 PixVPS 提供的短期 OIDC 聯合令牌。 離職成員務必在控制台立即吊銷其裝置憑證,審計日誌會保留該使用者歷史操作記錄。

CI/CD 與自動化流水線整合

當 Agent 任務從「人工觸發」變為「每次 push 自動跑」,需要把 OpenClaw 工作階段納入流水線編排。 典型架構:GitHub Actions self-hosted Runner 跑在同一台 PixVPS M4 節點上, workflow 步驟裡先 openclaw sandbox create,再在裡面執行 Agent 入口腳本,最後 sandbox stop 並上傳審計摘要。

GitHub Actions 步驟範例

- name: Run Agent in OpenClaw sandbox

  run: |

    openclaw sandbox create --name ci-${{ github.run_id }} \

      --policy ./ops/openclaw/ci-build.yaml

    openclaw sandbox exec ci-${{ github.run_id }} -- \

      ./scripts/agent-entry.sh

    openclaw audit export --sandbox ci-${{ github.run_id }} \

      --format jsonl -o ./audit-${{ github.run_id }}.jsonl

    openclaw sandbox stop ci-${{ github.run_id }}

Jenkins 側可封裝為共享 Pipeline 庫函式,在 post { always { ... } } 區塊強制匯出審計, 避免 Agent 失敗後仍遺留殭屍沙箱佔用磁碟。我們實測單沙箱工作區峰值約 2.4 GB(含 DerivedData), 16 GB 統一記憶體的 M4 節點可同時跑 2 個建置沙箱而不觸發 swap;更多並行請考慮 TB5 多機並聯或拆分 Runner。

審計日誌檢索與常見故障排查

審計是 OpenClaw 的生產價值核心。每次攔截與放行都會寫入 Audit Bus,欄位包括 timestampsandbox_idpolicy_hashactiontargetdecisionactor。 CLI 檢索範例:

openclaw audit tail --sandbox dev-agent --follow 即時追蹤; openclaw audit query --since 24h --decision deny 查看近 24 小時被拒絕的操作; openclaw audit export --format jsonl -o audit.jsonl 匯出做法務或 SOC2 證據鏈。

現象 可能原因 處理建議
openclaw status 顯示 Audit Bus unhealthy 磁碟佔用超過 85%,日誌輪轉失敗 執行 openclaw audit vacuum --before 30d 或擴容 SSD 附加項
Agent 報 E_POLICY_DENY: filesystem 策略未白名單目標路徑 audit query --decision deny 確認路徑後更新 YAML
sandbox create 逾時 併發沙箱數達到實例上限(預設 5) sandbox list 清理殭屍工作階段,或調控制台配額
網路請求被攔但網域已加入白名單 未寫埠或 CDN CNAME 未覆蓋 *:443 模式或抓包核對真實連線目標
SSH 憑證登入失敗 裝置憑證過期或 MFA 未續期 控制台重新簽發;檢查本機系統時間

若策略引擎本身異常,控制台提供「安全旁路」開關——僅限 admin 角色、且每次啟用最長 15 分鐘, 所有旁路操作會以最高級別寫入審計。上線環境除非 P0 事故,不建議開啟。

上生產:在雲端 Mac 按節奏部署 Agent 沙箱

回到最初的問題:Agent 需要 macOS,但又不該在裸機上亂跑—— 自建辦公室 Mac 要承擔電費與維運,公有雲 macOS 實例往往虛擬化且缺少 OpenClaw 這類操作級審計。 PixVPS 的方案是獨享實體 Mac mini M4 + 原生 OpenClaw 整合: 付款後 1–5 分鐘交付,SSH / VNC 連線,五節點(新加坡、日本東京、韓國首爾、中國香港、美國東部)按延遲選擇, 按天 $21.1 起租,Agent 實驗期用完即釋,穩定後再轉按月 $105.7 常駐。

推薦落地路徑:先在單節點用唯讀策略跑通 Agent 邏輯 → 逐步放開 /workspace 寫權限與網路白名單 → 將策略 YAML 納入 Git 並連線 CI → 為團隊成員配置零信任憑證分級授權。 需要跑本地模型推理時,M4 的 38 TOPS Neural Engine 可在沙箱外做端側加速,與沙箱策略正交、互不干擾。 更短的五分鐘入門可參考同系列的OpenClaw 沙箱快速上手一文。

  1. 01
    選擇節點並開通實例

    下單頁選定區域與租期,付款後於控制台啟用 OpenClaw 並儲存 instance-token。

  2. 02
    安裝 CLI、提交首份唯讀策略

    sandbox exec 驗證 Agent 入口腳本在約束下可執行,再逐步放開寫權限。

  3. 03
    連線 CI 與團隊零信任

    workflow 中強制匯出審計;為成員分配 viewer / operator / admin 角色,定期輪換令牌。

AI Agent 上生產的門檻,不在於模型多強,而在於每一次系統呼叫是否可預期、可追溯、可回滾。 OpenClaw 把這件事拆成了可版本化的 YAML 與可檢索的審計日誌; PixVPS 則提供不被虛擬化稀釋的 Apple Silicon 算力與分鐘級交付。 兩者組合,是在 macOS 上跑自動化 Agent 時,兼顧效率與合規的一條務實路徑。

實體機獨享 · 1–5 分鐘交付

給 AI Agent 一台帶 OpenClaw 沙箱的雲端 Mac

PixVPS Mac mini M4 獨享節點內建 OpenClaw:操作級隔離、零信任連線、90 天審計保留, 16 GB 統一記憶體與 38 TOPS 端側推理,按天 $21.1 起,全球五節點可選。

標準配置
晶片Apple M4 · 38 TOPS
CPU10 核獨享
記憶體16 GB 統一
頻寬1 Gbps 獨享
SLA99.9%
交付1–5 分鐘