פרוטוקול A2A

ב-Agent Registry נוצרים אינדקסים של כרטיסי סוכני Agent2Agent‏ (A2A), ממשקי העברה ומיומנויות מוטבעות, כדי שאתם וסוכני הניהול שלכם תוכלו למצוא סוכנים בסביבת Google Cloud ולקרוא להם. סוכני AI אוטונומיים יכולים להשתמש בפרוטוקול A2A כדי להחליף הודעות ולהקצות משימות בלי לשתף את המצב הפנימי, ההנחיות או הכלים שלהם.

הקשר בין סוכני AI,‏ A2A ו-MCP

בארכיטקטורות של כמה סוכנים אפשר לשלב את התקנים הפתוחים הבאים, שמופיעים בקטלוג של Agent Registry:

  • ‫פרוטוקול Agent2Agent‏ (A2A): יוצר סטנדרט לתקשורת בין רשתות שכנות (P2P) בין לקוח A2A, כמו סוכן תזמור או אפליקציה שגלויה למשתמשים, לבין סוכן A2A מרוחק. הלקוח שולח הודעות בשפה טבעית או הודעות מובְנות, ומקבל עדכונים או פריטים של משימות עם שמירת מצב, בלי צורך לראות את המודל הבסיסי, את מצע הזיכרון או את לולאת החשיבה הרציונלית הפנימית של הנציג המרוחק. ב-Agent Registry יש קטלוג של סוכנים מובנים של Google שחשופים לממשקי API של Google Cloud וסוכני A2A בהתאמה אישית שאתם פורסים בסביבה שלכם. במאמר סקירה כללית על סוכני A2A ב-Cloud Run מופיעה דוגמה לארכיטקטורה של אירוח סוכני A2A בהתאמה אישית.
  • ‫Model Context Protocol (MCP): תקן להרצת כלים בין לקוח לשרת, שבו סוכן מתחבר לשרת MCP כדי להפעיל כלים דטרמיניסטיים ולקרוא משאבי נתונים מובְנים.

ב-Agent Registry, סוכן הניהול יכול לשלוח שאילתה למאגר יחיד כדי למצוא סוכני משנה מומחים מסוג A2A לצורך הקצאת משימות בכמה שלבים, לצד שרתי MCP ומיומנויות עצמאיות לשימוש ישיר בכלים.

גרסאות פרוטוקול וגילוי כרטיסי סוכן

כל נציג שתואם ל-A2A מתאר את הזהות, נקודות הקצה והיכולות שלו במסמך מטא-נתונים בפורמט JSON שנקרא כרטיס הנציג (agent-card.json).

‫Agent Registry תומך בגרסאות 1.0 (מומלץ) ו-0.3 של מפרט פרוטוקול A2A. למידע על שדות ספציפיים של Agent Card והמבנים של הגרסאות האלה, קראו את המאמר סכימת Agent Card.

איך Agent Registry מוסיף לאינדקס כרטיסי סוכנים

לא משנה אם סוכן A2A נטמע באמצעות רישום אוטומטי או נוסף באמצעות רישום ידני, רישום הסוכנים מאמת את כרטיס הסוכן שלו ויוצר משאב גילוי Agent לקריאה בלבד עם המידע הבא:

  • המטען הייעודי (payload) של כרטיס הסוכן: מאגר הסוכנים שומר את המטען הייעודי המלא של JSON בשדה card של המשאב Agent, כשהערך של type מוגדר ל-A2A_AGENT_CARD.
  • שדות גילוי: Agent Registry מחלץ את displayName, description, version, transport protocols ו-inline skills של הסוכן מכרטיס הסוכן ושומר אותם במשאב Agent. אתם יכולים לחפש ולסנן את היכולות האלה בלי לאחזר נקודות קצה (endpoints) נפרדות של /.well-known/agent-card.json בשירותים השונים.

שירותיGoogle Cloud וסביבות זמן ריצה מנוהלות לא תמיד חושפים כתובת URL ציבורית של /.well-known/agent-card.json. במקום זאת, אתם ואפליקציות הלקוח שלכם מאחזרים את כרטיס הסוכן ישירות מ-Agent Registry. חלק מהסוכנים מספקים גם כרטיס סוכן מורחב עם פרטים נוספים שזמינים רק ללקוחות מאומתים. אם Agent Card מגדיר את capabilities.extendedAgentCard ל-true, לקוחות מאומתים יכולים לקבל את ה-Agent Card המורחב בנקודת הקצה של זמן הריצה של הסוכן כדי לאחזר את הפרטים האלה.

קישורי תעבורה ופעולות ליבה

קישור תעבורה מגדיר איך הלקוח מעצב ושולח בקשות לסוכן A2A דרך הרשת. פרוטוקול A2A תומך באפשרויות ההעברה הבאות, כדי שסוכנים שנוצרו בפלטפורמות שונות יוכלו לתקשר:

  • ‫HTTP+JSON: בקשות HTTPS ששולחות ומקבלות מטענים ייעודיים (payloads) של JSON.
  • ‫JSON-RPC: בקשות HTTPS שעוטפות את שם הפעולה והפרמטרים בתוך הודעת JSON-RPC.
  • ‫gRPC: קריאות gRPC בינאריות דרך TLS לתקשורת עם זמן אחזור קצר בין שירותים.

ב-Agent Registry מתועדים סוגי התעבורה שכל סוכן תומך בהם וכתובות ה-URL של נקודות הקצה של הסוכן במשאב Agent. כתובות ה-URL של נקודות הקצה משתנות בהתאם לשירותים ולפריסות של Google Cloud , לכן כדאי להימנע מהוספת כתובות URL בתוך הקוד. במקום זאת, חפשו את כתובת ה-URL של נקודת הקצה של הסוכן ואת התעבורה מ-Agent Registry בזמן הריצה.

לא משנה באיזה פרוטוקול הסוכן משתמש, הלקוחות יוצרים אינטראקציה עם הסוכן באמצעות אותן פעולות ליבה של A2A:

פעולה תיאור
SendMessage שליחת הודעה כדי להתחיל משימה חדשה או להמשיך שיחה. הנציג מחזיר תשובה מיידית או משימה שאפשר לעקוב אחריה.
SendStreamingMessage שליחת הודעה ועדכוני סטטוס בשידור חי, תשובות חלקיות ותוצאות בזמן שהנציג עובד, אם הנציג תומך בסטרימינג.
GetTask בודקת את הסטטוס הנוכחי ומאחזרת את הפלט של משימה קיימת.
ListTasks מציג רשימה של משימות בשיחה או בפרויקט, אם הסוכן תומך בכך.
SubscribeToTask מתחבר מחדש למשימה שפועלת כדי להעביר עדכונים בזמן אמת עד שהמשימה מושהית או מסתיימת.
CancelTask מבקשת מהסוכן להפסיק משימה שמתבצעת, אם אפשר לבטל אותה.
GetExtendedAgentCard אחזור של כרטיס הסוכן המורחב עם פרטים נוספים שזמינים רק ללקוחות מאומתים.

מחזור החיים של המשימה ומצב של כמה שלבים

‫A2A מפריד בין רציפות השיחה לבין יחידות הביצוע הנפרדות באמצעות שני מזהים:

  • ‫Context ID (contextId): מקבץ אינטראקציות קשורות עם כמה פניות בסשן משותף, כדי שהסוכן המרוחק יוכל לשמור על ההקשר של השיחה בבקשות עוקבות.
  • מזהה משימה (taskId): מזהה יחידת עבודה ספציפית, אסינכרונית או סינכרונית, שנוצרת כשלקוח A2A שולח הודעה.

כשהסוכן המרוחק מעבד בקשה, המשימה עוברת בין השלבים הבאים במחזור החיים של A2A:

מדינה קטגוריה תיאור
TASK_STATE_SUBMITTED פעיל הסוכן המרוחק אישר את הבקשה והוסיף את המשימה לתור לביצוע.
TASK_STATE_WORKING פעיל הסוכן המרוחק מבצע חשיבה, מפעיל כלים או יוצר פריטים למשימה.
TASK_STATE_INPUT_REQUIRED בהשהיה הביצוע מושהה עד לקבלת קלט נוסף, הבהרה או אישור של האדם שבתהליך באותם taskId ו-contextId.
TASK_STATE_AUTH_REQUIRED בהשהיה הביצוע מושהה עד שהלקוח משלים את האימות או את תהליך ההסכמה מהמשתמש למשאב במורד הזרם.
TASK_STATE_COMPLETED טרמינל המשימה הסתיימה בהצלחה והחזירה את התשובה הסופית או את פריטי המידע שנוצרו בפלט.
TASK_STATE_FAILED טרמינל המשימה הופסקה בגלל שגיאה בהרצה או בשירות במורד הזרם.
TASK_STATE_CANCELED טרמינל המשימה בוטלה לפני שהושלמה.
TASK_STATE_REJECTED טרמינל הסוכן המרוחק סירב לבצע את המשימה שהתבקשה.

מיומנויות A2A, מיומנויות עצמאיות וכלי MCP

ב-Agent Registry יש אינדקס של שלושה מנגנוני יכולות נפרדים, כדי שתוכלו לבחור את דפוס השילוב המתאים לכל תהליך עבודה:

  • מיומנויות A2A מוטמעות: השדה skills במשאב הגילוי Agent של הנציג מכיל מטא-נתונים בפורמט JSON, כולל id,‏ name,‏ description,‏ tags ו-examples, שמוטמעים בתוך כרטיס הנציג. מיומנויות A2A מוטבעות מפרסמות את המשימות ברמה הגבוהה שסוכן תזמור יכול להקצות לסוכן המרוחק הזה באמצעות העברת A2A.
  • מיומנויות עצמאיות: משאבים עצמאיים ברמה העליונה של Skill ו-SkillRevision ב-Agent Registry מכילים ארכיוני ZIP עם גרסאות, עם הוראות בקובץ SKILL.md וסקריפטים אופציונליים. הסוכן מוריד מיומנות עצמאית להקשר שלו, במקום להעביר את הביצוע לסוכן אחר. כדי לראות השוואה מלאה בין פעולות A2A מוטמעות לבין פעולות עצמאיות, עיינו במאמר ההבדלים בין פעולות עצמאיות לפעולות A2A.
  • כלי MCP: השדה tools במשאב הגילוי McpServer מכיל סכימות פונקציות מובְנות שנחשפות על ידי שרת MCP רשום, שהסוכן קורא לו ישירות כדי לשלוח שאילתות לנתונים או להריץ פעולות דטרמיניסטיות.

אבטחה בזמן ריצה, פיקוח וקריאות לסוכנים

‫Agent Registry משמש כקטלוג למציאת סוכני A2A. אימות, הרשאה, בדיקת תוכן, רישום ביומן ביקורת ואכיפת מכסות בזמן ריצה מתרחשים כשסוכן הלקוח או סוכן התזמור קורא לסוכן היעד:

המאמרים הבאים