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 ( |
| Kolom | |
|---|---|
id |
Wajib. ID unik (misalnya, UUID) untuk tugas, yang dibuat oleh server untuk tugas baru. |
contextId |
ID unik (mis. UUID) untuk kumpulan interaksi kontekstual (tugas dan pesan). |
status |
Wajib. Status |
artifacts[] |
Kumpulan artefak output untuk |
history[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Histori interaksi dari |
metadata |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED Objek key/value untuk menyimpan metadata kustom tentang tugas. |
TaskStatus
Penampung untuk status tugas
| Representasi JSON |
|---|
{ "state": enum ( |
| Kolom | |
|---|---|
state |
Wajib. Status tugas saat ini. |
message |
Pesan yang terkait dengan status. |
timestamp |
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: |
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 ( |
| Kolom | |
|---|---|
messageId |
Wajib. ID unik (misalnya, UUID) pesan. Ini dibuat oleh pembuat pesan. |
contextId |
Opsional. ID konteks pesan. Jika disetel, pesan akan dikaitkan dengan konteks yang diberikan. |
taskId |
Opsional. ID tugas pesan. Jika ditetapkan, pesan akan dikaitkan dengan tugas yang diberikan. |
role |
Wajib. Mengidentifikasi pengirim pesan. |
parts[] |
Wajib. Bagian adalah penampung konten pesan. |
metadata |
Opsional. Metadata apa pun yang akan diberikan bersama dengan pesan. |
extensions[] |
URI ekstensi yang ada atau berkontribusi pada Pesan ini. |
referenceTaskIds[] |
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 |
Opsional. Metadata yang terkait dengan bagian ini. |
filename |
|
mediaType |
|
| Berikut adalah daftar kolom yang bersifat eksklusif satu sama lain. Maksimal satu kolom akan ditetapkan dalam respons: | |
text |
Konten string bagian |
raw |
Konten byte String berenkode base64. |
url |
|
data |
|
| Akhir kolom yang saling eksklusif. | |
Artefak
Artefak mewakili output tugas.
| Representasi JSON |
|---|
{
"artifactId": string,
"name": string,
"description": string,
"parts": [
{
object ( |
| Kolom | |
|---|---|
artifactId |
Wajib. ID unik (misalnya UUID) untuk artefak. Nama ini harus unik dalam tugas. |
name |
Nama artefak yang dapat dibaca manusia. |
description |
Opsional. Deskripsi artefak yang dapat dibaca manusia. |
parts[] |
Wajib. Konten artefak. Harus berisi setidaknya satu bagian. |
metadata |
Opsional. Metadata yang disertakan dengan artefak. |
extensions[] |
URI ekstensi yang ada atau berkontribusi pada Artefak ini. |
Metode |
|
|---|---|
|
Membatalkan tugas yang sedang berlangsung. |
|
Mendapatkan status terbaru tugas. |
|
Mencantumkan tugas yang cocok dengan filter yang ditentukan. |
|
Berlangganan pembaruan tugas untuk tugas yang tidak dalam status akhir. |