Quando registri manualmente gli agenti o i server Model Context Protocol (MCP) in Agent Registry creando una risorsa Service, fornisci file di configurazione JSON che dichiarano le loro funzionalità. Agent Registry convalida questi file in base alle specifiche open source prima di indicizzarli, in modo che i consumer possano scoprire le competenze A2A e gli strumenti MCP dell'agente. Utilizza le seguenti strutture ed esempi JSON per formattare le specifiche delle schede dell'agente e dello strumento MCP.
Schema della scheda agente
Quando registri un agente conforme ad A2A, il payload agent-card.json deve rispettare la specifica Agent2Agent (A2A) ufficiale.
La dimensione massima del file di specifica è 10 kB.
I campi dell'array skills supportano l'indice della Ricerca per parole chiave.
Agent Registry supporta le versioni 1.0 e 0.3 della scheda agente A2A. Seleziona una versione per visualizzare lo schema JSON e le definizioni dei campi:
Versione 1.0 (consigliata)
Per la versione 1.0 delle schede agente A2A, il payload deve rispettare la specifica v1.0 ufficiale di A2A. In questa specifica, dichiari gli endpoint di trasporto all'interno di un array supportedInterfaces:
{
"name": "string",
"description": "string",
"version": "string",
"supportedInterfaces": [
{
"url": "string",
"protocolBinding": "string",
"protocolVersion": "string",
"tenant": "string"
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
],
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
]
}
Definizioni dei campi
name: il nome leggibile dell'agente.description: un riepilogo generale dello scopo dell'agente.version: la versione dell'agente, ad esempio1.0.0.supportedInterfaces: un array di combinazioni di trasporto e URL supportate. Ogni interfaccia contiene quanto segue:url: l'URL dell'endpoint in cui viene raggiunta questa interfaccia.protocolBinding: l'associazione del protocollo supportata in questo URL, ad esempioHTTP+JSON,JSONRPCoGRPC.protocolVersion: la versione del protocollo A2A esposta da questa interfaccia, ad esempio1.0.0.tenant(facoltativo): l'identificatore del proprietario dell'agente.
capabilities(facoltativo): specifica le funzionalità operative supportate, ad esempio:extensions(facoltativo): un array di estensioni del protocollo.streaming(facoltativo): un valore booleano che indica se l'agente supporta le risposte in streaming.pushNotifications(facoltativo): un valore booleano che indica se le notifiche push sono supportate per gli aggiornamenti delle attività.extendedAgentCard(facoltativo): un valore booleano che indica se l'agente fornisce una Scheda Agente estesa quando viene autenticato.
defaultInputModes(facoltativo): un array di tipi MIME accettati come input.defaultOutputModes(facoltativo): un array di tipi MIME prodotti come output.skills: un array di skill A2A descrittive possedute dall'agente:id: un identificatore programmatico univoco per la skill A2A.name: un nome leggibile per la skill A2A.description: una spiegazione dettagliata di ciò che fa la skill A2A.tags: un array di stringhe di parole chiave utilizzate per classificare la skill A2A.examples: un array di prompt o scenari di esempio gestiti da questa skill A2A.
Versione 0.3
Per la versione 0.3 delle schede agente A2A, il payload deve rispettare la specifica v0.3.0. In questa specifica, l'URL di inferenza principale e la versione del protocollo sono dichiarati come campi di primo livello:
{
"name": "string",
"description": "string",
"version": "string",
"protocolVersion": "string",
"url": "string",
"skills": [
{
"id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"examples": [
"string"
]
}
],
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain"
]
}
Definizioni dei campi
name: il nome leggibile dell'agente.description: un riepilogo generale dello scopo dell'agente.version: la versione dell'agente, ad esempio1.0.2.protocolVersion: la versione del protocollo A2A implementata dall'agente. Poiché la versione1.0ritira questo campo di primo livello, il valore deve essere0.3o qualsiasi versione patch0.3, ad esempio0.3.1, per questo schema.url: l'URL dell'endpoint in cui è possibile raggiungere l'agente.capabilities(facoltativo): un oggetto che specifica le funzionalità operative supportate dall'agente, ad esempiostreaming,pushNotificationsostateTransitionHistory.defaultInputModes(facoltativo): un array di stringhe che definisce i tipi MIME predefiniti accettati dall'agente come input, ad esempio["text/plain"].defaultOutputModes(facoltativo): un array di stringhe che definisce i tipi MIME predefiniti prodotti dall'agente come output, ad esempio["text/plain"].skills: un array di skill A2A descrittive possedute dall'agente:id: un identificatore programmatico univoco per la skill A2A.name: un nome leggibile per la skill A2A.description: una spiegazione dettagliata di ciò che fa la skill A2A.tags: un array di stringhe di parole chiave utilizzate per classificare la skill A2A.examples: un array di prompt o scenari di esempio gestiti da questa skill A2A.
Schema dello strumento MCP
Quando registri un server MCP, il payload toolspec.json deve includere un elenco di strumenti che rispettano lo schema dell'oggetto Tool MCP.
Il payload previsto è un oggetto JSON con un singolo campo tools, esattamente come viene restituito dagli strumenti MCP standard o dalla richiesta di elenco.
La dimensione massima di questo file di specifica è 10 kB.
{
"tools": [
{
"name": "string",
"description": "string",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"title": "string",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
}
}
]
}
Definizioni dei campi
tools: un array di strumenti forniti dal server:name: l'identificatore programmatico dello strumento.description: una spiegazione leggibile da una persona dello scopo dello strumento.inputSchema: un oggetto schema JSON che definisce i parametri previsti per lo strumento.annotations: suggerimenti comportamentali che guidano il modo in cui gli agenti orchestrator interagiscono con lo strumento:title: un titolo leggibile per lo strumento.readOnlyHint: setrue, lo strumento recupera solo i dati e non modifica il suo ambiente. Il valore predefinito èfalse.destructiveHint: setrue, lo strumento esegue operazioni che potrebbero causare modifiche permanenti. Il valore predefinito ètrue.idempotentHint: setrue, la chiamata ripetuta dello strumento non ha alcun effetto aggiuntivo. Il valore predefinito èfalse.openWorldHint: setrue, lo strumento interagisce con sistemi esterni. Il valore predefinito ètrue.