跳到主要内容
AI教程

使用 Claude Commerce Agents 构建并运行购物与商家代理

安装并运行 Claude Commerce Agents,连接业务系统、选择运行时、自定义流程、应用安全控制并验证实现。

Claude Commerce Agents 购物与商家代理

Claude Commerce Agents 提供的功能

Claude Commerce Agents 是基于 Claude 构建的两个商务型 AI 代理的参考实现。企业可以在面向客户的应用中嵌入购物代理,员工则可使用商家代理处理后台工作流。

每个代理都通过提示词、技能、工具契约和安全门控进行一次性定义。同一套定义可以通过 Messages API、Claude Agent SDK 或 Managed Agents 运行。四个可运行的垂直行业示例展示了该架构在零售、旅游、电信和娱乐领域的应用。

代码仓库中的所有公司、产品、品牌和人物均为虚构。示例不会下单、扣款或更新线上商品信息。结账流程会移交给宿主应用,商家侧的写入操作也会保持在暂存状态,直到获得人工批准。

了解两种代理角色

购物代理

购物代理支持面向客户的任务,例如搜索和比较商品、规划采购、填充购物车、回答订单及政策相关问题,以及记住客户提供的信息。

它的五个流程位于 shopping-agent/skills/ 下。要将该代理用于真实系统,你的部署需要基于相关的商品目录、购物车、订单和政策服务实现 StorefrontBackend

商家代理

商家代理可帮助员工了解业务表现、维护商品信息、响应库存和订单警报、调整价格与促销活动,以及起草营销活动。它的五个流程位于 merchant-agent/skills/ 下。

部署时通过实现 MerchantBackend,将其连接到分析、商品目录、库存、定价和营销活动系统。所有写入操作都会先暂存,而不会立即应用;宿主应用必须展示并批准拟议的变更。

核心架构与功能

  • 共享基础:commerce-common/ 包含两种角色共用的配置、边界防护、记忆、技能处理、事实依据约束、呈现、事件和执行器框架。
  • 多种运行时:同一套提示词、技能和工具契约可与 Messages API、Agent SDK 和 Managed Agents 配合使用。
  • 后端抽象:代理工具调用后端接口,使你的服务器能够保管凭据并协调对业务系统的访问。
  • 暂存商家变更:商家侧写入操作必须通过宿主应用的审批界面获得批准。
  • 可配置功能:可以禁用不支持的功能,从而移除相应的工具、提示词内容和事实依据约束规则。
  • 可扩展呈现:可以通过 PresentationExtension 添加特定领域的界面。
  • 可运行示例:八个 Web 应用为四个垂直行业分别提供店面和商家门户。

前提条件

安装 Python 3.11 或更高版本Node.js 22。你还需要一个 Anthropic API 密钥才能运行实时模型交互。

安装代码仓库

克隆项目、创建 Python 虚拟环境、安装锁定版本的 Python 依赖项、创建环境文件,并安装共享的 JavaScript 工作区:

git clone https://github.com/anthropics/commerce-agents.git && cd commerce-agents
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
(cd examples && npm ci)

打开 .env 并添加你的 ANTHROPIC_API_KEY。运行 Python 脚本时,请保持虚拟环境处于激活状态。

运行第一个演示

使用以下命令启动零售店面及其 API:

python scripts/run_demo.py retail

零售 API 在端口 8000 上运行,店面则在端口 3000 上运行。要启动商家门户而非店面,请添加 --merchant

python scripts/run_demo.py retail --merchant

使用 --all 同时启动两个界面:

python scripts/run_demo.py retail --all

可用的垂直行业及其 Web 端口如下:

  • 零售:店面 3000,商家门户 3100
  • 旅游:店面 3001,商家门户 3101
  • 电信:店面 3002,商家门户 3102
  • 娱乐:店面 3003,商家门户 3103

每个示例目录都包含 README,其中提供建议使用的提示词,并说明高质量响应应包含哪些内容。

探索垂直行业示例

零售

ACME 零售示例展示了商品搜索、比较、规划、购物车、结账移交和记忆功能。其商家门户包括绩效摘要、暂存补货、商品信息修正,以及基于 SQL 视图的分析委托器。

旅游

ACME Travel 增加了限定日期的库存和 present_itinerary 扩展。商家侧包括入住率日历和按日期范围调整费率的功能。

电信

ACME Mobile 展示了账户上下文、套餐矩阵和由服务器生成的费用披露信息。商家工作流涵盖套餐组合和价格变更,同时保护受监管费用。

娱乐

ACME Tickets 包括限时锁定、候补名单、转让、场馆地图和全包费用披露。其商家工具涵盖活动销售节奏、可释放容量的锁定解除操作,以及保留费用的价格变更。

使用 Messages API 运行时

Messages API 实现是参考轮次循环。创建配置、提供你的后端实现、将运行时指向购物技能,并流式传输一个轮次中生成的事件:

from pathlib import Path

from shopping_agent import ShoppingAgentConfig
from shopping_agent_runtime import ShoppingAgent

agent = ShoppingAgent(
    backend=your_backend,
    skills_dir=Path("shopping-agent/skills"),
    config=ShoppingAgentConfig(brand_name="Your Store"),
)

async for event in agent.stream_turn(messages, session, state):
    ...

await agent.update_memory(messages, session)

事件流可以包含 text_deltatool_calluicart_updateturn_complete。在商家侧,暂存写入以 change_update 事件表示。

通过 update_memory 提取记忆是此运行时路径独有的功能。示例宿主通过 X-Session-Id 请求标头接收会话标识符。

使用 Agent SDK 运行时

Agent SDK 使用相同的提示词、技能和工具运行,同时负责管理代理循环。宿主会预取事实依据读取结果,并且轮次结束后不会再运行任何任务。

从控制台运行一次购物请求:

python shopping-agent/runtime-agent-sdk/main.py --once "a two-person tent under $250"

使用以下命令启动商家控制台:

python merchant-agent/runtime-agent-sdk/main.py

商家控制台在应用暂存变更前会请求 y/N 批准。

通过 Managed Agents 部署

Managed Agents 在使用相同技能和契约的同时托管代理。代理通过调用你的 MCP 服务器访问系统。使用以下命令执行部署试运行:

scripts/deploy_managed_agent.sh shopping-agent/managed-agents/shopping-agent

对于商家角色,请使用 merchant-agent/managed-agents/ 下的对应路径。只有确实要执行线上部署时,才添加 --live

搭建自己的商务代理

随附的 Claude Code 插件可以针对你的技术栈创建项目,也可以审查现有代理。在本地克隆代码仓库后,注册并安装该插件:

claude plugin marketplace add anthropics/commerce-agents
claude plugin install commerce-builder@claude-commerce-agents
claude

在 Claude Code 中,请求搭建购物助手:

/scaffold-commerce-agent a shopping assistant for our store

该命令会询问你的技术栈、展示实施计划并构建项目。使用 /add-commerce-flow/author-commerce-evals 继续开发。如果从已有代理开始,请使用 /review-commerce-agent

将代理连接到你的系统

该代码仓库不提供 MCP 连接器。两个代理都通过后端接口访问业务系统。每个后端方法都应使用宿主为当前会话持有的凭据,在服务器端调用你的服务。模型只会收到方法的返回结果。

  1. 选择角色:为面向客户的购物场景实现 StorefrontBackend,或为员工操作实现 MerchantBackend
  2. 映射读取操作:将商品目录、政策、分析、库存、定价或其他受支持的读取操作连接到你的权威数据源系统。
  3. 确保流程顺序:如果某个工作流必须遵循固定顺序,请在后端强制执行该顺序,而不要依赖模型。
  4. 控制写入:在宿主审批界面授权之前,始终将商家变更保持在暂存状态。
  5. 移交结账:从后端返回结账 URL,并让宿主负责渲染。模型绝不能看到该 URL。

后端可以在服务器端调用商务平台或官方连接器。项目提到的潜在集成目标包括分析数据仓库、财务系统和配送工具。写入操作前应始终保留来源验证门控,包括通过 Managed Agents 使用 MCP 服务器时。

自定义功能与身份

从满足需要的最小功能范围开始。购物试点可以实现搜索和商品详情,并让存根方法返回不可用结果。商家试点可以实现八个读取方法并拒绝写入,使摘要和指标功能可以正常工作,同时不开放写入路径。

如果企业不具备某项功能,请关闭对应的 enable_* 设置。这样会在所有运行时路径中移除相关工具、提示词内容和事实依据约束规则。依赖不可用功能的流程可以放在 skills/_staged/ 下。

要创建自定义流程,请在相应的 skills/ 目录下添加一个包含 SKILL.md 的目录。使用 PresentationExtension 创建特定领域的 UI。通过 brand_nameassistant_namebrand_voice 设置,可以自定义任一代理的身份。

安全与部署责任

项目在所有三种运行时路径的工具调用中实施边界防护、来源验证门控、上限限制、记忆验证和商家审批。事实依据约束、分析预算和记忆提取属于运行时级功能。

这些控制措施不能替代特定于部署环境的安全机制。示例不提供身份验证,其 MCP 服务器也仅绑定到回环地址。你的生产环境宿主仍需负责身份识别、授权、业务规则、合规、凭据处理和审批策略。连接真实系统之前,请查阅安全指南

验证实现

如果需要测试和代码检查工具,请安装开发依赖项:

pip install -r requirements-dev.txt

运行格式检查、代码检查、测试和代码仓库检查:

ruff check . && ruff format --check . && pytest && python scripts/check.py

运行完整验证工作流,包括部署试运行和 Web 构建:

python scripts/verify_all.py

要测试一次实时对话,请提供 API 密钥并运行:

python scripts/smoke_chat.py --vertical travel

进阶技巧

  • 检查缓存行为:turn_complete 事件或运行时模型调用日志中读取 cache_read_input_tokens。如果第二轮的值为零,表明提示词前缀发生了变化。
  • 支持多商家平台:将卖家视为一个搜索维度,并将商家代理的作用域限定为会话所标识的运营方。
  • 遵循账户定价:当定价取决于账户或合同时,返回适用于当前会话账户的价格。
  • 调整结账方式:如果结账流程不由你控制,请禁用购物车,或将工作流移交至报价、采购订单或托管结账页面。
  • 使用平台专用客户端:这些运行时通过 client= 接受 anthropic 客户端,而 SDK 运行时则从 CLI 环境中读取平台配置。
  • 查看部署选项:该代码仓库在部署指南中介绍了 GCP Vertex AI、AWS Bedrock、Microsoft Foundry 和网关部署。
  • 研究后端映射:后端指南涵盖身份、凭据、结账、顺序流程、商品选项和不可用数据等内容。

总结

Claude Commerce Agents 提供了一套实用架构,可基于共享的提示词、技能、契约和安全控制构建面向客户的购物助手,以及设有审批门控的商家工具。首先选择一个可运行的垂直行业示例,然后选择适合你平台的运行时,实现相应的后端接口,禁用不支持的功能,并在连接生产数据或启用写入操作前验证完整系统。

该代码仓库采用 Apache License 2.0 许可。它是一个参考实现,不再维护,也不接受贡献。