Esquemas de JSON

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

Agent Registry valida los archivos subidos con respecto a las especificaciones externas de código abierto antes de indexarlos para descubrir las habilidades y las herramientas del agente.

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

Esquema de la tarjeta de agente

Cuando registres un agente compatible con A2A, la carga útil de agent-card.json debe cumplir con la especificación oficial de A2A. El tamaño máximo del archivo para este archivo de especificación es de 10 KB. Los campos del 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: Es la URL del extremo en la que se puede acceder al agente.
  • capabilities: Es opcional. Es un objeto que especifica las capacidades operativas admitidas del agente, como streaming, pushNotifications o stateTransitionHistory.
  • defaultInputModes: Es opcional. Es un array de cadenas que define los tipos de MIME predeterminados que el agente acepta como entrada, por ejemplo, ["text/plain"].
  • defaultOutputModes: Es 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 programático único para la habilidad.
    • 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 habilidad.
    • examples: Es un array de ejemplos de mensajes o situaciones que maneja 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 Tool de MCP.

La carga útil esperada es un objeto JSON con un solo campo tools, exactamente como lo muestran las herramientas de MCP estándar o la solicitud de lista. El tamaño máximo del archivo para este archivo de especificación es de 10 KB.

{
  "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: Son sugerencias de comportamiento que guían la forma en que los agentes de Orchestrator 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 pueden causar cambios permanentes. El valor predeterminado es true.
      • idempotentHint: Si es true, llamar a la herramienta repetidamente 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.