Ressource: Aufgabe
Task ist die Haupteinheit 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.
| JSON-Darstellung |
|---|
{ "id": string, "contextId": string, "status": { object ( |
| Felder | |
|---|---|
id |
Erforderlich. Eindeutige Kennung (z.B. UUID) für die Aufgabe, die vom Server für eine neue Aufgabe generiert wird. |
contextId |
Eindeutige Kennung (z.B. UUID) für die kontextbezogene Sammlung von Interaktionen (Aufgaben und Nachrichten). |
status |
Erforderlich. Der aktuelle Status eines |
artifacts[] |
Eine Reihe von Ausgabeartefakten für ein |
history[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Der Verlauf der Interaktionen aus einem |
metadata |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Ein Schlüssel/Wert-Objekt zum Speichern benutzerdefinierter Metadaten zu einer Aufgabe. |
TaskStatus
Ein Container für den Status einer Aufgabe
| JSON-Darstellung |
|---|
{ "state": enum ( |
| Felder | |
|---|---|
state |
Erforderlich. Der aktuelle Status dieser Aufgabe. |
message |
Eine mit dem Status verknüpfte Nachricht. |
timestamp |
ISO 8601-Zeitstempel für die Aufzeichnung des Status. Beispiel: „2023-10-27T10:00:00Z“ Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
TaskState
Definiert die möglichen Lebenszyklusstatus eines Task.
| Enums | |
|---|---|
TASK_STATE_UNSPECIFIED |
Der Status der Aufgabe ist unbekannt oder unbestimmt. |
TASK_STATE_SUBMITTED |
Gibt an, dass eine Aufgabe erfolgreich eingereicht und bestätigt wurde. |
TASK_STATE_WORKING |
Gibt an, dass eine Aufgabe aktiv vom Agent verarbeitet wird. |
TASK_STATE_COMPLETED |
Gibt an, dass eine Aufgabe erfolgreich abgeschlossen wurde. Dies ist ein Endstatus. |
TASK_STATE_FAILED |
Gibt an, dass eine Aufgabe mit einem Fehler abgeschlossen wurde. Dies ist ein Endstatus. |
TASK_STATE_CANCELED |
Gibt an, dass eine Aufgabe vor dem Abschluss abgebrochen wurde. Dies ist ein Endstatus. |
TASK_STATE_INPUT_REQUIRED |
Gibt an, dass der KI-Agent zusätzliche Nutzereingaben benötigt, um fortzufahren. Dies ist ein unterbrochener Zustand. |
TASK_STATE_REJECTED |
Gibt an, dass der Agent sich entschieden hat, die Aufgabe nicht auszuführen. Dies kann bei der ersten Aufgabenerstellung oder später erfolgen, wenn ein Agent feststellt, dass er nicht fortfahren kann oder will. Dies ist ein Endstatus. |
TASK_STATE_AUTH_REQUIRED |
Gibt an, dass eine Authentifizierung erforderlich ist, um fortzufahren. Dies ist ein unterbrochener Zustand. |
Nachricht
Message ist eine Einheit der Kommunikation zwischen Client und Server. Sie kann einem Kontext und/oder einer Aufgabe zugeordnet sein. Bei Servernachrichten muss contextId angegeben werden und taskId nur, wenn eine Aufgabe erstellt wurde. Bei Clientnachrichten sind beide Felder optional. Wenn beide angegeben werden, müssen sie jedoch übereinstimmen (contextId muss der Wert sein, der für die Aufgabe festgelegt ist). Wenn nur taskId angegeben ist, leitet der Server contextId daraus ab.
| JSON-Darstellung |
|---|
{ "messageId": string, "contextId": string, "taskId": string, "role": enum ( |
| Felder | |
|---|---|
messageId |
Erforderlich. Die eindeutige Kennung (z.B. UUID) der Nachricht. Sie wird vom Ersteller der Nachricht erstellt. |
contextId |
Optional. Die Kontext-ID der Nachricht. Wenn festgelegt, wird die Nachricht dem angegebenen Kontext zugeordnet. |
taskId |
Optional. Die Aufgaben-ID der Nachricht. Falls festgelegt, wird die Nachricht mit der angegebenen Aufgabe verknüpft. |
role |
Erforderlich. Gibt den Absender der Nachricht an. |
parts[] |
Erforderlich. „Parts“ ist der Container für den Inhalt der Nachricht. |
metadata |
Optional. Alle Metadaten, die zusammen mit der Nachricht bereitgestellt werden sollen. |
extensions[] |
Die URIs von Erweiterungen, die in dieser Nachricht vorhanden sind oder zu dieser Nachricht beigetragen haben. |
referenceTaskIds[] |
Eine Liste der Aufgaben-IDs, auf die sich diese Nachricht für zusätzlichen Kontext bezieht. |
Rolle
Definiert den Absender einer Nachricht in der Kommunikation über das A2A-Protokoll.
| Enums | |
|---|---|
ROLE_UNSPECIFIED |
Die Rolle ist nicht angegeben. |
ROLE_USER |
Die Nachricht wird vom Client an den Server gesendet. |
ROLE_AGENT |
Die Nachricht wird vom Server an den Client gesendet. |
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).
| JSON-Darstellung |
|---|
{ "metadata": { object }, "filename": string, "mediaType": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "text": string, "raw": string, "url": string, "data": value // End of mutually exclusive fields. } |
| Felder | |
|---|---|
metadata |
Optional. Metadaten, die mit diesem Teil verknüpft sind. |
filename |
Ein optionaler |
mediaType |
Der |
| Im Folgenden finden Sie eine Liste von sich gegenseitig ausschließenden Feldern. In einer Antwort wird höchstens eines der Felder festgelegt: | |
text |
Der String-Inhalt des |
raw |
Der Ein base64-codierter String. |
url |
Ein |
data |
Beliebige strukturierte |
| Ende der sich gegenseitig ausschließenden Felder. | |
Artefakt
Artefakte stellen Aufgabenausgaben dar.
| JSON-Darstellung |
|---|
{
"artifactId": string,
"name": string,
"description": string,
"parts": [
{
object ( |
| Felder | |
|---|---|
artifactId |
Erforderlich. Eindeutige Kennung (z.B. UUID) für das Artefakt. Sie muss innerhalb einer Aufgabe eindeutig sein. |
name |
Ein menschenlesbarer Name für das Artefakt. |
description |
Optional. Eine menschenlesbare Beschreibung des Artefakts. |
parts[] |
Erforderlich. Der Inhalt des Artefakts. Muss mindestens einen Teil enthalten. |
metadata |
Optional. Metadaten, die im Artefakt enthalten sind. |
extensions[] |
Die URIs von Erweiterungen, die in diesem Artefakt vorhanden sind oder zu diesem Artefakt beigetragen haben. |
Methoden |
|
|---|---|
|
Bricht eine laufende Aufgabe ab. |
|
Ruft den letzten Status einer Aufgabe ab. |
|
Listet Aufgaben auf, die dem angegebenen Filter entsprechen. |
|
Abonniert Aufgabenaktualisierungen für Aufgaben, die sich nicht in einem Endzustand befinden. |