端到端流程
Super Agent 通过 Clawdot Gateway 连接用户、AI 和商家网络,完成一个完整的交易流程:所有金额字段单位为分(整数)。例如
payable_price: 990 表示 ¥9.90。Clawdot 的抽象层
AI Agent 直接对接商家平台会遇到复杂性。Clawdot Gateway 在中间提供了统一的抽象,让 Agent 工作变得简单:Super Agent 的角色
MCP 接入
Clawdot Gateway 对外以 MCP(Model Context Protocol) 暴露能力——这是为 Claude 等 AI 模型设计的 AI 原生调用方式。Super Agent 用 MCP 客户端(Streamable HTTP)连接公开端点https://eleme-gateway.hicaspian.com/mcp/v1,每个请求在 HTTP 头携带 Authorization: Bearer clw_... 标识 Agent,用户授权则作为每个业务工具的 consent_grant_id 参数传入:
MCP 工具与底层是同一套网关服务层,对外只通过 MCP 接口提供。
工作流程细节
完整下单链路是一条有状态的链路,每步返回的 ID 必须原样回传给下一步:search_addresses → select_address → search_shops → get_shop_menu → quote_cart → preview_order → create_order。先定地址、再按地址搜可送达的店,下游工具因此都拿得到配送坐标。完整字段表见 下单流程。
地址管理阶段
地址管理阶段
先定下”送到哪里”,下游搜店与算价 / 预览都以这个地址为准。首次使用时:
- 调用
search_addresses搜索用户说的地址,返回suggestions[].token - 用户从候选列表中选择
- 调用
select_address(传suggestion_token+ 联系人)登记为收货地址,返回address_id
search_addresses 同时返回 saved_addresses[](传了 lat/lng 时还带 nearest_address_id),可直接复用其 address_id,减少交互步骤。搜索阶段
搜索阶段
Agent 调用
search_shops(传上一步的 address_id)按收货地址搜可送达的商家。不传 keyword 为浏览模式(返回附近至多 20 家店铺,含距离、评分、配送费等决策字段);传 keyword 为精确搜索(约 5 家,可传店名、品类或具体商品名)。每个结果都附带 shop_id 与 cart_id,cart_id 已封装店铺与配送坐标,是后续步骤的入口。菜单浏览阶段
菜单浏览阶段
Agent 调用
get_shop_menu(传 shop_id + cart_id)获取某个商家的完整菜单。返回包含:- 商品列表及价格(单位分)
- 可下单的
item_id/sku_id - 商品规格(大小、冷热、甜度等)与加料的
ingredient_option_ids - 默认选项 —— 包含了商家推荐的规格组合
keyword 或 limit/offset 渐进披露。算价 + 预览 + 下单阶段
算价 + 预览 + 下单阶段
这是核心的有状态链路:算价 →
quote_cart- 输入:
shop_id+cart_id+address_id+items(list) - 输出:
quote_id+ 价格明细
preview_order- 输入:
shop_id+cart_id+address_id+items(可选传quote_id校验报价上下文) - 输出:最终价格(单位分)+
preview_id+confirmation_token(须配对使用,有效期约 10 分钟)
create_order- 输入:同一次预览的
preview_id+confirmation_token - 输出:
order_id、status与(需支付时的)payment_action
create_order。confirmation_token 是幂等键,同一令牌只能下一单。订单追踪阶段
订单追踪阶段
下单后,Agent 可以调用
get_order_status 查询订单状态:- 等待商家接单
- 商家正在打单
- 骑手已取餐
- 骑手配送中
- 已送达
create_order 传 callback_url,这笔单每次状态变化都会 POST 一条回调。免密签约阶段
免密签约阶段
免密签约是账户级、一次性的前置:签约一次后,后续免密支付类订单即可自动扣款——它不绑定某一笔订单、也不是每单都要做,所以独立于上面的下单链路(不要把它当成下单的最后一步)。建议先用
get_sign_status 查是否已签约,未签约再调用 get_sign_action(传 return_url,不带 order_id)获取签约 action。action_type 为 open_h5 时把用户引导到 action.action_url 完成签约,完成后浏览器跳回 return_url;为 none 时表示已签约。随后用 get_sign_status 轮询结果。
