Ampersend 使 LangChain 代理能够支付和使用远程 AI 代理服务。支付通过以下方式透明处理 x402 协议,使用 A2A 作为通信层。
概述
集成详情
| 类 | 包 | 可序列化 | JS 支持 | 版本 |
|---|---|---|---|---|
A2AToolkit | langchain-ampersend | ❌ | ❌ | !PyPI - 版本 |
工具功能
- **a2a_get_agent_details** - 获取远程代理的功能
- **a2a_send_message** - 向远程代理发送消息(支付自动处理)
主要特点
- 消费控制:可插拔的支付授权,支持限制和策略
- 透明支付:x402 协议自动处理支付协商
设置
安装
安装 langchain-ampersend package:
pip install -U langchain-ampersend
uv add langchain-ampersend
凭证
该工具包需要会话密钥和智能账户地址,您可以从 Ampersend 仪表板.
SESSION_KEY = os.environ.get("AMPERSEND_SESSION_KEY") # 0x...
SMART_ACCOUNT_ADDRESS = os.environ.get("AMPERSEND_SMART_ACCOUNT_ADDRESS") # 0x...
实例化
from langchain_ampersend import (
A2AToolkit,
AmpersendTreasurer,
ApiClient,
ApiClientOptions,
SmartAccountConfig,
SmartAccountWallet,
)
# Setup wallet
wallet = SmartAccountWallet(
config=SmartAccountConfig(
session_key=SESSION_KEY,
smart_account_address=SMART_ACCOUNT_ADDRESS,
)
)
# Setup treasurer
treasurer = AmpersendTreasurer(
api_client=ApiClient(
options=ApiClientOptions(
base_url="https://api.ampersend.ai",
session_key_private_key=SESSION_KEY,
)
),
wallet=wallet,
)
# Create toolkit
toolkit = A2AToolkit(
remote_agent_url="https://agent.example.com",
treasurer=treasurer,
)
await toolkit.initialize()
调用
向远程代理发送消息:
tools = toolkit.get_tools()
send_tool = tools[1] # a2a_send_message
response = await send_tool.ainvoke({"message": "Analyze the sales trends in Q4"})
print(response)
在代理中使用
from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic
# Initialize the LLM
llm = ChatAnthropic(model="claude-sonnet-4-20250514")
# Get tools from the toolkit
tools = toolkit.get_tools()
# Create the agent
agent = create_agent(llm, tools)
使用示例:
result = await agent.ainvoke({
"messages": [("user", "What can this agent do, and then ask it to analyze recent trends")]
})
# The agent will call the remote agent and handle payments automatically
支付工作原理
当远程代理需要支付(HTTP 402)时,工具包会:
- 接收支付要求
- 调用财务模块授权支付
- 使用配置的钱包签名支付
- 附带支付重试请求
这对您的 LangChain 代理是透明的。
提供具有消费限制和分析功能的托管支付会话。 AmpersendTreasurer 替代财务模块实现在 ampersend_sdk.