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 陷入循环。