网上教「让 AI 自己买东西」的 demo 越来越多,翻车的也越来越多:Agent 循环下单、把预算烧在重复调用上、甚至被骗进钓鱼支付页。给 Agent 接支付能力,技术上不难,难的是接得可控、可审计、可后悔。这篇 SOP 把这件事拆成五步:先上沙盒,再选轨道,再接工具,最后配三道保险--每一步都给可复用的配置与清单。
先说清边界:本文步骤基于 Stripe 官方仓库/文档与 x402 官方 npm 包公开信息整理(截至 2026-08),命令以官方文档为准;涉及真实资金与加密资产操作,本文非法律/投资建议;任何金额上限、审批策略请按自身风险承受能力设定。
第一步:三问定范围(别跳过)
动手前先回答三个问题,答案决定你走哪条轨道:
| 问题 | 如果答案是… | 意味着 |
|---|---|---|
| ① Agent 真的需要「花钱」吗? | 只是调自家 API/内部工具 | 不需要支付协议,用配额(quota)即可--预算的本质是配额不是钱 |
| ② 单笔金额量级? | $0.001-$1 高频小额 | 微支付轨(x402/MPP);$50+ 大额低频走法币轨(ACP/Stripe 常规支付) |
| ③ 出了事谁兜底? | 无法承受任何损失 | 停在沙盒层,只做「预付费 key + 硬上限」,不上真支付 |
90% 的「想让 Agent 付款」需求,到第三问就该停下来。给 Agent 真钱包的合理场景比想象中窄:付费数据源聚合、按次采购外部服务、跨 Agent 结算。
第二步:沙盒层--预算不是钱,是配额
真金白银之前,先在服务商侧把「花钱能力」模拟出来:
- 预充值隔离:用单独的预付费账户/项目(如云厂商的独立 billing project),充多少、最多亏多少,与主账户物理隔离;
- 配额三件套:QPS 限制(防循环调用)+ 日额度(防慢烧)+ 单请求上限(防一次巨额),三者缺一不可;
- 只读支付工具:沙盒期给 Agent 的「支付工具」一律只读--能查价、能比价、能生成订单草稿,不能确认支付;
- 日志全量留存:每次工具调用、每次额度检查落日志(这层日志将来直接复用为审计日志)。
验收标准:连续跑 7 天,Agent 在配额触顶时的行为是「优雅降级并汇报」,而不是重试风暴。
第三步:选轨--两条主流路径
沙盒跑稳后,按第二步的答案二选一(详细对比见本站 AI Agent 支付协议横评):
- 法币/订阅内路径(推荐大多数团队):Stripe 官方 AI 仓库
stripe/ai(1,749★,API 实测 2026-08-17,「用 Stripe 构建 AI 产品的一站式仓库」,含 Agent Toolkit 与 MCP 集成)。Agent 经 MCP 调用受限的支付工具(查价、创建订单、限额内支付); - 微支付/按次路径(API 售卖方):
x402-fetch(Coinbase 官方 npm 包,Apache-2.0,当前 1.2.0),一行包装 fetch,自动处理 402 应答-签名-重发;链上操作有合规前提,国内团队谨慎。
第四步:接入实操
Stripe 路径(示意,字段以官方文档为准):
// MCP 配置:只暴露限额内的支付工具,只读工具先行
{
"mcpServers": {
"stripe": {
"command": "npx",
"args": ["-y", "stripe-agent-toolkit-mcp"],
"env": {
"STRIPE_SECRET_KEY": "sk_live_…",
"AGENT_PAYMENT_LIMIT": "2000", // 单位:分,硬上限
"TOOL_MODE": "readOnly" // 先只读,验证后再放开
}
}
}
}x402 路径(付费 API 调用方):
npm install x402-fetchimport { wrapFetchWithPayment } from 'x402-fetch'
const fetchWithPay = wrapFetchWithPayment(fetch)
// 服务端返回 402 + 支付要求时,自动完成稳定币支付并重发
const res = await fetchWithPay('https://api.example.com/data', { maxAmountRequired: 1000 })两条铁律:①密钥经环境变量注入进程,绝不写进 prompt 或代码仓库;②先 readOnly/测试网跑通全流程,再换生产 key。
第五步:三道保险(上生产前逐条打勾)
| 保险 | 做法 | 挡住什么 |
|---|---|---|
| ① 限额 | 单笔/每日/单商户三层上限(AP2 的 APA 思路),超限即停并通知 | 循环下单、慢烧预算、被钓到高价服务 |
| ② 白名单 | 支付目标域名/商户 ID 白名单,清单外一律拦截并转人工 | 钓鱼支付页、prompt 注入诱导的转账 |
| ③ 人工审批 | 超过阈值(如单笔 >$10)的支付挂起,生成审批卡片等人点头 | 一切你没想到的意外 |
上线前 checklist:□ 退款与对账流程演练过 □ 审计日志可回放任意一天的每笔支出 □ 告警通道(超限/异常商户/失败重试风暴)实测可达 □ kill switch 一键冻结支付工具 □ 沙盒期的配额三件套保留在生产。
五个踩坑
- 把支付凭据塞进 prompt/context:等于把银行卡写在明信片上。凭据只进环境变量,Agent 只见作用域受限的工具接口(MPP 的 SPT 令牌就是这个思路的产品化)。
- 无上限上线「先跑跑看」:Agent 的失败模式是重试,不是停机--没有日额度,一次死循环就是一张账单。
- 只限额、不白名单:额度管「花多少」,白名单管「花给谁」;prompt 注入攻击改的就是「花给谁」。
- 跳过沙盒直接上生产:沙盒那 7 天验证的是降级行为与日志完整性,这两样恰恰是出事时唯一的救命稻草。
- 忘了对账与退款:Agent 付错款的概率不低,退款流程没演练过=损失不可逆;稳定币路径的转账更是基本不可撤回。
常见问题
Q1:我的 Agent 只调 OpenAI/Anthropic 的 API,需要这些吗? A1:不需要支付协议。给服务商设好用量上限+预算告警即可(本质是配额管理)。这套 SOP 的「限额+审计」思想同样适用,成本侧实操见本站 LLM API 成本优化 SOP。
Q2:自己没有产品,只是想让个人 Agent 帮我买东西,怎么最小化起步? A2:停在沙盒层:预付额度 + 单笔小额上限 + 每笔支付都转人工确认(即第三道保险变成默认)。体验打折,但不会翻车。等行为稳定几周再考虑放开小额免审。
Q3:x402 的钱包私钥放哪里? A3:生产环境用专用热钱包(仅存限额内资金)或托管钱包方案,私钥经 KMS/密管服务注入,与 Agent 进程隔离;绝不放 .env 明文进仓库,更不能进 prompt。钱包里只放「亏得起的数额」。
Q4:限额、白名单、审批分别配在哪一层? A4:限额配在支付工具的调用参数/网关层(Agent 绕不过去);白名单配在支付执行的出口(域名/商户校验);审批配在业务流(挂起-通知-确认)。三层别叠在同一段代码里,否则一处漏洞三层全穿。
Q5:这套和 Stripe 那套协议(MPP/ACP)什么关系? A5:SOP 是内控层,协议是外联层。MPP 的 sessions 预授权、SPT 令牌,本质就是把本文「限额+作用域凭证」的思路标准化了。先按本文把自己的护栏建好,未来接任何协议都是把护栏挂到标准接口上。协议全景见本站 AI Agent 支付协议横评。
参考来源
- GitHub:stripe/ai(1,749★,「用 Stripe 构建 AI 产品的一站式仓库」,含 Agent Toolkit/MCP,API 实测 2026-08-17)
- npm:x402-fetch(Coinbase 官方,Apache-2.0,v1.2.0);GitHub:x402-foundation/x402(6,518★)
- Techstrong.ai:MPP 的 sessions 预授权与 SPT 作用域令牌设计(限额/作用域思想的标准来源)
- HyperTrends(2026-04):x402/ACP/AP2/TAP 授权与执行分层(APA 策略层做法)
- 本站:AI Agent 支付协议横评、LLM API 成本优化 SOP、Stripe 收购 OpenRouter 热点
本文为工程流程梳理(非官方指南),命令与参数以官方文档为准;涉及真实资金与加密资产操作,非法律/投资建议。