LangChain 发布 AgentCore Payments 中间件,为智能体加上支付预算限制
AgentCore Payments middleware for LangChain agents
LangChain 发布 AgentCore Payments 中间件,让 LangChain 智能体在工具调用遇到 HTTP 402 付费请求时自动完成支付。
原文给出中间件的拦截与预算校验流程和配置示例,可据此判断智能体付费调用的落地方式。
引言
智能体经济即将到来。AI 智能体正在从免费层 API 迈向付费服务的世界:优质数据、付费内容、专用算力。智能体商业生态正在快速增长。
当智能体能够花钱时,你需要确定性的支付限额:在基础设施层于每笔交易前强制执行的会话级预算,而不是写在 LLM 提示词里。Amazon Bedrock AgentCore Payments 通过专为支付打造的基础设施,为 LangChain 开发者解决了这一问题。作为智能体开发者,你只需添加 AgentCore Payments 中间件层、选择钱包、设置预算,剩下的交给 AgentCore Payments 处理。每一笔支付都流经这套协议无关的基础设施。
你还需要记录智能体买了什么以及为什么选择它,这正是 LangSmith 的用武之地。本文将解释其商业价值、架构以及如何上手。
能够进行交易的智能体
只能消费免费内容的自主智能体,其能完成的任务类型是有限的。价值最高的数据,包括法庭文件、实时市场行情、医学文献和优质 API,都位于付费墙之后。直到最近,访问这些数据还需要手动管理 API 密钥、逐服务对接计费集成,或者中断自主工作流去询问人类。这种情况正在改变。
由 Coinbase 于 2025 年 5 月创建、现由 Linux 基金会管理的 x402 协议,让 HTTP 原生微支付成为可能。使用 x402,智能体访问付费端点、收到价格、用稳定币支付并获取内容,全部在单个 HTTP 请求-响应周期内完成。
由于智能体交易的性质,其经济模型与传统支付通道不同。信用卡处理费使得以美分为单位的 API 调用在经济上不可行。月度订阅则假定由人类提前决定购买什么。通过 x402 进行的稳定币微支付可在数秒内结算,每笔交易成本仅为美分的零头,使按次调用定价对智能体工作负载而言变得可行。
AgentCore Payments 提供专为自主智能体打造的托管支付能力,覆盖从钱包认证、交易执行到支出治理的完整生命周期,让开发者可以专注于智能体做什么,而不是如何支付。LangChain 开发者现在可以专注于他们正在解决的按使用付费业务问题,而 AgentCore Payments 则消除了安全连接钱包、强制执行确定性支付限额,以及管理不同版本协议(x402 v1、v2)或其他机器对机器协议所带来的复杂性。

花钱需要确定性限额
访问权限只是挑战的一半。当智能体能够花钱时,你需要回答一些棘手的问题:
- 我如何控制智能体的支出?如果没有会话级的确定性支付限额,一个失控的循环或意外的边界情况可能会耗尽资金。
- 我如何为我的智能体提供资金?通过与 Coinbase CDP 和 Stripe(Privy)的集成,终端用户可以通过法币或 USDC 稳定币在不同网络上为其钱包充值,以实现高性价比的微交易。
- 我的智能体如何安全地连接钱包?AgentCore Payments 使用 AgentCore Identity 对支付钱包进行安全认证。
- 我该选择哪个协议? 深入掌握任何一个协议都需要大量时间和精力,因为每个协议都有其自身的细微差别。
如今,大多数将智能体投入生产的团队都以三种方式之一来处理智能体支付:他们改为让智能体指向免费来源(数据更差,但无需处理支付),他们为每个 API 构建自定义支付逻辑(每个服务需要 30 到 50 行包装代码),或者他们放弃自主性(智能体将付费墙呈现给人类)。随着付费服务数量增长到数千个,这些方式都无法扩展。除了集成复杂性之外,开发者还必须从头构建治理和预算护栏,以帮助防止失控支出,并满足支付流程所要求的安全和监管合规要求。
智能体开发者体验是 AgentCore Payments 的基石。它为开发者提供了一个解决方案,可连接到钱包、跨协议编排支付并强制执行支出治理,而无需从头构建或一开始就承诺使用某个协议。
LangChain 中间件在智能体执行的每一步暴露钩子,因此你可以拦截模型调用或工具调用并添加逻辑,而无需更改智能体本身。假设你有一个法律智能体正在起草一份简报,而它需要的法庭文件位于付费墙之后。当它的工具访问该付费 API 并收到 HTTP 402 时,AgentCorePaymentsMiddleware 会检测到支付要求,强制执行会话预算限制,通过 Amazon Bedrock AgentCore Payments 签署支付,并使用支付凭证重试请求。你的智能体在你设定的限制内获得了它请求的数据。请在文档中阅读更多内容。

工作原理
- 检测。 工具访问一个付费 API,该 API 返回带有 x402 负载的 HTTP 402。
- 验证。 中间件根据你的会话预算检查支付金额。如果超出限制,请求将被拒绝,且不会签署任何支付。
- 签署。 如果在预算内,中间件通过 AgentCore PaymentManager 签署支付。
- 重试。 原始请求会附带支付证明进行重试。API 返回内容。
- 继续。 智能体收到内容,就像 API 第一次就返回了 200 一样。
设置只需一个配置对象和中间件列表中的一项:
config = AgentCorePaymentsConfig(
payment_manager_arn="arn:aws:bedrock-agentcore:us-east-1:...:payment-manager/pm-abc123",
user_id="user-123",
payment_instrument_id="instrument-456",
region="us-east-1",
auto_session=True, # session created on the first 402
auto_session_budget="5.00", # hard ceiling for this session
)
agent = create_agent(
model=model,
tools=[], # the middleware registers http_request and payment query tools
middleware=[AgentCorePaymentsMiddleware(config)],
)
它适用于 LangChain 智能体支持的任何模型提供商,不过支付基础设施本身你需要 AgentCore。
适用场景
AgentCore Payments 中间件非常适合智能体需要在受控预算内访问多个付费服务的工作负载。
| 用例 | 为何有效 |
|---|---|
| 研究智能体 | 访问高级数据库:法律文件、医学文献、金融数据 |
| 多步骤工作流 | 深度智能体按顺序访问多个付费服务,同时保持在总预算之内 |
| 按用户支出控制 | 每个最终用户都有自己的预算和支付工具的 SaaS 产品 |
| MCP 服务器消费 | 当 MCP 工具以文本内容返回 402 并转发 headers 参数时,可以配合自动支付使用 |
| 浏览器智能体 | 浏览付费墙网站,从众多站点提取内容 |
审计你的智能体支出
为智能体添加成本控制可以限制成本超支,但不会影响最初导致这些交易的智能体行为。这可能以多种方式显现:
- 一个智能体没有超预算,但对该买什么推理得很糟糕
- 一个智能体两步就花光了全部额度,然后任务失败
- 一个智能体的付费请求携带了不应离开你系统的数据
- 一个智能体被恶意的工具描述重定向到了一个没人要求的端点
这四种情况都能成功完成、不超预算,而且在发票上看起来都很合理。这是因为区块链支付账本只记录了工具 X 在 14:03:11 向地址 Y 发送了 0.02 美元。它没有记录该智能体当时正处于研究任务的第三步、有一美元的上限,并且选择那个端点是因为某个工具描述提到了法庭文件。这些上下文只存在于智能体追踪中。
我们认为这对两件事很重要:治理,避免智能体产生意外支出;以及审计,即对你的智能体买了什么留下持久记录,供他人几个月后查询。
智能体支出会面临与组织内任何其他支出相同的问题。谁授权的?限额是多少?你如何知道限额被遵守了?如果你已经在 LangSmith 中追踪你的智能体,就可以追踪导致智能体付款的每一步。工具调用会出现,返回 402,然后再次出现并附带支付头,周围是用户的原始请求和模型在每一步的推理。

一个简短的记录器中间件会在支付成功时将支付详情作为元数据附加:金额、网络、收款方、触发它的工具,以及计费到的会话和用户。

当一笔支付会超出预算时,AgentCore 会拒绝它。拒绝会与智能体对此的响应一起出现在追踪中,因此你可以确认限额被遵守了,而不是假设它被遵守了。

拒绝记录的是它发生了,而不是它花了多少钱,因为这笔支付从未发生。确切数字留在 AgentCore 的日志中。
在花真钱之前测试支出
追踪告诉我们智能体是如何推理购买请求的。评估则测试购买请求背后的思考是否符合预期,这样你就可以验证良好行为,并找出智能体错误的修复方法。
- 单步评估测试单个决策。给智能体一个只值几分钱的任务,返回一个要求五十美元的 402,然后检查它是否仍然付款。
- 完整轮次评估在数据集上对对话轨迹打分,同时检查总支出、付费调用次数和任务完成情况。你会希望在每次提示词或工具集变更时运行它们,因为一个开始购买超出所需之物的智能体仍然会返回一个完全正确的答案。
- 在线评估对 LangSmith 中的生产追踪运行相同的检查,标记超出支出阈值或向意外端点付款的运行。
这里有一个完整轮次的示例:十个研究任务,每个任务的预算都足以覆盖该端点的收费。两个评估器对每次运行打分。spend_within_budget 将运行实际支付的金额与任务预算进行比较。relevant_data 检查智能体购买的数据是否回答了它被提出的问题。

在这次运行中,全部十个任务的支出都保持在预算之内,而有七个任务的数据是相关的。在另外三个任务中,智能体为无法回答该问题的响应付了费。
一个数据集、评估器和一次实验共同为你提供这种视角:不仅能看到智能体是否花了钱,还能看到这些花费是否带来了有用的东西。更改提示词、模型或预算,重新运行同样的十个任务,你就可以将新版本与此版本进行对比,包括延迟、token 和模型成本。
快速上手
在 AWS 侧有两种配置方式。AgentCore Payments skill 通过与 Deep Agents Code、Claude Code、Kiro 或 Codex 的引导式对话来设置你的 PaymentManager 和支付工具,或者你也可以使用 AgentCore CLI、AWS SDK 或 Boto3 自行完成。然后安装中间件:
pip install -U "bedrock-agentcore[langgraph,strands-agents]"
即使你使用的是 LangChain,也要安装 strands-agents。该集成包同时导入了 LangChain 和 Strands 适配器,因此缺少它会导致导入失败。
添加中间件并设置较小的会话预算,开启 LangSmith 追踪,然后运行一个付费任务。如果你仅凭追踪记录就能回答“这花了多少钱以及为什么”,那就说明配置正确了。在此基础上,在 LangSmith 上构建一个小型评估数据集,并添加一条在线规则,用于标记超出你阈值的运行。
开始所需的一切:
- AgentCore Payments 中间件文档
- AWS 上的 AgentCore Payments
- 带有 LangSmith 追踪和评估的示例智能体
- AgentCore Payments 代码示例
- 试用 LangSmith 或 获取演示
- AWS Marketplace 上的 LangSmith
"Agents are evolving from systems that generate answers into systems that take action—and increasingly, some of those actions will involve economic transactions. That changes what developers need from the infrastructure around agents. They need to evaluate behavior, understand decisions, and enforce boundaries. LangSmith and Amazon Bedrock AgentCore Payments address complementary parts of that challenge, helping developers build agents that can operate with greater autonomy while remaining observable and controlled."- Harrison Chase,LangChain 首席执行官兼联合创始人
"Thrilled to see the AgentCore and LangChain teams come together on AgentCore Payments Middleware. By giving developers a simple way to enable their LangChain agents to pay for services and content, safely, with deterministic guardrails, we're unlocking an entirely new class of autonomous agent experiences. Can't wait to see what builders create with this."- Preethi CN,Amazon Bedrock AgentCore 总监
来源:LangChain Blog · langchain.com