AgentCard

ב-AgentCard מוצג מידע חשוב: – פרטים כלליים (גרסה, שם, תיאור, שימושים) – מיומנויות; קבוצה של פעולות או פתרונות שהסוכן יכול לבצע – סוגי תוכן או אמצעי תקשורת שנתמכים כברירת מחדל על ידי הסוכן. ‫- דרישות אימות. המספר הבא: 19

ייצוג ב-JSON
{
  "protocolVersion": string,
  "name": string,
  "description": string,
  "url": string,
  "preferredTransport": string,
  "additionalInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "documentationUrl": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "security": [
    {
      object (Security)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "supportsAuthenticatedExtendedCard": boolean,
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "iconUrl": string
}
שדות
protocolVersion

string

הגרסה של פרוטוקול A2A שהסוכן הזה תומך בה.

name

string

שם הסוכן שקריא לאנשים. דוגמה: "סוכן מתכונים"

description

string

תיאור של תחום הפעולה או מרחב הפתרונות של הסוכן. דוגמה: "סוכן שעוזר למשתמשים במתכונים ובבישול".

url

string

כתובת URL של הכתובת שבה מתארח הסוכן. הערך הזה מייצג את נקודת הקצה המועדפת כפי שהוגדרה על ידי הסוכן.

preferredTransport

string

ההעברה של נקודת הקצה המועדפת. אם השדה ריק, ברירת המחדל היא JSONRPC.

additionalInterfaces[]

object (AgentInterface)

הודעה על הוספת פרוטוקולי העברה נתמכים. הלקוח יכול להשתמש בכל אחד מהפרוטוקולים הנתמכים.

provider

object (AgentProvider)

ספק השירות של הסוכן.

version

string

גרסת הסוכן. דוגמה: "1.0.0"

documentationUrl

string

כתובת URL שדרכה אפשר לספק תיעוד נוסף לגבי הסוכן.

capabilities

object (AgentCapabilities)

קבוצת היכולות A2A שנתמכת על ידי הסוכן.

securitySchemes

map (key: string, value: object (SecurityScheme))

פרטי תוכנית האבטחה שמשמשים לאימות מול הסוכן הזה.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

security[]

object (Security)

‫protolint:disable REPEATED_FIELD_NAMES_PLURALIZED דרישות אבטחה ליצירת קשר עם הסוכן. אפשר לראות את הרשימה הזו כרשימה של תנאי OR של תנאי AND. כל אובייקט ברשימה מתאר קבוצה אפשרית של דרישות אבטחה שחייבות להיות בבקשה. כך אפשר לציין, לדוגמה, ש'מבצעי הקריאות חייבים להשתמש ב-OAuth או במפתח API וגם ב-mTLS'. דוגמה: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED קבוצת מצבי האינטראקציה שהסוכן תומך בהם בכל הכישורים. אפשר לשנות את ההגדרה הזו לכל מיומנות בנפרד. מוגדרים כסוגי mime.

defaultOutputModes[]

string

סוגי ה-MIME הנתמכים כפלט מהסוכן הזה.

skills[]

object (AgentSkill)

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

supportsAuthenticatedExtendedCard

boolean

האם הסוכן תומך באספקת כרטיס סוכן מורחב כשהמשתמש מאומת, כלומר האם הכרטיס מ-.well-known שונה מהכרטיס מ-v1.getCard.

signatures[]

object (AgentCardSignature)

חתימות אינטרנט מבוססות JSON שחושבו עבור כרטיס הנציג הזה.

iconUrl

string

כתובת URL אופציונלית לסמל של הסוכן.

AgentInterface

הגדרת פרטי תחבורה נוספים לסוכן.

ייצוג ב-JSON
{
  "url": string,
  "transport": string,
  "tenant": string
}
שדות
url

string

כתובת ה-URL שבה נמצא הממשק הזה.

transport

string

ההעברה תמכה בכתובת ה-URL הזו. זו מחרוזת של טופס פתוח, שאפשר להרחיב אותה בקלות עבור פרוטוקולי העברה רבים. הפרוטוקולים המרכזיים שנתמכים באופן רשמי הם JSONRPC, ‏ GRPC ו-HTTP+JSON.

tenant

string

הדייר שצריך להגדיר בבקשה כשמתקשרים לסוכן. ניסיוני, עשוי להשתנות עד לגרסה 1.0.

AgentProvider

מייצג מידע על ספק השירות של סוכן.

ייצוג ב-JSON
{
  "url": string,
  "organization": string
}
שדות
url

string

כתובת ה-URL של ספק לדוגמה: "https://ai.google.dev"

organization

string

שם הארגון של הספק. לדוגמה: Google

SecurityScheme

ייצוג ב-JSON
{

  // Union field scheme can be only one of the following:
  "apiKeySecurityScheme": {
    object (APIKeySecurityScheme)
  },
  "httpAuthSecurityScheme": {
    object (HTTPAuthSecurityScheme)
  },
  "oauth2SecurityScheme": {
    object (OAuth2SecurityScheme)
  },
  "openIdConnectSecurityScheme": {
    object (OpenIdConnectSecurityScheme)
  },
  "mtlsSecurityScheme": {
    object (MutualTlsSecurityScheme)
  }
  // End of list of possible types for union field scheme.
}
שדות

שדה איחוד scheme.

הערך scheme יכול להיות רק אחד מהבאים:

apiKeySecurityScheme

object (APIKeySecurityScheme)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

ייצוג ב-JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
שדות
description

string

תיאור של תוכנית האבטחה הזו.

scheme

string

השם של סכמת האימות של HTTP שבה יש להשתמש בכותרת ההרשאה, כפי שמוגדר ב-RFC7235. הערכים שבהם משתמשים צריכים להיות רשומים במאגר של IANA Authentication Scheme. הערך לא תלוי רישיות, כפי שמוגדר ב-RFC7235.

bearerFormat

string

רמז ללקוח כדי לזהות את הפורמט של אסימון ה-bearer. אסימוני Bearer נוצרים בדרך כלל על ידי שרת הרשאות, ולכן המידע הזה מיועד בעיקר למטרות תיעוד.

OAuth2SecurityScheme

ייצוג ב-JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
שדות
description

string

תיאור של תוכנית האבטחה הזו.

flows

object (OAuthFlows)

אובייקט שמכיל פרטי הגדרה לסוגי התהליכים הנתמכים

oauth2MetadataUrl

string

כתובת ה-URL של המטא-נתונים של שרת ההרשאות ב-OAuth2‏ RFC8414. נדרש פרוטוקול TLS.

OAuthFlows

ייצוג ב-JSON
{

  // Union field flow can be only one of the following:
  "authorizationCode": {
    object (AuthorizationCodeOAuthFlow)
  },
  "clientCredentials": {
    object (ClientCredentialsOAuthFlow)
  },
  "implicit": {
    object (ImplicitOAuthFlow)
  },
  "password": {
    object (PasswordOAuthFlow)
  }
  // End of list of possible types for union field flow.
}
שדות

שדה איחוד flow.

הערך flow יכול להיות רק אחד מהבאים:

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

ייצוג ב-JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
שדות
authorizationUrl

string

כתובת ה-URL לאישור שתשמש בתהליך הזה. הערך חייב להיות בפורמט של כתובת URL. תקן OAuth2 מחייב שימוש ב-TLS

tokenUrl

string

כתובת ה-URL של האסימון שתשמש בתהליך הזה. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

refreshUrl

string

כתובת האתר שתשמש להשגת אסימוני רענון. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

scopes

map (key: string, value: string)

היקפי ההרשאות שזמינים לתוכנית האבטחה OAuth2. מיפוי בין שם ההיקף לבין תיאור קצר שלו. יכול להיות שהמפה תהיה ריקה.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientCredentialsOAuthFlow

ייצוג ב-JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
שדות
tokenUrl

string

כתובת ה-URL של האסימון שתשמש בתהליך הזה. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

refreshUrl

string

כתובת האתר שתשמש להשגת אסימוני רענון. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

scopes

map (key: string, value: string)

היקפי ההרשאות שזמינים לתוכנית האבטחה OAuth2. מיפוי בין שם ההיקף לבין תיאור קצר שלו. יכול להיות שהמפה תהיה ריקה.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

ייצוג ב-JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
שדות
authorizationUrl

string

כתובת ה-URL לאישור שתשמש בתהליך הזה. הערך חייב להיות בפורמט של כתובת URL. תקן OAuth2 מחייב שימוש ב-TLS

refreshUrl

string

כתובת האתר שתשמש להשגת אסימוני רענון. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

scopes

map (key: string, value: string)

היקפי ההרשאות שזמינים לתוכנית האבטחה OAuth2. מיפוי בין שם ההיקף לבין תיאור קצר שלו. יכול להיות שהמפה תהיה ריקה.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

ייצוג ב-JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
שדות
tokenUrl

string

כתובת ה-URL של האסימון שתשמש בתהליך הזה. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

refreshUrl

string

כתובת האתר שתשמש להשגת אסימוני רענון. הערך חייב להיות בפורמט של כתובת URL. התקן OAuth2 מחייב שימוש ב-TLS.

scopes

map (key: string, value: string)

היקפי ההרשאות שזמינים לתוכנית האבטחה OAuth2. מיפוי בין שם ההיקף לבין תיאור קצר שלו. יכול להיות שהמפה תהיה ריקה.

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

ייצוג ב-JSON
{
  "description": string,
  "openIdConnectUrl": string
}
שדות
description

string

תיאור של תוכנית האבטחה הזו.

openIdConnectUrl

string

כתובת URL מוכרת לאיתור המטא-נתונים של ספק [[OpenID-Connect-Discovery]].

MutualTlsSecurityScheme

ייצוג ב-JSON
{
  "description": string
}
שדות
description

string

תיאור של תוכנית האבטחה הזו.

אבטחה

ייצוג ב-JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
שדות
schemes

map (key: string, value: object (StringList))

אובייקט שמכיל רשימה של "key": value זוגות. דוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

ייצוג ב-JSON
{
  "list": [
    string
  ]
}
שדות
list[]

string

AgentSkill

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

ייצוג ב-JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "security": [
    {
      object (Security)
    }
  ]
}
שדות
id

string

מזהה ייחודי של המיומנות בסוכן.

name

string

שם המיומנות שקריא לבני אדם.

description

string

תיאור קריא (לבני אדם או למודל שפה גדול) של פרטי המיומנות וההתנהגויות שלה.

tags[]

string

קבוצת תגים למיומנות, לשיפור הסיווג או השימוש. דוגמה: ‎["cooking", "customer support", "billing"]‎

examples[]

string

קבוצה של שאילתות לדוגמה שהמיומנות הזו נועדה לתת להן מענה. הדוגמאות האלה אמורות לעזור למתקשר להבין איך לנסח בקשות לסוכן כדי להשיג יעדים ספציפיים. דוגמה: ['אני צריך מתכון ללחם']

inputModes[]

string

אפשרויות קלט נתמכות.

outputModes[]

string

אפשרויות פלט אפשריות

security[]

object (Security)

‫protolint:disable REPEATED_FIELD_NAMES_PLURALIZED תוכניות אבטחה שנדרשות כדי שהסוכן יוכל להשתמש במיומנות הזו. כמו ב-AgentCard.security הכולל, הרשימה הזו מייצגת OR לוגי של אובייקטים של דרישות אבטחה. כל אובייקט הוא קבוצה של תוכניות אבטחה שצריך להשתמש בהן יחד (AND לוגי). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

AgentCardSignature

‫AgentCardSignature מייצג חתימת JWS של AgentCard. הפורמט הזה תואם לפורמט JSON של חתימת רשת מבוססת JSON‏ (JWS) של RFC 7515.

ייצוג ב-JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
שדות
protected

string

חובה. כותרת ה-JWS המוגנת של החתימה. זה תמיד אובייקט JSON בקידוד base64url. חובה.

signature

string

חובה. החתימה המחושבת, בקידוד base64url. חובה.

header

object (Struct format)

ערכי הכותרת של JWS לא מוגן.