title: “示例应用” weight: 350
在整个研讨会中,我们将为 AnyCompany Shop 构建并演进一个 客户服务 agent,这是一家虚构的在线零售商店,销售电子产品和配件。
AnyCompany Shop 需要一个由 AI 驱动的 agent,能够处理常见的客户咨询而无需转接给人工。客户通过 Web UI 与 agent 聊天,并期望它能够:
我们将从一个只能查询订单的单一 agent 开始,然后逐个模块地叠加功能,直到我们拥有一个具备可观测性、记忆、工具访问和沙盒化执行的多 agent 系统。
agent 使用三个数据源,这些数据源会随着我们完成各个实验而演进:
订单:在每个实验中使用的三个示例订单:
| 订单 ID | 客户 | 商品 | 状态 |
|---|---|---|---|
| ORD-12345 | Jane Doe | Laptop Pro 15 ($1,299.99) | 已发货 |
| ORD-67890 | John Smith | Wireless Mouse + 2× USB-C Hub ($129.97) | 已送达 |
| ORD-11111 | Alice Johnson | Noise Cancelling Headphones ($249.99) | 处理中 |
这些订单最初作为 tools.py 中的一个硬编码字典,然后在 Agent Tool Access (MCP) 实验
中迁移到 MCP server。
产品目录:约 13 个产品和常见问题作为向量嵌入到 Milvus 中。在 RAG with Milvus 实验 中添加,用于 RAG 驱动的产品答案。
库存:10 个产品的库存水平,通过 MCP server 的 check_inventory 工具提供。
agent 每个模块获得一项新功能。每一行都建立在前一行的基础上,后面的实验保留了之前所有实验的功能:
| 实验 | 新功能 | 工作原理 |
|---|---|---|
| Strands Agents | 核心 agent 循环 + lookup_order |
LLM 根据查询决定何时调用工具 |
| Observability (Langfuse) | 追踪 | 每次 LLM 调用、工具调用和决策都被捕获为一个 OTel span |
| Memory (Milvus / AgentCore) | 产品知识或会话记忆 | 自管理:对目录进行向量搜索。集成:跨轮次的对话历史 |
| Tool Access (MCP / AgentCore) | 动态工具 + 沙盒化执行 | 用于订单/库存工具的 MCP server。集成路径添加了 Code Interpreter + Browser |
| Multi-Agent (A2A) | 专家路由 | 编排器通过 A2A 分派给 Order Agent 和 Product/Sandbox Agent |
一个基于 Chainlit 的 Web UI 已预先部署在集群上。它包含一个带有四个条目的配置文件下拉菜单,每个条目对应路径和模式(单 agent 或多 agent)的一种组合。所有配置文件都将请求发送到同一个 /chat 端点;唯一的区别在于它们所针对的集群内 Service。
要在浏览器中打开它,运行:
echo $CHAT_UI_URL

注意:大多数配置文件目前还无法工作,因为它们的 agent Services 尚未部署。当我们完成每个实验时,它们将变得可用。保持此标签页打开,并在每个实验中使用它。