架构设计

架构设计

概述

UCP 架构围绕四个核心问题展开:

  1. 如何发现能力? — Profile 机制
  2. 如何协商版本和能力? — 能力交集算法
  3. 如何传输数据? — 多传输协议支持
  4. 如何安全支付? — 解耦的支付架构

发现机制

Profile 端点

每个参与者在 /.well-known/ucp 发布配置文件:

参与者Profile URI
商家https://business.example.com/.well-known/ucp
平台https://platform.example.com/profiles/shopping-agent.json

Profile 内容结构

{
  "ucp": {
    "version": "2026-01-11",
    "services": { ... },
    "capabilities": [ ... ]
  },
  "payment": {
    "handlers": [ ... ]
  },
  "signing_keys": [ ... ]
}

平台声明

平台在每个请求中声明 Profile URI:

HTTP Transport:

UCP-Agent: profile="https://agent.example/profiles/shopping-agent.json"

MCP Transport:

{
  "_meta": {
    "ucp": {
      "profile": "https://agent.example/profiles/shopping-agent.json"
    }
  }
}

协商机制

能力交集算法

输入:平台能力列表、商家能力列表
输出:活跃能力列表

步骤:
1. 计算交集:保留名称相同的能力
2. 剪枝孤立扩展:移除 extends 父能力不在交集中的扩展
3. 重复步骤 2,直到没有能力被移除

示例

平台能力商家能力交集结果
CheckoutCheckout, OrderCheckout
Fulfillment (extends Checkout)Fulfillment (extends Checkout)Fulfillment
Discount-- (商家不支持)

命名空间治理

命名空间模式权威方治理方式
dev.ucp.*ucp.devUCP 管理机构
com.{vendor}.*{vendor}.com供应商组织
org.{org}.*{org}.org组织

Spec URL 绑定验证

命名空间要求的来源
dev.ucp.*https://ucp.dev/...
com.example.*https://example.com/...

平台必须验证 spec URL 的来源与命名空间权威方匹配。

传输架构

传输绑定

UCP 将传输定义为薄层,仅声明方法名和引用基础 Schema:

{
  "rest": {
    "schema": "https://ucp.dev/services/shopping/rest.openapi.json",
    "endpoint": "https://business.example.com/ucp/v1"
  }
}

端点解析

OpenAPI 路径直接追加到 endpoint:

endpoint: https://business.example.com/ucp/v1
path: /checkout-sessions
结果: POST https://business.example.com/ucp/v1/checkout-sessions

传输能力矩阵

传输主要用途规范能力映射
REST标准应用集成OpenAPI 3.x端点
MCPLLM 智能体OpenRPC工具
A2A智能体间协作Agent Card扩展
Embedded嵌入商家 UIOpenRPC事件

支付架构

设计目标

解决"平台—商家—支付凭证提供方"之间的 N×N 复杂度:

  • 支付凭证支付处理器分离
  • 平台不接触原始支付数据
  • 支持多种支付令牌类型

信任模型

       ┌─────────────────┐
       │   平台          │
       │  (不接触原始数据) │
       └────────┬─────────┘
                │ 令牌/证明
                ↓
       ┌─────────────────┐
       │   商家          │
       │  (Merchant of   │
       │   Record)       │
       └────────┬─────────┘
                │
    ┌───────────┴───────────┐
    ↓                       ↓
┌─────────┐          ┌──────────────┐
│  PSP    │          │  凭证提供方   │
└─────────┘          └──────────────┘

支付生命周期

1. 协商 → 商家广告 handlers
2. 获取 → 平台执行 handler 逻辑
3. 完成 → 平台提交不透明凭证

Payment Handler 定义

字段说明
id唯一标识符
nameHandler 名称(反向域名)
version版本(YYYY-MM-DD)
spec规范文档 URL
config_schema配置 Schema URL
instrument_schemas支持的支付凭证类型
config商家特定配置

PCI-DSS 范围管理

角色PCI 范围最小化策略
平台可避免使用不透明凭证、不接触原始数据
商家可最小化使用令牌化、委托给 PCI 认证的支付凭证提供方
凭证提供方必需通常为 PCI-DSS Level 1 认证

版本控制

版本格式

使用日期版本:YYYY-MM-DD

版本协商规则

IF 平台版本 ≤ 商家版本:
    商家必须处理请求
ELSE:
    商家必须返回 version_unsupported 错误

向后兼容

兼容变更(无需新版本):

  • 添加非必需字段
  • 添加非必需参数
  • 添加新端点

破坏性变更(需要新版本):

  • 删除或重命名字段
  • 修改字段类型
  • 使非必需字段变为必需

安全架构

传输安全

  • 所有通信必须使用 HTTPS
  • 请求使用标准认证(如 Authorization: Bearer <token>
  • Webhook 必须签名验证

数据隐私

敏感数据必须符合 PCI-DSS 和 GDPR 要求,鼓励使用令牌化支付数据。

交易完整性(可选)

对于需要加密证明的场景(如自主智能体),UCP 支持 AP2 Mandates Extension

  • 商家提供结账条款的加密签名
  • 平台提供用户授权的加密证明

下一步