Esquemas de JSON

Cuando registras explícitamente agentes o servidores del Protocolo de contexto del modelo (MCP) en Agent Registry con las APIs de Services, debes proporcionar archivos de configuración que describan sus capacidades.

El Registro de agentes valida los archivos que subes en función de especificaciones externas de código abierto antes de indexarlos para descubrir las habilidades y herramientas de los agentes.

En este documento, se proporcionan ejemplos y vínculos a las estructuras JSON esperadas para las especificaciones de las tarjetas de agente y la herramienta de MCP.

Esquema de la tarjeta del agente

Cuando registres un agente compatible con A2A, tu carga útil de agent-card.json debe cumplir con la especificación oficial de A2A. Los campos de array skills admiten el índice de búsqueda de palabras clave.

{
  "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"
  ]
}

Definiciones de campos

  • name: Es el nombre del agente en lenguaje natural.
  • description: Es un resumen de alto nivel del propósito del agente.
  • version: Es la versión del agente, por ejemplo, 1.0.2.
  • protocolVersion: Es la versión del protocolo Agent2Agent que implementa el agente, por ejemplo, 0.3.0.
  • url: URL del extremo en el que se puede acceder al agente.
  • capabilities: Opcional Es un objeto que especifica las capacidades operativas admitidas del agente, como streaming, pushNotifications o stateTransitionHistory.
  • defaultInputModes: Opcional Es un array de cadenas que define los tipos de MIME predeterminados que el agente acepta como entrada, por ejemplo, ["text/plain"].
  • defaultOutputModes: Opcional Es un array de cadenas que define los tipos de MIME predeterminados que el agente produce como salida, por ejemplo, ["text/plain"].
  • skills: Es un array de capacidades que posee el agente:

    • id: Es un identificador único programático para la skill.
    • name: Es un nombre legible para la habilidad.
    • description: Es una explicación detallada de lo que hace la habilidad.
    • tags: Es un array de cadenas de palabras clave que se usa para categorizar la skill.
    • examples: Es un array de ejemplos de instrucciones o situaciones que controla esta habilidad.

Esquema de la herramienta de MCP

Cuando registras un servidor de MCP, la carga útil de toolspec.json debe incluir una lista de herramientas que se adhieran al esquema de objetos de Tool de MCP.

La carga útil esperada es un objeto JSON con un solo campo tools, exactamente como lo devuelve la solicitud estándar de herramientas de MCP o de lista.

{
  "tools": [
    {
      "name": "string",
      "description": "string",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "title": "string",
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      }
    }
  ]
}

Definiciones de campos

  • tools: Es un array de herramientas que proporciona el servidor:

    • name: Es el identificador programático de la herramienta.
    • description: Es una explicación legible del propósito de la herramienta.
    • inputSchema: Es un objeto de esquema JSON que define los parámetros esperados para la herramienta.
    • annotations: Sugerencias de comportamiento que guían la forma en que los agentes del orquestador interactúan con la herramienta:

      • title: Es un título legible para la herramienta.
      • readOnlyHint: Si es true, la herramienta solo recupera datos y no modifica su entorno. El valor predeterminado es false.
      • destructiveHint: Si es true, la herramienta realiza operaciones que podrían causar cambios permanentes. El valor predeterminado es true.
      • idempotentHint: Si es true, llamar a la herramienta de forma repetida no tiene ningún efecto adicional. El valor predeterminado es false.
      • openWorldHint: Si es true, la herramienta interactúa con sistemas externos. El valor predeterminado es true.