AgentCard

エージェントの自己記述型マニフェスト。エージェントの ID、機能、スキル、サポートされている通信方法、セキュリティ要件などの重要なメタデータを提供します。次の ID: 20

JSON 表現
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "documentationUrl": string,
  "iconUrl": string
}
フィールド
name

string

必須。人が読める形式のエージェントの名前。例: 「レシピ エージェント」

description

string

必須。エージェントの目的をユーザーや他のエージェントが理解するのに役立つ、人が読める形式の説明。例: 「レシピや料理についてユーザーをサポートするエージェント。」

supportedInterfaces[]

object (AgentInterface)

必須。サポートされているインターフェースの順序付きリスト。最初のエントリが優先されます。

provider

object (AgentProvider)

エージェントのサービス提供者。

version

string

必須。エージェントのバージョン。例: 「1.0.0」

capabilities

object (AgentCapabilities)

必須。エージェントがサポートする A2A 機能セット。

securitySchemes

map (key: string, value: object (SecurityScheme))

このエージェントとの認証に使用されるセキュリティ スキームの詳細。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

securityRequirements[]

object (SecurityRequirement)

エージェントへの連絡に関するセキュリティ要件。

defaultInputModes[]

string

必須。protoolint:enable REPEATED_FIELD_NAMES_PLURALIZED エージェントがすべてのスキルでサポートするインタラクション モードのセット。これはスキルごとにオーバーライドできます。メディアタイプとして定義されます。

defaultOutputModes[]

string

必須。このエージェントの出力としてサポートされているメディアタイプ。

skills[]

object (AgentSkill)

必須。スキルは、エージェントの能力を表します。これは主に説明的なコンセプトですが、エージェントが成功する可能性が高い、より絞り込まれた一連の動作を表しています。

signatures[]

object (AgentCardSignature)

この AgentCard に対して計算された JSON Web Signature。

documentationUrl

string

エージェントに関する追加のドキュメントを提供する URL。

iconUrl

string

省略可。エージェントのアイコンへの URL。

AgentInterface

エージェントとやり取りするためのターゲット URL、トランスポート、プロトコル バージョンの組み合わせを宣言します。これにより、エージェントは複数のプロトコル バインディング メカニズムで同じ機能を公開できます。

JSON 表現
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
フィールド
url

string

必須。このインターフェースが利用可能な URL。本番環境では、有効な絶対 HTTPS URL である必要があります。例: 「https://api.example.com/a2a/v1」、「https://grpc.example.com/a2a」

protocolBinding

string

必須。この URL でサポートされているプロトコル バインディング。これはオープン フォーム文字列であり、他のプロトコル バインディングに簡単に拡張できます。正式にサポートされているコアは、JSONRPCGRPCHTTP+JSON です。

tenant

string

省略可。複数のエージェントが単一の A2A エンドポイントの背後でサービスを提供している場合に、リクエストを特定のエージェントまたはテナントに転送するために使用される不透明な文字列。設定されている場合、クライアントは、このインターフェースに送信されるすべてのリクエスト メッセージの tenant フィールドにこの値を含めなければなりません。サーバーは値を解釈し、それに応じてリクエストをルーティングします。プロトコルはその形式やセマンティクスを定義しません。

protocolVersion

string

必須。このインターフェースが公開する A2A プロトコルのバージョン。メジャー バージョンごとにサポートされている最新のマイナー バージョンを使用します。例: 「0.3」、「1.0」

AgentProvider

エージェントのサービス提供者を表します。

JSON 表現
{
  "url": string,
  "organization": string
}
フィールド
url

string

必須。エージェント プロバイダのウェブサイトまたは関連ドキュメントの URL。例: "https://ai.google.dev"

organization

string

必須。エージェント プロバイダの組織の名前。例: 「Google」

AgentCapabilities

エージェントでサポートされるオプションの機能を定義します。

JSON 表現
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
フィールド
extensions[]

object (AgentExtension)

エージェントがサポートするプロトコル拡張機能のリスト。

streaming

boolean

エージェントがストリーミング レスポンスをサポートしているかどうかを示します。

pushNotifications

boolean

エージェントが非同期タスクの更新に関するプッシュ通知の送信をサポートしているかどうかを示します。

extendedAgentCard

boolean

認証時に拡張エージェント カードの提供をサポートするかどうかを示します。

AgentExtension

エージェントがサポートするプロトコル拡張機能の宣言。

JSON 表現
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
フィールド
uri

string

拡張機能を識別する一意の URI。

description

string

このエージェントが拡張機能を使用する方法の説明(人が読める形式)。

required

boolean

true の場合、クライアントは拡張機能の要件を理解し、遵守する必要があります。

params

object (Struct format)

省略可。拡張機能固有の構成パラメータ。

SecurityScheme

エージェントのエンドポイントの保護に使用できるセキュリティ スキームを定義します。これは、OpenAPI 3.2 セキュリティ スキーム オブジェクトに基づく判別共用体型です。参照: https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object

JSON 表現
{

  // Union field scheme can be only one of the following:
  "apiKeySecurityScheme": {
    object (APIKeySecurityScheme)
  },
  "httpAuthSecurityScheme": {
    object (HTTPAuthSecurityScheme)
  },
  "oauth2SecurityScheme": {
    object (OAuth2SecurityScheme)
  },
  "openIdConnectSecurityScheme": {
    object (OpenIdConnectSecurityScheme)
  },
  "mtlsSecurityScheme": {
    object (MutualTlsSecurityScheme)
  }
  // End of list of possible types for union field scheme.
}
フィールド

共用体フィールド scheme

scheme は次のいずれかになります。

apiKeySecurityScheme

object (APIKeySecurityScheme)

API キーベースの認証。

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

HTTP 認証(Basic、Bearer など)。

oauth2SecurityScheme

object (OAuth2SecurityScheme)

OAuth 2.0 認証。

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

OpenID Connect 認証。

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

相互 TLS 認証。

APIKeySecurityScheme

API キーを使用してセキュリティ スキームを定義します。

JSON 表現
{
  "description": string,
  "location": string,
  "name": string
}
フィールド
description

string

セキュリティ スキームの説明(省略可)。

location

string

必須。API キーの場所。有効な値は「query」、「header」、「cookie」です。

name

string

必須。使用するヘッダー、クエリ、Cookie パラメータの名前。

HTTPAuthSecurityScheme

HTTP 認証を使用するセキュリティ スキームを定義します。

JSON 表現
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
フィールド
description

string

セキュリティ スキームの説明(省略可)。

scheme

string

必須。RFC7235 で定義されている Authorization ヘッダーで使用される HTTP 認証スキームの名前(例: "Bearer")。この値は、IANA 認証スキーム レジストリに登録する必要があります。

bearerFormat

string

ベアラートークンの形式(「JWT」など)を識別するためのクライアントへのヒント。主にドキュメント化を目的としています。

OAuth2SecurityScheme

OAuth 2.0 を使用してセキュリティ スキームを定義します。

JSON 表現
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
フィールド
description

string

セキュリティ スキームの説明(省略可)。

flows

object (OAuthFlows)

必須。サポートされている OAuth 2.0 フローの構成情報を含むオブジェクト。

oauth2MetadataUrl

string

OAuth2 認証サーバー メタデータ RFC 8414 の URL。TLS が必要です。

OAuthFlows

サポートされている OAuth 2.0 フローの構成を定義します。

JSON 表現
{

  // Union field flow can be only one of the following:
  "authorizationCode": {
    object (AuthorizationCodeOAuthFlow)
  },
  "clientCredentials": {
    object (ClientCredentialsOAuthFlow)
  },
  "implicit": {
    object (ImplicitOAuthFlow)
  },
  "password": {
    object (PasswordOAuthFlow)
  },
  "deviceCode": {
    object (DeviceCodeOAuthFlow)
  }
  // End of list of possible types for union field flow.
}
フィールド

共用体フィールド flow

flow は次のいずれかになります。

authorizationCode

object (AuthorizationCodeOAuthFlow)

OAuth 認可コードフローの構成。

clientCredentials

object (ClientCredentialsOAuthFlow)

OAuth クライアント認証情報フローの構成。

implicit
(deprecated)

object (ImplicitOAuthFlow)

非推奨: 代わりに Authorization Code + PKCE を使用してください。

password
(deprecated)

object (PasswordOAuthFlow)

非推奨: 認証コード + PKCE またはデバイスコードを使用します。

deviceCode

object (DeviceCodeOAuthFlow)

OAuth デバイスコードフローの構成。

AuthorizationCodeOAuthFlow

OAuth 2.0 認可コードフローの構成の詳細を定義します。

JSON 表現
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  },
  "pkceRequired": boolean
}
フィールド
authorizationUrl

string

必須。このフローで使用される認証 URL。

tokenUrl

string

必須。このフローで使用するトークン URL。

refreshUrl

string

更新トークンの取得に使用する URL。

scopes

map (key: string, value: string)

必須。OAuth2 セキュリティ スキームで使用可能なスコープ。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

pkceRequired

boolean

このフローに PKCE(RFC 7636)が必要かどうかを示します。PKCE は常に公開クライアントで使用する必要があります。また、すべてのクライアントで使用することをおすすめします。

ClientCredentialsOAuthFlow

OAuth 2.0 クライアント認証情報フローの構成の詳細を定義します。

JSON 表現
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
フィールド
tokenUrl

string

必須。このフローで使用するトークン URL。

refreshUrl

string

更新トークンの取得に使用する URL。

scopes

map (key: string, value: string)

必須。OAuth2 セキュリティ スキームで使用可能なスコープ。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

ImplicitOAuthFlow

非推奨: 代わりに Authorization Code + PKCE を使用してください。

JSON 表現
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
フィールド
authorizationUrl

string

このフローで使用される認証 URL。これは URL の形式でなければなりません。OAuth2 標準では TLS の使用が義務付けられています

refreshUrl

string

更新トークンの取得に使用する URL。これは URL の形式でなければなりません。OAuth2 標準では TLS の使用が義務付けられています。

scopes

map (key: string, value: string)

OAuth2 セキュリティ スキームで使用可能なスコープ。スコープ名とその簡単な説明のマッピング。マップは空にしても構いません。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

PasswordOAuthFlow

非推奨: 認証コード + PKCE またはデバイスコードを使用します。

JSON 表現
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
フィールド
tokenUrl

string

このフローで使用するトークン URL。これは URL の形式でなければなりません。OAuth2 標準では TLS の使用が義務付けられています。

refreshUrl

string

更新トークンの取得に使用する URL。これは URL の形式でなければなりません。OAuth2 標準では TLS の使用が義務付けられています。

scopes

map (key: string, value: string)

OAuth2 セキュリティ スキームで使用可能なスコープ。スコープ名とその簡単な説明のマッピング。マップは空にしても構いません。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

DeviceCodeOAuthFlow

OAuth 2.0 デバイスコードフロー(RFC 8628)の構成の詳細を定義します。このフローは、IoT デバイスなどの入力が制限されたデバイスや、ユーザーが別のデバイスで認証を行う CLI ツール向けに設計されています。

JSON 表現
{
  "deviceAuthorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
フィールド
deviceAuthorizationUrl

string

必須。デバイス認証エンドポイントの URL。

tokenUrl

string

必須。このフローで使用するトークン URL。

refreshUrl

string

更新トークンの取得に使用する URL。

scopes

map (key: string, value: string)

必須。OAuth2 セキュリティ スキームで使用可能なスコープ。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

OpenIdConnectSecurityScheme

OpenID Connect を使用してセキュリティ スキームを定義します。

JSON 表現
{
  "description": string,
  "openIdConnectUrl": string
}
フィールド
description

string

セキュリティ スキームの説明(省略可)。

openIdConnectUrl

string

必須。OIDC プロバイダのメタデータの OpenID Connect Discovery URL

MutualTlsSecurityScheme

mTLS 認証を使用するセキュリティ スキームを定義します。

JSON 表現
{
  "description": string
}
フィールド
description

string

セキュリティ スキームの説明(省略可)。

SecurityRequirement

エージェントのセキュリティ要件を定義します。

JSON 表現
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
フィールド
schemes

map (key: string, value: object (StringList))

セキュリティ スキームと必要なスコープのマッピング。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 文字列のリスト。

JSON 表現
{
  "list": [
    string
  ]
}
フィールド
list[]

string

個々の文字列値。

AgentSkill

エージェントが実行できる個別の機能を表します。

JSON 表現
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ]
}
フィールド
id

string

必須。エージェントのスキルの一意の識別子。

name

string

必須。人が読める形式のスキルの名前。

description

string

必須。スキルの詳細な説明。

tags[]

string

必須。スキルの機能を説明するキーワードのセット。

examples[]

string

このスキルで処理できるプロンプトやシナリオの例。

inputModes[]

string

このスキルでサポートされている入力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

outputModes[]

string

このスキルでサポートされている出力メディア タイプのセット。エージェントのデフォルトをオーバーライドします。

securityRequirements[]

object (SecurityRequirement)

このスキルに必要なセキュリティ スキーム。

AgentCardSignature

AgentCardSignature は、AgentCard の JWS 署名を表します。これは、RFC 7515 JSON Web Signature(JWS)の JSON 形式に準拠しています。

JSON 表現
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
フィールド
protected

string

必須。必須。署名の保護された JWS ヘッダー。これは常に base64url エンコードの JSON オブジェクトです。

signature

string

必須。計算された署名(base64url でエンコード)。

header

object (Struct format)

保護されていない JWS ヘッダー値。