AgentCard

AgentCard trasmette informazioni chiave: - Dettagli generali (versione, nome, descrizione, utilizzi) - Competenze: un insieme di azioni/soluzioni che l'agente può eseguire - Modalità/tipi di contenuti predefiniti supportati dall'agente. - Requisiti di autenticazione Next ID: 19

Rappresentazione 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
}
Campi
protocolVersion

string

La versione del protocollo A2A supportata da questo agente.

name

string

Un nome leggibile per l'agente. Esempio: "Agente di ricette"

description

string

Una descrizione del dominio di azione/spazio delle soluzioni dell'agente. Esempio: "Agente che aiuta gli utenti con ricette e cucina".

url

string

Un URL all'indirizzo in cui è ospitato l'agente. Rappresenta l'endpoint preferito dichiarato dall'agente.

preferredTransport

string

Il trasporto dell'endpoint preferito. Se è vuoto, il valore predefinito è JSONRPC.

additionalInterfaces[]

object (AgentInterface)

Annuncio di trasporti aggiuntivi supportati. Il client può utilizzare uno qualsiasi dei trasporti supportati.

provider

object (AgentProvider)

Il fornitore di servizi dell'agente.

version

string

La versione dell'agente. Esempio: "1.0.0"

documentationUrl

string

Un URL per fornire ulteriore documentazione sull'agente.

capabilities

object (AgentCapabilities)

Set di funzionalità A2A supportato dall'agente.

securitySchemes

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

I dettagli dello schema di sicurezza utilizzati per l'autenticazione con questo agente.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Requisiti di sicurezza per contattare l'agente. Questo elenco può essere considerato come un OR di AND. Ogni oggetto nell'elenco descrive un possibile insieme di requisiti di sicurezza che devono essere presenti in una richiesta. In questo modo, è possibile specificare, ad esempio, che "i chiamanti devono utilizzare OAuth O una chiave API E mTLS". Esempio: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED L'insieme delle modalità di interazione supportate dall'agente in tutte le skill. Questa impostazione può essere ignorata per ogni skill. Definiti come tipi MIME.

defaultOutputModes[]

string

I tipi MIME supportati come output di questo agente.

skills[]

object (AgentSkill)

Le competenze rappresentano un'unità di capacità che un agente può svolgere. Potrebbe sembrare un po' astratto, ma rappresenta un insieme più mirato di azioni che l'agente ha molte probabilità di portare a termine.

supportsAuthenticatedExtendedCard

boolean

Indica se l'agente supporta la fornitura di una scheda dell'agente estesa quando l'utente è autenticato, ovvero se la scheda di .well-known è diversa da quella di v1.getCard.

signatures[]

object (AgentCardSignature)

Firme web JSON calcolate per questa scheda dell'agente.

iconUrl

string

Un URL facoltativo a un'icona per l'agente.

AgentInterface

Definisce informazioni di trasporto aggiuntive per l'agente.

Rappresentazione JSON
{
  "url": string,
  "transport": string,
  "tenant": string
}
Campi
url

string

L'URL in cui si trova questa interfaccia.

transport

string

Il trasporto supporta questo URL. Si tratta di una stringa di modulo aperto, facilmente estendibile per molti protocolli di trasporto. Quelli principali supportati ufficialmente sono JSONRPC, GRPC e HTTP+JSON.

tenant

string

Tenant da impostare nella richiesta quando chiami l'agente. Sperimentale, potrebbe ancora cambiare per la release 1.0.

AgentProvider

Rappresenta le informazioni sul fornitore di servizi di un agente.

Rappresentazione JSON
{
  "url": string,
  "organization": string
}
Campi
url

string

L'URL di riferimento dei fornitori Esempio: "https://ai.google.dev"

organization

string

Il nome dell'organizzazione del fornitore. Esempio: "Google"

SecurityScheme

Rappresentazione 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.
}
Campi

Campo unione scheme.

scheme può essere solo uno dei seguenti tipi:

apiKeySecurityScheme

object (APIKeySecurityScheme)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

Rappresentazione JSON
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
Campi
description

string

Descrizione di questo schema di sicurezza.

scheme

string

Il nome dello schema di autenticazione HTTP da utilizzare nell'intestazione Authorization come definito in RFC7235. I valori utilizzati DEVONO essere registrati nel registro degli schemi di autenticazione IANA. Il valore non fa distinzione tra maiuscole e minuscole, come definito nella RFC7235.

bearerFormat

string

Un suggerimento al client per identificare il formato del token di autenticazione. I token di tipo Bearer vengono in genere generati da un server di autorizzazione, quindi queste informazioni sono principalmente a scopo di documentazione.

OAuth2SecurityScheme

Rappresentazione JSON
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
Campi
description

string

Descrizione di questo schema di sicurezza.

flows

object (OAuthFlows)

Un oggetto contenente le informazioni di configurazione per i tipi di flusso supportati

oauth2MetadataUrl

string

URL dei metadati del server di autorizzazione OAuth2 RFC8414. TLS è obbligatorio.

OAuthFlows

Rappresentazione 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.
}
Campi

Campo unione flow.

flow può essere solo uno dei seguenti tipi:

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

Rappresentazione JSON
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campi
authorizationUrl

string

L'URL di autorizzazione da utilizzare per questo flusso. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS

tokenUrl

string

L'URL del token da utilizzare per questo flusso. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

refreshUrl

string

L'URL da utilizzare per ottenere i token di aggiornamento. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

scopes

map (key: string, value: string)

Gli ambiti disponibili per lo schema di sicurezza OAuth2. Una mappatura tra il nome dell'ambito e una breve descrizione. La mappa POTREBBE essere vuota.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ClientCredentialsOAuthFlow

Rappresentazione JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campi
tokenUrl

string

L'URL del token da utilizzare per questo flusso. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

refreshUrl

string

L'URL da utilizzare per ottenere i token di aggiornamento. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

scopes

map (key: string, value: string)

Gli ambiti disponibili per lo schema di sicurezza OAuth2. Una mappatura tra il nome dell'ambito e una breve descrizione. La mappa POTREBBE essere vuota.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

ImplicitOAuthFlow

Rappresentazione JSON
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campi
authorizationUrl

string

L'URL di autorizzazione da utilizzare per questo flusso. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS

refreshUrl

string

L'URL da utilizzare per ottenere i token di aggiornamento. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

scopes

map (key: string, value: string)

Gli ambiti disponibili per lo schema di sicurezza OAuth2. Una mappatura tra il nome dell'ambito e una breve descrizione. La mappa POTREBBE essere vuota.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PasswordOAuthFlow

Rappresentazione JSON
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
Campi
tokenUrl

string

L'URL del token da utilizzare per questo flusso. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

refreshUrl

string

L'URL da utilizzare per ottenere i token di aggiornamento. DEVE essere nel formato di un URL. Lo standard OAuth2 richiede l'utilizzo di TLS.

scopes

map (key: string, value: string)

Gli ambiti disponibili per lo schema di sicurezza OAuth2. Una mappatura tra il nome dell'ambito e una breve descrizione. La mappa POTREBBE essere vuota.

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

OpenIdConnectSecurityScheme

Rappresentazione JSON
{
  "description": string,
  "openIdConnectUrl": string
}
Campi
description

string

Descrizione di questo schema di sicurezza.

openIdConnectUrl

string

URL noto per scoprire i metadati del provider [[OpenID-Connect-Discovery]].

MutualTlsSecurityScheme

Rappresentazione JSON
{
  "description": string
}
Campi
description

string

Descrizione di questo schema di sicurezza.

Sicurezza

Rappresentazione JSON
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
Campi
schemes

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

Un oggetto contenente un elenco di coppie "key": value. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED

Rappresentazione JSON
{
  "list": [
    string
  ]
}
Campi
list[]

string

AgentSkill

AgentSkill rappresenta un'unità di azione/soluzione che l'agente può eseguire. Si può pensare a questo come a un tipo di soluzione altamente affidabile che un agente può essere incaricato di fornire. Gli agenti hanno l'autonomia di scegliere come e quando utilizzare competenze specifiche, ma i client devono avere la certezza che, se la competenza è definita, l'unità di azione possa essere eseguita in modo affidabile.

Rappresentazione JSON
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "security": [
    {
      object (Security)
    }
  ]
}
Campi
id

string

Identificatore univoco della skill all'interno di questo agente.

name

string

Un nome leggibile per la competenza.

description

string

Una descrizione leggibile da una persona (o da un LLM) dei dettagli e dei comportamenti della skill.

tags[]

string

Un insieme di tag per la competenza per migliorare la categorizzazione/l'utilizzo. Esempio: ["cooking", "customer support", "billing"]

examples[]

string

Un insieme di query di esempio a cui è destinata questa skill. Questi esempi dovrebbero aiutare il chiamante a capire come formulare le richieste all'agente per raggiungere obiettivi specifici. Esempio: ["Ho bisogno di una ricetta per il pane"]

inputModes[]

string

Modalità di input possibili supportate.

outputModes[]

string

Modalità di output possibili prodotte

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED Schemi di sicurezza necessari all'agente per sfruttare questa skill. Come in AgentCard.security complessivo, questo elenco rappresenta un OR logico degli oggetti dei requisiti di sicurezza. Ogni oggetto è un insieme di schemi di sicurezza che devono essere utilizzati insieme (un AND logico). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

AgentCardSignature

AgentCardSignature rappresenta una firma JWS di una scheda dell'agente. Segue il formato JSON di una firma web JSON (JWS) RFC 7515.

Rappresentazione JSON
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
Campi
protected

string

Obbligatorio. L'intestazione JWS protetta per la firma. Si tratta sempre di un oggetto JSON con codifica base64url. Obbligatorio.

signature

string

Obbligatorio. La firma calcolata, con codifica base64url. Obbligatorio.

header

object (Struct format)

I valori dell'intestazione JWS non protetta.