Claude Managed Agents 自架沙箱與 MCP Tunnels 完整教學 — 讓 AI Agent 在你自己的基礎設施上跑
你要跑一個 Claude agent 自動處理 Jira ticket。
問題是這個 Jira 在公司 VPN 後面、沒有 public endpoint,外面打不進來。傳統做法你會做什麼?開個反向代理、租個跳板機、塞個 OAuth proxy 在 DMZ、然後跟資安部門吵兩個月。最後上線時候那個架構複雜到沒人敢動。
Anthropic 5 月 19 日為 Claude Managed Agents 加了兩個東西,讓上面那段話可以縮成「裝個 daemon、跑一個指令、收工」:Self-hosted sandboxes(自架沙箱)和 MCP Tunnels(私有通道)。前者把 tool 執行搬回你自己的機房,後者讓 Anthropic 那邊的 agent 不開外網就能連你內網的 MCP server。
要看懂這兩個功能設計上的精巧之處,要先把「Claude agent 到底由幾塊組成」這件事拆開來。
一個 AI Agent 拆成兩塊:思考 vs 動手
把 agent 想成餐廳:
主廚坐在中央廚房想菜單、看訂單、決定接下來該炒哪盤——這是 agent loop,負責 orchestration(決定下一步)、context management(記得目前進度)、error recovery(菜炒壞了怎麼辦)。
雜工是真正動手切菜、開瓦斯、洗鍋子的人——這對應 tool execution,實際把 read_file、write_file、run_shell 這些指令跑出來。
過去 Anthropic 的設計是把主廚跟雜工綁在同一個 sandbox 裡,全部跑在 Anthropic 的基礎設施上。這對「給 Claude 一個任意題目讓它自己玩」沒問題,但只要你的 agent 要碰公司資料——客戶清單、財報草稿、內網檔案——這套架構就會讓資安團隊馬上跳出來:「我們的資料怎麼會跑到 Anthropic 的機器上?」
Self-hosted sandboxes 做的事很簡單:雜工搬回你家。主廚還是在 Anthropic 的中央廚房(agent loop),但所有實際碰資料的動作都在你自己控制的環境跑。
MCP Tunnels 解決的是另一個問題:主廚怎麼問你家冰箱有什麼。MCP server 是 agent 拿到「外部知識」的橋——可能是公司的內部知識庫、Jira、PostgreSQL。但這些東西放在你 VPN 裡面,主廚一打過去就被防火牆擋掉。
Self-hosted Sandboxes:把 tool 執行搬回自己機房
機制比直覺更簡單。你在自己機房(或雲端 VM)跑一個叫 environment worker 的 process,它的工作只有一件事:接收 Anthropic 那邊 agent loop 發過來的 tool 執行請求,在本地跑掉,把結果回傳。
1 | [Anthropic 雲端 Agent Loop] |
關鍵設計是「敏感資料永遠不離開你的網路邊界」。檔案在你機房被讀,內容被當作 tool 結果送回 agent——但那個檔案本身、那個 Python package、那個 service 連線,都還在你家。
官方公開測試版本目前認證了四家 managed provider,各自定位不同:
四家認證 provider 怎麼選
Cloudflare — 推出時就最完整:除了基礎 sandbox 還加了 egress control(控制 sandbox 對外連線白名單)、browser access(agent 可以開瀏覽器)、custom tool 支援。Cloudflare 的 Sandbox SDK 是這四家裡 lift-and-shift 摩擦力最低的選擇。
Daytona — 完整的可組裝電腦(full composable computers)。每個 sandbox 都是長期運行、有狀態的——你可以 SSH 進去看 agent 操作到哪、可以 pause + restore 保留所有狀態。適合需要「人類接手 debug」的場景。
Modal — Anthropic 文件直接寫「為 AI workload 而生」。sandbox 跟 Modal 既有的 functions、storage、networking primitives 共享底層。custom container runtime 號稱任何 image 都 sub-second 啟動,可以擴到上萬個並發 sandbox,CPU/GPU 隨點隨開。
Vercel — 沒在搜尋結果裡單獨展開,但定位是給 Next.js + serverless 已經 all-in 在 Vercel 的團隊一個「不換 vendor 就能加 agent」的選項。
選哪家的問題比想像中單純:你公司現在主要雲端基礎設施在哪邊,就選哪邊。換 vendor 加 agent 的複雜度遠高於 agent 本身。
從零部署:以 Cloudflare 為例
最完整且摩擦力最低的路徑是 Cloudflare。流程不到十分鐘:
1 | # 1. 安裝 Cloudflare Sandbox SDK |
註冊成功後,下次你建立 agent 時可以指定:
1 | import anthropic |
egress_allowlist 是 Cloudflare 整合的賣點之一:你可以白名單化 sandbox 能對外連到哪幾個 host。Agent 想偷打去其他地方?被 Cloudflare 擋掉。這對於資安部門要簽核的時候差很多——你能拿出一個 host 清單講「就只能去這幾個地方」。
自己手搓 environment worker(不用 managed provider)
如果你不想綁 Cloudflare/Modal 這類 provider,自己跑 environment worker 也可以。Anthropic 提供了 Python SDK:
1 | # environment_worker.py |
跑起來這個 process,它會跟 Anthropic 建立一個 outbound 長連線、等待 agent loop 派發 tool 執行請求。沒有 inbound port、沒有對外公開的 endpoint。這是核心安全設計。
MCP Tunnels:讓 Agent 連進你的內網而不需要開門
Self-hosted sandbox 解決了「tool 執行在哪跑」,但還沒解決一個常見場景:你的 MCP server 在 VPN 後面。
MCP server 是 agent 拿到「外部知識」的橋。可能是你公司自己寫的 Jira 連接器、可能是接你內部知識庫的 RAG server、可能是接 PostgreSQL 的 query MCP。問題是這些東西放在內網,Anthropic 那邊的 agent loop 怎麼打進來?
過去的解決方案讓資安部門很頭痛:
- 開個反向代理在 DMZ → 增加攻擊面
- 把 MCP server 部署到公雲 → 資料離開公司
- 跑 ngrok 或 cloudflared → 流量不受控
MCP Tunnels 走的是相反的方向:讓 tunnel 是你打出去的、不是 Anthropic 打進來的。
工作原理(用打電話來類比)
想像你要跟外面某個人講話,但你家門禁森嚴不讓人按門鈴。怎麼辦?你自己打電話出去——電話線是你拉的、你決定什麼時候掛、你看得到對方號碼。對方雖然能透過這條電話線跟你講話,但他沒辦法在你家門口出現。
MCP Tunnel 就是這條電話線:
1 | [你機房] |
關鍵設計:
- single outbound connection:你機房對外只開一個 outbound TLS 連線
- no inbound firewall rules:不需要在防火牆開洞讓 Anthropic 打進來
- no public endpoints:你的 MCP server 沒有 public IP、沒有 public DNS
- end-to-end encrypted:tunnel 內所有 traffic TLS 加密
如果你熟悉 SSH reverse tunnel 或 Cloudflare Tunnel,這個概念你已經懂了——只是這次的對端是 Anthropic Workspace、語意層是 MCP。
設定 MCP Tunnel
整個操作在 Claude Console 走完。MCP Tunnels 目前是 research preview,要先在 workspace settings 申請存取權。拿到權限後流程:
1 | # 1. 在 Claude Console 建立一個 tunnel |
接下來你建 agent 的時候,MCP server 就像直接掛在 Anthropic workspace 上一樣可用:
1 | response = client.managed_agents.create( |
注意一個 tunnel 可以代理多個 MCP server(用 path 區分),不需要每個 server 拉一條 tunnel。
MCP Tunnel 不限於 Managed Agents
文件裡有個容易被忽略但很重要的細節:MCP Tunnels 同時支援 Messages API。意思是即使你不用 Managed Agents(你用自己的 Anthropic SDK 應用程式呼叫 Claude),一樣可以透過 MCP Tunnel 給 Claude 接到你內網的 MCP server。
這個彈性把整個 Anthropic 開發者平台變成「你內網的延伸」——只要你有 outbound 網路,內網資料就能被 Claude 用上。
Claude Code 的引導設定指令
如果你嫌 console 點來點去太累,最新版 Claude Code 內建了一個 slash command 把整個設定流程包起來:
1 | $ claude |
這個 command 會用對話的方式問你:
- 你是要設定 sandbox 還是 MCP tunnel?
- 用哪家 provider?
- 要連到內網哪個 service?
回答完之後它會自動產出設定檔、跑必要的 deploy command、把結果驗證一遍。對於第一次設定的人來講,這比讀文件快兩倍。
該選哪個?決策框架
工程師最容易犯的錯是「兩個都裝」——不需要。先想清楚你解的是哪個問題:
只用 self-hosted sandbox:你需要 agent 跑 tool(讀檔、跑 shell、改檔),且這些動作要在你機房做。但 MCP server 你沒有,agent 不需要連內網其他 service。
只用 MCP tunnel:你的 agent 跑 Anthropic-managed sandbox 就好,沒有 tool 要在你機房跑。但你有內網 MCP server(Jira、Postgres、ticketing system)要給 agent 用。
兩個都用:完整的「內部 agent」場景——agent 要碰你的檔案、跑你的 service、又要連你的 MCP server。這時兩個一起裝。
決策的核心是「資料的最遠流動範圍」。資料只在 agent loop 出現過、實體不離開你機房 → self-hosted sandbox 就好。資料在 MCP query 裡進出、但 tool execution 不碰它 → MCP tunnel 就好。兩種狀況同時存在 → 兩個都要。
限制與該留意的事
公開測試版本還有幾個值得知道的限制:
Self-hosted sandbox:是 public beta、可以正式使用,但建議在 staging 環境先壓過幾天再上 production。Anthropic 那邊的 agent loop 跟你 environment worker 之間 latency 會反映在 user-facing 速度上。你機房離 Anthropic data center 越遠、agent 反應就越慢——美西的 AWS 跟 Anthropic 美西 region 之間是 30-50ms RTT,台灣機房直連大概 150-200ms。延遲對 multi-step agent 來說會放大十倍以上。
MCP Tunnels:還在 research preview,要排隊申請存取權。Anthropic 沒公開 SLA,正式 Production-grade SLA 要等 GA 階段。
Audit 跟稽核:如果你公司有合規需求要記錄每一次 tool 呼叫,environment worker 需要自己接 logging pipeline。Anthropic 的 audit log 只記到 agent loop 那層、看不到 tool 內部的 input/output。
provider lock-in 風險:四家認證 provider 各自的 API 不完全相容。如果你今天選 Cloudflare、明天想換 Daytona,environment worker 邏輯要重寫。建議把業務邏輯(讀檔、查 DB、呼叫 service)跟 provider SDK 分開包,換 vendor 的時候只動 adapter 那層。
上手練習:你可以今天試什麼
不用等到有正式案件再學。今晚就可以跑一個玩具實驗:
- 在 Anthropic Console 申請 Managed Agents 存取
- 在你 Mac 上跑一個 Python environment worker(不用真機房,本機就行)
- 註冊一個本地 sandbox 到 console
- 建一個 agent,讓它讀你
~/Documents/的一個檔案、用內容寫一個摘要回來 - 觀察 Anthropic Workspace 的 audit log,確認 agent loop 跟 tool execution 確實分離
你會在五分鐘內感受到「agent 在外面想、檔案永遠在我家」是什麼意思。這個感覺一旦建立,後面跟資安部門解釋自架 sandbox 的好處就會容易很多。
延伸閱讀
- Claude Managed Agents 公告 — Anthropic Blog
- Self-hosted sandboxes 官方文件 — Claude API Docs
- Managed Agents Quickstart — Claude API Docs
- Cloudflare Sandbox SDK + Managed Agents 教學 — Cloudflare Developers
- Announcing Claude Managed Agents on Cloudflare — Cloudflare Blog
- Anthropic Introduces MCP Tunnels — InfoQ
- Cloudflare claude-managed-agents GitHub repo










