REST Resource: tasks

Resource: Task

Task adalah unit tindakan inti untuk A2A. Tugas ini memiliki status saat ini dan saat hasil dibuat untuk tugas, hasil tersebut akan disimpan dalam artefak. Jika ada beberapa giliran untuk suatu tugas, giliran tersebut disimpan dalam histori.

Representasi JSON
{
  "id": string,
  "contextId": string,
  "status": {
    object (TaskStatus)
  },
  "artifacts": [
    {
      object (Artifact)
    }
  ],
  "history": [
    {
      object (Message)
    }
  ],
  "metadata": {
    object
  }
}
Kolom
id

string

Wajib. ID unik (misalnya, UUID) untuk tugas, yang dibuat oleh server untuk tugas baru.

contextId

string

ID unik (mis. UUID) untuk kumpulan interaksi kontekstual (tugas dan pesan).

status

object (TaskStatus)

Wajib. Status Task saat ini, termasuk state dan message.

artifacts[]

object (Artifact)

Kumpulan artefak output untuk Task.

history[]

object (Message)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Histori interaksi dari Task.

metadata

object (Struct format)

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Objek key/value untuk menyimpan metadata kustom tentang tugas.

TaskStatus

Penampung untuk status tugas

Representasi JSON
{
  "state": enum (TaskState),
  "message": {
    object (Message)
  },
  "timestamp": string
}
Kolom
state

enum (TaskState)

Wajib. Status tugas saat ini.

message

object (Message)

Pesan yang terkait dengan status.

timestamp

string (Timestamp format)

Stempel Waktu ISO 8601 saat status dicatat. Contoh: "2023-10-27T10:00:00Z"

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

TaskState

Menentukan kemungkinan status siklus proses Task.

Enum
TASK_STATE_UNSPECIFIED Tugas dalam status tidak diketahui atau tidak ditentukan.
TASK_STATE_SUBMITTED Menunjukkan bahwa tugas telah berhasil dikirim dan dikonfirmasi.
TASK_STATE_WORKING Menunjukkan bahwa tugas sedang diproses secara aktif oleh agen.
TASK_STATE_COMPLETED Menunjukkan bahwa tugas telah berhasil diselesaikan. Ini adalah status terminal.
TASK_STATE_FAILED Menunjukkan bahwa tugas telah selesai dengan error. Ini adalah status terminal.
TASK_STATE_CANCELED Menunjukkan bahwa tugas dibatalkan sebelum selesai. Ini adalah status terminal.
TASK_STATE_INPUT_REQUIRED Menunjukkan bahwa agen memerlukan input pengguna tambahan untuk melanjutkan. Ini adalah status yang terganggu.
TASK_STATE_REJECTED Menunjukkan bahwa agen telah memutuskan untuk tidak melakukan tugas. Hal ini dapat dilakukan selama pembuatan tugas awal atau nanti setelah agen menentukan bahwa tugas tidak dapat atau tidak akan dilanjutkan. Ini adalah status terminal.
TASK_STATE_AUTH_REQUIRED Menunjukkan bahwa autentikasi diperlukan untuk melanjutkan. Ini adalah status yang terganggu.

Pesan

Message adalah satu unit komunikasi antara klien dan server. Dapat dikaitkan dengan konteks dan/atau tugas. Untuk pesan server, contextId harus diberikan, dan taskId hanya jika tugas dibuat. Untuk pesan klien, kedua kolom bersifat opsional, dengan catatan bahwa jika keduanya diberikan, keduanya harus cocok (contextId harus yang ditetapkan pada tugas). Jika hanya taskId yang diberikan, server akan menyimpulkan contextId dari.

Representasi JSON
{
  "messageId": string,
  "contextId": string,
  "taskId": string,
  "role": enum (Role),
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ],
  "referenceTaskIds": [
    string
  ]
}
Kolom
messageId

string

Wajib. ID unik (misalnya, UUID) pesan. Ini dibuat oleh pembuat pesan.

contextId

string

Opsional. ID konteks pesan. Jika disetel, pesan akan dikaitkan dengan konteks yang diberikan.

taskId

string

Opsional. ID tugas pesan. Jika ditetapkan, pesan akan dikaitkan dengan tugas yang diberikan.

role

enum (Role)

Wajib. Mengidentifikasi pengirim pesan.

parts[]

object (Part)

Wajib. Bagian adalah penampung konten pesan.

metadata

object (Struct format)

Opsional. Metadata apa pun yang akan diberikan bersama dengan pesan.

extensions[]

string

URI ekstensi yang ada atau berkontribusi pada Pesan ini.

referenceTaskIds[]

string

Daftar ID tugas yang dirujuk oleh pesan ini untuk konteks tambahan.

Peran

Menentukan pengirim pesan dalam komunikasi protokol A2A.

Enum
ROLE_UNSPECIFIED Peran tidak ditentukan.
ROLE_USER Pesan dikirim dari klien ke server.
ROLE_AGENT Pesan dikirim dari server ke klien.

Bagian

Part merepresentasikan penampung untuk bagian konten komunikasi. Bagian dapat berupa teks murni, beberapa jenis file (gambar, video, dll.), atau blob data terstruktur (yaitu JSON).

Representasi JSON
{
  "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.
}
Kolom
metadata

object (Struct format)

Opsional. Metadata yang terkait dengan bagian ini.

filename

string

filename opsional untuk file (misalnya, "document.pdf").

mediaType

string

mediaType (jenis MIME) konten bagian (misalnya, "text/plain", "application/json", "image/png"). Kolom ini tersedia untuk semua jenis suku cadang.

Berikut adalah daftar kolom yang bersifat eksklusif satu sama lain. Maksimal satu kolom akan ditetapkan dalam respons:
text

string

Konten string bagian text.

raw

string (bytes format)

Konten byte raw dari sebuah file. Dalam serialisasi JSON, ini dienkode sebagai string base64.

String berenkode base64.

url

string

url yang mengarah ke konten file.

data

value (Value format)

data terstruktur arbitrer sebagai nilai JSON (objek, array, string, angka, boolean, atau null).

Akhir kolom yang saling eksklusif.

Artefak

Artefak mewakili output tugas.

Representasi JSON
{
  "artifactId": string,
  "name": string,
  "description": string,
  "parts": [
    {
      object (Part)
    }
  ],
  "metadata": {
    object
  },
  "extensions": [
    string
  ]
}
Kolom
artifactId

string

Wajib. ID unik (misalnya UUID) untuk artefak. Nama ini harus unik dalam tugas.

name

string

Nama artefak yang dapat dibaca manusia.

description

string

Opsional. Deskripsi artefak yang dapat dibaca manusia.

parts[]

object (Part)

Wajib. Konten artefak. Harus berisi setidaknya satu bagian.

metadata

object (Struct format)

Opsional. Metadata yang disertakan dengan artefak.

extensions[]

string

URI ekstensi yang ada atau berkontribusi pada Artefak ini.

Metode

cancel

Membatalkan tugas yang sedang berlangsung.

get

Mendapatkan status terbaru tugas.

list

Mencantumkan tugas yang cocok dengan filter yang ditentukan.

subscribe

Berlangganan pembaruan tugas untuk tugas yang tidak dalam status akhir.