AgentCard

Ein selbstbeschreibendes Manifest für einen Agent. Sie enthält wichtige Metadaten wie die Identität, Fähigkeiten, Kompetenzen, unterstützten Kommunikationsmethoden und Sicherheitsanforderungen des Agenten. Nächste ID: 20

JSON-Darstellung
{
  "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
}
Felder
name

string

Erforderlich. Ein menschenlesbarer Name für den KI-Agenten. Beispiel: „Rezept-Agent“

description

string

Erforderlich. Eine menschenlesbare Beschreibung des KI-Agenten, die Nutzern und anderen KI-Agenten hilft, seinen Zweck zu verstehen. Beispiel: „Agent, der Nutzern bei Rezepten und beim Kochen hilft.“

supportedInterfaces[]

object (AgentInterface)

Erforderlich. Geordnete Liste der unterstützten Schnittstellen. Der erste Eintrag wird bevorzugt.

provider

object (AgentProvider)

Der Dienstanbieter des Agenten.

version

string

Erforderlich. Die Version des Agents. Beispiel: „1.0.0“

capabilities

object (AgentCapabilities)

Erforderlich. A2A-Funktionsgruppe, die vom Agent unterstützt wird.

securitySchemes

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

Die Details des Sicherheitsschemas, die für die Authentifizierung bei diesem Agent verwendet werden.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

securityRequirements[]

object (SecurityRequirement)

Sicherheitsanforderungen für die Kontaktaufnahme mit dem Kundenservicemitarbeiter.

defaultInputModes[]

string

Erforderlich. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Die Gruppe von Interaktionsmodi, die der Agent für alle Skills unterstützt. Dies kann pro Skill überschrieben werden. Als Medientypen definiert.

defaultOutputModes[]

string

Erforderlich. Die Medientypen, die als Ausgaben dieses Agents unterstützt werden.

skills[]

object (AgentSkill)

Erforderlich. Fähigkeiten stellen die Fähigkeiten eines Agenten dar. Es ist im Wesentlichen ein deskriptives Konzept, das jedoch eine fokussiertere Reihe von Verhaltensweisen darstellt, bei denen der Agent wahrscheinlich erfolgreich sein wird.

signatures[]

object (AgentCardSignature)

JSON-Websignaturen, die für diese AgentCard berechnet wurden.

documentationUrl

string

Eine URL mit zusätzlicher Dokumentation zum Agent.

iconUrl

string

Optional. Eine URL zu einem Symbol für den Agenten.

AgentInterface

Deklariert eine Kombination aus Ziel-URL, Transport und Protokollversion für die Interaktion mit dem Agent. So können Agenten dieselbe Funktionalität über mehrere Protokollbindungsmechanismen hinweg bereitstellen.

JSON-Darstellung
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
Felder
url

string

Erforderlich. Die URL, unter der diese Schnittstelle verfügbar ist. Muss eine gültige absolute HTTPS-URL in der Produktion sein. Beispiel: „https://api.beispiel.de/a2a/v1“, „https://grpc.beispiel.de/a2a“

protocolBinding

string

Erforderlich. Die an dieser URL unterstützte Protokollbindung. Dies ist ein offener Formularstring, der sich leicht für andere Protokollbindungen erweitern lässt. Die offiziell unterstützten Kern-IDs sind JSONRPC, GRPC und HTTP+JSON.

tenant

string

Optional. Ein opaker String, der zum Weiterleiten von Anfragen an einen bestimmten Agenten oder Mandanten verwendet wird, wenn mehrere Agenten über einen einzelnen A2A-Endpunkt bereitgestellt werden. Wenn dieser Wert festgelegt ist, MÜSSEN Clients ihn im Feld tenant aller Anfragenachrichten angeben, die an diese Schnittstelle gesendet werden. Der Server ist für die Interpretation des Werts und das entsprechende Weiterleiten von Anfragen verantwortlich. Das Format oder die Semantik des Werts werden im Protokoll nicht definiert.

protocolVersion

string

Erforderlich. Die Version des A2A Protocol, das von dieser Schnittstelle bereitgestellt wird. Verwenden Sie die neueste unterstützte Nebenversion pro Hauptversion. Beispiele: „0.3“, „1.0“

AgentProvider

Stellt den Dienstanbieter eines Agenten dar.

JSON-Darstellung
{
  "url": string,
  "organization": string
}
Felder
url

string

Erforderlich. Eine URL zur Website des Agent-Anbieters oder zur relevanten Dokumentation. Beispiel: „https://ai.google.dev“

organization

string

Erforderlich. Der Name der Organisation des Agent-Anbieters. Beispiel: „Google“

AgentCapabilities

Definiert optionale Funktionen, die von einem Agent unterstützt werden.

JSON-Darstellung
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
Felder
extensions[]

object (AgentExtension)

Eine Liste der vom Agent unterstützten Protokollerweiterungen.

streaming

boolean

Gibt an, ob der Agent Streaming-Antworten unterstützt.

pushNotifications

boolean

Gibt an, ob der Agent das Senden von Push-Benachrichtigungen für Updates zu asynchronen Aufgaben unterstützt.

extendedAgentCard

boolean

Gibt an, ob der Agent die Bereitstellung einer erweiterten Agentenkarte unterstützt, wenn er authentifiziert ist.

AgentExtension

Eine Deklaration einer Protokollerweiterung, die von einem Agent unterstützt wird.

JSON-Darstellung
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
Felder
uri

string

Der eindeutige URI, der die Erweiterung identifiziert.

description

string

Eine für Menschen lesbare Beschreibung, wie dieser Agent die Erweiterung verwendet.

required

boolean

Bei „true“ muss der Client die Anforderungen der Erweiterung verstehen und einhalten.

params

object (Struct format)

Optional. Erweiterungsspezifische Konfigurationsparameter.

SecurityScheme

Definiert ein Sicherheitsschema, das zum Sichern der Endpunkte eines Agents verwendet werden kann. Dies ist ein diskriminierter Union-Typ, der auf dem OpenAPI 3.2-Sicherheitsschemaobjekt basiert. Weitere Informationen finden Sie unter https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object.

JSON-Darstellung
{

  // 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.
}
Felder

Union-Feld scheme.

Für scheme ist nur einer der folgenden Werte zulässig:

apiKeySecurityScheme

object (APIKeySecurityScheme)

Authentifizierung mit API-Schlüssel

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

HTTP-Authentifizierung (Basic, Bearer usw.).

oauth2SecurityScheme

object (OAuth2SecurityScheme)

Authentifizierung mit OAuth 2.0

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

OpenID Connect-Authentifizierung

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

Gegenseitige TLS-Authentifizierung.

APIKeySecurityScheme

Definiert ein Sicherheitsschema mit einem API-Schlüssel.

JSON-Darstellung
{
  "description": string,
  "location": string,
  "name": string
}
Felder
description

string

Eine optionale Beschreibung für das Sicherheitskonzept.

location

string

Erforderlich. Der Speicherort des API-Schlüssels. Gültige Werte sind „query“, „header“ oder „cookie“.

name

string

Erforderlich. Der Name des zu verwendenden Header-, Abfrage- oder Cookie-Parameters.

HTTPAuthSecurityScheme

Definiert ein Sicherheitsschema mit HTTP-Authentifizierung.

JSON-Darstellung
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Felder
description

string

Eine optionale Beschreibung für das Sicherheitskonzept.

scheme

string

Erforderlich. Der Name des HTTP-Authentifizierungsschemas, das im Authorization-Header verwendet werden soll, wie in RFC7235 definiert (z.B. „Bearer“). Dieser Wert sollte in der IANA Authentication Scheme Registry registriert sein.

bearerFormat

string

Ein Hinweis für den Client, der angibt, wie das Bearer-Token formatiert ist (z.B. „JWT“). Hauptsächlich zu Dokumentationszwecken.

OAuth2SecurityScheme

Definiert ein Sicherheitsschema mit OAuth 2.0.

JSON-Darstellung
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Felder
description

string

Eine optionale Beschreibung für das Sicherheitskonzept.

flows

object (OAuthFlows)

Erforderlich. Ein Objekt mit Konfigurationsinformationen für die unterstützten OAuth 2.0-Flows.

oauth2MetadataUrl

string

URL zu den OAuth2-Autorisierungsserver-Metadaten RFC 8414. TLS ist erforderlich.

OAuthFlows

Definiert die Konfiguration für die unterstützten OAuth 2.0-Abläufe.

JSON-Darstellung
{

  // 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.
}
Felder

Union-Feld flow.

Für flow ist nur einer der folgenden Werte zulässig:

authorizationCode

object (AuthorizationCodeOAuthFlow)

Konfiguration für den OAuth-Autorisierungscode-Ablauf.

clientCredentials

object (ClientCredentialsOAuthFlow)

Konfiguration für den OAuth-Ablauf der Clientanmeldedaten.

implicit
(deprecated)

object (ImplicitOAuthFlow)

Verworfen: Verwenden Sie stattdessen Autorisierungscode + PKCE.

password
(deprecated)

object (PasswordOAuthFlow)

Veraltet: Verwenden Sie „Autorisierungscode + PKCE“ oder „Gerätecode“.

deviceCode

object (DeviceCodeOAuthFlow)

Konfiguration für den OAuth-Gerätecodefluss.

AuthorizationCodeOAuthFlow

Definiert Konfigurationsdetails für den OAuth 2.0-Vorgang mit Autorisierungscode.

JSON-Darstellung
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  },
  "pkceRequired": boolean
}
Felder
authorizationUrl

string

Erforderlich. Die für diesen Ablauf zu verwendende Autorisierungs-URL.

tokenUrl

string

Erforderlich. Die Token-URL, die für diesen Ablauf verwendet werden soll.

refreshUrl

string

Die URL, die zum Abrufen von Aktualisierungstokens verwendet werden soll.

scopes

map (key: string, value: string)

Erforderlich. Die verfügbaren Bereiche für das OAuth2-Sicherheitsschema.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

pkceRequired

boolean

Gibt an, ob PKCE (RFC 7636) für diesen Ablauf erforderlich ist. PKCE sollte immer für öffentliche Clients verwendet werden und wird für alle Clients empfohlen.

ClientCredentialsOAuthFlow

Definiert Konfigurationsdetails für den OAuth 2.0-Vorgang für Clientanmeldedaten.

JSON-Darstellung
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Felder
tokenUrl

string

Erforderlich. Die Token-URL, die für diesen Ablauf verwendet werden soll.

refreshUrl

string

Die URL, die zum Abrufen von Aktualisierungstokens verwendet werden soll.

scopes

map (key: string, value: string)

Erforderlich. Die verfügbaren Bereiche für das OAuth2-Sicherheitsschema.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Verworfen: Verwenden Sie stattdessen Autorisierungscode + PKCE.

JSON-Darstellung
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Felder
authorizationUrl

string

Die für diesen Ablauf zu verwendende Autorisierungs-URL. Dies MUSS in Form einer URL erfolgen. Der OAuth2-Standard erfordert die Verwendung von TLS.

refreshUrl

string

Die URL, die zum Abrufen von Aktualisierungstokens verwendet werden soll. Dies MUSS in Form einer URL erfolgen. Der OAuth2-Standard erfordert die Verwendung von TLS.

scopes

map (key: string, value: string)

Die verfügbaren Bereiche für das OAuth2-Sicherheitsschema. Eine Zuordnung zwischen dem Bereichsnamen und einer kurzen Beschreibung. Die Karte KANN leer sein.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Veraltet: Verwenden Sie „Autorisierungscode + PKCE“ oder „Gerätecode“.

JSON-Darstellung
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Felder
tokenUrl

string

Die Token-URL, die für diesen Ablauf verwendet werden soll. Dies MUSS in Form einer URL erfolgen. Der OAuth2-Standard erfordert die Verwendung von TLS.

refreshUrl

string

Die URL, die zum Abrufen von Aktualisierungstokens verwendet werden soll. Dies MUSS in Form einer URL erfolgen. Der OAuth2-Standard erfordert die Verwendung von TLS.

scopes

map (key: string, value: string)

Die verfügbaren Bereiche für das OAuth2-Sicherheitsschema. Eine Zuordnung zwischen dem Bereichsnamen und einer kurzen Beschreibung. Die Karte KANN leer sein.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

DeviceCodeOAuthFlow

Definiert Konfigurationsdetails für den OAuth 2.0-Gerätecodefluss (RFC 8628). Dieser Ablauf ist für Geräte mit eingeschränkter Eingabe wie IoT-Geräte und CLI-Tools konzipiert, bei denen sich der Nutzer auf einem separaten Gerät authentifiziert.

JSON-Darstellung
{
  "deviceAuthorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Felder
deviceAuthorizationUrl

string

Erforderlich. Die URL des Geräteautorisierungsendpunkts.

tokenUrl

string

Erforderlich. Die Token-URL, die für diesen Ablauf verwendet werden soll.

refreshUrl

string

Die URL, die zum Abrufen von Aktualisierungstokens verwendet werden soll.

scopes

map (key: string, value: string)

Erforderlich. Die verfügbaren Bereiche für das OAuth2-Sicherheitsschema.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Definiert ein Sicherheitsschema mit OpenID Connect.

JSON-Darstellung
{
  "description": string,
  "openIdConnectUrl": string
}
Felder
description

string

Eine optionale Beschreibung für das Sicherheitskonzept.

openIdConnectUrl

string

Erforderlich. Die OpenID Connect-Discovery-URL für die Metadaten des OIDC-Anbieters.

MutualTlsSecurityScheme

Definiert ein Sicherheitsschema mit mTLS-Authentifizierung.

JSON-Darstellung
{
  "description": string
}
Felder
description

string

Eine optionale Beschreibung für das Sicherheitskonzept.

SecurityRequirement

Definiert die Sicherheitsanforderungen für einen Agent.

JSON-Darstellung
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Felder
schemes

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

Eine Zuordnung von Sicherheitsschemas zu den erforderlichen Bereichen.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Eine Liste von Strings.

JSON-Darstellung
{
  "list": [
    string
  ]
}
Felder
list[]

string

Die einzelnen Stringwerte.

AgentSkill

Stellt eine bestimmte Funktion dar, die ein Agent ausführen kann.

JSON-Darstellung
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ]
}
Felder
id

string

Erforderlich. Eine eindeutige Kennung für die Funktion des Agents.

name

string

Erforderlich. Ein für Menschen lesbarer Name für den Skill.

description

string

Erforderlich. Eine detaillierte Beschreibung des Skills.

tags[]

string

Erforderlich. Eine Reihe von Keywords, die die Fähigkeiten des Skills beschreiben.

examples[]

string

Beispiel-Prompts oder ‑Szenarien, die diese Skill verarbeiten kann.

inputModes[]

string

Die Menge der unterstützten Eingabemedientypen für diesen Skill, die die Standardeinstellungen des Agenten überschreiben.

outputModes[]

string

Die Menge der unterstützten Ausgabemedientypen für diesen Skill, die die Standardeinstellungen des Agents überschreiben.

securityRequirements[]

object (SecurityRequirement)

Für diesen Skill erforderliche Sicherheitskonzepte.

AgentCardSignature

AgentCardSignature stellt eine JWS-Signatur einer AgentCard dar. Dies entspricht dem JSON-Format einer RFC 7515 JSON Web Signature (JWS).

JSON-Darstellung
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Felder
protected

string

Erforderlich. Erforderlich. Der geschützte JWS-Header für die Signatur. Dies ist immer ein base64url-codiertes JSON-Objekt.

signature

string

Erforderlich. Die berechnete Signatur, base64url-codiert.

header

object (Struct format)

Die ungeschützten JWS-Headerwerte.