AWS发布基于Bedrock AgentCore和Nova 2的多模态WhatsApp订餐助手部署方案
该方案让快餐店顾客可通过同一WhatsApp号码发送文本、语音留言或拨打语音电话下单,三种渠道共享后端和跨渠道记忆。
AWS机器学习博客发布一篇技术文章,介绍如何部署一个多模态WhatsApp订餐助手。该助手基于Amazon Bedrock AgentCore和Amazon Nova 2构建,让快餐店顾客可以通过同一个WhatsApp Business号码发送文字、发送语音留言或直接拨打语音电话完成订餐。AWS在文章中称,这些渠道共享同一套后端和跨渠道记忆,顾客以前通过短信联系、之后打电话时能识别为同一人。
方案架构与组件
这一参考架构将渠道、代理运行和业务后端分离。WhatsApp层负责会话入口,三个代理运行各自的对话,后端处理菜单、购物车、订单和门店位置。所有入站流量都发送到一个HTTPS webhook,回复 200 后通过队列异步处理,避免请求阻塞响应。
SDK部署时,先共享VPC,再配置DynamoDB、Location Service、订单Lambda和后端REST API,随后部署AgentCore Gateway和共享内存,最后构建ARM64代理容器并部署三个运行时。文中说明,每个容器首次构建需要 8–12 分钟,并提到预置了示例菜单和门店数据。
- Meta WhatsApp Business Platform是面向客户的入口,网关提供Cloud API webhook、消息、媒体和实时通话API。
- Amazon Bedrock AgentCore runtime在同一架构中托管三个代理,分别对应聊天、语音留言和语音通话。
- Amazon Nova 2 Lite处理文本(通过Bedrock Converse API),Amazon Nova 2 Sonic用于语音留言和电话的实时语音识别与合成。
- AgentCore Gateway作为托管MCP服务器,将后端REST API暴露为代理可以按名称调用的MCP工具(如GetMenu、AddToCart、PlaceOrder),代理不直接调用后端Lambda。
- AgentCore memory通过哈希后的customer_id实现跨渠道记忆共享,涉及客户档案、订单、菜单、购物车和门店位置的数据存放在Amazon DynamoDB。
- 语音通话的媒体路径通过Amazon KVS提供的TURN中继,并且只有一个运行时需要VPC,VPC内包含NAT网关。
- AWS CDK部署后,需要从外部获取的Meta配置值作为参数传入,例如Phone Number ID、WABA ID、App ID;密钥如Access Token、App Secret、Verify Token则存放在AWS Secrets Manager中,避免以参数形式写入CDK模板。
三大渠道的调用流程
文本消息进入webhook后,Lambda ingest解析后进入队列,worker派生customer_id并调用聊天运行时,Amazon Nova 2 Lite通过Converse API生成回复,反馈经Sender Lambda从WhatsApp发出。语音留言处理过程中,worker下载OGG Opus音频,将其解码为 16 kHz PCM并交由Nova 2 Sonic处理,回复为语音留言,全程没有使用自动转写服务。语音通话模式下,Meta的Calling API发送WebRTC请求,agent通过WebRTC控制信令返回,TURN凭据从Amazon KVS获取,媒体通过DTLS/SRTP和中继传输,通话由Nova 2 Sonic驱动。
前提条件
该方案要求AWS账户开启Amazon Bedrock模型访问权限,具体模型为Amazon Nova 2 Lite (amazon.nova-2-lite-v1:0) 和Amazon Nova 2 Sonic (amazon.nova-2-sonic-v1:0)。本地环境需要Node.js 24.x或更高版本、AWS CLI 2.x和git,并完成AWS CDK引导。部署应在同时可提供Nova 2模型和AgentCore各功能的区域进行,建议从us-east-1开始。
WhatsApp侧需要准备Meta Developer App、WhatsApp产品、Business portfolio ID、App ID/Secret、Access Token、自定的Verify Token,并测试号启用Calling API功能。AWS在这篇文章中称,测试时使用Meta沙盒测试号即可,该号不产生额外费用,不需要企业验证。临时Access Token会在大约 24 小时后过期,如果需要持续运营,应创建系统用户token,并配置whatsapp_business_messaging和whatsapp_business_management权限。