AWS Community Day Hong Kong 2025 Recap

Agent-to-Agent:AWS 上で相互運用可能な AI を構築する

Recap Series

録画

https://www.youtube.com/watch?v=qoPjyt-MyWk

AWS 上で次世代のエージェントアプリケーションを構築する

ユースケース:カフェマネージャーエージェント

  • カフェマネージャーエージェント:Crew AI フレームワークを使用して構築されています。
  • ツール:OpenAPI 仕様に準拠した API と接続します。
  • シナリオ:顧客側のカスタム基盤がカフェマネージャーエージェントと通信し、カプチーノやロングブラックコーヒーなどの商品を注文します。
  • 分散エージェント:別のエージェント(ベンダーエージェントなど)がカフェマネージャーエージェントと通信し、情報の取得や発注を行います。
  • フレームワーク:カフェマネージャーエージェントは Crew AI、分散エージェントは Autogen を使用します。
  • ID プロバイダー:顧客側のカスタム基盤では、ID プロバイダーとして Okta を使用します。
  • ツール:API は AWS Lambda 上でホストされていませんが、OpenAPI 仕様に準拠しています。

エージェント型アプリケーションに対する AWS のサポート

  • Agent Core Service:エージェントアプリケーションの構築とデプロイを支援する、AWS の包括的なサービスです。
  • モジュール:Agent Core Service は、個別に実行できる相互依存した 6~7 個のモジュールで構成されています。
  • マネージドサービス:すべてのコンポーネントは AWS が提供するマネージドサービスです。

Agent Core Runtime

  • サーバーレスホスティング:任意のフレームワーク(Crew AI、AWS Strands、Microsoft Autogen、Google Agentic Development Kit など)で作成したエージェントをデプロイできるサーバーレスサービスです。
  • モデルとの通信:AWS エコシステム外のモデル(OpenAI モデルなど)を含む、あらゆるモデルとの通信をサポートします。
  • プロトコル:
  • [ 1 ] MCP(Model Context Protocol):ツールやリソースとの通信に使用します。
  • [ 2 ] A2A(Agent to Agent)Protocol:エージェント間のオープンな通信を実現する新しいプロトコルです。
  • 実行時間:迅速な応答を行うリアルタイム実行と、最長 8 時間の長時間実行タスクをサポートします。
  • ペイロードサイズ:最大 100 MB(テキスト、ブログなど)のペイロードに対応し、今後さらに拡大する可能性があります。

Agent Core Runtime の仕組み

非決定的フローとセッション分離

  • 非決定的フロー:エージェント型アプリケーションは決定的なフローには従わず、LLM が進行経路を決定します。
  • セッション分離:Agent Core Runtime は、microVM カーネルを使用したセッション分離を標準で提供します。
  • [ 1 ] microVM カーネル:ユーザーがプロンプトでセッションを開始すると、microVM カーネルを備えた新しいセッションが作成されます。
  • [ 2 ] 分離:ユーザー間でファイルシステム、メモリ、CPU が共有されないようにし、データのプライバシーとセキュリティを維持します。
  • [ 3 ] 例:Jonas がコーヒーの完成時に通知するよう依頼し、Jane が電話番号を尋ねても、両者のセッションは分離されたままです。

ステートフルサービス

  • 状態管理:Agent Core Runtime は、すべての状態を記憶するステートフルサービスです。
  • アクティブセッション:同時に最大 500 のアクティブセッションをサポートします。

セッションのライフサイクル

  • セッション開始:セッションは、サービスが管理する一意のセッション ID を使用して開始されます。
  • リソース管理:
  • [ 1 ] 非アクティブ時間:5 分間操作がない場合、コストを抑えるため、サービスはセッションの CPU とリソースを一時停止します。
  • [ 2 ] タイムアウト:非アクティブ状態が 15 分続くとリクエストはタイムアウトします。ストリーミング(チャットなど)の場合は最長 60 分です。
  • [ 3 ] 長時間実行タスク:最長 8 時間実行されるタスクをサポートします。

Agent Core Memory

エージェントアプリケーションにおけるメモリの重要性

  • 顧客体験:優れた顧客体験を提供するうえで、メモリは不可欠です。たとえば、顧客が好むコーヒー(カプチーノなど)を翌日以降も記憶できます。

メモリの種類

  • 短期メモリ:最近のやり取りやイベントを保存します。
  • 長期メモリ:長期間利用するパターンや構造化データを保存します。

Agent Core Memory の機能

  • 組み込み暗号化:データの安全性を確保します。
  • 柔軟な名前空間:メモリレコードを整理して保存できます。
  • Time to Live(TTL):メモリを保持する期間をユーザーが設定できます。
  • オブザーバビリティ:メモリの使用状況を監視するためのオブザーバビリティが組み込まれています。

短期メモリ

  • [ 1 ] イベントの作成:ユーザーとエージェントのやり取りごとにイベントが作成されます。
  • 例:ユーザーの質問とエージェントの応答は、それぞれがイベントです。
  • [ 2 ] イベントメタデータ:場所や時刻など、イベントに関する追加情報です。
  • 例:やり取りが行われた場所(香港など)をメタデータに含められます。
  • [ 3 ] アクター ID とセッション ID:データベースへの保存に使用する一意の識別子です。
  • [ 4 ] チェックポイント:すばやく取得できるようにした、過去のチャットセッションのスナップショットです。
  • [ 5 ] チャットメッセージ:セッションごとのやり取りに含まれるチャットメッセージを保存します。
  • [ 6 ] セッション状態管理:セッションの状態と長期メモリへの移行トリガーを自動的に管理します。

長期メモリ

  • 構造化データの保存:未加工のやり取りを構造化形式に変換し、ベクトルストアに保存します。
  • データの保存方法:
  • [ 1 ] 参照情報の利用:既存の情報を確認して利用します。
  • [ 2 ] 事実と知識:事実データや知識を保存します。
  • [ 3 ] 要約:効率的に保存できるようデータを要約します。
  • カスタムストア:必要に応じて独自のストレージソリューションを定義できます。定義しない場合はデフォルトのストアが使用されます。

データ保存の戦略

  • 組み込み戦略:ユーザーの操作なしでデータ保存を自動的に管理します。
  • カスタマイズ可能な戦略:データの保存方法をユーザーがカスタマイズできます。
  • 高度にカスタマイズされた戦略:長期メモリに保存するデータとその保存方法を、ユーザーが厳密に定義できます。
  • 組み込みのセマンティック検索:クエリに応じて適切なメモリデータを抽出できます。

Agent Core Gateway

統合アクセスとツール連携

  • 目的:ツールとエージェントを連携するための統一されたアクセス手段を提供します。
  • インテリジェントなツール検出:特定の目的に最適なツールを見つける機能が組み込まれています。
  • 構築済みの連携機能:Salesforce、Slack、SendGrid などの一般的なツールと、1~2 回のクリックで簡単に連携できます。
  • 認証とセキュリティ:認証機能とセキュリティ機能を備えています。

接続モデル

  • Smithy モデル:Smithy ターゲットをサポートする設定に使用します。
  • OpenAPI ターゲット:OpenAPI スキーマをサポートする API に使用します。
  • AWS Lambda ターゲット:AWS Lambda 関数として実装されたツールに使用します。
  • MCP サーバー:Agent Core Gateway は MCP サーバーとして機能し、エージェントはクライアントとしてこのゲートウェイを介して通信します。

Agent Core Identity

ID 管理サービス

  • 目的:Agent Core Runtime と Memory を介するすべての処理で、安全な接続を確保します。
  • インバウンドの認可/認証:エージェントに接続するユーザーが正当であり、そのエージェントとの通信を意図していることを確認します。
  • アウトバウンドの認可:エージェントがツールと通信するための適切な認証情報とセキュリティ対策を備えていることを保証します。

既存の ID プロバイダー

  • 外部プロバイダーとの連携:Microsoft Enterprise や Okta など、既存の ID プロバイダーとの連携をサポートします。
  • 移植性:既存の ID フレームワークを Agent Core Identity に移植できるため、Amazon Cognito へ全面移行せずにエンタープライズレベルの機能を利用できます。

Agent Core Observability

リアルタイムの可視性

  • Amazon CloudWatch との連携:オブザーバビリティモジュールを有効にすると、Amazon CloudWatch に自動接続されます。
  • 一般ダッシュボード:ログ、トレース、メトリクスを監視するダッシュボードを提供します。
  • OpenTelemetry 標準:OpenTelemetry 標準を使用する既存のオブザーバビリティダッシュボードとの連携をサポートします。

テレメトリデータ

  • ログ:エージェントとのやり取りで発生した事象を記録します。
  • トレース:イベントがどのように発生したかを示し、詳細な実行経路を提供します。
  • メトリクス:処理したトークン数やタスクの所要時間などの定量データを提供します。

サービスレベルのテレメトリ

  • 統合:すべてのモジュール(ランタイム、メモリ、ゲートウェイ、ID)のテレメトリデータを統合し、サービスレベルの包括的な情報を提供します。

オブザーバビリティポータル

  • Agent Runtime:デプロイ済みのエージェント、セッション、ログ、トレースを表示します。
  • Memory:短期メモリと長期メモリの保存内容を表示します。
  • Gateways:ツール連携用ゲートウェイの作成と管理ができます。
  • Identity:既存の ID プロバイダーとの連携をサポートします。
  • Observability:CloudWatch でエージェント、メモリログ、トレースを監視できます。

Agent Code Starter Kit

  • デプロイの簡素化:Agent Code Starter Kit を使用すると、エージェントアプリケーションを簡単に設定して起動できます。
  • コマンドプロンプト:スターターキットをインストールし、`configure` や `launch` などのコマンドを使用してエージェントを設定、デプロイします。
  • エントリーポイントの定義:設定時にアプリケーションのエントリーポイントを定義します。

デモ

  • ポータル表示:デプロイ済みエージェント、メモリ、ゲートウェイ、ID 連携を含むダッシュボードを表示します。
  • CloudWatch のセクション:詳細な監視に使用する CloudWatch の「Agent Core Observability」セクションを示します。

まとめ

  • 使いやすさ:Agent Code Starter Kit はエージェントアプリケーションの設定とデプロイを簡素化し、開発者が AWS 上でエージェント型アプリケーションを容易に構築、監視できるようにします。

エージェントアプリケーションのデプロイと設定

Agent Code Starter Kit の使用

  • Crew AI アプリケーション:Agent Code Starter Kit を使用し、Strands ではなく Crew AI アプリケーションをデプロイする方法を示します。
  • Bedrock Agent Core Runtime:エントリーポイントを指定し、ランタイムとアプリケーションを定義します。
  • 設定:
  • 推奨ファイル:スターターツールが推奨ファイルを作成するので、`yes` で確定します。
  • 実行ロール:自動的に作成されます。
  • コンテナ化:アプリケーションはコンテナに格納されます。
  • 認可:認可とセキュリティを設定するためのオプション(Okta など)があります。
  • メモリ:長期メモリと短期メモリのいずれかを選択します。
  • 起動:`agent co launch` を使用し、アプリケーションを Agent Core Runtime にデプロイします。

柔軟性と連携

  • フレームワーク:既存のフレームワークや開発手法を自由に使用できます。
  • データベース:特定のデータベースに縛られず、既存システムと連携できます。

A2A Protocol

  • 概要:A2A(Agent to Agent)は主要企業が採用するオープン標準プロトコルで、現在は Linux が管理しています。
  • 目的:異なる企業が、互いのエンタープライズ API の詳細を把握せずとも、エージェントを作成して安全に通信できるようにします。
  • デフォルトで安全:MCP(Model Context Protocol)を補完し、安全性を重視して設計されています。
  • ユースケース:Okta を使用したベンダーへの接続、通常のアプリケーションと A2A 対応分散エージェントの並行実行、メモリとオブザーバビリティのサポートを実演します。

リファレンスアーキテクチャ

  • [1] コンポーネント:
  • Runtime:アプリケーションのホストです。
  • Memory:短期メモリと長期メモリをサポートします。
  • Observability:監視とログ記録を担います。
  • Gateway:他のツールやサービスに接続します。
  • [ 2 ] 連携:
  • AWS 上のエージェント型アプリケーション向けリファレンスアーキテクチャで、すべてのコンポーネントがどのように連携するかを示します。