支出策略控制平面 · 不托管密钥与资金 · 边车(sidecar)由你运行
给 AI 智能体的公司卡和报销制度。
spendctl 是面向 AI 智能体的支出策略控制平面:在每一个钱包和每一种 HTTP 402 协议上统一执行预算、审批、收据和链路追踪——由你自己运行的边车(sidecar)强制执行,绝不托管你的密钥或资金。
5 分钟上手,无需密钥、不上链——自带模拟 facilitator。

提示词不是支出控制
x402 规范把客户端预算列为范围之外,SDK 的限额运行在智能体自己的进程里,官方客户端会照付服务器要求的金额(x402#3866)。开发者们这样说:
“The trust unit is the policy, not the payment.”
信任的单位是策略,而不是付款。
“Asking the assistant to follow instructions more carefully does not provide a dependable spending control.”
让助手“更仔细地遵守指令”,并不能成为可靠的支出控制。
“I gave openclaw a bitcoin wallet and $100 to spend. ... With in minutes it had spent all the budget buying fake follows on an X account that was similar to mine.”
给了它一个比特币钱包和 100 美元,几分钟内就全花在给一个和我很像的 X 账号买假粉丝上。
工作原理
智能体发起请求
智能体通过 spendctl 调用 API,自己不持有密钥。
卖方返回 402
spendctl 读取 x402(v1/v2)或 MPP 的价格,并对照该智能体的策略。
策略做决定
允许;附模型可读的理由拒绝;或通过 CLI、Slack、审批链接等待人工决定。
只付一次并记账
原子化预留预算,钱包只签一次,收据和交易哈希写入账本。
绝不打破的规则
每条都是端到端场景,每次 CI 运行两遍。
- 会超出预算的付款绝不签名
- 白名单之外的主机绝不付款
- 收款地址被替换或价格暴涨 10 倍需要人工确认
- 并发请求也不会超出预算,哪怕一笔
- 智能体无法自行附加、重放或批准付款
- 结算失败的付款绝不悄悄重试
支持
任何语言都可用的网关 URL、零依赖的 fetch 封装和 MCP 服务器。
价格
Free 包含边车(sidecar)的全部执行功能,无需信用卡。Pro 和 Team 加上 spendctl 控制平面——Slack 审批、托管账本、定时导出、SSO、共享预算。控制平面仍在开发中,Pro 和 Team 在上线前为创始预购。
Free
无需信用卡,包含全部执行功能。
- 2 个智能体 · 1 条策略 · 1 个席位
- 每月 1,000 笔受管付款
- 本地账本 + CSV / JSON 导出,托管副本保留 7 天,本地沙盒
- CLI / Webhook 审批
- 到达上限即停止,不产生超额费用
Pro
创始预购——控制平面开发中。
- 10 个智能体 · 3 个席位
- 每月 25,000 事件
- 托管账本保留 90 天
- Slack / Discord 审批
- 定时导出 + 会计模板
Team
创始预购——控制平面开发中。
- 不限智能体数量
- 每月 500,000 事件
- 1 年不可篡改账本
- SSO / RBAC,共享预算
- 跨边车链路追踪、策略即代码 CI、区域固定
创始价仅限前 100 名成员,自 GA 起锁定 12 个月;若 GA 晚于 2027-03-31,全额退款。Pro 和 Team 超额按每 10 万事件 $5 计。Team 提供 14 天试用,无需信用卡。永不按支出比例收费。
抢先体验控制平面
spendctl 控制平面上线时只发一封邮件,不发订阅邮件。
我们只保存邮箱和语言,仅用于通知控制平面上线。
常见问题
私钥放在哪里?
永远不在智能体里。默认用 Coinbase CDP 服务器钱包签名,私钥不离开 CDP,你的机器只发出 EIP-712 签名请求。环境变量里的原始私钥仅在显式选择时使用。
被提示词注入的智能体能让它付款吗?
能让智能体“提出”付款,但改变不了结果。预算、白名单、收款地址锁定和审批阈值都在模型无法编辑的策略文件里,由独立进程判定。
伪造的 402 或被替换的收款地址怎么办?
策略针对你实际请求的主机判定,而不是 402 自称的 URL。可以按主机锁定收款地址、限制首次付款金额,并在价格突变时要求人工确认。
会重复付款吗?
每个决定最多签名一次;失败后绝不重发已签名的付款;按 Idempotency-Key 去重;卖方支持时使用 x402 的 payment-identifier 扩展。无法确定结果的付款标记为 unknown,并在核对前计入预算。
x402 没有退款,怎么自保?
在付款前缩小风险范围:白名单、锁定收款地址、降低单次上限、新收款方和涨价需审批,并保持钱包余额较低。账本保留交易哈希和签名收据,可作为争议证据。
你们托管资金吗?
不托管。签名在你自己运行的边车(sidecar)里完成,针对的是你自己的钱包——Coinbase CDP 服务器钱包或你自己的密钥。spendctl 绝不持有密钥或资金;资金从你的钱包直接链上转给卖方。控制平面(开发中)只保存策略、审批和账本,不保存密钥或资金,也绝不转发签名。非法律意见。
账本能用于记账吗?
每行都有 UTC 时间、智能体、端点、金额、资产、网络、收款方和交易哈希,可导出 CSV/JSON。USD 金额按稳定币 1:1 估算,税务处理请咨询会计师。
为什么不直接用 Stripe、钱包策略或 SDK 的限额?
可以一起用——spendctl 位于它们之前。SDK 限额运行在智能体内部且只限单笔;钱包策略只覆盖自家密钥(而且常常不覆盖 x402 的 typed-data 签名);托管平台只能管理它们托管的那个钱包。限额本身在 Coinbase 和 AWS 的自家工具里已经免费——缺的是跨越所有这些的一套策略、一条审批流程和一本账本。spendctl 管理你已有的钱包,在你自己运行的边车里执行。
x402 和 MPP 一直在变,会不会坏?
协议格式封装在复用官方 SDK 编解码的小适配器里,已同时支持 x402 v1 和 v2;上游规范变化时,每周的 CI 任务会自动开 Issue。