Claude Agent SDK 與傳統的無狀態 LLM API 不同,它維護對話狀態並在持久環境中執行命令。本指南涵蓋了 SDK 型代理在生產環境中部署的架構、託管考慮因素和最佳實踐。
如需超越基本沙箱的安全強化——包括網絡控制、憑證管理和隔離選項——請參閱 安全部署。
為了安全性和隔離,SDK 應在沙箱容器環境中運行。這提供了進程隔離、資源限制、網絡控制和臨時文件系統。
SDK 還支持 程序化沙箱配置 用於命令執行。
每個 SDK 實例需要:
運行時依賴項
npm install -g @anthropic-ai/claude-code資源分配
網絡訪問
api.anthropic.com與無狀態 API 調用不同,Claude Agent SDK 作為 長期運行的進程 運行,該進程:
多個提供商專門提供用於 AI 代碼執行的安全容器環境:
有關自託管選項(Docker、gVisor、Firecracker)和詳細隔離配置,請參閱 隔離技術。
為每個用戶任務創建一個新容器,然後在完成時銷毀它。
最適合一次性任務,用戶可能在任務完成時仍與 AI 交互,但一旦完成,容器就會被銷毀。
示例:
為長期運行的任務維護持久容器實例。通常在容器內根據需求運行 多個 Claude Agent 進程。
最適合主動代理,它們在沒有用戶輸入的情況下採取行動,提供內容的代理或處理大量消息的代理。
示例:
臨時容器,使用歷史和狀態進行補充,可能來自數據庫或 SDK 的會話恢復功能。
最適合與用戶進行間歇性交互的容器,啟動工作並在工作完成時關閉,但可以繼續進行。
示例:
在一個全局容器中運行多個 Claude Agent SDK 進程。
最適合必須緊密協作的代理。這可能是最不受歡迎的模式,因為您必須防止代理相互覆蓋。
示例:
在容器中託管時,公開端口以與您的 SDK 實例通信。您的應用程序可以為外部客戶端公開 HTTP/WebSocket 端點,而 SDK 在容器內部運行。
我們發現服務代理的主要成本是令牌,容器根據您配置的內容而異,但最低成本大約是每小時運行 5 美分。
這可能取決於提供商,不同的沙箱提供商將允許您為空閒超時設置不同的條件,之後沙箱可能會關閉。 您需要根據您認為用戶響應可能的頻率來調整此超時。
Claude Code CLI 使用 semver 進行版本控制,因此任何破壞性更改都將被版本化。
由於容器只是服務器,您用於後端的相同日誌記錄基礎設施將適用於容器。
代理會話不會超時,但我們建議設置 'maxTurns' 屬性以防止 Claude 陷入循環。