WellKnownAgentCard

AI Agent 技术 的上下文中,WellKnownAgentCardResolver来源于 Google 提出的 A2A(Agent-to-Agent)协议生态**,尤其是在其 **Agent Development Kit **(ADK) 和相关多智能体系统架构中。


✅ 核心定位:

WellKnownAgentCardResolver用于解析“知名智能体卡片”(Well-Known Agent Card) 的一个服务发现或元数据加载组件,属于 A2A 协议实现中的基础设施模块


🔍 背景知识:A2A 与 .well-known/agent.json

Google 在推动多智能体互操作性时,提出了 A2A(Agent-to-Agent Communication Protocol),其中一个重要设计是:

每个 AI Agent 应通过一个标准化的、可被其他 Agent 自动发现的“身份名片”来声明自己的能力、接口、协议支持等信息。

这个“名片”就叫 Agent Card,通常以 JSON 格式提供,并托管在:

https://<agent-domain>/.well-known/agent.json

这借鉴了 IETF 的 RFC 8615 —— .well-known URI 标准(如 /.well-known/openid-configuration)。


🧩 WellKnownAgentCardResolver 的作用

功能 说明
自动发现 Agent 元数据 当一个 Agent(调用方)需要与另一个 Agent(被调用方)通信时,它会先向目标域名的 /.well-known/agent.json 发起 HTTP 请求。
解析 Agent Card 内容 获取到 JSON 后,WellKnownAgentCardResolver 负责将其反序列化为结构化对象(如 AgentCard 类),包含: - Agent 名称/ID - 支持的协议(如 A2A 版本) - 可用工具(Tools) - MCP 服务器地址 - 安全策略(如认证方式)
支持动态 Agent 协同 使多 Agent 系统无需硬编码对方地址或能力,实现“即插即用”的协作。

📦 典型使用场景(来自 Google ADK 示例)

在你提供的资料中提到的项目结构:

flight_search_app/
└── static/
    └── .well-known/
        └── agent.json   ← 这就是该 Agent 的 Well-Known Agent Card

itinerary_planner(行程规划主 Agent)需要调用 flight_search_app 时:

  1. 它通过 WellKnownAgentCardResolver 访问 http://flight-search-app/.well-known/agent.json
  2. 解析得到该航班搜索 Agent 的能力描述和 MCP 接口地址
  3. 根据这些信息发起 A2A 协议通信 + 调用 MCP 工具

💡 技术栈关联

  • 协议基础:A2A(Agent-to-Agent Protocol)
  • 发现机制:基于 .well-known URI(RFC 8615)
  • 实现载体:Google ADK(Agent Development Kit)中的客户端/服务端库
  • 数据格式agent.json 遵循 A2A 定义的 Agent Card Schema

⚠️ 注意:目前 A2A 仍是 Google 主导的新兴协议,尚未成为 W3C 或 IETF 标准,但已在部分开源示例(如 GitHub 上的 google/A2A 仓库)中实现。


📄 示例:agent.json 内容(简化)

{
  "agentId": "flight-search-agent",
  "version": "1.0",
  "protocols": ["a2a/v1"],
  "tools": [
    {
      "name": "searchFlights",
      "mcpServer": "http://mcp-flight-server:8080"
    }
  ],
  "description": "Searches available flights based on user query."
}

WellKnownAgentCardResolver 就是读取并解析这类文件的工具类。


✅ 总结

WellKnownAgentCardResolver 是 AI Agent 多智能体系统中,基于 A2A 协议实现的一个“智能体元数据发现与解析器”,用于从 /.well-known/agent.json 加载目标 Agent 的能力描述,从而实现自动化、动态化的 Agent 间协作。

它是构建可互操作、松耦合、自发现的多 Agent 应用的关键基础设施之一。

posted @ 2026-01-22 09:31  蓝迷梦  阅读(5)  评论(0)    收藏  举报