ERC-8004、A2A 和 MCP 共同构建了 AI 智能体(Agent)经济的基础设施,其中 ERC-8004 在以太坊上扮演了信任层的角色,将原本仅用于通信和工具调用的 Web2 协议引入了 Web3 的可信环境。

要理解三者的整合,首先要明确它们各自在 AI 智能体生态系统中的核心作用:

总结来说:
这种三层架构使得 AI 智能体能够从孤立的程序进化为可以在去中心化网络中进行可信、可验证、可交易协作的经济主体,具体分析如下文。
ERC-8004 是 A2A 协议在去中心化环境下的“信任增强包”或“Web3 扩展”。
A2A 协议本身定义了智能体之间如何进行对话、分配子任务(例如:客户代理将分析任务委派给财务代理)。然而,A2A 缺少信任与安全的能力,ERC-8004 补全了这一点。
1、身份与发现(Identity & Discovery):
2、信誉与选择(Reputation & Selection):
3、任务执行与结算(Validation & Settlement):
MCP(Model-Controller Protocol) 关注的是单个智能体如何与其工具箱(模型、数据、API)进行交互的标准化。它使得智能体能够以统一的格式,像使用函数一样使用外部能力。
当一个复杂的任务在多个智能体之间通过 A2A 拆分和协调时,其中一个服务代理可能需要在内部使用 MCP 来调用工具。
这个案例基于社区中公开的 ERC-8004 示例代码库,它展示了如何利用 ERC-8004 的三个注册表来协调 AI 代理。
在这个用例中,我们设定三个智能体角色,它们之间的协作通信遵循 A2A 协议的模式:

整个工作流是一个 A2A 任务流程,由 ERC-8004 提供信任和结算保障,由 MCP 提供工具调用能力。
阶段一:发现与信任(A2A + ERC-8004)
阶段二:任务执行与工具调用(MCP 介入)
2. 结果生成: Alice 完成分析,生成报告。
阶段三:结果验证与反馈结算(ERC-8004 + A2A)
这是 ERC-8004 提供的核心价值,它将 A2A 的通信结果带到了链上进行可信验证:
5. 自动结算: Charlie 的智能合约监控 ERC-8004 验证注册表的状态。一旦验证通过,它将触发基于 x402 支付协议的微支付,自动向 Alice 的链上地址支付服务费用。
该示例模拟了 Client Agent (Charlie)、Server Agent (Alice) 和 Validator Agent (Bob) 之间的 A2A 工作流。

A2A 协议依赖 AgentCard 来描述智能体的能力和端点。ERC-8004 的身份注册表 (Identity Registry) 将这个 off-chain 的 A2A 描述文件与 on-chain 地址绑定,实现可信发现。
以下是 Solidity 智能合约中实现这一功能的简化代码:
// ERC-8004 IdentityRegistry 合约片段 ( 示例 )
contract IdentityRegistry {
// 代理的基本结构,AgentAddress 是链上身份,AgentDomain 指向 off-chain 的 AgentCard/A2A 描述文件
struct Agent {
uint256 AgentID;
string AgentDomain; // e.g., 'market-analysis.agent.eth'
address AgentAddress;
}
uint256 private _nextAgentID = 1;
mapping(address => uint256) private _agentAddressToID; // 地址到 ID 的映射
// 关键函数:注册代理
function registerAgent(string calldata agentDomain, address agentAddress) external {
// ... ( 检查和权限要求 )
uint256 newAgentID = _nextAgentID++;
_agents[newAgentID] = Agent(newAgentID, agentDomain, agentAddress);
_agentAddressToID[agentAddress] = newAgentID;
// 触发链上事件,供链下 A2A 发现工具索引
emit AgentRegistered(newAgentID, agentDomain, agentAddress);
}
// 供其他代理(如 Client Agent)查询
function getAgentID(address agentAddress) public view returns (uint256) {
return _agentAddressToID[agentAddress];
}
}
整合分析:
根据 ERC-8004 的设计,智能体的 **AgentCard(A2A 描述文件)** 是 off-chain 的,它不仅包含 A2A 通信信息,还包含智能体提供的 MCP 服务信息。
AgentCard (JSON 格式,简化 ):
{
"agentName": "Alice_Market_Analyst",
"agentAddress": "0xAlice123...",
"protocols": ["A2A", "MCP"], // 声明支持的协议
"capabilities": {
"analysis": {
"functionName": "analyze_stock_trend",
// MCP 的关键信息:定义了 Alice 执行任务时需要调用的工具 / 模型 / 提示词
"mcp_definition_uri": "ipfs://Qmasdfg/alice_tools.json",
"price_model": "x402_pay_per_call" // 声明结算模型
}
},
// ERC-8004 额外要求的信任信息
"trustModels": ["TEE-attestation", "cryptoeconomic-validation"],
"reputationEndpoint": "https://offchain-reputation.com/api/alice"
}整合分析:
x402 协议用于处理机器间的微支付(Micropayment)。ERC-8004 旨在作为其信任和验证的挂钩,实现基于任务完成质量的自动支付。
ERC-8004 的验证注册表 (Validation Registry) 记录了任务是否被可信地完成,这是触发 x402 支付的关键。
以下是 Solidity 智能合约中,一个基于验证成功的支付释放(Payment Release)的简化模型:
// 假设这是集成 ERC-8004 的支付 / 托管合约 (Escrow Contract)
contract AgentPaymentEscrow {
// 引用 ERC-8004 Validation Registry
IValidationRegistry public validationRegistry;
// 引用 USDC 代币合约
IERC20 public usdc;
// 假设 ValidationResponse 包含一个 Status(成功或失败)
function releasePayment(uint256 taskId, uint256 amount, address payable serverAgent)
external onlyClient { // 只能由 Client Agent 调用
// 核心步骤:查询 ERC-8004 验证注册表,确认任务已通过验证
(uint256 status) = validationRegistry.getValidationStatus(taskId);
require(status == VALIDATION_SUCCESS, "Validation failed or pending.");
// 验证通过,执行 x402 微支付(或标准 ERC-20 转账)
usdc.transfer(serverAgent, amount);
emit PaymentReleased(taskId, serverAgent, amount);
}
}
整合分析:
简而言之,x402 定义了支付流程,而 ERC-8004 通过其链上注册表为这个流程提供了不可篡改的条件判断。
1.https://8004.org/ 2.https://eips.ethereum.org/EIPS/eip-8004 3.https://github.com/google-agentic-commerce/a2a-x402 4.https://ethereum-magicians.org/t/erc-8004-trustless-agents/25098 5.https://github.com/chaoschain/erc-8004-example
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。
