In a technical post published on the AWS blog, Ravi Kumar presented an architecture for building a voice travel concierge for airline applications. The solution is built on three managed services: Amazon Bedrock AgentCore, which serves as a platform for building, deploying, and operating AI agents in a secure environment; Amazon Nova Sonic on Bedrock, a speech-to-speech model for real-time voice; and Amazon Bedrock Knowledge Bases, a managed RAG service for grounding responses in policy documents. The concierge allows travelers to carry out tasks such as changing a seat, checking delays, updating meal preferences, inquiring about policies, and escalating to a human agent upon request, while integrating alongside existing screens in the application.
System Architecture and Layer Separation
The presented architecture separates the front end, the AI agent, and the backend services into distinct layers, enabling each component to be developed and scaled independently. To link the agent to backend services, the architecture uses the Model Context Protocol (MCP), an open standard for standardized message passing that maintains loose coupling.
The solution deploys several AWS services:
- Amazon Cognito – Handles user authentication and provides temporary AWS credentials for signed API access.
- Amazon Bedrock AgentCore runtime – Hosts the agent with microVM-level isolation for each session.
- Amazon Bedrock AgentCore Gateway – Exposes backend endpoints as discoverable MCP tools.
- Amazon API Gateway – Publishes the backend as REST endpoints with AWS Identity and Access Management (IAM) authorization.
- AWS Lambda – Runs business logic for itineraries, seat maps, passenger updates, flight status, loyalty programs, policy lookups, and escalations.
- Amazon DynamoDB – Stores customer profiles, bookings, passengers, seat maps, purchase history, preferences, conversation transcripts, and flight data.
- Amazon Bedrock Knowledge Bases – Answers policy questions by grounding responses in airline documents.
- Amazon Simple Email Service (SES) – Sends email notifications.
- AWS Amplify – Hosts the React front end of the application.
The infrastructure is split into four sections in AWS CDK: Section A includes five CDK stacks for the backend infrastructure; Section B includes one stack to create the AgentCore Gateway with the MCP protocol; Section C includes two stacks to provision the runtime infrastructure, including the use of Amazon ECR for the container image, Amazon S3 for source code uploads, and AWS CodeBuild to produce an ARM64 Docker image; and Section D includes a stack for deploying the React application on AWS Amplify.
User Request Flow and WebSocket Connection
The interaction flow begins when the user opens the web application on AWS Amplify and enters login credentials. Amazon Cognito authenticates the request and returns JWT tokens and temporary AWS credentials. Subsequently, the user interface opens a SigV4-signed WebSocket connection directly to Amazon Bedrock AgentCore.
The runtime validates the token against Cognito and initializes Amazon Nova 2.5 Sonic. When the user speaks, audio is streamed in 16 kHz PCM format over the WebSocket. The Nova 2.5 Sonic model processes the speech and triggers tool calls. The agent invokes the AgentCore Gateway using MCP to retrieve flight data or perform actions, and the Gateway translates the calls into REST API requests forwarded to API Gateway and Lambda functions. Data is retrieved from DynamoDB, and Nova 2.5 Sonic generates a voice response streamed back to the user over the WebSocket connection.
Voice Processing Capabilities with Amazon Nova 2.5 Sonic
The solution utilizes Amazon Nova 2.5 Sonic, a speech-to-speech model featuring real-time reasoning capabilities. The model provides speech recognition across a variety of accents, robustness against background noise, spoken responses that adapt to the passenger's tone of voice, and low-latency bidirectional streaming.
In addition, the system includes asynchronous tool calling in parallel without pausing the conversation, latency masking through the generation of interim spoken responses while awaiting results, barge-in capability, natural turn-taking management, and context retention across multiple turns. The agent is configured to follow a confirm-before-write pattern, requiring traveler confirmation prior to executing changes, and reads flight numbers and confirmation codes character by character.
Answering Policy Questions and Escalation to a Live Agent
For inquiries regarding baggage, change fees, pet travel, and loyalty terms, the agent connects to Amazon Bedrock Knowledge Bases through a dedicated connector on the AgentCore Gateway. Policy documents are uploaded to Amazon S3, and the service manages embedding, chunking, indexing, storage in Amazon S3 Vectors, and retrieval. A Smart Parsing mechanism prepares PDF files so that tables and complex layouts are retrieved accurately.
When a user requests to speak with a human agent, or when the agent cannot fulfill the request, the EscalateToAgent tool is triggered after receiving user confirmation. A Lambda function logs the escalation in DynamoDB and returns a reference number and estimated wait time. The Amplify interface then initiates dialing to the configured support number from the user's device.
Prerequisites and Deployment
Deployment is performed using a single AWS CDK script. Prerequisites include an AWS account, access to the Amazon Nova 2.5 Sonic model in the deployment region, Node.js version 20.x or later, Python version 3.12 or later, AWS CLI version 2.x, and AWS CDK CLI version 2.x. System monitoring is handled via Amazon CloudWatch, and encryption of data at rest is managed using AWS KMS. Resource teardown is executed in reverse order of deployment using a dedicated script.