Claude Agent SDKは従来のステートレスなLLM APIとは異なり、会話状態を維持し、永続的な環境でコマンドを実行します。このガイドでは、本番環境でSDKベースのエージェントをデプロイするためのアーキテクチャ、ホスティングに関する考慮事項、およびベストプラクティスについて説明します。
基本的なサンドボックス以上のセキュリティ強化(ネットワーク制御、認証情報管理、分離オプションを含む)については、セキュアデプロイメントを参照してください。
セキュリティと分離のため、SDKはサンドボックス化されたコンテナ環境内で実行する必要があります。これにより、プロセス分離、リソース制限、ネットワーク制御、および一時的なファイルシステムが提供されます。
SDKは、コマンド実行のためのプログラマティックサンドボックス設定もサポートしています。
各SDKインスタンスには以下が必要です:
ランタイム依存関係
npm install -g @anthropic-ai/claude-codeリソース割り当て
ネットワークアクセス
api.anthropic.comへの送信HTTPSステートレスなAPI呼び出しとは異なり、Claude Agent SDKは以下を行う長時間実行プロセスとして動作します:
AIコード実行用のセキュアなコンテナ環境を専門とするいくつかのプロバイダーがあります:
自己ホスト型オプション(Docker、gVisor、Firecracker)および詳細な分離設定については、分離テクノロジーを参照してください。
各ユーザータスク用に新しいコンテナを作成し、完了時に破棄します。
ワンオフタスクに最適です。ユーザーはタスク完了中もAIと対話できますが、完了後はコンテナが破棄されます。
例:
長時間実行タスク用に永続的なコンテナインスタンスを維持します。多くの場合、需要に基づいてコンテナ内で複数のClaude Agentプロセスを実行します。
ユーザーの入力なしにアクションを取るプロアクティブなエージェント、コンテンツを提供するエージェント、または大量のメッセージを処理するエージェントに最適です。
例:
履歴と状態で水和されたエフェメラルコンテナ。データベースまたはSDKのセッション再開機能から取得される可能性があります。
ユーザーからの断続的なインタラクションがあり、作業をキックオフして作業完了時にスピンダウンするが、継続できるコンテナに最適です。
例:
1つのグローバルコンテナで複数のClaude Agent SDKプロセスを実行します。
密接に協力する必要があるエージェントに最適です。これはおそらく最も人気の低いパターンです。エージェントが互いに上書きするのを防ぐ必要があるためです。
例:
コンテナでホストする場合、SDKインスタンスと通信するためにポートを公開します。アプリケーションは外部クライアント用のHTTP/WebSocketエンドポイントを公開できますが、SDKはコンテナ内で内部的に実行されます。
エージェントを提供する支配的なコストはトークンであることがわかっています。コンテナはプロビジョニング内容に基づいて異なりますが、最小コストは実行時間あたり約5セントです。
これはおそらくプロバイダーに依存します。異なるサンドボックスプロバイダーは、アイドルタイムアウト後にサンドボックスがスピンダウンする可能性がある異なる基準を設定できます。 ユーザーの応答がどのくらい頻繁に発生する可能性があるかに基づいて、このタイムアウトを調整する必要があります。
Claude Code CLIはsemverでバージョン管理されているため、破壊的な変更はバージョン管理されます。
コンテナはサーバーであるため、バックエンド用に使用するのと同じログインフラストラクチャがコンテナで機能します。
エージェントセッションはタイムアウトしませんが、Claudeがループに引っかかるのを防ぐために「maxTurns」プロパティを設定することをお勧めします。