承接上篇,亚马逊云科技 AI Agent 凭什么能擦出火花?!
我们接着来完成这个实战内容。
以下是基于Amazon Bedrock Agent 的两个服务示例的完整流程与详细内容,包含技术架构、实现细节、交互逻辑及扩展能力。
另外,再跟大家偷偷说一下,Free Tier 2.0 免费套餐有新升级,
Free Tier 2.0 vs Legacy Free Tier(可根据自己所需来进行选择)☞ 传送门

产品信息查询助手
通过自然语言交互,帮助用户快速获取电商平台的产品全维度信息(价格、库存、规格、评价等),支持多条件组合查询(如"黑色+42码+运动鞋"),并自动整合多源数据生成结构化回答。
1. 系统架构设计
组件 | 作用 | 技术选型(亚马逊云科技生态) |
---|---|---|
数据源 | 存储产品全量信息 | DynamoDB(产品主表、评价表) |
接口层 | 暴露数据查询能力 | API Gateway + Lambda |
智能交互层 | 意图识别、工具调用、响应生成 | Amazon Bedrock Agent(基于Claude/LLaMA) |
监控与日志 | 跟踪请求链路、错误排查 | Amazon CloudWatch |
2. 数据源设计(DynamoDB)
- 产品主表(ProductTable) 主键:
product_id
(字符串)字段:name
:产品名称(如"专业跑步运动鞋")category
:品类(如"鞋靴>运动鞋")attributes
:规格属性(JSON,如{"color":"黑色","size":"42","material":"网面"}
)price
:当前价格(数值,如899.00)stock
:库存数量(数值,如32)update_time
:信息更新时间(时间戳)
- 用户评价表(ReviewTable) 主键:
review_id
(字符串)字段:product_id
:关联产品IDrating
:评分(1-5)content
:评价内容create_time
:评价时间user_id
:评价用户ID
3. API接口设计
通过API Gateway定义3个核心接口,由Amazon Lambda实现业务逻辑:
接口名称 | 作用 | 请求参数 | 返回示例 |
---|---|---|---|
/product/query |
按条件查询产品基本信息 | filters (JSON,如{"color":"黑色","category":"运动鞋"} ) |
[{"product_id":"P123","name":"黑色专业跑鞋","price":899,"stock":32,...}] |
/product/reviews |
查询产品评价 | product_id 、limit (默认10) |
{"avg_rating":4.8,"count":236,"recent_reviews":["舒适度高...","尺码标准..."]} |
/product/spec |
查询详细规格 | product_id |
{"weight":"350g","warranty":"1年","material":"透气网面+橡胶底"} |
4. Amazon Bedrock Agent配置
- 工具定义 :在Agent中注册上述3个API,配置参数映射规则(如将用户输入的"黑色"映射到
filters.color
)。 - 意图训练 :提供样本语料训练Agent识别查询意图,示例:
- 基础查询:"XX产品多少钱?"→ 调用
/product/query
- 多条件查询:"黑色42码运动鞋有货吗?"→ 调用
/product/query
(带color/size/category过滤) - 评价查询:"这个商品的用户评价怎么样?"→ 先调用
/product/query
获取product_id,再调用/product/reviews
- 基础查询:"XX产品多少钱?"→ 调用
- 响应模板:定义回答格式,如:"【{name}】当前价格{price}元,库存{stock}件。最近30天平均评分{avg_rating}/5,用户反馈:{recent_reviews[0]}"
5. 完整交互流程
用户输入:"帮我看看黑色42码运动鞋的库存、价格和最近评价"
- 意图解析:Agent识别到用户需要"库存+价格+评价",且过滤条件为"color=黑色,size=42,category=运动鞋"。
- 工具调用 :
- 第一步:调用
/product/query
,传入filters={"color":"黑色","size":"42","category":"运动鞋"}
,返回匹配的产品列表(假设唯一匹配product_id=P123
)。 - 第二步:提取
P123
,调用/product/reviews?product_id=P123&limit=2
,获取平均评分4.8及两条最新评价。
- 第一步:调用
- 数据整合与响应:Agent整合数据,生成自然语言回答:"黑色42码专业跑鞋当前价格899元,库存32件。最近30天平均评分4.8/5,用户反馈:'鞋底弹性好,长时间跑步不累''尺码标准,透气不闷脚'。"
6. 错误处理
- 无匹配产品:"未找到符合'黑色42码运动鞋'的商品,建议尝试调整颜色或尺码(如'白色43码运动鞋')。"
- 库存不足:"黑色42码专业跑鞋当前库存仅剩2件,建议尽快下单。"
- API调用失败:"暂时无法查询产品信息,请稍后重试(错误码:503)。"
订单状态跟踪器
支持用户通过订单号或模糊描述(如"上周买的衣服")查询订单全链路状态,自动关联物流信息,提供实时进度与预计送达时间。
1. 系统架构设计
组件 | 作用 | 技术选型(亚马逊云科技生态) |
---|---|---|
订单数据源 | 存储订单基础信息 | Aurora MySQL(订单表) |
物流数据源 | 对接第三方物流系统 | 物流API(如顺丰/京东物流开放平台) |
接口层 | 订单/物流查询接口 | API Gateway + Lambda |
智能交互层 | 订单号提取、模糊查询解析、多步调用 | Amazon Bedrock Agent(基于Claude 3) |
2. 核心数据模型
- **订单表(OrderTable)**主键:
order_id
(字符串,格式如"ORD20231001XXXX")字段:user_id
:用户ID(关联用户账户)status
:订单状态(枚举:pending
/paid
/shipped
/delivered
/cancelled
)items
:商品列表(JSON,如[{"product_id":"P123","name":"跑鞋","quantity":1}]
)create_time
:下单时间ship_time
:发货时间(状态为shipped
时非空)logistics_company
:快递公司(如"顺丰")tracking_number
:运单号(如"SF67890123456")
- **用户订单关联表(UserOrderMap)**主键:
user_id
+create_time
(排序键)作用:支持模糊查询(如"上周的订单")时快速定位用户近期订单。
3. API接口设计
接口名称 | 作用 | 请求参数 | 返回示例 |
---|---|---|---|
/order/query |
查询订单基础信息 | order_id 或 user_id +time_range |
{"order_id":"ORD202310011234","status":"shipped","ship_time":"2023-10-02 10:30",...} |
/logistics/track |
查询物流详情 | company 、tracking_number |
{"status":"配送中","current_location":"上海市浦东新区","estimated_delivery":"2023-10-03 18:00"} |
4. Amzon Bedrock Agent配置
- 工具定义 :注册
/order/query
和/logistics/track
,配置条件调用规则(如订单状态为shipped
时自动调用物流接口)。 - 意图与实体识别 :
- 订单号识别:训练Agent识别平台订单号格式(如"ORD+日期+4位数字")。
- 模糊查询解析:将"上周买的衣服"解析为
user_id=当前用户
+time_range=近7天
+items.name包含"衣服"
。
- 多轮对话处理:若用户未提供订单号且无法通过模糊查询定位(如用户有多个近期订单),自动反问:"你指的是以下哪个订单?1. ORD202310011234(跑鞋);2. ORD202309285678(T恤)"
5. 完整交互流程
用户输入:"订单号ORD202310011234的状态是什么?"
- 意图解析与实体提取 :Agent提取
order_id=ORD202310011234
,识别意图为"查询订单状态"。 - 订单信息查询 :调用
/order/query?order_id=ORD202310011234
,返回:{"status":"shipped","logistics_company":"顺丰","tracking_number":"SF67890123456","ship_time":"2023-10-02 10:30"}
- 物流信息查询(条件触发) :因订单状态为
shipped
,自动调用/logistics/track?company=顺丰&tracking_number=SF67890123456
,返回:{"status":"配送中","current_location":"上海市浦东新区","estimated_delivery":"2023-10-03 18:00"}
- 响应生成:整合信息后返回:"订单ORD202310011234已发货(发货时间:10月2日10:30),由顺丰快递配送(运单号SF67890123456)。当前状态:配送中(位于上海市浦东新区),预计10月3日18:00前送达。"
6. 扩展场景
- 异常通知:若物流信息显示"派送失败",自动附加:"如需重新派送,可回复'安排重派'"。
- 跨账户查询:支持用户查询他人代付订单(需验证权限:"请提供下单人手机号后4位以确认权限")。
总结
两个示例均体现了Amazon Bedrock Agent的核心价值:将自然语言转化为结构化工具调用,通过整合多源数据简化用户交互。实际落地时可进一步扩展:
- 产品助手:结合用户历史浏览数据增加个性化推荐(如"你可能还喜欢同款蓝色跑鞋");
- 订单跟踪器:对接售后系统,支持"申请退款""修改收货地址"等操作触发。
通过亚马逊云科技的 Serverless 架构(Lambda+API Gateway)和Bedrock的低代码配置,开发者可快速实现从"功能设计"到"生产部署"的全流程。
以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~