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