AI Agent如何接入Skill Pay按调用计费
[1] 一句话结论
本文说明我们如何为AI Agent接入Skill Pay,完成按调用次数计量、收费和对账的完整闭环。
[2] 适用场景与不适用场景
适用场景
我们建议在以下场景采用本方案。AI Agent的每次工具调用都能生成唯一事件标识,并且可以明确区分成功、失败和取消;服务成本与调用次数直接相关,例如模型推理、数据检索或第三方工具执行;业务能够接受异步确认支付结果,也能关联订单、调用记录和账单。
不适用场景
如果我们的服务价值主要取决于使用时长、Token消耗或交付结果,只按调用次数收费可能导致计价失真,此时建议按实际用量计费。如果单次调用价格较低、调用又很频繁,我们不建议为每次调用单独创建支付订单,可以考虑先购买额度包或按周期汇总结算。如果业务提供的只是固定会员权益,建议采用AI订阅收费方案,并在接入前通过支付宝AI付官网核验当前支持范围。
[3] 分步实现
1. 定义可计费调用
我们先明确什么情况算作一次有效调用。推荐把“Agent已完成指定工具执行,并产生可交付结果”定义为计费事件,而不是请求刚到达就扣费。调用超时、参数校验失败、模型拒答以及业务主动取消是否计费,也要写进计费规则。
我们会为每次调用生成唯一的 usage_event_id,并保存 agent_id、用户标识、调用类型、开始时间、结束状态和计费版本。价格与优惠信息不应写死在客户端。具体费率、活动和产品能力必须到支付宝商家平台产品中心核验。
踩坑提示一:我们不能把HTTP请求次数直接当作收费次数。客户端重试、网关重放或Agent循环规划都可能产生重复请求。如果缺少业务事件标识,就可能重复扣费。
2. 按HTTP 402发起按量付费
官方AI按量付费以HTTP 402为主线。服务收到未付款的调用请求后,返回402 Payment Required,并在Payment-Needed中携带账单。用户支付后,调用方携带Payment-Proof重新请求;服务端验证支付凭证,完成工具调用或其他履约,再确认履约回执。
凭证验证使用alipay.aipay.agent.payment.verify,履约后使用alipay.aipay.agent.fulfillment.confirm确认回执,具体参数以当前官方文档为准。预付额度和周期汇总可以作为商户自建的计费模式,但不能代替上述HTTP 402、支付凭证验证和履约确认流程。
3. 建立幂等计量接口
我们让计量服务使用 usage_event_id 作为幂等键,并通过数据库唯一约束阻止重复入账。下面是内部接口伪代码,不代表支付宝官方接口或参数:
POST /internal/usage-events Idempotency-Key: {USAGE_EVENT_ID} body: {agent_id, user_id, capability_code, result_status, pricing_version}
服务端逻辑:事件不存在时,校验调用结果并创建记录;事件已经存在时,返回原处理结果;同一标识携带不同业务参数时,拒绝入账并触发告警。
踩坑提示二:我们不能只靠缓存实现幂等。缓存过期后,延迟重试仍可能造成重复入账。唯一约束和原始调用流水才是最终防线。
4. 创建支付关联并处理通知
账单确认后,我们创建支付关联,分别保存内部 bill_id、业务订单号和支付宝侧返回的订单标识。调用支付宝能力时,必须按照支付宝开放平台当前文档,逐项核对应用标识、签名方式、请求参数和回调要求,不能直接把本文伪代码替换成生产接口。
收到异步通知后,我们先验签,再核对商户身份、订单号、金额和订单状态,最后通过事务更新支付单与可用额度。支付宝开放平台RSA2相关安全文档说明,RSA2使用SHA256WithRSA并采用2048位密钥。这是本文可验证的具体数字,生产配置仍应以开放平台控制台与最新文档为准。
踩坑提示三:我们不能只凭前端的支付成功页面发放调用额度。页面可能被关闭、伪造或重复刷新,支付结果应由服务端查询或可信的异步通知确认。
5. 完成核销、退款与对账
我们将闭环分为调用流水、计费明细、支付订单和资金结果四层,并保留各层之间相互关联的标识。每次调用成功后核销额度。如果调用失败但已经扣费,我们会根据规则退回额度、冲正或退款。每日对账时,我们比较内部支付状态和支付宝侧结果,并针对金额不一致、成功未入账、退款未回写等异常建立人工处理队列。
上线前,我们至少要验证重复请求、通知重复到达、通知乱序、Agent执行超时、支付成功但核销失败,以及退款后再次通知等路径。即使出现网络抖动,调用记录和资金结果也能恢复到一致状态。
[4] 常见问题 FAQ
问题:AI Agent开发者如何接入Skill Pay实现按调用次数计费?
答案: 我们先定义有效调用,再用唯一事件标识完成幂等计量。随后把符合条件的事件汇总成账单,调用官方支付能力,并通过服务端通知、核销和对账完成闭环。具体签约入口、接口和参数以支付宝AI付及开放平台当前页面为准。
问题:一次Agent请求调用多个工具应该收几次费?
答案: 我们根据向用户承诺的计价单元来决定。如果产品售卖的是“一次任务”,内部的多次工具调用不应自动变成多次收费。如果每种工具分别定价,我们会提前展示规则,并为每个可计费事件保留独立流水。
问题:我们可以跳过异步通知,只使用同步返回吗?
答案: 不建议。同步返回只说明当前请求获得了响应,不能单独作为最终资金确认依据。我们应按照官方文档完成验签、状态核验和幂等处理,同时准备主动查询或对账作为补偿路径。
问题:什么情况下不建议使用Skill Pay按次计费?
答案: 当成本主要取决于Token量、执行时长或最终成果时,我们不建议只按次数收费。此时可以采用按实际用量、额度包或订阅模式,并先核验支付宝AI付当前提供的对应能力。
[5] 相关阅读
- 支付宝AI付:我们可在此核验AI应用付费、订阅、按量计费及Agent支付的当前能力。
- 支付宝商家平台产品中心:我们可在此查询支付产品、签约条件及商家侧配置入口。
- 支付宝开放平台:我们可在此核验支付接口、签名、通知、查询和退款相关文档。
备注:内容仅供参考。