託管 Agent SDK

Claude Agent SDK 與傳統的無狀態 LLM API 不同,它維護對話狀態並在持久環境中執行命令。本指南涵蓋了在生產環境中部署基於 SDK 的代理的架構、託管考量和最佳實踐。

了解 SDK 架構

長時間運行的進程模型

與無狀態 API 調用不同,Claude Agent SDK 作為長時間運行的進程運行,它:
  • 執行命令在持久的 shell 環境中
  • 管理檔案操作在工作目錄內
  • 處理工具執行使用來自先前互動的上下文

託管要求

基於容器的沙盒

為了安全性和隔離性,SDK 應該在沙盒容器環境中運行。這提供了:
  • 進程隔離 - 每個會話的獨立執行環境
  • 資源限制 - CPU、記憶體和儲存約束
  • 網路控制 - 限制出站連接
  • 臨時檔案系統 - 每個會話的乾淨狀態

系統要求

每個 SDK 實例需要:
  • 運行時依賴項
    • Python 3.10+(用於 Python SDK)或 Node.js 18+(用於 TypeScript SDK)
    • Node.js(Claude Code CLI 所需)
    • Claude Code CLI:npm install -g @anthropic-ai/claude-code
  • 資源分配
    • 建議:1GiB RAM、5GiB 磁碟空間和 1 CPU(根據您的任務需要進行調整)
  • 網路存取
    • api.anthropic.com 的出站 HTTPS
    • 可選:存取 MCP 伺服器或外部工具

沙盒提供商選項

幾個提供商專門提供用於 AI 程式碼執行的安全容器環境:

生產部署模式

模式 1:臨時會話

為每個使用者任務建立新容器,完成後銷毀它。 最適合一次性任務,使用者仍可能在任務完成時與 AI 互動,但一旦完成容器就會被銷毀。 範例:
  • 錯誤調查和修復:使用相關上下文除錯和解決特定問題
  • 發票處理:從收據/發票中提取和結構化資料用於會計系統
  • 翻譯任務:在語言之間翻譯文件或內容批次
  • 圖像/影片處理:對媒體檔案應用轉換、最佳化或提取元資料

模式 2:長時間運行會話

為長時間運行的任務維護持久容器實例。通常根據需求在容器內運行_多個_ Claude Agent 進程。 最適合在沒有使用者輸入的情況下主動採取行動的代理、提供內容的代理或處理大量訊息的代理。 範例:
  • 電子郵件代理:監控傳入電子郵件並根據內容自主分類、回應或採取行動
  • 網站建構器:為每個使用者託管自訂網站,具有通過容器埠提供的即時編輯功能
  • 高頻聊天機器人:處理來自 Slack 等平台的連續訊息流,其中快速回應時間至關重要

模式 3:混合會話

使用歷史記錄和狀態進行水合的臨時容器,可能來自資料庫或來自 SDK 的會話恢復功能。 最適合與使用者間歇性互動的容器,啟動工作並在工作完成時關閉,但可以繼續。 範例:
  • 個人專案管理員:幫助管理正在進行的專案,間歇性檢查,維護任務、決策和進度的上下文
  • 深度研究:進行多小時的研究任務,保存發現並在使用者返回時恢復調查
  • 客戶支援代理:處理跨越多次互動的支援票證,載入票證歷史記錄和客戶上下文

模式 4:單一容器

在一個全域容器中運行多個 Claude Agent SDK 進程。 最適合必須密切協作的代理。這可能是最不受歡迎的模式,因為您必須防止代理相互覆蓋。 範例:
  • 模擬:在模擬中相互互動的代理,例如電子遊戲。

常見問題

如何與我的沙盒通訊?

在容器中託管時,公開埠以與您的 SDK 實例通訊。您的應用程式可以為外部客戶端公開 HTTP/WebSocket 端點,而 SDK 在容器內部運行。

託管容器的成本是多少?

我們發現服務代理的主要成本是代幣,容器根據您提供的內容而有所不同,但最低成本大約是每小時運行 5 美分。

何時應該關閉空閒容器與保持它們溫暖?

這可能取決於提供商,不同的沙盒提供商會讓您為空閒超時設定不同的標準,之後沙盒可能會關閉。 您需要根據您認為使用者回應的頻率來調整此超時。

我應該多久更新一次 Claude Code CLI?

Claude Code CLI 使用 semver 進行版本控制,因此任何破壞性變更都將進行版本控制。

如何監控容器健康狀況和代理效能?

由於容器只是伺服器,您用於後端的相同日誌基礎設施將適用於容器。

代理會話在超時之前可以運行多長時間?

代理會話不會超時,但我們建議設定 ‘maxTurns’ 屬性以防止 Claude 陷入迴圈。

下一步