本文にスキップ
AI News HubLIVE
サイト内リライト5 分で読了

Amazon Nova 2 Sonic で医療予約エージェントを構築する

記事の要約

この記事では、Amazon Nova 2 Sonic と Amazon Bedrock AgentCore を使用して、予約リマインダー会話を処理する音声エージェントの構築方法を学びます。エージェントは音声で患者を認証し、予約の管理(確認、キャンセル、再スケジュール)、来院前の健康情報の収集、必要に応じて人間のスタッフへのエスカレーションを行います。ルーティンコールを大規模に処理し、無断キャンセル率の低減に役立ちます。このサンプルは問題のエージェント側、つまり音声会話とツールオーケストレーションに焦点を当てています。テスト用のブラウザベースのインターフェースが含まれています。実際の電話回線に接続して発信するには、Amazon Connect Customer などのテレフォニーサービスを統合します。

ソースAWS Machine Learning Blog著者: Jimin Kim
Amazon Nova 2 Sonic で医療予約エージェントを構築する
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

もしあなたがクリニックや病院ネットワークを運営しているなら、予約の不履行(ノーショー)がもたらすコストをすでにご存知でしょう。米国の医療における平均ノーショー率は専門分野にもよりますが5%から30%の間です。空いた予約枠は収入の損失、プロバイダーのアイドル時間、患者ケアの遅延を意味します。標準的な対策である患者に一つ一つ電話して確認や再スケジュールを行う方法はスケールしません。

この記事では、Amazon Nova 2 Sonic と Amazon Bedrock AgentCore を使用して、予約リマインダー会話を処理する音声エージェントを構築する方法を学びます。エージェントは音声で患者を認証し、予約の管理(確認、キャンセル、再スケジュール)、来院前の健康情報の収集、必要に応じて人間のスタッフへのエスカレーションを行います。ルーティンコールを大規模に処理し、ノーショー率の低減に役立ちます。このサンプルは問題のエージェント側、つまり音声会話とツールオーケストレーションに焦点を当てています。テスト用のブラウザベースのインターフェースが含まれています。実際の電話回線に接続して発信するには、Amazon Connect Customer などのテレフォニーサービスを統合します。

このウォークスルーでは、完全な構築プロセスを案内します。Amazon Bedrock 上で動作する音声エージェントを入手でき、Amazon Nova 2 Sonic の音声間機能を使用して自然な予約会話を行います。さらに、Strands Agents SDK で構築された7つの医療固有ツール(患者認証、スケジューリング、エスカレーション用)を備えています。サーバーレスデプロイメントは Amazon Bedrock AgentCore 上で実行され、Amazon Cognito 認証、Amazon DynamoDB 永続化、Amazon Simple Notification Service (SNS) 通知を利用します。ブラウザベースの React フロントエンドは、認証済み WebSocket 接続を介して双方向音声をストリーミングします。

解決策の概要

予約電話を効果的に自動化するには、単一の対話で複数のステップ(身元確認、予約詳細の提示、変更処理、健康情報収集)を処理できる会話型 AI システムが必要です。

従来のアプローチでは、音声認識モデルが患者の言葉をテキスト化し、テキストベースの大規模言語モデルが応答を生成し、音声合成モデルがそれを読み上げるというように、別々のサービスを連鎖させます。各受け渡しでレイテンシが発生し、コンテキストが失われます。文字起こしのステップでは、トーン、ためらい、緊急性などの音声の手がかりが捨てられます。大規模言語モデルは患者が何を言ったかしか聞き取れず、どのように言ったかはわかりません。医療現場では、患者の不安や混乱によってエージェントの対応を変えるべき場合、その損失は重要です。

このエージェントは、2つの AWS サービスを組み合わせることで異なるアプローチをとります。

Amazon Nova 2 Sonic

Amazon Nova 2 Sonic は Amazon Bedrock 上で利用可能な音声間モデルで、リアルタイムの会話型 AI と双方向ストリーミングを実現します。独立した文字起こし、推論、合成サービスを連鎖させる代わりに、Nova 2 Sonic は単一のモデルで音声をネイティブに処理するため、トーンやペースなどの音声コンテキストが文字起こしで失われることはありません。

このエージェントにとって、Nova 2 Sonic はいくつかの重要な機能を提供します。ネイティブの音声間処理により、ターン全体で音声のニュアンスが保持され、エージェントはコンテキストを失うことなくためらいや懸念を認識できます。ツール呼び出しの精度により、複数ステップの医療ワークフローを確実に進められます。低レイテンシの双方向ストリーミングにより、会話の応答性が維持されます。また、家庭や臨床環境で一般的な背景ノイズやアクセントのある英語を処理するように設計されています。最後に、多言語サポートにより、設定変更なしで会話の途中で患者の好みの言語に切り替えられます。

Amazon Bedrock AgentCore

Amazon Bedrock AgentCore は、エンタープライズセキュリティを備えた AI エージェントを大規模に実行するためのサーバーレスでフレームワークに依存しないランタイムを提供します。エージェントロジックをコンテナとしてデプロイすると、AgentCore がインフラストラクチャ、スケーリング、IAM 認証された WebSocket エンドポイントを処理します。この実装では、Strands Agents SDK の BidiAgent クラスを使用して、Nova 2 Sonic との双方向音声ストリーミングを管理します。

アーキテクチャ

次の図はコンポーネントの接続方法を示しています。React フロントエンドは SigV4 署名付き WebSocket 接続を介して Amazon Bedrock AgentCore と通信します。Nova 2 Sonic を搭載した Strands BidiAgent はリアルタイム音声会話を処理し、DynamoDB テーブルを読み書きして Amazon SNS に発行する医療ツールを呼び出します。

フロントエンドはブラウザでマイク音声をキャプチャし、WebSocket を介してエージェントにストリーミングします。接続を保護するため、フロントエンドは Amazon Cognito を通じてユーザーを認証し、各リクエストを SigV4 で署名します。Amazon Bedrock AgentCore Runtime はコンテナ化された Strands BidiAgent をホストし、インフラストラクチャとスケーリングを管理します。Nova 2 Sonic は音声入力を受信し、会話を推論し、必要に応じてツールを呼び出し、音声応答を生成します。3つの DynamoDB テーブルが患者記録、予約詳細、利用可能な時間枠を保存します。Amazon SNS は患者が人間との会話を要求したときにエスカレーション通知を発行します。

統合

Strands SDK は双方向音声ストリーミングの複雑さを処理します。エージェント全体のセットアップは数行のコードで完了します。ツールリストとシステムプロンプトを BidiAgent に渡し、Nova 2 Sonic を指定すると、SDK がストリーミングセッションを管理します。音声を受信し、モデルが決定したときにツールを呼び出し、音声応答を送り返します。

医療ツール

音声エージェントは7つのツールを使用して各コールを進めます。各ツールは Strands Agents SDK の @tool デコレーターで装飾された Python 関数として実装されています。Nova 2 Sonic は患者の発言に基づいて各ツールをいつ呼び出すかを決定します。たとえば、患者が再スケジュールを要求すると、Nova 2 Sonic は find_available_slots を呼び出して DynamoDB を照会し、音声でオプションを提示し、book_appointment_slot を呼び出して変更を確定します。

このツールベースの設計により、エージェントの残りの部分を書き換えることなく、個々のツールを交換または拡張できます。新しい機能(保険情報の収集など)を追加するには、新しい @tool 関数を1つ作成し、システムプロンプトを更新するだけです。

エージェントがコールを処理する方法

エージェントが患者に接続すると、BidiAgent は4つのフェーズで会話全体を管理します。会話の流れはエージェントのシステムプロンプトで定義されており、ユースケースに合わせてカスタマイズできます。以下は再スケジュールフローの抜粋で、プロンプトがどのようにマルチツールオーケストレーションを駆動するかを示しています。Nova 2 Sonic はこれらの指示に従って各ツールをいつ呼び出すかを決定します。新しいフローを追加したり既存のフローを変更したりするには、プロンプトを編集します。

認証 – Nova 2 Sonic は患者に挨拶し、フルネームと社会保障番号の下4桁を尋ねます。検証の前に、エージェントは聞き取った内容を繰り返し、患者に確認を求めます。これにより、名前や数字の音声認識エラーを捕捉します。authenticate_patient ツールは DynamoDB を照会して身元を確認します。3回の試行で検証に失敗した場合、セキュリティのためにエージェントは人間にエスカレーションします。

予約管理 – 検証後、Nova 2 Sonic はプロバイダー名、日付、時間を含む予約詳細を提示します。患者は確認、キャンセル、再スケジュールを選択できます。再スケジュールの場合、エージェントは希望(午前/午後、希望日)を収集し、利用可能な時間枠を照会し、最大3つのオプションを提示して新しい時刻を予約します。

健康情報収集 – 確認または再スケジュールされた予約について、エージェントは来院前の健康情報を収集します。既存の病状、アレルギー、付き添いの有無、来院の具体的な懸念事項について尋ねます。各質問は自然な会話の流れのために一度に1つずつ行われます。

エスカレーション – どの時点でも、患者が人間との会話を要求した場合、エージェントは理由を記録し、6桁の参照番号を生成し、Amazon SNS 通知を発行して、スタッフが24時間以内に患者に電話をかけ直せるようにします。

エージェントのデプロイ

完全なソースコードは GitHub リポジトリで利用可能です。以下の手順に従って、AWS アカウントにエージェントをデプロイします。前提条件を確認した後、リポジトリをクローンし、インフラストラクチャをデプロイ(AWS CDK スタックがすべてのリソースをプロビジョニング)、フロントエンドを実行します。詳細な手順については元の記事を参照してください。

要点と分析を開く

記事インテリジェンス

エンジニア中級

要点

  • Amazon Nova 2 Sonic のネイティブ音声間処理と Amazon Bedrock AgentCore のサーバーレスランタイムを活用。
  • 患者認証、予約管理、健康情報収集、人間へのエスカレーションを実現。
  • Strands Agents SDK を使用して構築された7つの医療用ツール(認証、スケジューリング、通知など)。
  • AWS CDK、DynamoDB、Cognito、Amazon SNS を使用してデプロイ。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。