- JSON 表示法
- AgentInterface
- AgentProvider
- AgentCapabilities
- AgentExtension
- SecurityScheme
- APIKeySecurityScheme
- HTTPAuthSecurityScheme
- OAuth2SecurityScheme
- OAuthFlows
- AuthorizationCodeOAuthFlow
- ClientCredentialsOAuthFlow
- ImplicitOAuthFlow
- PasswordOAuthFlow
- DeviceCodeOAuthFlow
- OpenIdConnectSecurityScheme
- MutualTlsSecurityScheme
- SecurityRequirement
- StringList
- AgentSkill
- AgentCardSignature
代理的自描述清单。它提供必要的元数据,包括代理的身份、功能、技能、支持的通信方法和安全要求。下一个 ID:20
| JSON 表示法 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 字段 | |
|---|---|
name |
必需。代理的人类可读名称。示例:“食谱代理” |
description |
必需。代理的人类可读说明,可帮助用户和其他代理了解其用途。示例:“可帮助用户查找食谱和烹饪的代理。” |
supportedInterfaces[] |
必需。支持的接口的有序列表。第一个条目是首选。 |
provider |
代理的服务提供商。 |
version |
必需。代理的版本。示例:“1.0.0” |
capabilities |
必需。智能体支持的 A2A 功能集。 |
securitySchemes |
用于向此代理进行身份验证的安全方案详细信息。 包含一系列 |
securityRequirements[] |
联系代理的安全要求。 |
defaultInputModes[] |
必需。protolint:enable REPEATED_FIELD_NAMES_PLURALIZED 代理在所有技能中支持的一组互动模式。此设置可按技能进行替换。定义为媒体类型。 |
defaultOutputModes[] |
必需。此代理支持作为输出的媒体类型。 |
skills[] |
必需。技能表示智能体的能力。这在很大程度上是一个描述性概念,但代表了代理可能成功完成的一组更集中的行为。 |
signatures[] |
为相应 |
documentationUrl |
提供有关代理的其他文档的网址。 |
iconUrl |
可选。指向智能体图标的网址。 |
AgentInterface
声明了与代理交互的目标网址、传输和协议版本。这样,代理就可以通过多种协议绑定机制公开相同的功能。
| JSON 表示法 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 字段 | |
|---|---|
url |
必需。相应接口可用的网址。在正式版中,必须是有效的绝对 HTTPS 网址。示例:“https://api.example.com/a2a/v1”“https://grpc.example.com/a2a” |
protocolBinding |
必需。相应网址支持的协议绑定。这是一个开放形式的字符串,可以轻松扩展以用于其他协议绑定。官方支持的核心模型包括 |
tenant |
可选。一种不透明的字符串,用于在单个 A2A 端点后提供多个代理时,将请求路由到特定代理或租户。如果设置了此值,客户端必须将其包含在发送到此接口的所有请求消息的 |
protocolVersion |
必需。相应接口公开的 A2A protocol 版本。使用每个主要版本的最新受支持的次要版本。示例:“0.3”“1.0” |
AgentProvider
表示代理的服务提供商。
| JSON 表示法 |
|---|
{ "url": string, "organization": string } |
| 字段 | |
|---|---|
url |
必需。代理提供商的网站或相关文档的网址。示例:“https://ai.google.dev” |
organization |
必需。代理提供方的组织名称。示例:“Google” |
AgentCapabilities
定义代理支持的可选功能。
| JSON 表示法 |
|---|
{
"extensions": [
{
object ( |
| 字段 | |
|---|---|
extensions[] |
代理支持的协议扩展程序列表。 |
streaming |
指示代理是否支持流式响应。 |
pushNotifications |
指示代理是否支持针对异步任务更新发送推送通知。 |
extendedAgentCard |
指示代理在经过身份验证后是否支持提供扩展代理卡片。 |
AgentExtension
代理支持的协议扩展的声明。
| JSON 表示法 |
|---|
{ "uri": string, "description": string, "required": boolean, "params": { object } } |
| 字段 | |
|---|---|
uri |
用于标识扩展程序的唯一 URI。 |
description |
此代理如何使用扩展程序的人类可读说明。 |
required |
如果为 true,客户端必须了解并遵守扩展程序的要求。 |
params |
可选。特定于扩展程序的配置参数。 |
SecurityScheme
定义可用于保护代理端点的安全方案。这是基于 OpenAPI 3.2 安全架构对象的区分联合类型。请参阅:https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
apiKeySecurityScheme |
基于 API 密钥的身份验证。 |
httpAuthSecurityScheme |
HTTP 身份验证(基本、不记名等)。 |
oauth2SecurityScheme |
OAuth 2.0 身份验证。 |
openIdConnectSecurityScheme |
OpenID Connect 身份验证。 |
mtlsSecurityScheme |
双向 TLS 身份验证。 |
APIKeySecurityScheme
使用 API 密钥定义安全方案。
| JSON 表示法 |
|---|
{ "description": string, "location": string, "name": string } |
| 字段 | |
|---|---|
description |
安全方案的可选说明。 |
location |
必需。API 密钥的位置。有效值为“query”“header”或“cookie”。 |
name |
必需。要使用的标头、查询或 Cookie 参数的名称。 |
HTTPAuthSecurityScheme
使用 HTTP 身份验证定义安全方案。
| JSON 表示法 |
|---|
{ "description": string, "scheme": string, "bearerFormat": string } |
| 字段 | |
|---|---|
description |
安全方案的可选说明。 |
scheme |
必需。要在授权标头中使用的 HTTP 身份验证方案的名称,如 RFC7235 中所定义(例如,“Bearer”)。此值应在 IANA 身份验证方案注册表中注册。 |
bearerFormat |
向客户端提供的提示,用于标识不记名令牌的格式(例如“JWT”)。主要用于文档记录。 |
OAuth2SecurityScheme
使用 OAuth 2.0 定义安全机制。
| JSON 表示法 |
|---|
{
"description": string,
"flows": {
object ( |
| 字段 | |
|---|---|
description |
安全方案的可选说明。 |
flows |
必需。一个对象,包含受支持的 OAuth 2.0 流程的配置信息。 |
oauth2MetadataUrl |
指向 OAuth2 授权服务器元数据的网址 RFC 8414。必须使用 TLS。 |
OAuthFlows
定义受支持的 OAuth 2.0 流程的配置。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
authorizationCode |
OAuth 授权代码流程的配置。 |
clientCredentials |
OAuth 客户端凭据流程的配置。 |
implicit |
已弃用:请改用授权代码 + PKCE。 |
password |
已弃用:请改用授权代码 + PKCE 或设备代码。 |
deviceCode |
OAuth 设备代码流程的配置。 |
AuthorizationCodeOAuthFlow
定义 OAuth 2.0 授权代码流程的配置详细信息。
| JSON 表示法 |
|---|
{ "authorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... }, "pkceRequired": boolean } |
| 字段 | |
|---|---|
authorizationUrl |
必需。要用于此流程的授权网址。 |
tokenUrl |
必需。要用于此流程的令牌网址。 |
refreshUrl |
用于获取刷新令牌的网址。 |
scopes |
必需。OAuth2 安全方案的可用范围。 包含一系列 |
pkceRequired |
指明此流程是否需要 PKCE (RFC 7636)。对于公共客户端,应始终使用 PKCE;对于所有客户端,建议使用 PKCE。 |
ClientCredentialsOAuthFlow
定义 OAuth 2.0 客户端凭证流的配置详细信息。
| JSON 表示法 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 字段 | |
|---|---|
tokenUrl |
必需。要用于此流程的令牌网址。 |
refreshUrl |
用于获取刷新令牌的网址。 |
scopes |
必需。OAuth2 安全方案的可用范围。 包含一系列 |
ImplicitOAuthFlow
已弃用:请改用授权代码 + PKCE。
| JSON 表示法 |
|---|
{ "authorizationUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 字段 | |
|---|---|
authorizationUrl |
要用于此流程的授权网址。必须采用网址形式。OAuth2 标准要求使用 TLS |
refreshUrl |
用于获取刷新令牌的网址。必须采用网址形式。OAuth2 标准要求使用 TLS。 |
scopes |
OAuth2 安全方案的可用范围。范围名称与相应简短说明之间的映射。该映射可能为空。 包含一系列 |
PasswordOAuthFlow
已弃用:请改用授权代码 + PKCE 或设备代码。
| JSON 表示法 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 字段 | |
|---|---|
tokenUrl |
要用于此流程的令牌网址。必须采用网址形式。OAuth2 标准要求使用 TLS。 |
refreshUrl |
用于获取刷新令牌的网址。必须采用网址形式。OAuth2 标准要求使用 TLS。 |
scopes |
OAuth2 安全方案的可用范围。范围名称与相应简短说明之间的映射。该映射可能为空。 包含一系列 |
DeviceCodeOAuthFlow
定义 OAuth 2.0 设备代码流程 (RFC 8628) 的配置详细信息。此流程专为输入受限的设备(例如 IoT 设备)和用户在单独设备上进行身份验证的 CLI 工具而设计。
| JSON 表示法 |
|---|
{ "deviceAuthorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 字段 | |
|---|---|
deviceAuthorizationUrl |
必需。设备授权端点网址。 |
tokenUrl |
必需。要用于此流程的令牌网址。 |
refreshUrl |
用于获取刷新令牌的网址。 |
scopes |
必需。OAuth2 安全方案的可用范围。 包含一系列 |
OpenIdConnectSecurityScheme
使用 OpenID Connect 定义安全方案。
| JSON 表示法 |
|---|
{ "description": string, "openIdConnectUrl": string } |
| 字段 | |
|---|---|
description |
安全方案的可选说明。 |
openIdConnectUrl |
必需。OIDC 提供商元数据的 OpenID Connect 发现网址。 |
MutualTlsSecurityScheme
定义使用 mTLS 身份验证的安全方案。
| JSON 表示法 |
|---|
{ "description": string } |
| 字段 | |
|---|---|
description |
安全方案的可选说明。 |
SecurityRequirement
定义代理的安全要求。
| JSON 表示法 |
|---|
{
"schemes": {
string: {
object ( |
| 字段 | |
|---|---|
schemes |
安全方案与所需范围的对应关系。 包含一系列 |
StringList
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 字符串列表。
| JSON 表示法 |
|---|
{ "list": [ string ] } |
| 字段 | |
|---|---|
list[] |
各个字符串值。 |
AgentSkill
表示代理可以执行的独特功能或函数。
| JSON 表示法 |
|---|
{
"id": string,
"name": string,
"description": string,
"tags": [
string
],
"examples": [
string
],
"inputModes": [
string
],
"outputModes": [
string
],
"securityRequirements": [
{
object ( |
| 字段 | |
|---|---|
id |
必需。代理技能的唯一标识符。 |
name |
必需。技能的人类可读名称。 |
description |
必需。技能的详细说明。 |
tags[] |
必需。一组描述技能功能的关键字。 |
examples[] |
此技能可处理的提示或场景示例。 |
inputModes[] |
相应技能支持的输入媒体类型集,用于替换代理的默认设置。 |
outputModes[] |
相应技能支持的一组输出媒体类型,用于替换代理的默认设置。 |
securityRequirements[] |
此技能所需的安全方案。 |
AgentCardSignature
AgentCardSignature 表示 AgentCard 的 JWS 签名。此参数遵循 RFC 7515 JSON Web Signature (JWS) 的 JSON 格式。
| JSON 表示法 |
|---|
{ "protected": string, "signature": string, "header": { object } } |
| 字段 | |
|---|---|
protected |
必需。必需。签名的受保护 JWS 标头。这始终是一个 base64url 编码的 JSON 对象。 |
signature |
必需。计算出的签名,采用 base64url 编码。 |
header |
未受保护的 JWS 标头值。 |