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