Schémas JSON

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 et Open Source avant de les indexer pour découvrir les compétences et les outils des agents.

Ce document fournit des exemples et des liens vers les structures JSON attendues pour les fiches d'agent et les spécifications de l'outil MCP.

Schéma de la carte d'agent

Lorsque vous enregistrez un agent compatible A2A, votre charge utile agent-card.json doit respecter la spécification A2A officielle. La taille maximale de ce fichier de spécification est de 10 Ko. Les champs de tableau skills sont compatibles avec l'index de recherche par mot clé.

{
  "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éfinitions des champs

  • name : nom lisible de l'agent.
  • description : résumé général de l'objectif de l'agent.
  • version : version de l'agent, par exemple 1.0.2.
  • protocolVersion : version du protocole Agent2Agent implémentée par l'agent (par exemple, 0.3.0).
  • url : URL du point de terminaison où l'agent peut être contacté.
  • capabilities : facultatif. Objet spécifiant les capacités opérationnelles acceptées par l'agent, telles que streaming, pushNotifications ou stateTransitionHistory.
  • defaultInputModes : facultatif. Tableau de chaînes définissant les types MIME par défaut que l'agent accepte en entrée, par exemple ["text/plain"].
  • defaultOutputModes : facultatif. Tableau de chaînes définissant les types MIME par défaut que l'agent produit en sortie, par exemple ["text/plain"].
  • skills : tableau des capacités de l'agent :

    • id : identifiant programmatique unique de la skill.
    • name : nom lisible de la skill.
    • description : explication détaillée de ce que fait la compétence.
    • tags : tableau de chaînes de mots clés utilisé pour catégoriser la skill.
    • examples : tableau d'exemples de requêtes ou de scénarios gérés par cette skill.

Schéma de l'outil MCP

Lors de l'enregistrement d'un serveur MCP, votre charge utile toolspec.json 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 champ tools, exactement tel qu'il est renvoyé par la requête standard d'outils ou de liste MCP. 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éfinitions des champs

  • tools : tableau d'outils fournis par le serveur :

    • name : identifiant programmatique de l'outil.
    • description : explication de l'objectif de l'outil, dans un format lisible par l'humain.
    • inputSchema : objet JSON Schema définissant les paramètres attendus pour l'outil.
    • annotations : conseils comportementaux qui guident la façon dont les agents d'orchestration interagissent avec l'outil :

      • title : titre de l'outil, présenté dans un format lisible par l'humain.
      • readOnlyHint : si la valeur est true, l'outil ne récupère que les données et ne modifie pas son environnement. La valeur par défaut est false.
      • destructiveHint : si la valeur est true, l'outil effectue des opérations susceptibles d'entraîner des modifications permanentes. La valeur par défaut est true.
      • idempotentHint : si la valeur est true, l'appel répété de l'outil n'a aucun effet supplémentaire. La valeur par défaut est false.
      • openWorldHint : si true, l'outil interagit avec des systèmes externes. La valeur par défaut est true.