Articleaws.amazon.com·2026년 6월 24일·0

Build a healthcare appointment agent with Amazon Nova 2 Sonic

Quick Summary

이 글은 Amazon Nova 2 Sonic과 Amazon Bedrock AgentCore, Strands Agents SDK를 사용해 병원 예약 확인·취소·변경·사전 문진·상담원 연결을 처리하는 음성 기반 헬스케어 예약 에이전트를 구축하는 방법을 설명한다.

Build a healthcare appointment agent with Amazon Nova 2 Sonic 관련 대표 이미지

🖼️ 인포그래픽

Build a healthcare appointment agent with Amazon Nova 2 Sonic 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Build a healthcare appointment agent with Amazon Nova 2 Sonic 내용을 설명하는 본문 이미지

💡 한 줄 요약

이 글은 Amazon Nova 2 Sonic과 Amazon Bedrock AgentCore, Strands Agents SDK를 사용해 병원 예약 확인·취소·변경·사전 문진·상담원 연결을 처리하는 음성 기반 헬스케어 예약 에이전트를 구축하는 방법을 설명한다.

📌 핵심 요약

  • 미국 헬스케어의 예약 노쇼율은 전문 분야에 따라 5~30%에 이르며, 빈 예약 슬롯은 매출 손실, 의료진 유휴 시간, 환자 진료 지연으로 이어진다. 글은 일일이 전화해 확인하거나 변경하는 기존 방식이 확장되기 어렵다는 문제의식에서 출발한다.
  • 제안된 솔루션은 Amazon Nova 2 Sonic의 실시간 speech-to-speech 기능과 Amazon Bedrock AgentCore 런타임을 결합한 음성 에이전트다. 이 에이전트는 환자 인증, 예약 확인·취소·변경, 방문 전 건강 정보 수집, 필요 시 직원 에스컬레이션을 수행한다.
  • 기존의 음성-텍스트 변환, 텍스트 LLM 응답 생성, 텍스트-음성 합성 체인은 각 단계 사이에서 지연과 맥락 손실을 만든다. Nova 2 Sonic은 음성을 단일 모델에서 직접 처리해 말투, 망설임, 긴급함 같은 음성적 단서를 보존하는 접근을 취한다.
  • 구현은 Strands Agents SDK의 BidiAgent와 일곱 개의 의료 특화 도구를 중심으로 구성된다. 도구들은 DynamoDB의 환자·예약·가용 슬롯 데이터를 조회·갱신하고, Amazon SNS를 통해 상담원 콜백 알림을 발행한다.
  • 배포 구조는 Cognito 인증, SigV4 서명 WebSocket, AgentCore Runtime, DynamoDB, SNS, React 프런트엔드를 포함한다. 글은 CDK로 인프라를 배포하고 Cognito 및 AgentCore 관련 출력값을 프런트엔드 설정에 사용하는 절차까지 안내한다.

🧩 주요 포인트

  1. 미국 헬스케어의 예약 노쇼율은 전문 분야에 따라 5~30%에 이르며, 빈 예약 슬롯은 매출 손실, 의료진 유휴 시간, 환자 진료 지연으로 이어진다. 글은 일일이 전화해 확인하거나 변경하는 기존 방식이 확장되기 어렵다는 문제의식에서 출발한다.
  2. 제안된 솔루션은 Amazon Nova 2 Sonic의 실시간 speech-to-speech 기능과 Amazon Bedrock AgentCore 런타임을 결합한 음성 에이전트다. 이 에이전트는 환자 인증, 예약 확인·취소·변경, 방문 전 건강 정보 수집, 필요 시 직원 에스컬레이션을 수행한다.
  3. 기존의 음성-텍스트 변환, 텍스트 LLM 응답 생성, 텍스트-음성 합성 체인은 각 단계 사이에서 지연과 맥락 손실을 만든다. Nova 2 Sonic은 음성을 단일 모델에서 직접 처리해 말투, 망설임, 긴급함 같은 음성적 단서를 보존하는 접근을 취한다.
  4. 구현은 Strands Agents SDK의 BidiAgent와 일곱 개의 의료 특화 도구를 중심으로 구성된다. 도구들은 DynamoDB의 환자·예약·가용 슬롯 데이터를 조회·갱신하고, Amazon SNS를 통해 상담원 콜백 알림을 발행한다.
  5. 배포 구조는 Cognito 인증, SigV4 서명 WebSocket, AgentCore Runtime, DynamoDB, SNS, React 프런트엔드를 포함한다. 글은 CDK로 인프라를 배포하고 Cognito 및 AgentCore 관련 출력값을 프런트엔드 설정에 사용하는 절차까지 안내한다.

🧠 상세 정리

1. 예약 노쇼 문제와 자동화 필요성

글은 병원이나 클리닉 네트워크가 겪는 예약 노쇼 문제에서 출발한다. 미국 헬스케어의 평균 노쇼율은 전문 분야에 따라 5~30%로 제시되며, 이는 단순한 일정 누락이 아니라 매출 손실, 의료진 시간 낭비, 환자 진료 지연으로 이어진다고 설명한다. 일반적인 대응은 환자에게 한 명씩 전화해 예약을 확인하거나 변경하는 방식이지만, 이런 수동 전화 작업은 규모가 커질수록 운영적으로 감당하기 어렵다. 따라서 반복적인 예약 안내 통화를 자동화하면서도 환자와 자연스럽게 대화할 수 있는 음성 에이전트가 필요한 배경이 제시된다.

2. 글에서 구축하는 음성 예약 에이전트의 범위

이 글의 목표는 Amazon Nova 2 Sonic과 Amazon Bedrock AgentCore를 사용해 예약 리마인더 대화를 처리하는 음성 에이전트를 만드는 것이다. 에이전트는 환자를 인증하고, 예약을 확인·취소·변경하며, 방문 전 건강 정보를 수집하고, 필요한 경우 사람 직원에게 연결되도록 에스컬레이션한다. 글은 실제 전화망으로 발신 전화를 걸기보다는 에이전트 측의 대화 처리와 도구 오케스트레이션에 초점을 맞춘다. 테스트를 위해 브라우저 기반 인터페이스가 포함되며, 실제 전화 회선 연결은 Amazon Connect Customer 같은 텔레포니 서비스 통합이 필요하다고 구분한다.

3. 기존 음성 AI 체인의 한계

효과적인 예약 자동화를 위해서는 한 번의 통화 안에서 신원 확인, 예약 정보 제시, 예약 변경 처리, 건강 정보 수집 등 여러 단계를 자연스럽게 이어 가야 한다. 전통적인 접근은 음성-텍스트 모델이 환자 발화를 전사하고, 텍스트 기반 LLM이 응답을 만들고, 다시 텍스트-음성 모델이 이를 읽어 주는 식으로 여러 서비스를 연결한다. 글은 이 구조가 각 단계마다 지연을 만들고 맥락을 떨어뜨린다고 지적한다. 특히 전사 과정에서 말투, 망설임, 긴급함 같은 음성 단서가 사라지며, 의료 상황에서는 환자의 불안이나 혼란을 반응 방식에 반영해야 하므로 이런 손실이 중요하다고 설명한다.

4. Amazon Nova 2 Sonic의 역할

Amazon Nova 2 Sonic은 Amazon Bedrock에서 사용할 수 있는 speech-to-speech 모델로 소개된다. 별도의 전사, 추론, 합성 서비스를 이어 붙이는 대신 음성을 단일 모델에서 직접 처리해 실시간 대화형 AI와 양방향 스트리밍을 지원한다. 이 에이전트에서는 환자의 망설임이나 우려 같은 음성적 뉘앙스를 여러 턴에 걸쳐 보존하고, 어떤 시점에 인증·일정 조회·예약 확정 도구를 호출해야 하는지 판단하는 데 사용된다. 글은 낮은 지연의 양방향 스트리밍, 가정이나 임상 환경의 배경 소음 처리, 악센트가 있는 영어 대응, 대화 중 선호 언어로 전환할 수 있는 다국어 지원도 주요 기능으로 설명한다.

5. AgentCore, Strands BidiAgent, 프런트엔드의 연결 구조

Amazon Bedrock AgentCore는 AI 에이전트를 컨테이너로 배포하고, 인프라 운영과 확장, IAM 인증 WebSocket 엔드포인트를 처리하는 서버리스 런타임으로 설명된다. 구현에서는 Strands Agents SDK의 BidiAgent 클래스가 Nova 2 Sonic과의 양방향 음성 스트리밍을 관리한다. React 프런트엔드는 브라우저 마이크 음성을 캡처해 WebSocket으로 에이전트에 전송하며, 사용자는 Amazon Cognito로 인증받고 SigV4 방식으로 요청을 서명한다. AgentCore Runtime은 컨테이너화된 Strands BidiAgent를 호스팅하고, Nova 2 Sonic은 오디오 입력을 받아 대화 추론, 도구 호출, 음성 응답 생성을 수행한다.

6. 데이터 저장과 알림 인프라

아키텍처에는 세 개의 DynamoDB 테이블이 사용되어 환자 기록, 예약 세부 정보, 가용 시간 슬롯을 저장한다. 환자 인증 도구는 환자 테이블을 조회하고, 예약 확인·취소·변경 도구는 예약 상태와 날짜·시간 정보를 갱신한다. 가용 슬롯 조회와 예약 변경 과정에서는 제공자와 날짜 기준으로 슬롯을 찾고, 동시 요청에서 중복 예약이 발생하지 않도록 조건부 쓰기를 사용한다고 설명한다. 상담원 연결이 필요한 경우에는 Amazon SNS가 환자 정보와 에스컬레이션 사유를 포함한 알림을 발행해 직원이 후속 전화를 걸 수 있게 한다.

7. 일곱 개의 의료 특화 도구와 확장 방식

음성 에이전트는 Strands Agents SDK의 @tool 데코레이터로 구현된 일곱 개의 Python 도구를 사용한다. authenticate_patient는 이름과 SSN 마지막 네 자리로 신원을 확인하고, confirm_appointment는 예약 상태를 Confirmed로 바꾸며, cancel_appointment는 사유와 함께 예약을 취소한다. find_available_slots는 재예약 가능한 시간을 최대 세 개까지 제시하고, book_appointment_slot은 선택된 슬롯을 원자적으로 예약한다. record_health_update는 기존 질환, 알레르기, 동행 여부, 방문 관련 우려를 순차적으로 수집하며, escalate_to_agent는 6자리 참조번호를 만들고 SNS 알림을 보낸다. 글은 새 기능이 필요하면 새 @tool 함수를 추가하고 시스템 프롬프트를 갱신하면 된다고 설명한다.

8. 통화 흐름과 배포 절차

BidiAgent가 관리하는 통화는 인증, 예약 관리, 건강 정보 수집, 에스컬레이션이라는 흐름으로 진행된다. 먼저 환자의 이름과 SSN 마지막 네 자리를 묻고, 인식 오류를 줄이기 위해 들은 내용을 반복 확인한 뒤 DynamoDB로 검증한다. 인증 후에는 제공자 이름, 날짜, 시간 등 예약 정보를 안내하고, 환자가 확인·취소·변경 중 하나를 선택하면 해당 도구가 호출된다. 확인 또는 재예약이 완료되면 네 가지 사전 건강 정보를 한 번에 하나씩 묻는다. 배포는 infrastructure 디렉터리에서 Python 가상환경을 만들고 의존성을 설치한 뒤 CDK deploy를 실행하는 방식이며, 완료 후 CloudFormation 출력의 Cognito 및 AgentCore 값을 프런트엔드 설정에 사용한다.

🧾 핵심 주장 / 시사점

  • 이 글의 핵심은 단순한 음성 응답 데모가 아니라, 인증·예약 변경·문진·에스컬레이션을 도구 호출로 묶어 실제 업무 흐름에 맞게 오케스트레이션하는 구조에 있다.
  • speech-to-speech 접근은 의료 예약 통화처럼 환자의 불안, 망설임, 혼란이 응답 방식에 영향을 줄 수 있는 상황에서 기존 전사 기반 체인의 약점을 줄이기 위한 선택으로 제시된다.
  • 도구를 개별 Python 함수로 분리한 설계는 예약 확인 외에 보험 정보 수집 같은 기능을 추가할 때 전체 에이전트를 다시 작성하지 않고 기능 단위로 확장할 수 있게 한다.

✅ 액션 아이템

  • 예약 노쇼율이 5~30%로 빈 슬롯 손실을 유발하므로 예약 확인·취소·변경 자동화 범위를 전반적으로 재정의한다.
  • Nova 2 Sonic의 실시간 speech-to-speech 방식으로 STT·TTS 분할 파이프라인 대비 지연 및 맥락 손실 축소 효과를 점검한다.
  • Strands BidiAgent의 일곱 개 의료 특화 도구를 사용해 DynamoDB 조회·갱신과 SNS 상담원 콜백 알림 경로를 구현 범위로 정리한다.

❓ 열린 질문

  • 실시간 speech-to-speech 처리 방식이 환자 응대에서 말투·망설임·긴급함 단서를 실질적으로 어느 수준까지 보존할 수 있는가?
  • 환자 인증에서 예약 확인·취소·변경·사전 문진·상담원 연결이 한 흐름으로 연결될 때 실패 모드는 무엇을 기준으로 정의할 것인가?
  • Cognito·SigV4 WebSocket·AgentCore Runtime·DynamoDB·SNS·React 조합에서 권한 위임과 콜백 전달 책임은 어디에 분리하는 것이 적절한가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.