亚马逊云科技基础模型,与AI实时语音交互,银行业务随问随答!
Amazon Nova Sonic是亚马逊云科技推出的一款基础模型(FM),能够让用户通过语音与生成式AI应用实时交互,并实现更加自然、如同真人对话般的语音交互体验。该模型还能够理解用户说话语调,让对话保持流畅节奏,并根据用户指令执行相应操作。
Amazon Nova Sonic是亚马逊云科技推出的一款基础模型(FM),能够让用户通过语音与生成式AI应用实时交互,并实现更加自然、如同真人对话般的语音交互体验。该模型还能够理解用户说话语调,让对话保持流畅节奏,并根据用户指令执行相应操作。
多Agents架构为生产级语音助手提供了一种模块化、稳健且可扩展的设计模式。
本文将介绍Amazon Nova Sonic语音Agent的应用示例,并展示其如何与Strands Agents框架的子Agent集成,同时借助Amazon Bedrock AgentCore构建高效的多Agents系统。
多Agents架构概述
以开发一款银行助手应用为例,该助手将负责处理用户开户、信息收集、身份验证、账户查询、异常情况,以及根据预设条件转接人工客服。
随着功能需求不断扩展,语音Agent会持续新增查询类型,导致系统提示词会变得极其冗长,底层逻辑也愈发复杂。这也正体现了长期存在于软件开发过程中的一项挑战:单体式设计会导致维护和升级系统难度较大。
多Agents架构就好比组建一支由专业AI助手构成的团队,而非依赖单个包揽一切任务的助手。正如企业会将工作职责分配至不同部门一样,这种架构能将复杂任务拆解为更小、更易处理的模块,让每个AI Agent都成为专门负责某一特定领域的专家,包括事实核查、数据处理、处理专项请求等任务领域。
*图片源自亚马逊云科技官网
对用户而言,整个交互体验无缝衔接:响应没有延迟、语音不会变化、也看不到任何服务转接迹象。系统在后台运行,会指挥每个专业Agent在恰当时机介入工作。
除了具备模块化和稳健性的优势之外,多Agents系统还拥有类似于微服务架构(一种主流的企业级软件设计模式)的优势,不仅能实现可扩展性、分布式部署和可维护性,还支持企业复用专为大语言模型(LLM)驱动的应用而开发的Agent工作流。
示例应用
本文将参考Amazon Nova Sonic workshop的多Agents实验代码,以银行语音助手为例,展示如何在Amazon Bedrock AgentCore上部署专业Agent。
它将Amazon Nova Sonic用作语音接口层,并充当协调者,将具体查询任务分配给基于Strands Agents编写的子Agent,这些子Agent运行在AgentCore Runtime上。
您可在GitHub代码库中找到示例源代码。
GitHub代码库:
https://github.com/aws-samples/amazon-nova-samples/tree/main/speech-to-speech/workshops/agent-core
在银行语音Agent示例中,初始对话流程为发送问候语和收集用户姓名,随后再处理与银行业务或抵押贷款相关的查询任务。
本例使用了三个部署在Amazon Bedrock AgentCore上的子Agent来处理专业逻辑:
身份认证子Agent
通过账户ID及其他信息,处理用户认证。
银行业务子Agent
处理账户余额查询、账单生成及其他银行业务相关咨询。
抵押贷款子Agent
处理抵押贷款相关咨询,包括再融资、利率及还款方式。
各个子Agent独立运行,可自行处理输入验证等逻辑。例如,身份认证Agent能够验证账户ID,必要情况下还会向Amazon Nova Sonic返回错误信息。这与软件工程中的模块化设计模式原理一致,不仅简化了Amazon Nova Sonic的推理逻辑,同时还实现了业务逻辑的封装隔离。
*图片源自亚马逊云科技官网
通过工具调用事件
集成Amazon Nova Sonic与AgentCore
Amazon Nova Sonic通过工具调用实现与Agent工作流的集成。在Amazon Nova Sonic事件生命周期内,用户可通过promptStart事件提供工具调用配置,该事件将在Amazon Nova Sonic接收到特定类型输入时被触发。
例如,在以下Amazon Nova Sonic工具配置示例中,工具调用被配置为基于Amazon Nova Sonic的内置推理模型触发事件,该推理模型会分类查询内容,以便将其路由至对应的银行业务子Agent。
[{"toolSpec": {"name": "bankAgent","description": `Use this tool whenever the customer asks about their **bank account balance** or **bank statement**.It should be triggered for queries such as:- "What’s my balance?"- "How much money do I have in my account?"- "Can I see my latest bank statement?"- "Show me my account summary."`,"inputSchema": {"json": JSON.stringify({"type": "object","properties": {"accountId": {"type": "string","description": "This is a user input. It is the bank account Id which is a numeric number."},"query": {"type": "string","description": "The inquiry to the bank agent such as check account balance, get statement etc."}},"required": ["accountId", "query"]})}}}]
左右滑动查看完整示意
当用户向Amazon Nova Sonic询问“我的账户余额是多少”等问题时,它会向客户端应用程序发送一个toolUse事件,其中包含配置中定义的特定toolName(例如bankAgent)。
随后,应用程序可以调用部署在Amazon Bedrock AgentCore上的子Agent来处理银行业务逻辑,然后将响应返回给Amazon Nova Sonic,再为用户生成语音回复。
{ "event": { "toolUse": { "completionId": "UUID", "content": "{\"accountId\":\"one two three four five\",\"query\":\"check account balance\"}", "contentId": "UUID", "promptName": "UUID", "role": "TOOL", "sessionId": "UUID", "toolName": "bankAgent", "toolUseId": "UUID" } }}
左右滑动查看完整示意
将子Agent部署至
Amazon Bedrock AgentCore
以下示例展示了基于Strands Agents框架开发的银行业务子Agent,您可将其部署在Amazon Bedrock AgentCore上。它通过Amazon Bedrock调用Amazon Nova Lite作为推理模型,能以极低延迟提供高效的认知能力。
该Agent的实现包含一个系统提示,用于定义其作为银行助手的职责,此外还配备了两个专用工具:一个用于账户余额查询,另一个用于银行账单调取。
from strands import Agent, toolimport jsonfrom bedrock_agentcore.runtime import BedrockAgentCoreAppfrom strands.models import BedrockModelimport re, argparse
app = BedrockAgentCoreApp()
@tooldef get_account_balance(account_id) -> str: """Get account balance for given account Id
Args: account_id: Bank account Id """
# The actual implementation will retrieve information from a database API or another backend service. return {"result": result}
@tooldef get_statement(account_id: str, year_and_month: str) -> str: """Get account statement for a given year and month Args: account_id: Bank account Id year_and_month: Year and month of the bank statement. For example: 2025_08 or August 2025 """ # The actual implementation will retrieve information from a database API or another backend service. return {"result": result}
# Specify Bedrock LLM for the Agentbedrock_model = BedrockModel( model_id="amazon.nova-lite-v1:0",)# System promptsystem_prompt = '''You are a banking agent. You will receive requests that include: - `account_id` - `query` (the inquiry type, such as **balance** or **statement**, plus any additional details like month).
## Instructions1. Use the provided `account_id` and `query` to call the tools. 2. The tool will return a JSON response. 3. Summarize the result in 2–3 sentences. - For a **balance inquiry**, give the account balance with currency and date. - For a **statement inquiry**, provide opening balance, closing balance, and number of transactions. 4. Do notreturn raw JSON. Always respond in natural language. '''
# Create an agent with tools, LLM, and system promptagent = Agent( tools=[ get_account_balance, get_statement], model=bedrock_model, system_prompt=system_prompt)
@app.entrypointdef banking_agent(payload): response = agent(json.dumps(payload)) return response.message['content'][0]['text'] if __name__ == "__main__": app.run()
左右滑动查看完整示意
最佳实践:
构建可提供语音交互体验的
多Agents系统
多Agents架构具备极高的灵活性和模块化设计思路,能让开发者高效构建语音助手,还可复用现有的专业Agent工作流。
在打造以语音对话为主的交互体验时,您可参考以下最佳实践,来应对构建该交互模式时面临的独特挑战。
平衡灵活性与延迟
虽然通过Amazon Nova Sonic工具调用事件触发子Agent,能够赋予系统强大功能,但也可能增加语音响应延迟。对于需要同步交互体验的应用场景而言,每次Agent转接都可能成为交互流程中的潜在延迟点。因此,设计时必须充分考虑响应时间。
优化子Agent的模型选择
为子Agent优先选用Amazon Nova Lite这类体积更小、效率更高的模型,既能有效处理专业任务,又能显著降低延迟。建议您仅在需要复杂推理,或必须具备高级自然语言理解能力时,才选用体积更大、功能更强的模型。
设计可优化的语音响应方式
语音助手的最佳响应方式是提供简洁明了、重点突出的响应,并在用户需要时再补充相关细节。这种方式不仅能降低延迟,还能提供更自然更流畅的对话,符合人类交流习惯。
对比考量
子Agent的无状态与有状态设计
无状态子Agent能够独立处理每个请求,不会保留历史交互记录或会话级状态记忆。它们实现简单、易于扩展,非常适合处理直接明了的一次性任务。但除非引入外部状态管理机制,否则它们无法提供基于上下文的响应内容。
相反,有状态子Agent会在多轮交互中保留记忆,以支持生成基于上下文的响应和会话级状态管理。这种设计能为用户提供更个性化、更连贯流畅的体验,但同时也会增加系统复杂度和资源消耗。因此,有状态子Agent最适合涉及多轮交互、需要缓存用户或会话级上下文的场景。
总结
多Agents架构为复杂的AI驱动型工作流带来了灵活性、可扩展性与准确性。将Amazon Nova Sonic的对话能力与Amazon Bedrock AgentCore的编排能力相结合,用户能够轻松构建出可无缝协作的智能专业Agent。
对于正寻求提升AI应用程序性能方法的用户而言,基于Amazon Nova Sonic与Amazon Bedrock AgentCore构建的多Agents模式,无疑是值得体验的高效方案。
如需深入了解Amazon Nova Sonic,您可参阅用户指南,借助示例应用搭建应用程序,或参与Amazon Nova Sonic workshop快速上手。此外,您也可参考技术报告与模型卡片,获取更多基准测试信息。
用户指南:
https://docs.aws.amazon.com/nova/latest/userguide/speech.html
示例应用:
https://github.com/aws-samples/amazon-nova-samples/tree/main/speech-to-speech/sample-codes
Amazon Nova Sonic workshop:
https://catalog.workshops.aws/amazon-nova-sonic-s2s
技术报告与模型卡片:
https://www.amazon.science/publications/amazon-nova-sonic-technical-report-and-model-card
Lana Zhang
亚马逊云科技全球专家组织中的生成式AI高级专家解决方案架构师。她专注于人工智能与机器学习领域,重点研究AI语音助手、多模态理解等应用场景。她与媒体娱乐、游戏、体育、广告、金融服务、医疗健康等多个行业的客户携手合作,助力客户利用AI实现业务解决方案的转型升级。
我们正处在Agentic AI爆发前夜。企业要从"成本优化"转向"创新驱动",通过完善的数据战略和AI云服务,把握全球化机遇。亚马逊将投入1000亿美元在AI算力、云基础设施等领域,通过领先的技术实力和帮助“中国企业出海“和”服务中国客户创新“的丰富经验,助力企业在AI时代突破。
更多推荐

所有评论(0)