跳到主要內容
Lab Grimoire
TW EN
請喝咖啡
ai-tools

agent-seatbelt-sandbox

利用 macOS 原生 Apple Seatbelt 在 kernel 層為 AI Agent 建立網路沙盒的 POC。雙層防護設計優雅(kernel 封鎖 + proxy 審計),但僅 4 commits、sandbox-exec 已 deprecated。適合作為自製 Agent 沙盒的靈感來源,不建議直接依賴。

最適合誰

macOS 開發者,想讓 AI Agent(Claude Code、Goose 等)在自主模式下有 kernel 層安全邊界。特別是那些想理解「如何在作業系統層面限制 Agent 網路存取」的進階使用者。這不是一個可以直接 fork 來用的成品,而是一個設計優雅的概念驗證。

我實際怎麼用

未正式採用,但記錄了三個關鍵技術點作為未來自製沙盒的參考:Seatbelt profile 語法、NODE_OPTIONS="--use-env-proxy" 讓 Node.js fetch 走 proxy 的技巧、以及本地 HTTP proxy + 即時域名封鎖的架構模式。

真正強的地方

  • macOS Seatbelt 在 syscall 層面 deny connect(),子行程繼承且無法透過任何 application-level 手段逃脫。比環境變數或 hooks 之類的防護,安全等級高出一個數量級
  • Fail-safe 設計:不尊重 proxy 環境變數的工具會直接收到 EPERM 而失敗,不會默默繞過安全層。沒有「漏網之魚」
  • 動態 egress 控制透過 LaunchDarkly feature flags 實現,不重啟 Agent 就能即時切換域名放行/封鎖
  • 純 Python 標準庫,不需要 Docker、VM、或任何雲端服務

失敗模式與不該用的情境

  • sandbox-exec 已被 Apple 標示為 deprecated。底層 Seatbelt kernel 機制仍活躍(Cursor 也在用),但未來 macOS 版本可能移除 CLI 介面
  • 僅 4 commits、15 Stars、最後更新 2026-02-11,無後續維護跡象。當學習材料看,別當生產依賴
  • 不做 TLS MitM,所以已放行域名上透過 POST body 偷渡資料的行為無法偵測
  • 完全不支援 Linux。跨平台團隊無法統一使用

價格、上手門檻與風險

完全免費,零外部依賴。安裝就是 git clone 後跑 shell script。但門檻在於你需要理解 Seatbelt profile 語法、proxy 機制、和 kernel-level 安全概念。

主要風險:sandbox-exec deprecated 意味著 Apple 隨時可能移除它(雖然短期內因 Cursor 等商業產品依賴,實際上不太可能)。作為 POC 使用時風險可控,作為生產依賴則風險過高。

結論

教科書級的 POC,清楚展示了如何用 macOS 原生機制為 AI Agent 建立 kernel-level 安全邊界。關心 Agent 安全的 macOS 開發者值得研讀原始碼,但別直接 fork 來當生產工具。正確用法是拿它當靈感,結合自己的需求自行實作。

來源

https://github.com/michaelneale/agent-seatbelt-sandbox