2.A2A核心架构
# 2.1 整体架构
A2A协议github地址: https://d8bzmrpxh3.feishu.cn/file/Y67JbEJfeoRlsfxoNCScIl9Znad (opens new window)
该文件是一个 JSON Schema 文件,用于定义A2A 协议(Agent-to-Agent Protocol)的数据结构和验证规则。$defs是此 JSON Schema 的核心部分,定义了多个对象、错误和数据结构。

# 2.2 核心对象解析
# AgentAuthentication
功能:用于描述Agent的验证方式
字段:
schemes: 验证方式。类型为字符串数组,必填credentials:验证凭证,可以是字符串或 null,默认值为 null
{
"schemes": ["OAuth", "APIKey"],
"credentials": "some-token"
}
1
2
3
4
2
3
4
# AgentCapabilities
功能:Agent支持的能力范围
字段:
streaming: Agent是否支持streaming,boolean类型,默认值为falsepushNotifications:Agent是否支持推送通知,boolean类型,默认值为falsestateTransitionHistory:Agent是否支持状态转换历史,boolean类型,默认值为false
# AgentCard
功能:定义Agent的基本信息及相关属性
字段:
name:必填,Agent 名称description:Agent 的描述,可以是字符串或者nullurl:必填,Agent 的URLprovider:提供者信息、参考下文AgentProvider或nullversion:必填,Agent 的版本capabilities:必填,参考下文AgentCapabilitiesauthentication:认证信息、参考AgentAuthentication或nulldefaultInputModes与defaultOutputModes:默认的输入/输出模式,字符串数组,默认值为["text"]skills:必填,技能列表,参考AgentSkill
{
"name": "MyAgent",
"description": "This is a sample agent",
"url": "https://myagent.example.com",
"version": "1.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"stateTransitionHistory": true
},
"skills": []
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# AgentProvider
功能:定义Agent的提供者信息,一般为组织/公司信息
字段:
organization:必填,组织名称url:提供者的url地址,可以为string或空
# AgentSkill
功能:定义Agent的能力
字段:
id: 必填,技能的唯一标识符name: 必填,能力名称description: 能力描述tags: 能力的标签,字符串数组或nullinputModes与outputModes: 技能支持的输入/输出模式,可以是字符串数组或null
{
"id": "技能-123",
"name": "翻译",
"description": "将文本从一种语言翻译成另一种语言",
"tags": ["语言", "翻译"],
"examples": ["将'Hello'翻译成西班牙语"]
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# FileContent
功能:描述文件内容,可以是Base64编码的字节数组或URL
字段:
name: 文件名,可以是字符串或者nullmimeType: 文件的MIME类型,可以是字符串或者nullbytes: Base64编码后的文件内容,可以是字符串或者nulluri: 文件内容的URI,可以是字符串或者null
# FilePart
功能:描述文件分片,组成FileContent,用于传递文件相关的数据,比如上传或者下载操作
字段:
type: 固定值,"file"file: 参考FileContentmetadata: 文件的元数据,可以是对象或者null
# 2.3 Agent发现(通过Agent Card)
发现这些代理卡的方法多种多样。目前这个问题还是一个开放的讨论话题,主要有这么几类:
# 开放式
企业在一个众所周知的路径上托管他们的代理卡,具体为:https://domain/.well-known/agent.json。
客户端将使用 DNS 解析已知或发现的域名,向该路径发送简单的 GET 请求,并接收代理卡。
优势:网络爬虫和应用程序能够轻松发现已知或配置的代理,从而有效地将发现过程简化为"找到一个域名"
# 精选式(基于注册表)
企业应用程序将通过目录界面提供精选的 agents 注册表
# 私有(基于API)
私有的"agent 商店"或专有 agents,其中卡片通过自定义 API 交换。
Google不考虑将私有发现 API 作为 A2A 关注点
编辑 (opens new window)
上次更新: 2025/12/19, 15:17:48