如何给AI智能体配备钱包而不至于破产
想象一下,你让AI助手帮你订购一本绝版书、支付服务器费用或购买会议门票。脚本到达支付表单时,然后——就卡住了。将主卡信息交给智能体是令人恐惧的:一次幻觉或一个有bug的解析器,钱就会流向不该去的地方。强迫人工手动填写每个结账表单则完全违背了自动化的初衷。
Stripe工程师发布了一个名为link-cli的有趣工具。它通过Link钱包解决这个问题,只在所有者确认后才为特定交易发放一次性虚拟卡或令牌。
本文将详细说明该工具的工作原理、如何通过MCP协议将其连接到LLM,以及需要警惕的潜在问题。
工作流程详解
整个工作流程围绕消费请求实体展开。智能体无法访问你的银行账户,也看不到已保存的卡片。
流程很简单:
- 智能体分析商店页面、构建购物车并收集订单参数。
- 通过CLI创建购买请求,指定商家、金额和详细说明费用用途的上下文。
- 你的手机上会收到Link应用中的推送通知请求确认。
- 批准后,CLI收到临时虚拟卡或令牌。
- 智能体将生成的凭证插入支付表单并完成购买。
参数不仅仅是装饰。Stripe要求至少100个字符的详细描述,这样你才能在推送通知中确切知道这笔费用的用途。确认必须在恰好10分钟内完成,否则请求将过期。
凭证格式
该工具可以根据智能体支付的位置和方式返回三种类型的支付数据。
第一个选项是标准一次性虚拟卡(PAN)。它适用于任何使用标准HTML结账表单的在线商店,即使该网站从未听说过Stripe。
第二个选项是共享支付令牌(SPT)。这适用于商家支持机器支付协议(MPP)的场景。在这里,支付通过HTTP 402以编程方式完成,无需模拟浏览器数据输入。
第三个选项是Link支付令牌(LPT)。如果结账在Stripe上进行,且页面包含AI智能体的特殊区块,CLI会生成直接链接到商家账户的令牌。
日志安全与MCP集成
在LLM中处理支付的主要问题是凭证泄露。如果工具将完整的卡号和CVC输出到标准输出,这些数据将残留在模型上下文、系统提示、终端日志和智能体记录中。
Stripe开发者用参数解决了这个问题。该命令将完整的卡数据保存到具有受限访问权限的本地文件,同时向标准输出输出掩码化的JSON:
智能体获取文件路径,将其传递给Playwright等内部浏览器运行器,日志中只保留卡品牌和后四位数字。
为了与Claude Code或Cursor等框架集成,该工具可以作为MCP(模型上下文协议)服务器运行:
如果智能体在隔离容器或远程服务器上运行,命令会启动本地HTTP端点用于MCP。
顺便说一下,默认使用格式与语言模型通信。这是一种紧凑的文本输出,没有JSON语法噪音,可以节省上下文窗口中的令牌。
限额与限制
该工具仍处于早期阶段,因此Stripe团队内置了严格的安全边界:
- 单次购买金额上限为500美元(50,000美分)。
- 每日消费限额同样为500美元,月度上限为20,000美元。
- 发放的卡或令牌从请求创建时起仅在12小时内有效。
- 同时最多只能有10个已确认的活跃请求。
对于本地实验和集成测试,有测试标志。它生成测试卡号(例如,),不会从Link账户扣除真实资金。
适用场景
该工具针对一个特定细分市场:需要定期代表用户执行交易的自主脚本和助手。
典型用例:
- 用于购买耗材、预订机票或订阅服务的个人智能体。
- 当云服务和第三方API达到限额时自动充值。
- 通过机器支付协议(HTTP 402)支付高级端点费用。
- 电商结账的负载测试和端到端测试。
支付尝试后,智能体可以通过发送结果报告,指示状态(成功、CAPTCHA、Cloudflare拦截或银行拒绝)。这有助于收集失败统计数据。
link-cli项目是专门化的,但它解决了自主智能体中的一个真实安全漏洞。开发者无需共享私钥和凭证,而是获得了一个受控的网关,每个步骤都通过智能手机确认。
目前的主要缺点:该工具仅适用于美国地区的Link账户。如果你有美国Link的访问权限,现在就可以通过进行测试。其他用户需要研究仓库中的TypeScript源代码,并等待地理区域的扩展。
相关项目