跳到主要內容
AI News HubLIVE
站內改寫4 分鐘閱讀

用 Amazon Bedrock AgentCore、託管知識庫與 Nova Sonic 構建語音旅行管家

文章摘要

本文介紹如何用 Amazon Bedrock AgentCore、Amazon Nova 2.5 Sonic 和 Amazon Bedrock Knowledge Bases 為航空公司應用加入語音旅行管家:旅客通過説話即可改座位、查延誤、詢問政策,代理經 MCP 工具訪問現有後端,並在任何寫入前先請求確認。

來源AWS Machine Learning Blog作者: Ravi Kumar
用 Amazon Bedrock AgentCore、託管知識庫與 Nova Sonic 構建語音旅行管家
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

航空公司的應用和網站早已支持旅客查詢航班、挑選座位和管理預訂。如果在這些界面之上再疊加一層自然語音交互,旅客只需開口説話就能完成同樣的操作,既不用離開當前應用,也不必在多個頁面之間來回切換。不過,構建這樣一層並不輕鬆:需要讓雙向音頻流穩定傳輸,在多輪對話中始終保留上下文,在不與現有後端緊耦合的前提下接入既有系統,還要在節假日前的高峯流量下按需擴展。

本文將演示如何為航空公司應用加入一個語音旅行管家,它建立在三項託管服務之上。Amazon Bedrock AgentCore 是一個用於安全構建、部署和運營 AI 代理的平台,允許自由選擇框架與模型;Amazon Nova Sonic on Bedrock 是面向實時語音的語音到語音模型;Amazon Bedrock Knowledge Bases 則是完全託管的檢索增強生成服務,可讓回答紮根於企業自有文檔。旅客開口之後,管家可以調出行程、更改座位、更新餐食偏好、回答政策問題,並在旅客要求時轉接人工客服。

值得注意的是,管家是與現有界面並存的,而不是取而代之,因此旅客可以在同一會話中自由切換點擊與語音兩種方式。它運行在按需擴展的服務上,開發者可以把精力放在體驗本身而不是基礎設施上。AI 層通過合成數據連接到一套示例航空公司後端,方便把同樣的模式遷移到自有系統。整個項目按模塊拆分,可以只複用那些適配現有後端的部分,並把它們作為工具暴露給代理。

按照文中列出的學習目標,讀者將掌握:使用 AWS Cloud Development Kit(AWS CDK)在 AWS 上部署語音 AI 管家;用 Strands Agents 框架和 Amazon Nova 2.5 Sonic 構建代理,並託管在 AgentCore 運行時上;通過 AgentCore Gateway 以 Model Context Protocol(MCP)把代理連到後端服務;用 Amazon Bedrock Knowledge Bases 回答航空公司政策問題;以及在轉接人工客服時提供參考編號和預計等待時間。

整體架構把前端、AI 代理和後端服務劃分為相互獨立的層,便於各自開發與擴展。MCP 是一種連接 AI 應用與外部工具、數據的開放標準,它在代理和後端之間傳遞標準化消息,從而讓兩者保持松耦合。方案部署的服務包括:Amazon Cognito 負責用户認證並簽發臨時 AWS 憑證以支持簽名 API 訪問;AgentCore 運行時以每會話 microVM 隔離的方式託管代理;AgentCore Gateway 把後端端點暴露為可發現的 MCP 工具;Amazon API Gateway 以 IAM 授權發佈 REST 端點;AWS Lambda 承載行程、座位圖、旅客信息更新、航班狀態、忠誠度、政策查詢與升級等業務邏輯;Amazon DynamoDB 存儲客户檔案、預訂、旅客、座位圖、購買歷史、偏好、對話記錄和航班數據;Bedrock Knowledge Bases 基於航空公司政策文檔作答;Amazon SES 發送郵件通知;AWS Amplify 託管 React 前端。

架構圖分為四個部分。A 部分為後端基礎設施,用五個 CDK 堆棧部署 DynamoDB 表、Lambda 函數、API Gateway 端點、Bedrock Knowledge Bases 和 Cognito。B 部分是 AgentCore Gateway,由一個 CDK 堆棧基於 MCP 協議創建網關,並把每個後端端點暴露為代理可以按名稱調用的工具。C 部分是 AgentCore 運行時,由兩個 CDK 堆棧配置運行時基礎設施:Amazon ECR 存放容器鏡像,Amazon S3 保存源碼上傳,AWS CodeBuild 生成 ARM64 Docker 鏡像,運行時則藉助 Strands Agents 框架與 Amazon Nova 2.5 Sonic,並支持 WebSocket。D 部分是前端,由一個 CDK 堆棧把 React 應用部署到 AWS Amplify。

用户請求的流轉過程如下:用户在瀏覽器或移動設備上打開託管於 AWS Amplify 的 Web 應用;在登錄頁輸入憑證後,Cognito 完成認證並返回 JWT 與臨時 AWS 憑證;前端與 Bedrock AgentCore 建立經過 SigV4 簽名的 WebSocket 連接,開啓語音會話;運行時用 Cognito 校驗令牌,並通過 Bedrock 初始化 Nova 2.5 Sonic;用户説話後,Nova 2.5 Sonic 處理音頻並觸發工具調用,代理通過 MCP 調用 AgentCore Gateway 來獲取航班數據、管理預訂和更新旅客偏好;網關再把請求以 REST 調用轉發給 API Gateway,進而路由到 Lambda;Lambda 查詢 DynamoDB 中的預訂、旅客、座位圖、忠誠度狀態和航班信息,並通過 SES 發送郵件通知;最後 Nova 2.5 Sonic 生成結合上下文的語音回覆,經 AgentCore 運行時通過 WebSocket 流式返回。遇到政策類問題時,網關會經由 MCP 的知識庫連接器直接查詢 Bedrock Knowledge Bases,知識庫以引用形式返回相關政策段落。當用户要求人工客服時,Lambda 會在 DynamoDB 中記錄升級並返回參考編號,隨後 Amplify 從用户設備發起呼叫,接通真人客服。

構建與運維環節同樣清晰。AWS CDK 用單個腳本完成部署:構建過程把代理源碼上傳到 Amazon S3,觸發 CodeBuild 生成容器鏡像並存入 Amazon ECR 供 AgentCore 運行時使用。Amazon CloudWatch 彙總所有服務的日誌、指標和告警,AWS KMS 負責靜態數據加密。開始前的準備條件包括:一個 AWS 賬户;在部署區域為 Amazon Nova 2.5 Sonic 開通模型訪問權限(知識庫使用服務託管嵌入模型,因此無需單獨申請嵌入模型權限);Node.js 20.x 或更高版本;Python 3.12 或更高版本;已配置憑證的 AWS CLI 2.x;通過 npm 安裝並引導賬户的 AWS CDK CLI 2.x;以及來自 aws-samples GitHub 倉庫的配套代碼。部署時只需克隆倉庫、配置憑證並運行部署腳本,詳細步驟可參考倉庫 README。

示例數據模型方面,API Gateway 發佈了帶 IAM 授權端點和 Lambda 集成的 REST API,DynamoDB 以個位數毫秒延遲和按需擴展能力存儲數據,覆蓋客户檔案、預訂、旅客、座位圖、購買歷史、偏好、對話記錄和航班狀態。

在政策問答上,旅客常會詢問行李限額、改簽費用、寵物出行和忠誠度條款。方案通過 Bedrock Knowledge Bases 的檢索增強生成(RAG)以航空公司政策文檔為依據作答,倉庫中自帶行李、取消與退款、改簽與重新預訂、票價等級規則、忠誠度條款、寵物出行、特殊協助和升艙等示例政策文檔。用户把文檔上傳到 Amazon S3 並一次性創建知識庫,之後的嵌入、分塊、索引、存儲和檢索都由 Bedrock 處理,存儲運行在 Amazon S3 Vectors 上;Smart Parsing 能讓 PDF 中的表格和結構化版式被準確檢索。政策文檔變更時只需同步知識庫,新內容立即可用,無需重新部署流水線。把知識庫接到代理也很直接:在 AgentCore Gateway 中將其添加為 Connectors 目標,選擇標準檢索或代理式檢索,網關就會把它作為具名 MCP 工具與後端 API 工具並列暴露,代理在運行時自動發現並按名稱調用,無需編寫自定義 Lambda 或檢索代碼。若要使用自有政策,把 PDF 或文本文件放入政策文檔目錄並重新部署知識庫堆棧即可。

語音 AI 處理方面,每個會話都作為託管容器運行在 AgentCore 運行時上,並具備 microVM 隔離,因此在高負載下旅客對話依然彼此獨立;AgentCore 還提供自動擴展、內置監控和會話路由。生產部署建議加入 Amazon Bedrock Guardrails,用於過濾提示注入嘗試並驗證回答的依據來源。本方案採用“寫入前確認”模式,即在做出任何更改前先請旅客確認,再加上能追溯到源文檔的知識庫引用,構成負責任 AI 實踐的基本基線。代理使用 Strands BidiAgents 框架定義系統提示、工具和對話流程,而 Nova 2.5 Sonic 則為管家帶來多項能力:跨口音的語音識別與對背景噪聲的魯棒性;可適應旅客語調的口語回覆;低延遲的雙向流式傳輸;無需暫停對話即可並行取數或調用工具的異步工具調用;在等待工具結果時生成臨時語音以掩蔽延遲,保持對話自然;支持打斷與自然輪流;以及跨多輪延續的上下文。音頻以前端 16 kHz PCM 的形式經 WebSocket 流向 AgentCore 運行時,Nova 2.5 Sonic 轉寫語音,代理挑選合適的工具並經 MCP 調用;AgentCore Gateway 把每次 MCP 調用轉換為 REST 請求,Lambda 執行邏輯並返回結果,最終由 Nova 2.5 Sonic 把這些結果整合成一段口語回覆。本方案使用的是具備強推理能力的 Nova 2.5 Sonic,對需要調用後端工具並遵循詳細系統提示的語音管家而言,這種推理能力體現在更好的工具調用與代理式任務完成等方面。

展開要點與分析

文章情報

工程師入門

要點

  • 以 Amazon Bedrock AgentCore 運行時、AgentCore Gateway、Nova 2.5 Sonic 語音模型和託管知識庫搭建實時語音代理
  • 通過 Model Context Protocol 把後端端點暴露為可按名稱調用的工具,使代理與既有系統保持松耦合
  • Nova 2.5 Sonic 提供低延遲雙向流式、異步工具調用、延遲掩蔽和打斷處理等能力,支持多輪上下文
  • 整套方案用 AWS CDK 一鍵部署,並集成 Cognito、API Gateway、Lambda、DynamoDB、S3 Vectors、SES、Amplify 等服務

技術影響

可能影響 Agent 架構、工具調用、工作流自動化和產品集成。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。