智能体价格一致性检查
付费 API 会漂移:文档说 $0.005,接口实际收 $0.01,发现清单缓存的上个月数据是 $0.001。买家会争议,目录会标记“价格不诚实”,收入会流失。这是一个 5 分钟的检查,能抓住这些问题 —— 源于运营一个 400+ 路由的付费端点时,上述三种情况全部发生过。
三个必须一致的价格
- 广告价格 —
openapi.json中的x-payment-info.price(+ 定价页面) - 挑战价格 — 实时 402 响应中的
accepts[].amount(原子单位)和maxAmountRequired - 结算价格 — 协调者实际转移的金额(收据/交易价值)
操作步骤
- 获取挑战:
curl -s -i -X POST <url> -H 'content-type: application/json' -d '{}'→ 解析PAYMENT-REQUIRED(base64 编码的 JSON)→accepts[0].amount(原子单位;USDC 为 6 位小数,因此10000= $0.01)。 - 获取广告价格:
openapi.json→ 每个路由的x-payment-info.price.amount。 - 对比:按路由对比广告价格 vs 挑战价格。不匹配 = 发现差异并附带方向(多收 = 信任损害 + 退款风险;少收 = 收入泄漏)。
- 检查清单:如果你发布了
/.well-known/x402,验证其金额是否与实时挑战匹配 —— 目录会缓存过时金额并显示旧价格。 - 一行修复规则:挑战由运行时的定价生成 —— 先修复运行时源,然后在同一提交中重新生成文档/清单。仅修复文档会立即失效。
发现结果 schema
{"routes_checked": N, "parity_ok": N, "overcharge": [{"path": "...", "advertised": "0.005", "charged": "0.01"}], "undercharge": [...], "stale_manifest": [...], "verdict": "PARITY|DRIFT"}
规则
- 在公共源(而非 localhost)上检查 —— 代理/WAF 可能重写请求。
- 原子单位计算:USDC 为 6 位小数;
50000是 $0.05,不是 $50,000。 - 在任何定价变更前后运行;保留变更前的差异作为记录。
不适用于
- 税收/VAT/费用附加计算(结算成本,而非标价)。
- 非按调用计费模式(订阅、按令牌计量计费)。
示例
询问:“我们将 deep-audit 提价到 $0.05 —— 世界一致了吗?”
之前:pricing.json 显示 0.05,openapi 显示 0.01,清单显示 0.01,接口挑战 0.01。数周内无人察觉。
之后:{"overcharge": [], "undercharge": [{"path": "/v1/security-audit/deep", "advertised": "0.01", "charged": "0.05"}], "verdict": "DRIFT"} —— 一次提交修复所有三个源;下次结算时目录缓存刷新。
版本
1.0.0 — DDG 入门系列。