AI News HubLIVE
サイト内リライト4 分で読了

Amazon Nova Sonicによるスケーラブルなボイスエージェント設計:マルチエージェント、ツール、セッション分割

この記事では、Amazon Nova Sonic、Amazon Bedrock AgentCore、Strands BidiAgentを使用して、スケーラブルで保守可能なボイスエージェントを構築する方法を説明します。3つのアーキテクチャパターン(AgentCore Gatewayによる直接ツール呼び出し、追加推論のためのサブエージェント、超低遅延のためのセッション分割)を詳しく解説し、各パターンのトレードオフとベストプラクティスを分析して、高速で自然で信頼性の高い音声体験を提供するための指針を示します。

ソースAWS Machine Learning Blog著者: Lana Zhang

スケーラブルなボイスエージェントの設計パターンは、高速で自然かつ信頼性の高い音声体験を提供する必要がある組織にとって重要です。多くのチームは、高レイテンシ、リアルタイム音声の管理、複雑なワークフローでの複数エージェントの調整といった課題に直面しています。

この記事では、Amazon Nova Sonic、Amazon Bedrock AgentCore、Strands BidiAgentを使用して、これらの課題を効率的に処理し、より応答性が高くインテリジェントなカスタマーインタラクションを実現する、スケーラブルで保守可能なボイスエージェントの構築方法を学びます。

3つの一般的なアーキテクチャパターンを探り、トレードオフとレイテンシ最小化のベストプラクティスに焦点を当てます。

構成要素の概要

アーキテクチャパターンの詳細に入る前に、この記事のサンプルソリューションで使用される3つの主要コンポーネントの概要を説明します。

  • Amazon Nova Sonic:生成AIアプリケーションに自然で人間らしい音声対話を生成する基盤モデル。ユーザーは音声でリアルタイムにAIと対話でき、口調の理解、自然な会話の流れ、アクションの実行が可能です。
  • Amazon Bedrock AgentCore Runtime:AIエージェントのためのサーバーレスホスティング環境。エージェントをコンテナとしてパッケージ化しAgentCore Runtimeにデプロイすると、スケーリング、セッション分離、課金を処理します。ボイスエージェント向けに、双方向WebSocketストリーミング(SigV4認証付き)、マイクロVMレベルのセッション分離(ノイジーネイバーによるレイテンシスパイク回避)、共有ツールホスティングのためのAgentCore Gateway(Model Context Protocol(MCP)オープンソースプロトコル使用)、セッション間の永続メモリ、音声固有メトリクス(初回音声までの時間など)のテレメトリを提供します。
  • Strands Agents:AIエージェントを構築するためのオープンソースフレームワーク。そのBidiAgentクラスは、Nova Sonicとアプリケーション間の統合オプションの1つで、双方向ストリームのライフサイクル管理、ツールコールのルーティング、セッション管理を行い、モデルSDKインターフェースを介してボイスエージェントアプリケーションを簡素化します。

3つの統合パターン:ツール、エージェント as ツール(サブエージェント)、セッション分割

現代の音声システムは、単一の万能エージェントを構築する代わりに、ツール駆動型エージェント、ツールとして機能するサブエージェント、プロンプト、メモリ、権限を分離するセッション分割戦略で構成されることが増えています。これらのパターンにより、チームは大規模なアシスタントをより小さく専門化された再利用可能なコンポーネントに分解し、明確なセキュリティ境界を維持できます。

以下のサンプルを実行する前に、Pythonと必要な依存関係(strands-agentsやboto3など)をインストールし、IAM設定が必要なサービスに必要な権限を持っていることを確認してください。完全な例はGitHubリポジトリを参照してください。

パターン1:AgentCore Gateway – 低レイテンシのためのツール選択

ツールコールとは、ボイスエージェントが外部の関数やサービスに入力を送信し、処理して出力を返すことです。これにより、エージェントは余分な推論ステップなしで、データベースのクエリやサービスのトリガーなどのタスクを迅速かつ安全に実行できます。

AgentCore Gatewayを使用すると、既存のビジネスロジックをツールとして公開でき、Nova Sonicが会話中に直接呼び出すことができます。音声モデルはどのツールを呼び出すかを選択し、パラメータを渡し、結果を取得して音声で返します。モデルとツールの間には中間推論層はありません。

AgentCore GatewayはMCPサーバーを管理エンドポイントとしてホストします。MCPはプロトコルであり、AgentCore Gatewayはそれらを実行するAWS機能です。ボイスエージェントはゲートウェイARNを介して接続します。

ユーザーが「私の口座残高は?」と言ったとき、Nova Sonicは:意図を音声から理解し、利用可能なMCPツールからget_account_balanceを選択し、正しいパラメータでツールを呼び出し、結果を音声で返します。

トレードオフ:Nova Sonicがすべての決定を行います。ツールコールに多段階の検証、条件付きロジック、または複数の操作の連鎖が必要な場合、その推論負担はすべて音声モデルのシステムプロンプトにかかります。単純なツールでは問題ありませんが、複雑なワークフローでは脆弱になります。

パターン2:サブエージェント – 分離されたエージェントによる追加推論

サブエージェントまたはエージェントasツールパターンでは、既存のビジネスロジックが自律エージェント内で実行され、各エージェントは独自のモデル、システムプロンプト、ツール、推論能力を持ちます。音声オーケストレータは、個々のツールを呼び出す代わりに、タスク全体をこれらのサブエージェントに委任します。

ボイスエージェントからサブエージェントに接続する方法はいくつかあります:ローカルエージェントasツール(サブエージェントがインプロセスで実行され、@tool関数としてラップされる、ネットワークホップなし)と、A2Aプロトコル経由のリモートエージェント(サブエージェントが独立したA2AサーバーとしてAgentCore Runtimeまたはリモートサーバーにデプロイされ、ネットワーク経由で呼び出される)。A2Aはエージェント間通信のオープンなプロトコルであり、異なるフレームワークで構築されたエージェントが共通形式でコンテキストと推論を共有できます。

トレードオフ:各サブエージェント呼び出しはレイテンシを追加します:サブエージェント自身のモデル推論とそのツールコールです。音声会話では、サブエージェントが推論している間、長い沈黙が生じます。レイテンシを減らすために、サブエージェントにはAmazon Nova 2 Liteのような小さく効率的なモデルを使用することが推奨されます。Amazon Nova 2 Sonicは非同期ツールコールをサポートしており、ツールがバックグラウンドで実行されている間も会話は自然に続き、複数のツールを並行して実行でき、ユーザーが途中でリクエストを変更しても適応します。

パターン3:セッション分割 – 超低レイテンシ

3つ目のアプローチもあります。これはMCPやサブエージェントのパターンにはきれいにマッピングされませんが、レイテンシが最優先される音声シナリオに特化して設計されています。

外部ツールやサブエージェントに委任する代わりに、会話を論理フェーズに分割し、各フェーズに独立したNova Sonicセッション、システムプロンプト、ツールセットを割り当てます。会話があるフェーズから次のフェーズに移行するとき(例えば、認証から口座照会へ)、現在のセッションを閉じ、異なるプロンプトとツールを持つ新しいセッションを同じWebSocket接続内で開きます。各サブボイスエージェントは独自のMCPゲートウェイ、ツール、さらにはサブエージェントを使用できますが、重要な違いは、集中化されたプロンプトと最小限のツールサーフェスで動作するため、推論オーバーヘッドとレイテンシが削減されることです。

銀行の音声アシスタントを例に考えると、認証、口座管理、住宅ローン照会の3つの会話フェーズがあります。1つの巨大なシステムプロンプトにすべてのツールをロードする代わりに、各フェーズを集中化されたNova Sonicセッションとして実行します。

トレードオフ:セッション分割ではフェーズ間でメモリを共有できません。各セグメントは最初から処理を開始する必要があります。単純な会話では、セッション作成と起動のオーバーヘッドがメリットを上回る可能性があります。会話の境界が明確で、フェーズが明確に分離されているシナリオで使用することをお勧めします。