Lorsque vous enregistrez explicitement des agents ou des serveurs MCP (Model Context Protocol) auprès d'Agent Registry à l'aide des API Services, vous devez fournir des fichiers de configuration qui décrivent leurs capacités.
Agent Registry valide les fichiers que vous importez par rapport à des spécifications externes Open Source avant de les indexer pour découvrir les compétences et les outils de l'agent.
Ce document fournit des exemples et des liens vers les structures JSON attendues pour les cartes d'agent et les spécifications des outils MCP.
Schéma de carte d'agent
Lorsque vous enregistrez un agent compatible A2A, la charge utile agent-card.json doit
respecter la spécification
Agent2Agent (A2A) officielle.
La taille maximale du fichier de spécification est de 10 Ko.
Les champs du tableau skills sont compatibles avec l'index de recherche par mot clé.
Agent Registry est compatible avec les versions 0.3 et 1.0 de la carte d'agent A2A
.
Schéma de la version 1.0 (recommandé)
Pour la version 1.0 des cartes d'agent A2A, la charge utile doit respecter la spécification A2A
v1.0 officielle. Dans cette spécification, vous déclarez les points de terminaison de transport dans un tableau 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"
]
}
]
}
Définition des champs (version 1.0)
name: nom lisible de l'agent.description: résumé de haut niveau de l'objectif de l'agent.version: version de l'agent, par exemple1.0.0.supportedInterfaces: tableau de combinaisons de transport et d'URL compatibles. Chaque interface contient les éléments suivants :url: URL du point de terminaison où cette interface est accessible.protocolBinding: liaison de protocole compatible avec cette URL, par exempleHTTP+JSON,JSONRPCouGRPC.protocolVersion: version du protocole A2A que cette interface expose, par exemple1.0.0.tenant: facultatif. Identifiant du propriétaire de l'agent.
capabilities: facultatif. Spécifie les capacités opérationnelles compatibles, telles que les suivantes :extensions: facultatif. Tableau d'extensions de protocole.streaming: facultatif. Valeur booléenne indiquant si l'agent est compatible avec les réponses en streaming.pushNotifications: facultatif. Valeur booléenne indiquant si les notifications push sont compatibles avec les mises à jour des tâches.extendedAgentCard: facultatif. Valeur booléenne indiquant si l'agent fournit une carte d'agent étendue lorsqu'il est authentifié.
defaultInputModes: facultatif. Tableau de types MIME acceptés en entrée.defaultOutputModes: facultatif. Tableau de types MIME produits en sortie.skills: tableau des capacités de l'agent :id: identifiant unique de la compétence au niveau programmatique.name: nom lisible de la compétence.description: explication détaillée de ce que fait la compétence.tags: tableau de chaînes de mots clés utilisées pour catégoriser la compétence.examples: tableau d'exemples d'invites ou de scénarios.
Schéma de la version 0.3
Pour la version 0.3 des cartes d'agent A2A, la charge utile doit respecter la
spécification v0.3.0. Dans cette spécification, l'URL d'inférence principale et la version du protocole sont déclarées en tant que champs de premier niveau.
{
"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"
]
}
Définition des champs (version 0.3)
name: nom lisible de l'agent.description: résumé de haut niveau de l'objectif de l'agent.version: version de l'agent, par exemple1.0.2.protocolVersion: version du protocole A2A que l'agent implémente. Étant donné que la version 1.0 rend obsolète ce champ de premier niveau, la valeur doit être0.3ou une version de correctif0.3, telle que0.3.1, pour ce schéma.url: URL du point de terminaison où l'agent est accessible.capabilities: facultatif. Spécifie les capacités opérationnelles compatibles, telles questreaming,pushNotificationsoustateTransitionHistory.defaultInputModes: facultatif. Tableau de types MIME acceptés en entrée.defaultOutputModes: facultatif. Tableau de types MIME produits en sortie.skills: tableau des capacités de l'agent :id: identifiant unique de la compétence au niveau programmatique.name: nom lisible de la compétence.description: explication détaillée de ce que fait la compétence.tags: tableau de chaînes de mots clés utilisées pour catégoriser la compétence.examples: tableau d'exemples d'invites ou de scénarios.
Schéma d'outil MCP
Lors de l'enregistrement d'un serveur MCP, votre toolspec.json charge utile doit inclure une liste
d'outils conformes au
schéma d'objet Tool MCP.
La charge utile attendue est un objet JSON avec un seul tools champ, exactement comme il
est renvoyé par
les outils MCP standards ou la requête de liste.
La taille maximale de ce fichier de spécification est de 10 Ko.
{
"tools": [
{
"name": "string",
"description": "string",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"title": "string",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
}
}
]
}
Définition des champs
tools: tableau d'outils fournis par le serveur :name: identifiant programmatique de l'outil.description: explication lisible de l'objectif de l'outil.inputSchema: objet JSON Schema définissant les paramètres attendus pour l'outil.annotations: conseils comportementaux qui guident la manière dont les agents d'orchestration interagissent avec l'outil :title: titre lisible de l'outil.readOnlyHint: si la valeur esttrue, l'outil ne récupère que les données et ne modifie pas son environnement. La valeur par défaut estfalse.destructiveHint: si la valeur esttrue, l'outil effectue des opérations susceptibles d'entraîner des modifications permanentes. La valeur par défaut esttrue.idempotentHint: si la valeur esttrue, l'appel répété de l'outil n'a aucun effet supplémentaire. La valeur par défaut estfalse.openWorldHint: si la valeur esttrue, l'outil interagit avec des systèmes externes. La valeur par défaut esttrue.