REST Resource: tasks

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 (TaskStatus)
  },
  "artifacts": [
    {
      object (Artifact)
    }
  ],
  "history": [
    {
      object (Message)
    }
  ],
  "metadata": {
    object
  }
}
Felder
id

string

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

contextId

string

Eindeutige Kennung (z.B. UUID) für die kontextbezogene Sammlung von Interaktionen (Aufgaben und Nachrichten).

status

object (TaskStatus)

Erforderlich. Der aktuelle Status eines Task, einschließlich state und message.

artifacts[]

object (Artifact)

Eine Reihe von Ausgabeartefakten für ein Task.

history[]

object (Message)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Der Verlauf der Interaktionen aus einem Task.

metadata

object (Struct format)

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 (TaskState),
  "message": {
    object (Message)
  },
  "timestamp": string
}
Felder
state

enum (TaskState)

Erforderlich. Der aktuelle Status dieser Aufgabe.

message

object (Message)

Eine mit dem Status verknüpfte Nachricht.

timestamp

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

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 (Role),
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ],
  "referenceTaskIds": [
    string
  ]
}
Felder
messageId

string

Erforderlich. Die eindeutige Kennung (z.B. UUID) der Nachricht. Sie wird vom Ersteller der Nachricht erstellt.

contextId

string

Optional. Die Kontext-ID der Nachricht. Wenn festgelegt, wird die Nachricht dem angegebenen Kontext zugeordnet.

taskId

string

Optional. Die Aufgaben-ID der Nachricht. Falls festgelegt, wird die Nachricht mit der angegebenen Aufgabe verknüpft.

role

enum (Role)

Erforderlich. Gibt den Absender der Nachricht an.

parts[]

object (Part)

Erforderlich. „Parts“ ist der Container für den Inhalt der Nachricht.

metadata

object (Struct format)

Optional. Alle Metadaten, die zusammen mit der Nachricht bereitgestellt werden sollen.

extensions[]

string

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

referenceTaskIds[]

string

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

object (Struct format)

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

filename

string

Ein optionaler filename für die Datei (z.B. „document.pdf“).

mediaType

string

Der mediaType (MIME-Typ) des Teilinhalts (z.B. „text/plain“, „application/json“, „image/png“). Dieses Feld ist für alle Teiletypen verfügbar.

Im Folgenden finden Sie eine Liste von sich gegenseitig ausschließenden Feldern. In einer Antwort wird höchstens eines der Felder festgelegt:
text

string

Der String-Inhalt des text-Teils.

raw

string (bytes format)

Der raw-Byte-Inhalt einer Datei. Bei der JSON-Serialisierung wird dies als Base64-String codiert.

Ein base64-codierter String.

url

string

Ein url, das auf den Inhalt der Datei verweist.

data

value (Value format)

Beliebige strukturierte data als JSON-Wert (Objekt, Array, String, Zahl, boolescher Wert oder Null).

Ende der sich gegenseitig ausschließenden Felder.

Artefakt

Artefakte stellen Aufgabenausgaben dar.

JSON-Darstellung
{
  "artifactId": string,
  "name": string,
  "description": string,
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ]
}
Felder
artifactId

string

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

name

string

Ein menschenlesbarer Name für das Artefakt.

description

string

Optional. Eine menschenlesbare Beschreibung des Artefakts.

parts[]

object (Part)

Erforderlich. Der Inhalt des Artefakts. Muss mindestens einen Teil enthalten.

metadata

object (Struct format)

Optional. Metadaten, die im Artefakt enthalten sind.

extensions[]

string

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

Methoden

cancel

Bricht eine laufende Aufgabe ab.

get

Ruft den letzten Status einer Aufgabe ab.

list

Listet Aufgaben auf, die dem angegebenen Filter entsprechen.

subscribe

Abonniert Aufgabenaktualisierungen für Aufgaben, die sich nicht in einem Endzustand befinden.