Bitget App
交易“智”变
快捷买币行情交易合约理财AI广场更多
2026 年 Agent-to-Agent 市场完全指南

2026 年 Agent-to-Agent 市场完全指南

MEnewsMEnews2026/09/08 15:36
作者:MEnews
阐述AI Agent通过去中心化市场发现、协商和支付服务的架构设计,涵盖注册表、发现机制、协议和支付层等核心组件。

文章作者、来源:Nikhil Ranka

1. 为什么 Agent‑to‑Agent(A2A)市场值得重视

到 2026 年,大多数生产级别的 Agent 不再是调用少量公开 API 的单体脚本。它们从其他 Agent 组合能力——想象一个"规划师" Agent 将数据获取、验证或转换任务委托给专业的微 Agent。市场就是将这些粘合在一起的"胶水",让 Agent 能够以去中心化、可编程的方式发现、协商和支付这些服务。

核心价值主张很简单:减少重复劳动,同时保持自主性。一个 Agent 可以专注于自己的领域逻辑,将周边工作外包给最便宜或最可靠的提供商。代价是增加的延迟、失败处理的复杂性,以及需要一个共享的经济层。如果忽视这些成本,很快就会看到级联超时或意外费用。

2. 架构概览

一个最小的 A2A 市场由四个松耦合的组件构成:

流程特意设计为同步以保持简单:Agent 发现服务、发起付费请求、收到签名收据、验证后继续。异步模式(回调、事件流)是可行的,但会增加相当大的调试开销;大多数生产级 Agent 坚持使用请求‑回复模型,除非真正需要"发后即忘"的语义。

3. 服务描述格式

Agent 需要一份机器可读的契约。社区已经收敛到一种基于 OpenAPI 3.1 的 JSON‑Schema 扩展,称为 AgentServiceSpec。关键字段:

{ "openapi": "3.1.0", "info": { "title": "Image Captioning Agent", "version": "1.0.0", "description": "Generates a short caption for an RGB image." }, "paths": { "/caption": { "post": { "operationId": "captionImage", "requestBody": { "required": true, "content": { "image/png": { "schema": { "type": "string", "format": "binary" } } } }, "responses": { "200": { "description": "Caption text", "content": { "text/plain": { "schema": { "type": "string" } } } } }, "x-price": { "amount": "0.03", "currency": "USDC", "chain": "base" }, "x-sla": { "maxLatencyMs": 800, "minSuccessRate": 0.99 } } } } }

x-price 在使用 x402 的市场中是强制的。

x-sla 是建议性的;Agent 仍可强制执行自己的超时。

二进制载荷在 JSON 中 base64 编码,或作为 multipart/form‑data 发送;编码方式由实现决定。

4. 使用 x402 的支付流程

x402 重用 HTTP 402 状态码来表明服务器在处理请求之前需要支付。工作流程:

Agent → Marketplace GET /service?agentId=… → 返回 402 Payment Required,附带 headers:

X-Price: 0.03 USDC X-Pay-To: 0xAbc… (Base 上的 USDC 合约) X-Nonce:

Agent 构造一笔 ERC‑20 转账(使用 permit 或直接 transferFrom 如果已批准),将精确金额包含在数据字段中以防止重放。

Agent → Marketplace POST /caption,header 包含 Authorization: Bearer

(或 x402-payment:
)。

Marketplace 通过 RPC 或可信的 sequencer 在链上验证交易,检查金额、代币和 nonce 是否匹配,然后处理请求并返回签名收据:

{ "receipt": { "txHash": "0x123…", "blockNumber": 421337, "timestamp": 1730568000, "payer": "0xAgent…", "payee": "0xMarketplace…", "amount": "0.03", "currency": "USDC", "chain": "base", "service": "image-captioning", "signature": "0xabcdef…" } }

Agent 使用 marketplace 的公钥验证签名,并将收据存储以供审计或争议解决。

代码示例:Python Agent 发起付费调用

import hashlib import json import time import requests from web3 import Web3 from eth_account import Account # Configuration BASE_RPC = "" USDC_ADDRESS = Web3.to_checksum_address("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913") MARKETPLACE = "" AGENT_PRIVATE_KEY = "0xYOUR_PRIVATE_KEY" AGENT_ADDRESS = Account.from_key(AGENT_PRIVATE_KEY).address w3 = Web3(Web3.HTTPProvider(BASE_RPC)) usdc_abi = [...] # minimal ERC20 abi (balanceOf, transfer, permit) usdc = w3.eth.contract(address=USDC_ADDRESS, abi=usdc_abi) def get_price_and_nonce(service_path: str): resp = requests.get(f"{MARKETPLACE}{service_path}", timeout=5) assert resp.status_code == 402, f"Expected 402, got {resp.status_code}" price = float(resp.headers["X-Price"]) payee = resp.headers["X-Pay-To"] nonce = resp.headers["X-Nonce"] return price, payee, nonce def pay_usdc(to: str, amount_usdc: float, nonce: str): amount_wei = int(amount_usdc * 1e6) # USDC has 6 decimals # Build EIP-2612 permit (optional) – here we use a simple transfer with approval # Assuming the agent has already approved the marketplace to spend USDC tx = usdc.functions.transfer( Web3.to_checksum_address(to), amount_wei ).build_transaction({ "chainId": w3.eth.chain_id, "gas": 100_000, "maxFeePerGas": w3.to_wei(2, "gwei"), "maxPriorityFeePerGas": w3.to_wei(1, "gwei"), "nonce": w3.eth.get_transaction_count(AGENT_ADDRESS), }) signed = Account.sign_transaction(tx, AGENT_PRIVATE_KEY) tx_hash = w3.eth.send_raw_transaction(signed.rawTransaction) receipt = w3.eth.wait_for_transaction_receipt(tx_hash) return receipt.transactionHash.hex() def call_caption(image_bytes: bytes): price, payee, nonce = get_price_and_nonce("/caption") tx_hash = pay_usdc(payee, price, nonce) headers = { "x402-payment": tx_hash, # custom header the marketplace expects "Content-Type": "image/png" } resp = requests.post( f"{MARKETPLACE}/caption", data=image_bytes, headers=headers, timeout=10 ) resp.raise_for_status() data = resp.json() # Validate receipt signature (simplified) receipt = data["receipt"] assert w3.eth.get_transaction_receipt(receipt["txHash"])["status"] == 1 return resp.text # the caption # Example usage if __name__ == "__main__": with open("cat.png", "rb") as f: img = f.read() print(call_caption(img))

示例说明

这段代码展示了:

通过 402 响应获取价格和 nonce。

简单的 USDC 转账(可以用 permit 流程替换以避免链上授权)。

在自定义 header(x402-payment)中包含交易哈希。

在信任服务输出之前验证链上收据。

0
0

免责声明:文章中的所有内容仅代表作者的观点,与本平台无关。用户不应以本文作为投资决策的参考。

你已了解市场,是时候开始交易了!
Bitget支持一站式交易加密货币、股票和黄金等。
立即交易!

你也可能喜欢

SpaceX权重上升触发124亿美元被动买盘,23亿股解禁的考验还在后头?

据摩根大通估算,纳斯达克100指数9月21日重平衡,将把SpaceX权重从1.25%推升至约1.51%,触发约124亿美元被动净买入。驱动权重跃升的是限售股解禁,未来解禁规模将继续扩大:截至11月中旬,将有超23亿股陆续进入可交易状态。限售股解禁与被动买盘的博弈,或将主导SpaceX四季度定价。

华尔街见闻2026/09/08 15:23