仕組み
Amazon Bedrock AgentCore ランタイムは、スケーリング、セッション管理、セキュリティ分離、インフラストラクチャ管理を処理し、運用の複雑さではなくインテリジェントなエージェントエクスペリエンスの構築に集中できます。ここで説明する機能を活用することで、エンタープライズグレードのセキュリティと信頼性を維持しながら、ユーザーに価値を提供する高度な AI エージェントを構築、デプロイ、管理できます。
主要コンポーネント
AgentCore ランタイム
AgentCore ランタイムは、AI エージェントまたはツールコードをホストする基本的なコンポーネントです。これは、ユーザー入力を処理し、コンテキストを維持し、AI 機能を使用してアクションを実行するコンテナ化されたアプリケーションを表します。エージェントを作成するときは、エージェントの動作、機能、およびエージェントがアクセスできるツールを定義します。たとえば、カスタマーサポートエージェントは製品の質問に回答し、返品を処理し、複雑な問題を人間の担当者にエスカレーションする場合があります。
AgentCore CLI または AgentCore Python SDK を使用するか、 SDK から直接 エージェントを構築して AgentCore ランタイムにデプロイできます。 AWS SDKs AgentCore Python SDK を使用すると、LangGraph、CrewAI、Strands Agents などの一般的なフレームワークを使用してエージェントを定義できます。SDK はインフラストラクチャの複雑さを処理するため、エージェントのロジックと機能に集中できます。
各 AgentCore ランタイム:
-
一意の ID がある
-
制御されたデプロイと更新をサポートするようにバージョン管理されています
バージョン
各 AgentCore ランタイムは、特定の時点で設定の完全なスナップショットをキャプチャするイミュータブルバージョンを維持します。
-
AgentCore ランタイムを作成すると、バージョン 1 (V1) が自動的に作成されます。
-
設定 (コンテナイメージ、プロトコル設定、ネットワーク設定) を更新するたびに、新しいバージョンが作成されます。
-
各バージョンには、実行に必要なすべての設定が含まれています。
このバージョニングシステムは、信頼性の高いデプロイ履歴とロールバック機能を提供します。
エンドポイント
エンドポイントは、特定のバージョンの AgentCore ランタイムにアドレス可能なアクセスポイントを提供します。各エンドポイント:
-
呼び出し用の一意の ARN がある
-
エージェントランタイムの特定のバージョンを参照します。
-
実装を更新しても、エージェントへの安定したアクセスを提供します。
キーエンドポイントの詳細:
-
CreateAgentRuntime を呼び出して最新バージョンを指すと、「DEFAULT」エンドポイントが自動的に作成されます。
-
AgentCore ランタイムを更新すると、新しいバージョンが作成されますが、
DEFAULTエンドポイントは自動的に更新されて参照されます。 -
さまざまな環境 (開発、テスト、製品) の CreateAgentRuntimeEndpoint オペレーションを使用してカスタムエンドポイントを作成できます。
-
ユーザーがエンドポイントにリクエストを行うと、そのリクエストはそのエンドポイントによって参照される特定のエージェントバージョンに解決されます。
エンドポイントのライフサイクル状態は異なります。
-
CREATING- エンドポイント作成時の初期状態 -
CREATE_FAILED- アクセス許可やその他の問題による作成の失敗を示します -
READY- エンドポイントが動作し、リクエストを受け入れる -
UPDATING- エンドポイントは新しいバージョンを参照するように変更中です -
UPDATE_FAILED- 更新オペレーションの失敗を示します
ダウンタイムなしでエンドポイントを更新できるため、シームレスなバージョン移行とロールバックが可能になります。
セッション
セッションは、ユーザーと AgentCore ランタイム間の個々のインタラクションコンテキストを表します。各セッション:
-
アプリケーションによって
runtimeSessionId提供される一意の によって識別されるか、 が空のままの場合、最初の呼び出しでランタイム自体によって識別runtimeSessionIdされます。 -
CPU、メモリ、ファイルシステムリソースが完全に分離された専用のmicroVM で実行されます。
-
同じ会話内の複数のインタラクションのコンテキストを保持します
-
合計ランタイムの最大 8 時間保持可能
セッション状態には以下が含まれます。
-
アクティブ - 現在リクエストを処理しているか、バックグラウンドタスクを実行しています
-
アイドル - リクエストを処理しないが、次のインタラクションを待っている間にコンテキストを維持する
-
終了 - 非アクティブ (15 分)、最大有効期間 (8 時間)、または異常と見なされたためにセッションが終了しました
重要なセッション特性:
-
セッション終了後、microVM 全体が終了し、メモリがサニタイズされます。
-
終了
runtimeSessionId後に同じ を持つ後続のリクエストは、新しい実行環境を作成します。 -
セッション分離により、セッション間のデータ汚染を防ぎ、セキュリティを確保
-
セッション状態はエフェメラルであり、長期的な耐久性のために使用しないでください (コンテキストの耐久性のために AgentCore Memory を使用)
セッション間の完全な分離は、エンタープライズセキュリティ、特に非決定的な AI プロセスを処理する場合に不可欠です。
認証とセキュリティ
インバウンド認証は、 AWS Identity and Access Management または OAuth 2.0 を介してエージェントにアクセスできるユーザーを制御し、リクエストの続行を許可する前に ID プロバイダーからのベアラートークンを検証します。アウトバウンド認証により、エージェントは OAuth キーまたは API キーを使用してサードパーティーのサービスに安全にアクセスできます。AgentCore Identity は、ユーザー委任モードまたは自律モードで認証情報を管理します。詳細については、「インバウンド認証とアウトバウンド認証による認証と認可」を参照してください。
インバウンド認証
AgentCore Identity を使用するインバウンド認証は、AgentCore ランタイムでエージェントまたはツールにアクセスして呼び出すことができるユーザーを制御します。
認証方法
-
AWS IAM (SigV4): ID 検証に AWS 認証情報を使用する
-
OAuth 2.0 : 外部 ID プロバイダーと統合
OAuth 設定オプション
-
検出 URL: ID プロバイダーの OpenID Connect 検出エンドポイント
-
許可された対象者: トークンに含める必要がある有効な対象者値のリスト
-
許可されたクライアント: このエージェントにアクセスできるクライアント識別子のリスト
認証フロー
-
エンドユーザーが ID プロバイダー (Amazon Cognito、Okta、Microsoft Entra ID) で認証する
-
クライアントアプリケーションが認証に成功するとベアラートークンを受け取る
-
クライアントは、エージェントを呼び出すときに認可ヘッダーにこのトークンを渡します。
-
AgentCore Runtime が認可サーバーでトークンを検証する
-
有効の場合、リクエストは処理され、無効の場合、拒否されます。
これにより、適切な権限を持つ認証されたユーザーのみがエージェントにアクセスできます。
アウトバウンド認証
Amazon Bedrock AgentCore Identity を使用したアウトバウンド認証により、AgentCore Runtime でホストされているエージェントはサードパーティーのサービスに安全にアクセスできます。
認証方法
-
OAuth : OAuth フローをサポートするサービスの場合
-
API キー: キーベースの認証を使用するサービスの場合
認証モード
-
ユーザー委任 : 認証情報を使用してエンドユーザーに代わって行動する
-
自動 : サービスレベルの認証情報を使用して独立して動作する
サポートされるサービス
-
Slack、Zoom、GitHub などのエンタープライズシステム
-
AWS サービス
-
カスタム APIsとデータソース
AgentCore Identity はこれらの認証情報を安全に管理し、エージェントコードまたはログでの認証情報の漏洩を防ぎます。
その他の機能
非同期処理
AgentCore Runtime は、以下を通じて長時間実行されるワークロードをサポートします。
-
リクエスト/レスポンスサイクルを超えるオペレーションのバックグラウンドタスク処理
-
/pingエンドポイントを介した自動ステータス追跡 -
最大 8 時間のオペレーションのサポート
詳細については、「Amazon Bedrock AgentCore ランタイムで非同期エージェントと長時間実行エージェントを処理する」を参照してください。
ストリーミングレスポンス
エージェントは、完全な処理を待つのではなく、利用可能になったときに部分的な結果をストリーミングできます。これにより、特に大量のコンテンツを生成したり、完了にかなりの時間がかかるオペレーションで、より応答性の高いユーザーエクスペリエンスを提供できます。詳細については、「エージェントのレスポンスをストリーミングする」を参照してください。
WebSocket API
AgentCore ランタイムは、インタラクティブなエージェント通信のためのリアルタイムの双方向ストリーミング接続の WebSocket サポートを提供します。これにより、応答性が高くインタラクティブなエージェントエクスペリエンスが可能になります。詳細については、WebSocket を使用した双方向ストリーミングの開始方法」を参照してください。
プロトコルサポート
AgentCore Runtime は、複数の通信プロトコルをサポートしています。
-
HTTP : 従来のリクエスト/レスポンスパターンのダイレクト REST API エンドポイント。詳細については、AgentCore CLI の開始方法」を参照してください。
-
MCP : ツールとエージェントサーバーのモデルコンテキストプロトコル。詳細については、AgentCore ランタイムで MCP サーバーをデプロイする」を参照してください。
-
A2A : マルチエージェント通信と検出用のエージェントAgent-to-Agentプロトコル。詳細については、AgentCore Runtime で A2A サーバーをデプロイする」を参照してください。
実装の概要
AgentCoreランタイムの使用を開始する方法は次のとおりです。完全な例については、AgentCore CLI の開始方法」を参照してください。
エージェントまたはツールコードを準備する
-
AI フレームワークまたはカスタムコードを使用してエージェントロジックを定義する
-
AgentCore SDK またはカスタム実装を使用して必要な HTTP エンドポイントを追加する
-
requirements.txt ファイルに依存関係をパッケージ化する
エージェントまたはツールをデプロイする
-
コンテナイメージをビルドして Amazon ECR に直接、または AgentCore SDK 経由でプッシュする
-
コンテナイメージを使用して AgentCore ランタイムを作成する
-
初期バージョン (V1) と DEFAULT エンドポイントが自動的に作成されます
エージェントまたはツールを呼び出す
-
ユーザーとの会話ごとに一意のセッション ID を生成する
-
エージェントの ARN とセッション ID を使用して InvokeAgentRuntime または InvokeAgentRuntimeWithWebSocketStream オペレーションを呼び出す
-
リクエストペイロードでユーザー入力を渡す
セッションの管理と監視、および更新
-
コンテキストを維持するために、フォローアップインタラクションに同じセッション ID を使用する
-
ログ、トレース、オブザーバビリティメトリクスを確認する
-
AgentCore ランタイムを変更して更新をデプロイする (新しいバージョンを作成します)
-
エンドポイントを更新して新しいバージョンを指すようにロールアウトを制御する