משאב: משימה
Task היא יחידת הפעולה העיקרית ב-A2A. יש לו סטטוס נוכחי, וכשהתוצאות נוצרות עבור המשימה הן נשמרות בארטיפקט. אם יש כמה תורות למשימה, הן נשמרות בהיסטוריה.
| ייצוג ב-JSON |
|---|
{ "id": string, "contextId": string, "status": { object ( |
| שדות | |
|---|---|
id |
חובה. מזהה ייחודי (למשל, UUID) של המשימה, שנוצר על ידי השרת למשימה חדשה. |
contextId |
מזהה ייחודי (למשל UUID) של אוסף ההקשרים של האינטראקציות (משימות והודעות). |
status |
חובה. הסטטוס הנוכחי של |
artifacts[] |
קבוצה של פריטי פלט בשביל |
history[] |
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a |
metadata |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED אובייקט של מפתח/ערך לאחסון מטא-נתונים מותאמים אישית לגבי משימה. |
TaskStatus
מאגר לסטטוס של משימה
| ייצוג ב-JSON |
|---|
{ "state": enum ( |
| שדות | |
|---|---|
state |
חובה. המצב הנוכחי של המשימה. |
message |
הודעה שמשויכת לסטטוס. |
timestamp |
חותמת זמן בפורמט ISO 8601 של מועד התיעוד של הסטטוס. דוגמה: "2023-10-27T10:00:00Z" הפורמט הוא RFC 3339, והפלט שנוצר תמיד יהיה בפורמט Z עם 0, 3, 6 או 9 ספרות אחרי הנקודה. אפשר להשתמש גם בהיסטים אחרים, לא רק ב-Z. דוגמאות: |
TaskState
ההגדרה הזו מגדירה את מצבי מחזור החיים האפשריים של Task.
| טיפוסים בני מנייה (enum) | |
|---|---|
TASK_STATE_UNSPECIFIED |
סטטוס המשימה לא ידוע או לא ברור. |
TASK_STATE_SUBMITTED |
מציין שהמשימה נשלחה ואושרה בהצלחה. |
TASK_STATE_WORKING |
מציין שהסוכן מעבד באופן פעיל משימה. |
TASK_STATE_COMPLETED |
מציין שמשימה הסתיימה בהצלחה. זהו מצב סופי. |
TASK_STATE_FAILED |
מציין שמשימה הסתיימה עם שגיאה. זהו מצב סופי. |
TASK_STATE_CANCELED |
מציין שמשימה בוטלה לפני שהושלמה. זהו מצב סופי. |
TASK_STATE_INPUT_REQUIRED |
מציין שהסוכן צריך קלט של משתמשים נוסף כדי להמשיך. זהו מצב של הפרעה. |
TASK_STATE_REJECTED |
מציין שהסוכן החליט לא לבצע את המשימה. הפעולה הזו יכולה להתבצע במהלך יצירת המשימה הראשונית או בשלב מאוחר יותר, אחרי שהסוכן קובע שהוא לא יכול להמשיך או שהוא לא ימשיך. זהו מצב סופי. |
TASK_STATE_AUTH_REQUIRED |
מציין שנדרש אימות כדי להמשיך. זהו מצב של הפרעה. |
הודעה
Message היא יחידת תקשורת אחת בין הלקוח לשרת. אפשר לשייך אותו להקשר או למשימה. בהודעות מהשרת, צריך לספק את contextId, ואת taskId רק אם נוצרה משימה. בהודעות של לקוחות, שני השדות הם אופציונליים, אבל אם מספקים את שניהם, הם צריכים להיות זהים (הערך של contextId צריך להיות זה שמוגדר במשימה). אם מספקים רק את taskId, השרת יסיק את contextId ממנו.
| ייצוג ב-JSON |
|---|
{ "messageId": string, "contextId": string, "taskId": string, "role": enum ( |
| שדות | |
|---|---|
messageId |
חובה. המזהה הייחודי (למשל, UUID) של ההודעה. ההודעה הזו נוצרת על ידי יוצר ההודעה. |
contextId |
זה שינוי אופציונלי. מזהה ההקשר של ההודעה. אם המאפיין מוגדר, ההודעה תשויך להקשר שצוין. |
taskId |
זה שינוי אופציונלי. מזהה המשימה של ההודעה. אם תוגדר משימה, ההודעה תשויך למשימה שצוינה. |
role |
חובה. מזהה את השולח של ההודעה. |
parts[] |
חובה. החלק Parts הוא המאגר של תוכן ההודעה. |
metadata |
זה שינוי אופציונלי. כל מטא-נתונים שרוצים לספק יחד עם ההודעה. |
extensions[] |
כתובות ה-URI של התוספים שקיימים בהודעה הזו או שתורמים לה. |
referenceTaskIds[] |
רשימה של מזהי משימות שההודעה הזו מתייחסת אליהם כדי לספק הקשר נוסף. |
תפקיד
ההגדרה מגדירה את השולח של הודעה בתקשורת של פרוטוקול A2A.
| טיפוסים בני מנייה (enum) | |
|---|---|
ROLE_UNSPECIFIED |
התפקיד לא צוין. |
ROLE_USER |
ההודעה נשלחת מהלקוח לשרת. |
ROLE_AGENT |
ההודעה נשלחת מהשרת ללקוח. |
חלק
Part מייצג מאגר של קטע מתוכן התקשורת. החלקים יכולים להיות טקסט בלבד, קובץ כלשהו (תמונה, סרטון וכו') או בלוב של נתונים מובְנים (למשל, JSON).
| ייצוג ב-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. } |
| שדות | |
|---|---|
metadata |
אופציונלי. מטא-נתונים שמשויכים לחלק הזה. |
filename |
שם קובץ אופציונלי |
mediaType |
|
| הרשימה הבאה כוללת שדות שאי אפשר להשתמש בהם בו-זמנית. בכל תשובה יוגדר לכל היותר אחד מהשדות: | |
text |
תוכן המחרוזת של החלק |
raw |
תוכן הקובץ בבייט מחרוזת בקידוד Base64. |
url |
|
data |
נתונים מובְנים שרירותיים |
| סוף השדות הבלעדיים. | |
ארטיפקט
ארטיפקטים מייצגים את הפלט של המשימה.
| ייצוג ב-JSON |
|---|
{
"artifactId": string,
"name": string,
"description": string,
"parts": [
{
object ( |
| שדות | |
|---|---|
artifactId |
חובה. מזהה ייחודי (למשל UUID) של הארטיפקט. הוא חייב להיות ייחודי בתוך משימה. |
name |
שם קריא לארטיפקט. |
description |
זה שינוי אופציונלי. תיאור קריא (לבני אדם) של הארטיפקט. |
parts[] |
חובה. התוכן של הארטיפקט. צריך להכיל לפחות חלק אחד. |
metadata |
זה שינוי אופציונלי. מטא-נתונים שנכללים עם הארטיפקט. |
extensions[] |
כתובות ה-URI של התוספים שקיימים בארטיפקט הזה או שתורמים לו. |
Methods |
|
|---|---|
|
ביטול משימה בתהליך. |
|
מקבל את המצב האחרון של משימה. |
|
מציגה רשימה של משימות שתואמות למסנן שצוין. |
|
הרשמה לעדכונים על משימות שלא נמצאות במצב סופי. |