Package a2a.v1

Index

A2AService

A2AService definiert die gRPC-Version des A2A-Protokolls. Das Format unterscheidet sich leicht von der JSONRPC-Version, um bei Bedarf besser AIP-127 zu entsprechen. Die Nomen sind „AgentCard“, „Message“, „Task“ und „TaskPushNotificationConfig“.

  • Nachrichten sind keine Standardressource. Daher gibt es keine Schnittstelle für „get“, „delete“, „update“ und „list“, sondern nur benutzerdefinierte Methoden für „send“ und „stream“.
  • Aufgaben haben eine „get“-Schnittstelle und benutzerdefinierte Methoden zum Abbrechen und Abonnieren.
  • TaskPushNotificationConfig ist eine Ressource, deren übergeordnetes Element eine Aufgabe ist. Sie haben die Methoden „get“, „list“ und „create“.
  • AgentCard ist eine statische Ressource mit nur einer „get“-Methode.
CancelTask

rpc CancelTask(CancelTaskRequest) returns (Task)

Aufgabe über den Agent abbrechen Wenn die Unterstützung erfolgt ist, sind keine weiteren Aufgabenaktualisierungen zu erwarten.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

CreateTaskPushNotificationConfig

rpc CreateTaskPushNotificationConfig(CreateTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Legen Sie eine Push-Benachrichtigungskonfiguration für eine Aufgabe fest.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

DeleteTaskPushNotificationConfig

rpc DeleteTaskPushNotificationConfig(DeleteTaskPushNotificationConfigRequest) returns (Empty)

Push-Benachrichtigungskonfiguration für eine Aufgabe löschen

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

GetAgentCard

rpc GetAgentCard(GetAgentCardRequest) returns (AgentCard)

GetAgentCard gibt die Agentenkarte für den Agent zurück.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

GetTask

rpc GetTask(GetTaskRequest) returns (Task)

Aktuellen Status einer Aufgabe vom Kundenservicemitarbeiter abrufen

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

GetTaskPushNotificationConfig

rpc GetTaskPushNotificationConfig(GetTaskPushNotificationConfigRequest) returns (TaskPushNotificationConfig)

Push-Benachrichtigungskonfiguration für eine Aufgabe abrufen.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

ListTaskPushNotificationConfig

rpc ListTaskPushNotificationConfig(ListTaskPushNotificationConfigRequest) returns (ListTaskPushNotificationConfigResponse)

Rufen Sie eine Liste der für eine Aufgabe konfigurierten Push-Benachrichtigungen ab.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

SendMessage

rpc SendMessage(SendMessageRequest) returns (SendMessageResponse)

Senden Sie eine Nachricht an den Kundenservicemitarbeiter. Dies ist ein blockierender Aufruf, der die Aufgabe zurückgibt, sobald sie abgeschlossen ist, oder einen LRO, falls angefordert.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

SendStreamingMessage

rpc SendStreamingMessage(SendMessageRequest) returns (StreamResponse)

„SendStreamingMessage“ ist ein Streamingaufruf, der einen Stream von Ereignissen zur Aufgabenaktualisierung zurückgibt, bis sich die Aufgabe in einem unterbrochenen oder endgültigen Status befindet.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

TaskSubscription

rpc TaskSubscription(TaskSubscriptionRequest) returns (StreamResponse)

TaskSubscription ist ein Streamingaufruf, der einen Stream von Ereignissen zur Aufgabenaktualisierung zurückgibt. Dadurch wird der Stream an eine bestehende Aufgabe angehängt, die gerade bearbeitet wird. Wenn die Aufgabe abgeschlossen ist, gibt der Stream die abgeschlossene Aufgabe zurück (wie GetTask) und wird geschlossen.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

  • https://www.googleapis.com/auth/cloud-platform

Weitere Informationen finden Sie unter Authentication Overview.

APIKeySecurityScheme

Felder
description

string

Beschreibung dieses Sicherheitsschemas.

location

string

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

name

string

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

AgentCapabilities

Definiert die vom KI-Agenten unterstützten A2A-Funktionen.

Felder
streaming

bool

Ob der Kundenservicemitarbeiter Streaming-Antworten unterstützt

push_notifications

bool

Wenn der Kundenservicemitarbeiter Push-Benachrichtigungen an den Webhook des Kunden senden kann

extensions[]

AgentExtension

Von diesem Agent unterstützte Erweiterungen.

AgentCard

Die AgentCard enthält wichtige Informationen: – Allgemeine Details (Version, Name, Beschreibung, Verwendungszwecke) – Skills: eine Reihe von Aktionen/Lösungen, die der Agent ausführen kann – Standardmodalitäten/Inhaltstypen, die vom Agenten unterstützt werden. – Authentifizierungsanforderungen. Nächste ID: 19

Felder
protocol_version

string

Die Version des A2A-Protokolls, die dieser Agent unterstützt.

name

string

Ein für Menschen lesbarer Name für den Agent. Beispiel: „Recipe Agent“

description

string

Eine Beschreibung des Handlungsbereichs/Lösungsraums des KI-Agenten. Beispiel: „Agent, der Nutzern bei Rezepten und beim Kochen hilft.“

url

string

Eine URL zu der Adresse, unter der der Agent gehostet wird. Dies ist der vom Agent deklarierte bevorzugte Endpunkt.

preferred_transport

string

Der Transport des bevorzugten Endpunkts. Falls leer, ist der Standardwert JSONRPC.

additional_interfaces[]

AgentInterface

Ankündigung zusätzlicher unterstützter Transportmittel Der Client kann einen der unterstützten Transporte verwenden.

provider

AgentProvider

Der Dienstanbieter des Agenten.

version

string

Die Version des Agents. Beispiel: „1.0.0“

documentation_url

string

Eine URL, über die zusätzliche Dokumentation zum Agent bereitgestellt wird.

capabilities

AgentCapabilities

Vom Agent unterstützte A2A-Funktionen.

security_schemes

map<string, SecurityScheme>

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

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Sicherheitsanforderungen für die Kontaktaufnahme mit dem Kundenservicemitarbeiter. Diese Liste kann als ODER von UNDs betrachtet werden. Jedes Objekt in der Liste beschreibt eine mögliche Gruppe von Sicherheitsanforderungen, die in einer Anfrage vorhanden sein müssen. So kann beispielsweise festgelegt werden, dass Aufrufer entweder OAuth ODER einen API-Schlüssel UND mTLS verwenden müssen. Beispiel: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

default_input_modes[]

string

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

default_output_modes[]

string

Die MIME-Typen, die als Ausgaben dieses Agents unterstützt werden.

skills[]

AgentSkill

Kompetenzen stellen eine Einheit von Fähigkeiten dar, die ein Kundenservicemitarbeiter ausführen kann. Das ist vielleicht etwas abstrakt, aber es handelt sich um eine gezieltere Reihe von Aktionen, bei denen der Agent mit hoher Wahrscheinlichkeit erfolgreich sein wird.

supports_authenticated_extended_card

bool

Gibt an, ob der Agent eine erweiterte Agentenkarte unterstützt, wenn der Nutzer authentifiziert ist. Das heißt, ob sich die Karte aus „.well-known“ von der Karte aus „GetAgentCard“ unterscheidet.

signatures[]

AgentCardSignature

JSON Web Signatures, die für diese AgentCard berechnet wurden.

icon_url

string

Eine optionale URL zu einem Symbol für den Agent.

AgentCardSignature

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

Felder
protected

string

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

signature

string

Erforderlich. Die berechnete Signatur, base64url-codiert. Erforderlich.

header

Struct

Die ungeschützten JWS-Headerwerte.

AgentExtension

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

Felder
uri

string

Der URI der Erweiterung. Beispiel: „https://developers.google.com/identity/protocols/oauth2“

description

string

Eine Beschreibung, wie dieser Agent diese Erweiterung verwendet. Beispiel: „Google OAuth 2.0-Authentifizierung“

required

bool

Gibt an, ob der Client bestimmte Anforderungen der Erweiterung erfüllen muss. Beispiel: false

params

Struct

Optionale Konfiguration für die Erweiterung.

AgentInterface

Definiert zusätzliche Transportinformationen für den Agenten.

Felder
url

string

Die URL, unter der diese Benutzeroberfläche zu finden ist.

transport

string

Der von dieser URL unterstützte Transport. Dies ist ein offener Formularstring, der problemlos für viele Transportprotokolle erweitert werden kann. Die offiziell unterstützten Kernprotokolle sind JSONRPC, GRPC und HTTP+JSON.

tenant

string

Der Mandant, der in der Anfrage festgelegt werden soll, wenn der Agent aufgerufen wird. Experimentell, kann sich für die Version 1.0 noch ändern.

AgentProvider

Stellt Informationen zum Dienstanbieter eines Agenten dar.

Felder
url

string

Beispiel für die Referenz-URL des Anbieters: „https://ai.google.dev“

organization

string

Der Name der Organisation des Anbieters, z. B. „Google“

AgentSkill

„AgentSkill“ stellt eine Einheit für Aktionen/Lösungen dar, die der Agent ausführen kann. Das kann als eine Art hochzuverlässige Lösung betrachtet werden, die ein Agent bereitstellen soll. KI-Agenten können selbst entscheiden, wie und wann sie bestimmte Skills einsetzen. Clients sollten jedoch darauf vertrauen können, dass die entsprechende Aktion zuverlässig ausgeführt wird, wenn der Skill definiert ist.

Felder
id

string

Eindeutige Kennung des Skills innerhalb dieses Agents.

name

string

Ein für Menschen lesbarer Name für die Skill.

description

string

Eine für Menschen (oder LLMs) lesbare Beschreibung der Skill-Details und des Skill-Verhaltens.

tags[]

string

Eine Reihe von Tags für den Skill, um die Kategorisierung/Nutzung zu verbessern. Beispiel: [„Kochen“, „Kundensupport“, „Abrechnung“]

examples[]

string

Eine Reihe von Beispielanfragen, die dieser Skill beantworten soll. Diese Beispiele sollen dem Anrufer helfen, Anfragen an den Agent zu formulieren, um bestimmte Ziele zu erreichen. Beispiel: ["Ich brauche ein Rezept für Brot."]

input_modes[]

string

Mögliche unterstützte Eingabemodalitäten.

output_modes[]

string

Mögliche Ausgabemodalitäten

security[]

Security

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Sicherheitskonzepte, die für den Agenten erforderlich sind, um diese Funktion zu nutzen. Wie bei „AgentCard.security“ insgesamt stellt diese Liste eine logische ODER-Verknüpfung von Sicherheitsanforderungsobjekten dar. Jedes Objekt ist eine Gruppe von Sicherheitsschemas, die zusammen verwendet werden müssen (logisches UND). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

Artefakt

Artefakte sind der Container für Ergebnisse abgeschlossener Aufgaben. Sie ähneln Nachrichten, sind aber das Ergebnis einer Aufgabe und nicht für die direkte Kommunikation gedacht.

Felder
artifact_id

string

Eindeutige Kennung (z.B. UUID) für das Artefakt. Sie muss mindestens innerhalb einer Aufgabe eindeutig sein.

name

string

Ein für Menschen lesbarer Name für das Artefakt.

description

string

Eine optionale, menschenlesbare Beschreibung des Artefakts.

parts[]

Part

Der Inhalt des Artefakts.

metadata

Struct

Optionale Metadaten, die im Artefakt enthalten sind.

extensions[]

string

Die URIs von Erweiterungen, die in diesem Artefakt vorhanden sind oder zu diesem Artefakt beigetragen haben.

AuthenticationInfo

Definiert Authentifizierungsdetails, die für Push-Benachrichtigungen verwendet werden.

Felder
schemes[]

string

Unterstützte Authentifizierungsschemas, z.B. „Basic“ oder „Bearer“

credentials

string

Optionale Anmeldedaten

AuthorizationCodeOAuthFlow

Felder
authorization_url

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.

token_url

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.

refresh_url

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<string, string>

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

CancelTaskRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

name

string

Der Ressourcenname der abzubrechenden Aufgabe. Format: tasks/{task_id}

ClientCredentialsOAuthFlow

Felder
token_url

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.

refresh_url

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<string, string>

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

CreateTaskPushNotificationConfigRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

parent

string

Erforderlich. Die übergeordnete Aufgabenressource für diese Konfiguration. Format: tasks/{task_id}

config_id

string

Erforderlich. Die ID für die neue Konfiguration.

config

TaskPushNotificationConfig

Erforderlich. Die zu erstellende Konfiguration.

DataPart

DataPart stellt ein strukturiertes Blob dar. In den meisten Fällen handelt es sich dabei um eine JSON-Nutzlast.

Felder
data

Struct

DeleteTaskPushNotificationConfigRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

name

string

Der Ressourcenname der zu löschenden Konfiguration. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}

FilePart

„FilePart“ stellt die verschiedenen Möglichkeiten dar, Dateien bereitzustellen. Bei kleinen Dateien können die Bytes direkt über „file_with_bytes“ bereitgestellt werden. Wenn die Datei groß ist, sollte der Agent den Inhalt direkt aus der Quelle „file_with_uri“ lesen.

Felder
mime_type

string

name

string

Union-Feld file.

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

file_with_uri

string

file_with_bytes

bytes

GetAgentCardRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

GetTaskPushNotificationConfigRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

name

string

Der Ressourcenname der abzurufenden Konfiguration. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}

GetTaskRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

name

string

Erforderlich. Der Ressourcenname der Aufgabe. Format: tasks/{task_id}

history_length

int32

Die Anzahl der letzten Nachrichten aus dem Aufgabenverlauf, die abgerufen werden sollen.

HTTPAuthSecurityScheme

Felder
description

string

Beschreibung dieses Sicherheitsschemas.

scheme

string

Der Name des HTTP-Authentifizierungsschemas, das im Autorisierungsheader verwendet werden soll, wie in RFC7235 definiert. Die verwendeten Werte SOLLTEN in der IANA Authentication Scheme Registry registriert sein. Bei dem Wert wird die Groß- und Kleinschreibung nicht berücksichtigt, wie in RFC7235 definiert.

bearer_format

string

Ein Hinweis für den Client, der angibt, wie das Inhabertoken formatiert ist. Bearer-Tokens werden in der Regel von einem Autorisierungsserver generiert. Diese Informationen dienen also in erster Linie Dokumentationszwecken.

ImplicitOAuthFlow

Felder
authorization_url

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.

refresh_url

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<string, string>

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

ListTaskPushNotificationConfigRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

parent

string

Die übergeordnete Aufgabenressource. Format: tasks/{task_id}

page_size

int32

Für AIP-158 sind diese Felder vorhanden. Wird normalerweise nicht verwendet/benötigt. Die maximale Anzahl der zurückzugebenden Konfigurationen. Wenn nichts angegeben ist, werden alle Konfigurationen zurückgegeben.

page_token

string

Ein Seitentoken, das von einem vorherigen ListTaskPushNotificationConfigRequest-Aufruf empfangen wurde. Geben Sie dieses an, um die nachfolgende Seite abzurufen. Beim Paginieren müssen alle anderen für ListTaskPushNotificationConfigRequest bereitgestellten Parameter mit dem Aufruf übereinstimmen, der das Seitentoken bereitgestellt hat.

ListTaskPushNotificationConfigResponse

Felder
configs[]

TaskPushNotificationConfig

Die Liste der Push-Benachrichtigungskonfigurationen.

next_page_token

string

Ein Token, das als page_token gesendet werden kann, um die nächste Seite abzurufen. Wenn dieses Feld weggelassen wird, gibt es keine nachfolgenden Seiten.

Nachricht

Eine Nachricht ist eine Kommunikationseinheit zwischen Client und Server. Sie ist mit einem Kontext und optional mit einer Aufgabe verknüpft. Da der Server für die Kontextdefinition verantwortlich ist, muss er in seinen Nachrichten immer eine „context_id“ angeben. Der Client kann optional die context_id angeben, wenn er den Kontext kennt, dem die Nachricht zugeordnet werden soll. Ähnlich verhält es sich mit task_id. Hier entscheidet der Server, ob eine Aufgabe erstellt und ob die task_id eingefügt werden soll.

Felder
message_id

string

Die eindeutige Kennung (z.B. UUID) der Nachricht. Dies ist erforderlich und wird vom Ersteller der Nachricht erstellt.

context_id

string

Die Kontext-ID der Nachricht. Dies ist optional. Wenn der Kontext festgelegt ist, wird die Nachricht dem angegebenen Kontext zugeordnet.

task_id

string

Die Aufgaben-ID der Nachricht. Dies ist optional. Wenn Sie es festlegen, wird die Nachricht der angegebenen Aufgabe zugeordnet.

role

Role

Eine Rolle für die Nachricht.

content[]

Part

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Content ist der Container des Nachrichteninhalts.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Optionale Metadaten, die zusammen mit der Nachricht angegeben werden sollen.

extensions[]

string

Die URIs von Erweiterungen, die in dieser Nachricht vorhanden sind oder zu dieser Nachricht beigetragen haben.

MutualTlsSecurityScheme

Felder
description

string

Beschreibung dieses Sicherheitsschemas.

OAuth2SecurityScheme

Felder
description

string

Beschreibung dieses Sicherheitsschemas.

flows

OAuthFlows

Ein Objekt mit Konfigurationsinformationen für die unterstützten Flow-Typen

oauth2_metadata_url

string

URL zu den OAuth2-Autorisierungsserver-Metadaten RFC8414. TLS ist erforderlich.

OAuthFlows

Felder

Union-Feld flow.

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

authorization_code

AuthorizationCodeOAuthFlow

client_credentials

ClientCredentialsOAuthFlow

implicit

ImplicitOAuthFlow

password

PasswordOAuthFlow

OpenIdConnectSecurityScheme

Felder
description

string

Beschreibung dieses Sicherheitsschemas.

open_id_connect_url

string

Bekannte URL zum Ermitteln der [[OpenID-Connect-Discovery]]-Anbietermetadaten.

Teil

„Part“ steht für einen Container für einen Abschnitt von Kommunikationsinhalten. Teile können rein textbasiert sein, eine Art Datei (Bild, Video usw.) oder ein Blob mit strukturierten Daten (z. B. JSON).

Felder
metadata

Struct

Optionale Metadaten, die mit diesem Teil verknüpft sind.

Union-Feld part.

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

text

string

file

FilePart

data

DataPart

PasswordOAuthFlow

Felder
token_url

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.

refresh_url

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<string, string>

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

PushNotificationConfig

Konfiguration zum Einrichten von Push-Benachrichtigungen für Aufgaben-Updates.

Felder
id

string

Eine eindeutige Kennung (z.B. UUID) für diese Push-Benachrichtigung.

url

string

URL, an die die Benachrichtigung gesendet werden soll

token

string

Token, das für diese Aufgabe/Sitzung eindeutig ist

authentication

AuthenticationInfo

Informationen zur Authentifizierung, die mit der Benachrichtigung gesendet werden

Rolle

Enums
ROLE_UNSPECIFIED
ROLE_USER Die USER-Rolle bezieht sich auf die Kommunikation vom Client zum Server.
ROLE_AGENT Die AGENT-Rolle bezieht sich auf die Kommunikation vom Server zum Client.

Sicherheit

Felder
schemes

map<string, StringList>

SecurityScheme

Felder

Union-Feld scheme.

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

api_key_security_scheme

APIKeySecurityScheme

http_auth_security_scheme

HTTPAuthSecurityScheme

oauth2_security_scheme

OAuth2SecurityScheme

open_id_connect_security_scheme

OpenIdConnectSecurityScheme

mtls_security_scheme

MutualTlsSecurityScheme

SendMessageConfiguration

Konfiguration einer Anfrage zum Senden von Nachrichten.

Felder
accepted_output_modes[]

string

Die Ausgabemodi, mit denen der Agent antworten soll.

push_notification

PushNotificationConfig

Eine Konfiguration eines Webhooks, mit dem Updates empfangen werden können

history_length

int32

Die maximale Anzahl von Nachrichten, die im Verlauf enthalten sein sollen. Bei 0 ist der Verlauf unbegrenzt.

blocking

bool

Bei „true“ wird die Meldung blockiert, bis die Aufgabe abgeschlossen ist. Wenn „false“ festgelegt ist, ist die Nachricht nicht blockierend und die Aufgabe wird sofort zurückgegeben. Es liegt in der Verantwortung des Anrufers, nach Aufgabenaktualisierungen zu suchen.

SendMessageRequest

////////// Anfragenachrichten ///////////

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

request

Message

Erforderlich. Die Nachricht, die an den Agenten gesendet werden soll.

configuration

SendMessageConfiguration

Konfiguration für die Sendeanfrage.

metadata

Struct

Optionale Metadaten für die Anfrage.

SendMessageResponse

////// Antwortnachrichten ///////////

Felder

Union-Feld payload.

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

task

Task

msg

Message

StreamResponse

Die Streamantwort für eine Nachricht. Der Stream sollte eine der folgenden Sequenzen sein: Wenn die Antwort eine Nachricht ist, sollte der Stream eine und nur eine Nachricht enthalten und dann geschlossen werden. Wenn die Antwort ein Aufgabenlebenszyklus ist, sollte die erste Antwort ein Task-Objekt sein, gefolgt von null oder mehr TaskStatusUpdateEvents und TaskArtifactUpdateEvents. Der Stream sollte abgeschlossen werden, wenn sich die Aufgabe in einem unterbrochenen oder endgültigen Zustand befindet. Ein Stream, der endet, bevor diese Bedingungen erfüllt sind,

Felder

Union-Feld payload.

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

task

Task

msg

Message

status_update

TaskStatusUpdateEvent

artifact_update

TaskArtifactUpdateEvent

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Felder
list[]

string

Aufgabe

Eine Aufgabe ist die zentrale Aktionseinheit für A2A. Sie hat einen aktuellen Status und wenn Ergebnisse für die Aufgabe erstellt werden, werden sie im Artefakt gespeichert. Wenn es mehrere Züge für eine Aufgabe gibt, werden diese im Verlauf gespeichert.

Felder
id

string

Eindeutige Kennung (z.B. UUID) für die Aufgabe, die vom Server für eine neue Aufgabe generiert wird.

context_id

string

Eindeutige Kennung (z.B. UUID) für die kontextbezogene Sammlung von Interaktionen (Aufgaben und Nachrichten). Wird vom A2A-Server erstellt.

status

TaskStatus

Der aktuelle Status einer Aufgabe, einschließlich Status und einer Nachricht.

artifacts[]

Artifact

Eine Reihe von Ausgabeartefakten für eine Aufgabe.

history[]

Message

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Der Verlauf der Interaktionen einer Aufgabe.

metadata

Struct

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Ein Schlüssel/Wert-Objekt zum Speichern benutzerdefinierter Metadaten zu einer Aufgabe.

TaskArtifactUpdateEvent

TaskArtifactUpdateEvent stellt ein Aufgabendelta dar, bei dem ein Artefakt generiert wurde.

Felder
task_id

string

Die ID der Aufgabe für dieses Artefakt

context_id

string

Die ID des Kontexts, zu dem diese Aufgabe gehört.

artifact

Artifact

Das Artefakt selbst

append

bool

Ob dies an eine zuvor erstellte Antwort angehängt werden soll

last_chunk

bool

Gibt an, ob dies der letzte Teil eines Artefakts ist.

metadata

Struct

Optionale Metadaten, die mit der Artefaktaktualisierung verknüpft sind.

TaskPushNotificationConfig

Felder
name

string

Der Ressourcenname der Konfiguration. Format: tasks/{task_id}/pushNotificationConfigs/{config_id}

push_notification_config

PushNotificationConfig

Die Details zur Konfiguration von Push-Benachrichtigungen.

TaskState

Die Anzahl der Status, in denen sich eine Aufgabe befinden kann.

Enums
TASK_STATE_UNSPECIFIED
TASK_STATE_SUBMITTED Stellt den Status dar, der bestätigt, dass eine Aufgabe erstellt wurde.
TASK_STATE_WORKING Stellt den Status dar, in dem eine Aufgabe aktiv verarbeitet wird.
TASK_STATE_COMPLETED Gibt den Status an, wenn eine Aufgabe abgeschlossen ist. Dies ist ein Endstatus.
TASK_STATE_FAILED Gibt den Status an, wenn eine Aufgabe abgeschlossen, aber fehlgeschlagen ist. Dies ist ein Endstatus.
TASK_STATE_CANCELLED Gibt den Status an, in dem eine Aufgabe abgebrochen wurde, bevor sie abgeschlossen war. Dies ist ein Terminalstatus.
TASK_STATE_INPUT_REQUIRED Gibt den Status an, für den Informationen zur Vervollständigung der Aufgabe erforderlich sind. Dies ist ein unterbrochener Zustand.
TASK_STATE_REJECTED Gibt den Status an, in dem der Agent entschieden hat, die Aufgabe nicht auszuführen. Dies kann bei der Erstellung der Aufgabe oder später erfolgen, wenn ein KI-Agent feststellt, dass er nicht fortfahren kann oder will. Dies ist ein Terminalstatus.
TASK_STATE_AUTH_REQUIRED Gibt an, dass eine Authentifizierung durch den Upstream-Client erforderlich ist. Die Authentifizierung erfolgt voraussichtlich Out-of-Band. Dies ist also kein unterbrochener oder endgültiger Status.

TaskStatus

Ein Container für den Status einer Aufgabe

Felder
state

TaskState

Der aktuelle Status dieser Aufgabe

update

Message

Eine Nachricht, die mit dem Status verknüpft ist.

timestamp

Timestamp

Zeitstempel, der angibt, wann der Status aufgezeichnet wurde. Beispiel: „2023-10-27T10:00:00Z“

TaskStatusUpdateEvent

„TaskStatusUpdateEvent“ ist ein Delta-Ereignis für eine Aufgabe, das angibt, dass sich eine Aufgabe geändert hat.

Felder
task_id

string

Die ID der geänderten Aufgabe

context_id

string

Die ID des Kontexts, zu dem die Aufgabe gehört

status

TaskStatus

Der neue Status der Aufgabe.

final

bool

Gibt an, ob dies die letzte Statusaktualisierung für diese Aufgabe ist.

metadata

Struct

Optionale Metadaten, die mit der Aufgabenaktualisierung verknüpft werden sollen.

TaskSubscriptionRequest

Felder
tenant

string

Optionaler Mandant, der als Pfadparameter angegeben wird. Experimentell, kann sich für die Version 1.0 noch ändern.

name

string

Der Ressourcenname der Aufgabe, die abonniert werden soll. Format: tasks/{task_id}