跳到主要內容
AI News HubLIVE
站內改寫3 分鐘閱讀

Anthropic 發佈 sandbox-runtime:為 AI 智能體提供操作系統級沙箱,無需容器

文章摘要

Anthropic 開源了 sandbox-runtime(srt),這是 Claude Code 沙箱化 bash 工具背後的操作系統級沙箱。它藉助 macOS 的 Seatbelt 和 Linux 的 bubblewrap 限制進程可訪問的文件與網絡主機,無需啓動容器,也可包裹自研智能體、本地 MCP 服務器和普通命令行程序。

來源MarkTechPost作者: Asif Razzaq
Anthropic 發佈 sandbox-runtime:為 AI 智能體提供操作系統級沙箱,無需容器
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

本文將討論近期在開源社區引發關注的 Anthropic sandbox-runtime(簡稱 srt)。它是 Claude Code 沙箱化 bash 工具背後的操作系統級沙箱,用於限制一個進程能夠訪問哪些文件、能夠連接到哪些主機,而且無需啓動容器。srt 並不侷限於 Claude Code:你自己的智能體、本地 MCP 服務器以及普通命令行程序都可以在它內部運行。

速覽(TL;DR)

  • 體積與許可:npm 包 @anthropic-ai/sandbox-runtime v0.0.81,解包後約 11.4 MB,採用 Apache-2.0 許可,要求 Node.js 22.12+。
  • 運行環境:任何 macOS 或 Linux 開發機與 CI 機器均可。macOS 使用 Seatbelt;Linux 需要 bubblewrap、socat 和 ripgrep。Windows 支持處於 alpha 階段。
  • 性能:Anthropic 內部使用數據顯示,沙箱化使 Claude Code 的權限提示減少了 84%(為官方自報數據)。
  • 最佳情況:權限提示減少 84%,同時對整個進程樹施加文件與網絡限制。
  • 最差情況:仍屬 beta 研究預覽版,Windows 支持為 alpha。

什麼是 Anthropic sandbox-runtime?

Anthropic sandbox-runtime 是一個開源工具,可以為任意進程套上文件系統與網絡限制。安裝方式為 npm install -g @anthropic-ai/sandbox-runtime,隨後在命令前加上 srt 前綴即可運行。它既可作 CLI 使用,也可作為 TypeScript 庫調用。

在 macOS、Linux 與 Windows 上如何工作?

srt 使用各操作系統自身的隔離原語,其限制覆蓋整個進程樹,包括腳本與子進程。

  • macOS:使用 sandbox-exec 配合動態生成的 Seatbelt 配置文件,僅需 ripgrep。
  • Linux:使用 bubblewrap 並移除網絡命名空間,另外需要 socat 與 ripgrep。
  • Windows(alpha):使用專用的 srt-sandbox 賬户、Windows Filtering Platform 出站圍欄以及顯式的文件 ACL。

流量只能通過宿主機上運行的 HTTP 與 SOCKS5 代理離開。在 Linux 上,這些代理位於綁定掛載進沙箱的 Unix 套接字後面;在 macOS 上,Seatbelt 配置只允許一個 localhost 端口。代理隨後應用你的域名允許列表與拒絕列表。

為什麼同時需要文件系統與網絡隔離?

Anthropic 團隊認為,只有其中一道邊界而缺少另一道就會失效。如果沒有網絡隔離,被提示注入的智能體可能竊取 SSH 密鑰並外傳;如果沒有文件系統隔離,它可能逃出沙箱並獲得網絡訪問能力。

srt 的默認值遵循這一邏輯:讀取默認在所有位置允許,除非被拒絕;寫入默認在所有位置拒絕,除非被允許;網絡訪問默認拒絕,除非某個域名被加入允許列表。

如何為 MCP 服務器或你自己的智能體加上沙箱?

對於 MCP 服務器,只需把 .mcp.json 中的命令從 npx 改為 srt,並將原命令作為參數傳入。規則隨後寫在 ~/.srt-settings.json 中,例如設置 network 的 allowedDomains(如 api.github.com、*.npmjs.org)與 deniedDomains,以及 filesystem 的 denyRead(如 ~/.ssh)、allowWrite(如 .)和 denyWrite(如 .env)。

對於你自己的智能體,該庫提供 SandboxManager:調用 initialize(config) 啓動代理,然後用 wrapWithSandbox() 返回一個可被 spawn 的包裝後命令字符串。

84% 這個數字意味着什麼?

Anthropic 報告稱,內部 Claude Code 使用中沙箱化將權限提示減少了 84%。這是自報數字,並非外部基準測試。其目標是緩解“審批疲勞”:整天點擊“批准”的開發者最終會不再閲讀自己批准的內容。固定邊界讓智能體可以在邊界內自由工作,只在邊緣處請求授權。

真正的權衡:嚴格的允許列表與可用的智能體

編碼智能體不只是編輯文件,它們還會安裝依賴、獲取文檔、調用 API。允許列表太嚴格,npm install 會失敗;太寬鬆,沙箱便幾乎起不到保護作用。srt 提供了若干調節項來尋找中間地帶:

  • 通配符與端口:如 *.npmjs.org 或 api.example.com:443。
  • Ask 回調:決定沒有規則覆蓋的主機如何處理,並可返回一個模型能讀取的理由。
  • 按命令允許列表:僅為某一次調用臨時開放某個註冊源。
  • 實時更新:--control-fd 可在命令運行期間切換網絡列表。
  • 解析地址檢查:阻止解析到迴環地址或雲元數據 IP 的被允許域名。
  • 拒絕域名理由:告訴智能體被認可的替代方案,例如改用 HTTPS git 遠程地址。

與其他智能體沙箱的對比

  • 隔離方式:Anthropic sandbox-runtime 使用 OS 原語(Seatbelt、bubblewrap、Windows 賬户 + WFP);OpenAI Codex CLI 沙箱使用 OS 原語(Seatbelt、bubblewrap、原生 Windows 沙箱);Docker Sandboxes 為每個沙箱一個 microVM;E2B 為每個會話一個 Firecracker microVM。
  • 運行位置:srt 與 Codex 在本機;Docker Sandboxes 在本機;E2B 在雲或 BYOC(AWS、GCP)。
  • 是否需要容器或虛擬機:srt 不需要;Codex 不需要;Docker Sandboxes 需要(microVM);E2B 需要(託管 microVM)。
  • 能否在其自身智能體之外使用:srt 可以,提供 CLI + 庫,適用於任意進程;Codex 內置於 Codex;Docker Sandboxes 提供 sbx CLI 供編碼智能體使用;E2B 提供 JS 與 Python SDK。
  • 網絡默認值:srt 默認全部拒絕,經代理允許列表;Codex 在 workspace-write 下默認關閉,可配置開關;Docker Sandboxes 在首次啓動時選擇策略(如全部拒絕、平衡);E2B 默認開啓,可禁用。
  • 域名允許列表:srt 支持通配符與端口;Codex 未披露(文檔僅有開/關切換);Docker Sandboxes 支持通配符與端口;E2B 通過 allowOut 支持通配符(基於 SNI/Host)。
  • 許可:srt 為 Apache-2.0;Codex 為 Apache-2.0;Docker Sandboxes 未披露;E2B 的 SDK 為 Apache-2.0。
  • 狀態:srt 為 beta 研究預覽,Windows 為 alpha;Codex 已隨 Codex CLI 發佈;Docker Sandboxes 為已發佈產品;E2B 為已發佈產品。

要點

  • srt 在操作系統層為任意進程加沙箱,無需容器。
  • macOS 使用 Seatbelt,Linux 使用 bubblewrap,Windows 處於 alpha。
  • 網絡默認拒絕;每個連接都經過宿主機側的允許列表代理。
  • Anthropic 報告 Claude Code 權限提示減少 84%(內部數據)。
  • 允許列表的寬窄才是真正的安全旋鈕;過寬的域名可能導致數據外泄。

你可以查看 GitHub 倉庫、Anthropic 工程博客以及 Claude Code 沙箱文檔以瞭解更多細節。所有功勞歸於該項目的 safety 研究者。

展開要點與分析

文章情報

工程師進階

要點

  • srt 以 npm 包 @anthropic-ai/sandbox-runtime v0.0.81 發佈,解壓後約 11.4 MB,採用 Apache-2.0 許可,需 Node.js 22.12+。
  • macOS 使用 Seatbelt,Linux 依賴 bubblewrap、socat 和 ripgrep,Windows 支持仍為 alpha。
  • 默認策略為讀取寬鬆、寫入默認拒絕、網絡默認拒絕並經過宿主機代理白名單。
  • Anthropic 稱內部使用中沙箱將 Claude Code 的權限提示減少了 84%(自我報告數據)。

技術影響

可能影響 Agent 架構、工具調用、工作流自動化和產品集成。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。