AgentCard

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

ייצוג ב-JSON
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "documentationUrl": string,
  "iconUrl": string
}
שדות
name

string

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

description

string

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

supportedInterfaces[]

object (AgentInterface)

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

provider

object (AgentProvider)

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

version

string

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

capabilities

object (AgentCapabilities)

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

securitySchemes

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

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

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

securityRequirements[]

object (SecurityRequirement)

דרישות אבטחה ליצירת קשר עם הנציג.

defaultInputModes[]

string

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

defaultOutputModes[]

string

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

skills[]

object (AgentSkill)

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

signatures[]

object (AgentCardSignature)

חתימות רשת מבוססות JSON שחושבו עבור AgentCard.

documentationUrl

string

כתובת URL שכוללת מסמכים נוספים על הסוכן.

iconUrl

string

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

AgentInterface

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

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

string

חובה. כתובת ה-URL שבה הממשק הזה זמין. כתובת ה-URL חייבת להיות כתובת HTTPS מוחלטת ותקינה בסביבת הייצור. דוגמה: "https://api.example.com/a2a/v1",‏ "https://grpc.example.com/a2a"

protocolBinding

string

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

tenant

string

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

protocolVersion

string

חובה. הגרסה של פרוטוקול A2A שהממשק הזה חושף. שימוש בגרסה המשנית הנתמכת האחרונה לכל גרסה ראשית. דוגמאות: ‎0.3,‏ ‎1.0

AgentProvider

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

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

string

חובה. כתובת URL לאתר של ספק הסוכן או לתיעוד רלוונטי. דוגמה: "https://ai.google.dev"

organization

string

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

AgentCapabilities

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

ייצוג ב-JSON
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
שדות
extensions[]

object (AgentExtension)

רשימה של הרחבות פרוטוקול שהסוכן תומך בהן.

streaming

boolean

מציין אם הסוכן תומך בתגובות סטרימינג.

pushNotifications

boolean

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

extendedAgentCard

boolean

מציין אם הסוכן תומך באספקת כרטיס סוכן מורחב לאחר אימות.

AgentExtension

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

ייצוג ב-JSON
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
שדות
uri

string

מזהה משאבים אחיד (URI) ייחודי שמזהה את התוסף.

description

string

תיאור קריא לאנשים של אופן השימוש של הסוכן בתוסף.

required

boolean

אם הערך הוא True, הלקוח חייב להבין את הדרישות של התוסף ולפעול בהתאם להן.

params

object (Struct format)

זה שינוי אופציונלי. פרמטרים להגדרות ספציפיות לתוסף.

SecurityScheme

הגדרת תוכנית אבטחה שאפשר להשתמש בה כדי לאבטח את נקודות הקצה של סוכן. זהו סוג איחוד מופרד שמבוסס על אובייקט של תוכנית אבטחה ב-OpenAPI 3.2. למידע נוסף: https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object

ייצוג ב-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)

אימות מבוסס-מפתח API.

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

אימות HTTP (בסיסי, Bearer וכו').

oauth2SecurityScheme

object (OAuth2SecurityScheme)

אימות OAuth 2.0.

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

אימות OpenID Connect.

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

אימות TLS בו-זמני (mTLS).

APIKeySecurityScheme

הגדרת תוכנית אבטחה באמצעות מפתח API.

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

string

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

location

string

חובה. המיקום של מפתח ה-API. הערכים התקינים הם query,‏ header או cookie.

name

string

חובה. השם של הפרמטר של הכותרת, השאילתה או קובץ ה-Cookie שבו רוצים להשתמש.

HTTPAuthSecurityScheme

הגדרה של סכמת אבטחה באמצעות אימות HTTP.

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

string

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

scheme

string

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

bearerFormat

string

רמז ללקוח לזיהוי הפורמט של אסימון ה-Bearer (למשל, JWT). בעיקר למטרות תיעוד.

OAuth2SecurityScheme

הגדרת תוכנית אבטחה באמצעות OAuth 2.0.

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

string

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

flows

object (OAuthFlows)

חובה. אובייקט שמכיל פרטי הגדרות של תהליכי OAuth 2.0 הנתמכים.

oauth2MetadataUrl

string

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

OAuthFlows

ההגדרה הזו מגדירה את התצורה של תהליכי OAuth 2.0 הנתמכים.

ייצוג ב-JSON
{

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

שדה איחוד flow.

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

authorizationCode

object (AuthorizationCodeOAuthFlow)

הגדרות לתהליך הרשאה באמצעות קוד של OAuth.

clientCredentials

object (ClientCredentialsOAuthFlow)

הגדרות לתהליך OAuth Client Credentials.

implicit
(deprecated)

object (ImplicitOAuthFlow)

הוצא משימוש: במקומו יש להשתמש בקוד הרשאה + PKCE.

password
(deprecated)

object (PasswordOAuthFlow)

הוצא משימוש: צריך להשתמש בקוד הרשאה + PKCE או בקוד מכשיר.

deviceCode

object (DeviceCodeOAuthFlow)

הגדרה של תהליך קוד המכשיר ב-OAuth.

AuthorizationCodeOAuthFlow

הגדרת פרטים של תהליך הרשאה באמצעות קוד של OAuth 2.0.

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

string

חובה. כתובת ה-URL לאישור שתשמש בתהליך הזה.

tokenUrl

string

חובה. כתובת ה-URL של האסימון שתשמש בתהליך הזה.

refreshUrl

string

כתובת ה-URL שתשמש להשגת טוקנים לרענון.

scopes

map (key: string, value: string)

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

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

pkceRequired

boolean

מציין אם נדרש PKCE ‏ (RFC 7636) בתהליך הזה. תמיד צריך להשתמש ב-PKCE עבור לקוחות ציבוריים, ומומלץ להשתמש בו עבור כל הלקוחות.

ClientCredentialsOAuthFlow

הגדרת פרטי ההגדרה של תהליך פרטי הכניסה של לקוח OAuth 2.0.

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

string

חובה. כתובת ה-URL של האסימון שתשמש בתהליך הזה.

refreshUrl

string

כתובת ה-URL שתשמש להשגת טוקנים לרענון.

scopes

map (key: string, value: string)

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

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

ImplicitOAuthFlow

הוצא משימוש: במקומו יש להשתמש בקוד הרשאה + PKCE.

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

string

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

refreshUrl

string

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

scopes

map (key: string, value: string)

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

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

PasswordOAuthFlow

הוצא משימוש: צריך להשתמש בקוד הרשאה + PKCE או בקוד מכשיר.

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

string

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

refreshUrl

string

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

scopes

map (key: string, value: string)

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

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

DeviceCodeOAuthFlow

הגדרת פרטי התצורה של תהליך קוד המכשיר של OAuth 2.0 (RFC 8628). התהליך הזה מיועד למכשירים עם מגבלות על הקלט, כמו מכשירי IoT וכלי CLI שבהם המשתמש מאמת את עצמו במכשיר נפרד.

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

string

חובה. כתובת ה-URL של נקודת הקצה להרשאת המכשיר.

tokenUrl

string

חובה. כתובת ה-URL של האסימון שתשמש בתהליך הזה.

refreshUrl

string

כתובת ה-URL שתשמש להשגת טוקנים לרענון.

scopes

map (key: string, value: string)

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

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

OpenIdConnectSecurityScheme

הגדרת תוכנית אבטחה באמצעות OpenID Connect.

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

string

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

openIdConnectUrl

string

חובה. כתובת URL של מסמך Discovery של OpenID Connect למטא-נתונים של ספק OIDC.

MutualTlsSecurityScheme

הגדרה של תוכנית אבטחה באמצעות אימות mTLS.

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

string

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

SecurityRequirement

הגדרת דרישות האבטחה של סוכן.

ייצוג ב-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 A list of strings.

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

string

ערכי המחרוזות הנפרדים.

AgentSkill

מייצג יכולת או פונקציה מובחנת שהנציג יכול לבצע.

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

string

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

name

string

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

description

string

חובה. תיאור מפורט של המיומנות.

tags[]

string

חובה. קבוצה של מילות מפתח שמתארות את היכולות של המיומנות.

examples[]

string

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

inputModes[]

string

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

outputModes[]

string

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

securityRequirements[]

object (SecurityRequirement)

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

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 לא מוגן.