Agent SDKのホスティング

Claude Agent SDKは、会話の状態を維持し、永続的な環境でコマンドを実行するという点で、従来のステートレスなLLM APIとは異なります。このガイドでは、本番環境でSDKベースのエージェントをデプロイするためのアーキテクチャ、ホスティングの考慮事項、およびベストプラクティスについて説明します。

SDKアーキテクチャの理解

長時間実行プロセスモデル

ステートレスなAPI呼び出しとは異なり、Claude Agent SDKは以下を行う長時間実行プロセスとして動作します:
  • 永続的なシェル環境でコマンドを実行
  • 作業ディレクトリ内でファイル操作を管理
  • 以前のインタラクションからのコンテキストを使用してツール実行を処理

ホスティング要件

コンテナベースのサンドボックス化

セキュリティと分離のため、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のディスク、1CPU(必要に応じてタスクに基づいて調整)
  • ネットワークアクセス
    • api.anthropic.comへのアウトバウンドHTTPS
    • オプション:MCPサーバーまたは外部ツールへのアクセス

サンドボックスプロバイダーオプション

AIコード実行のための安全なコンテナ環境を専門とするプロバイダーがいくつかあります:

本番デプロイメントパターン

パターン1:エフェメラルセッション

各ユーザータスクに対して新しいコンテナを作成し、完了時に破棄します。 一回限りのタスクに最適で、タスクの完了中にユーザーはAIと対話できますが、完了するとコンテナは破棄されます。 例:
  • バグ調査と修正:関連するコンテキストで特定の問題をデバッグして解決
  • 請求書処理:会計システム用にレシート/請求書からデータを抽出して構造化
  • 翻訳タスク:言語間でドキュメントやコンテンツバッチを翻訳
  • 画像/動画処理:メディアファイルに変換、最適化を適用、またはメタデータを抽出

パターン2:長時間実行セッション

長時間実行タスクのために永続的なコンテナインスタンスを維持します。多くの場合、需要に基づいてコンテナ内で_複数の_Claude Agentプロセスを実行します。 ユーザーの入力なしに行動を取るプロアクティブなエージェント、コンテンツを提供するエージェント、または大量のメッセージを処理するエージェントに最適です。 例:
  • メールエージェント:受信メールを監視し、コンテンツに基づいて自律的にトリアージ、応答、またはアクションを実行
  • サイトビルダー:コンテナポートを通じて提供されるライブ編集機能を持つユーザーごとのカスタムWebサイトをホスト
  • 高頻度チャットボット:Slackなどのプラットフォームからの継続的なメッセージストリームを処理し、迅速な応答時間が重要

パターン3:ハイブリッドセッション

履歴と状態で水和されるエフェメラルコンテナ。データベースまたはSDKのセッション再開機能から可能です。 ユーザーからの断続的な対話があり、作業を開始して作業完了時にスピンダウンするが継続可能なコンテナに最適です。 例:
  • パーソナルプロジェクトマネージャー:断続的なチェックインで進行中のプロジェクトを管理し、タスク、決定、進捗のコンテキストを維持
  • 深い調査:数時間にわたる調査タスクを実行し、発見を保存してユーザーが戻ったときに調査を再開
  • カスタマーサポートエージェント:複数のインタラクションにまたがるサポートチケットを処理し、チケット履歴と顧客コンテキストを読み込み

パターン4:単一コンテナ

1つのグローバルコンテナで複数のClaude Agent SDKプロセスを実行します。 密接に連携する必要があるエージェントに最適です。エージェント同士が互いを上書きしないようにする必要があるため、これは最も人気の少ないパターンと思われます。 例:
  • シミュレーション:ビデオゲームなどのシミュレーションで互いに対話するエージェント。

FAQ

サンドボックスとどのように通信しますか?

コンテナでホスティングする場合、SDKインスタンスと通信するためにポートを公開します。SDKがコンテナ内部で実行されている間、アプリケーションは外部クライアント用にHTTP/WebSocketエンドポイントを公開できます。

コンテナのホスティングコストはいくらですか?

エージェントを提供する際の主要なコストはトークンであることがわかっています。コンテナはプロビジョニングするものによって異なりますが、最小コストは実行時間あたり約5セントです。

アイドルコンテナをシャットダウンするタイミングと、ウォーム状態を保つタイミングはいつですか?

これはプロバイダーに依存する可能性があります。異なるサンドボックスプロバイダーでは、サンドボックスがスピンダウンする可能性があるアイドルタイムアウトに異なる基準を設定できます。 ユーザーの応答がどの程度頻繁になると思うかに基づいて、このタイムアウトを調整する必要があります。

Claude Code CLIをどのくらいの頻度で更新すべきですか?

Claude Code CLIはsemverでバージョン管理されているため、破壊的変更はバージョン管理されます。

コンテナの健全性とエージェントのパフォーマンスをどのように監視しますか?

コンテナは単なるサーバーなので、バックエンドで使用するのと同じロギングインフラストラクチャがコンテナでも機能します。

エージェントセッションはタイムアウトするまでどのくらい実行できますか?

エージェントセッションはタイムアウトしませんが、Claudeがループで行き詰まることを防ぐために’maxTurns’プロパティを設定することをお勧めします。

次のステップ