Skip to content

AI 智能体能构建真正的 Stripe 集成吗?

Published: at 08:00 AM

原文:Can AI agents build real Stripe integrations? 作者:Michelle Bu(Stripe CTO) 日期:2025 年 6 月 25 日

我们构建了一个基准测试来寻找答案。

Can AI agents build real Stripe integrations?

AI 编码智能体在编写软件方面的能力日益增强,但它们处理真实世界 API 集成的表现如何?我们通过构建一个基准测试来回答这个问题,测试 AI 智能体能否从零开始构建生产级别的 Stripe 集成。

为什么我们要构建这个基准测试

随着越来越多的开发者使用 AI 智能体来编写代码,我们想了解这些工具处理真实支付集成的复杂性时表现如何。Stripe 的 API 表面积很大且充满细微差别——实现同一目标有很多种方式,而最佳方法往往取决于微妙的业务需求。

我们创建了一个包含 102 个真实 Stripe 集成任务的基准测试,涵盖支付、计费、Connect 等领域。每个任务包括一段自然语言描述(说明要构建什么)、一组验证正确性的测试用例,以及一个参考实现。

基准测试的工作原理

基准测试中的每个任务遵循一致的结构:

  1. 任务描述: 一段自然语言提示,描述集成应该做什么,类似于开发者在工单中编写或告诉 AI 助手的内容。
  2. 测试套件: 一组自动化测试,验证集成是否正确工作,包括边界情况和错误处理。
  3. 参考实现: 一个已知正确的实现,通过所有测试,作为比较的基准线。

任务的复杂度从简单(创建一个 PaymentIntent)到复杂(使用 Connect 设置多方市场平台,包括入驻、支付和提现)不等。

基准测试任务在 Stripe 产品领域的分布 基准测试任务在 Stripe 产品领域的分布

我们测试了什么

我们在基准测试上评估了几个领先的 AI 编码智能体:

每个智能体都获得了任务描述和 Stripe 文档的访问权限。我们衡量了不同任务类别和难度级别的通过率(测试通过的百分比)。

关键发现

整体表现

表现最好的智能体在我们的基准测试上达到了约 65% 的通过率,不同任务类别之间存在显著差异。简单任务(如创建 PaymentIntent 或客户)的通过率超过 80%,而复杂的多步骤集成则降至 40% 以下。

AI 编码智能体的性能对比 AI 编码智能体在 Stripe 集成基准测试上的性能对比

智能体擅长的领域

AI 智能体在以下方面表现良好:

智能体困难的领域

智能体在以下方面遇到困难:

按任务类别划分的通过率 按任务类别划分的通过率,展示了智能体擅长和困难的领域

文档效应

我们发现文档质量与智能体性能之间存在强相关性。当我们在任务描述旁提供相关的 Stripe 文档片段时,通过率平均提高了 15 个百分点。这表明更好的文档和上下文可以显著提升 AI 智能体的性能。

文档上下文对智能体性能的影响 提供文档上下文对智能体通过率的影响

常见失败模式

分析失败案例揭示了几个反复出现的模式:

1. API 版本不匹配

智能体有时会使用旧版本 Stripe API 中已弃用的模式或参数。这可能是因为它们的训练数据包含了不同时期的代码。

# 常见错误:使用已弃用的 source 参数
stripe.Charge.create(
    amount=2000,
    currency="usd",
    source="tok_visa",  # 已弃用
)

# 正确做法:使用 PaymentIntent
stripe.PaymentIntent.create(
    amount=2000,
    currency="usd",
    payment_method="pm_card_visa",
    confirm=True,
)

2. 不完整的 Webhook 实现

许多智能体生成的 Webhook 处理程序缺少签名验证,使其不安全:

# 不安全:没有签名验证
@app.route('/webhook', methods=['POST'])
def webhook():
    event = json.loads(request.data)
    # 处理事件...

# 安全:带签名验证
@app.route('/webhook', methods=['POST'])
def webhook():
    payload = request.data
    sig_header = request.headers.get('Stripe-Signature')
    try:
        event = stripe.Webhook.construct_event(
            payload, sig_header, endpoint_secret
        )
    except ValueError:
        return 'Invalid payload', 400
    except stripe.error.SignatureVerificationError:
        return 'Invalid signature', 400
    # 处理事件...

3. 缺少幂等性

智能体很少在 API 调用中包含幂等键,而这对于生产支付系统防止重复扣款至关重要:

# 没有幂等性(有风险)
stripe.PaymentIntent.create(
    amount=2000,
    currency="usd",
)

# 带幂等性(安全)
stripe.PaymentIntent.create(
    amount=2000,
    currency="usd",
    idempotency_key=f"order_{order_id}",
)

这对开发者意味着什么

我们的发现表明,AI 编码智能体是 Stripe 集成的有用助手,但它们还不够可靠,无法在没有人工监督的情况下构建生产支付系统。以下是我们的建议:

  1. 将智能体用于脚手架搭建: AI 智能体擅长生成样板代码和初始集成结构。用它们快速起步,然后审查和完善。
  2. 始终审查支付代码: 支付集成有真实的财务后果。在部署到生产环境之前,始终让人工审查 AI 生成的支付代码。
  3. 提供上下文: 给智能体提供相关文档和示例的访问权限。它们获得的上下文越多,输出就越好。
  4. 充分测试: 使用 Stripe 的测试模式并编写全面的测试。不要仅仅依赖智能体对代码能运行的自信。
  5. 保持更新: 确保智能体使用最新的 API 模式。检查是否有已弃用的方法和过时的做法。

我们如何改善体验

基于这些发现,我们正在以下几个领域投入,以改善 AI 辅助的 Stripe 集成体验:

亲自试试

基准测试已在 GitHub 上发布:stripe/stripe-agent-benchmark。我们欢迎贡献新任务、改进现有任务,以及来自更多 AI 智能体的测试结果。

如果你正在构建与 API 交互的 AI 智能体,我们很想听听你的经验。通过 ai-benchmark@stripe.com 联系我们,或在仓库中提交 issue。


Michelle Bu 是 Stripe 的 CTO。关注 Stripe 的 Twitter 获取更多关于 AI 和开发者工具的更新。