AgentCard

AgentCard には、次の重要な情報が表示されます。- 全体的な詳細(バージョン、名前、説明、用途)- スキル: エージェントが実行できる一連のアクション/ソリューション - エージェントがサポートするデフォルトのモダリティ/コンテンツ タイプ。- 認証の要件 Next ID: 19

JSON 表現
{
  "protocolVersion": string,
  "name": string,
  "description": string,
  "url": string,
  "preferredTransport": string,
  "additionalInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "documentationUrl": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "security": [
    {
      object (Security)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "supportsAuthenticatedExtendedCard": boolean,
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "iconUrl": string
}
フィールド
protocolVersion

string

このエージェントがサポートする A2A プロトコルのバージョン。

name

string

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

description

string

エージェントの行動範囲/ソリューション スペースの説明。例: 「レシピや料理についてユーザーをサポートするエージェント。」

url

string

エージェントがホストされているアドレスへの URL。これは、エージェントによって宣言された優先エンドポイントを表します。

preferredTransport

string

優先エンドポイントのトランスポート。空の場合、デフォルトで JSONRPC になります。

additionalInterfaces[]

object (AgentInterface)

サポート対象のトランスポートの追加に関するお知らせ。クライアントはサポートされているトランスポートのいずれかを使用できます。

provider

object (AgentProvider)

エージェントのサービス プロバイダ。

version

string

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

documentationUrl

string

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

capabilities

object (AgentCapabilities)

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

securitySchemes

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

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

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

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED エージェントに連絡するためのセキュリティ要件。このリストは、AND の OR と見なすことができます。リスト内の各オブジェクトは、リクエストに存在する必要があるセキュリティ要件の可能なセットを 1 つ記述します。これにより、「呼び出し元は OAuth または API キーと mTLS のいずれかを使用する必要がある」などの指定が可能になります。例: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

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

defaultOutputModes[]

string

このエージェントの出力としてサポートされている MIME タイプ。

skills[]

object (AgentSkill)

スキルは、エージェントが実行できる能力の単位を表します。これはやや抽象的ですが、エージェントが成功する可能性が高い、より焦点を絞った一連のアクションを表しています。

supportsAuthenticatedExtendedCard

boolean

ユーザーが認証されたときにエージェントが拡張エージェントカードを提供するかどうか。つまり、.well-known のカードが v1.getCard のカードと異なるかどうか。

signatures[]

object (AgentCardSignature)

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

iconUrl

string

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

AgentInterface

エージェントの追加の輸送情報を定義します。

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

string

このインターフェースが見つかる URL。

transport

string

この URL をサポートしているトランスポート。これはオープン形式の文字列で、多くのトランスポート プロトコルに簡単に拡張できます。公式にサポートされているコアは JSONRPC、GRPC、HTTP+JSON です。

tenant

string

エージェントを呼び出すときにリクエストで設定されるテナント。試験運用版。1.0 リリースで変更される可能性があります。

AgentProvider

エージェントのサービス プロバイダに関する情報を表します。

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

string

プロバイダの参照 URL。例: "https://ai.google.dev"

organization

string

プロバイダの組織名。例: 「Google」

SecurityScheme

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)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

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

string

このセキュリティ スキームの説明。

scheme

string

RFC7235 で定義されている Authorization ヘッダーで使用される HTTP 認証スキームの名前。使用される値は、IANA 認証スキーム レジストリに登録されるべきです。RFC7235 で定義されているように、値では大文字と小文字が区別されません。

bearerFormat

string

ベアラートークンの形式を識別するためのクライアントへのヒント。通常、ベアラートークンは認可サーバーによって生成されるため、この情報は主にドキュメント作成を目的としています。

OAuth2SecurityScheme

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

string

このセキュリティ スキームの説明。

flows

object (OAuthFlows)

サポートされているフロータイプの構成情報を含むオブジェクト

oauth2MetadataUrl

string

oauth2 認証サーバー メタデータ RFC8414 の URL。TLS が必要です。

OAuthFlows

JSON 表現
{

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

共用体フィールド flow

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

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

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

string

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

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" }

ClientCredentialsOAuthFlow

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" }

ImplicitOAuthFlow

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

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" }

OpenIdConnectSecurityScheme

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

string

このセキュリティ スキームの説明。

openIdConnectUrl

string

[[OpenID-Connect-Discovery]] プロバイダ メタデータを検出するための既知の URL。

MutualTlsSecurityScheme

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

string

このセキュリティ スキームの説明。

セキュリティ

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

AgentSkill は、エージェントが実行できるアクション/ソリューションの単位を表します。これは、エージェントに提供を依頼できる信頼性の高いソリューションの一種と考えることができます。エージェントは特定のスキルをいつどのように使用するかを自律的に選択できますが、クライアントは、スキルが定義されていれば、そのアクション単位を確実に実行できると確信する必要があります。

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

string

このエージェント内のスキルの固有識別子。

name

string

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

description

string

スキルに関する詳細と動作の説明(人間または LLM が読める形式)。

tags[]

string

分類と利用を強化するためのスキルのタグのセット。例: ["cooking", "customer support", "billing"]

examples[]

string

このスキルが対応するように設計されている一連のサンプルクエリ。これらの例は、特定の目標を達成するためにエージェントにリクエストを作成する方法を理解するのに役立ちます。例: ["パンのレシピが必要です"]

inputModes[]

string

サポートされている入力モダリティ。

outputModes[]

string

生成される可能性のある出力モダリティ

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED エージェントがこのスキルを活用するために必要なセキュリティ スキーマ。AgentCard.security 全体と同様に、このリストはセキュリティ要件オブジェクトの論理 OR を表します。各オブジェクトは、一緒に使用する必要があるセキュリティ スキーマのセットです(論理 AND)。protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

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 ヘッダー値。