JSON-Schemas

Wenn Sie Agenten oder MCP-Server (Model Context Protocol) explizit mit der Agent Registry über die Services APIs registrieren, müssen Sie Konfigurationsdateien bereitstellen, in denen ihre Funktionen beschrieben werden.

Die Agent Registry validiert Ihre hochgeladenen Dateien anhand externer Open-Source Spezifikationen, bevor sie indexiert werden, um A2A-Fähigkeiten und Tools von Agenten zu ermitteln.

Dieses Dokument enthält Beispiele und Links zu den erwarteten JSON-Strukturen für Agentenkarten und MCP-Tool-Spezifikationen.

Schema für Agentenkarten

Beim Registrieren eines A2A-konformen Agenten muss die agent-card.json Nutzlast der offiziellen Spezifikation von Agent2Agent (A2A) entsprechen. Die maximale Dateigröße für die Spezifikationsdatei beträgt 10 KB. Die Felder des skills-Arrays unterstützen den Keyword-Suchindex.

Die Agent Registry unterstützt die Versionen 0.3 und 1.0 der A2A Agentenkarte.

Schema für Version 1.0 (empfohlen)

Für Version 1.0 der A2A-Agentenkarten muss die Nutzlast der offiziellen A2A Spezifikation v1.0 entsprechen. In dieser Spezifikation deklarieren Sie Transportendpunkte in einem supportedInterfaces-Array.

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

Felddefinitionen (Version 1.0)

  • name: Der für Nutzer lesbare Name des Agenten.
  • description: Eine allgemeine Zusammenfassung des Zwecks des Agenten.
  • version: Die Version des Agenten, z. B. 1.0.0.
  • supportedInterfaces: Ein Array unterstützter Transport- und URL-Kombinationen. Jede Schnittstelle enthält Folgendes:
    • url: Die Endpunkt-URL, über die diese Schnittstelle erreicht wird.
    • protocolBinding: Die Protokollbindung, die unter dieser URL unterstützt wird, z. B. HTTP+JSON, JSONRPC oder GRPC.
    • protocolVersion: Die A2A-Protokollversion, die diese Schnittstelle verfügbar macht, z. B. 1.0.0.
    • tenant: Optional. Die Kennung des Agenteninhabers.
  • capabilities: Optional. Gibt unterstützte Betriebsfunktionen an, z. B.:
    • extensions: Optional. Ein Array von Protokollerweiterungen.
    • streaming: Optional. Ein boolescher Wert, der angibt, ob der Agent Streaming-Antworten unterstützt.
    • pushNotifications: Optional. Ein boolescher Wert, der angibt, ob Push-Benachrichtigungen für Aufgabenaktualisierungen unterstützt werden.
    • extendedAgentCard: Optional. Ein boolescher Wert, der angibt, ob der Agent nach der Authentifizierung eine erweiterte Agentenkarte bereitstellt.
  • defaultInputModes: Optional. Ein Array von MIME-Typen, die als Eingabe akzeptiert werden.
  • defaultOutputModes: Optional. Ein Array von MIME-Typen, die als Ausgabe erzeugt werden.
  • skills: Ein Array von Fähigkeiten des Agenten:
    • id: Eine eindeutige programmatische Kennung für die Fähigkeit.
    • name: Ein für Nutzer lesbarer Name für die Fähigkeit.
    • description: Eine detaillierte Beschreibung der Funktion der Fähigkeit.
    • tags: Ein Array von Keyword-Strings, mit denen die Fähigkeit kategorisiert wird.
    • examples: Ein Array von Beispielprompts oder ‑szenarien.

Schema für Version 0.3

Für Version 0.3 der A2A-Agentenkarten muss die Nutzlast der Spezifikation v0.3.0 entsprechen. In dieser Spezifikation werden die primäre Inferenz-URL und die Protokollversion als Felder der obersten Ebene deklariert.

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

Felddefinitionen (Version 0.3)

  • name: Der für Nutzer lesbare Name des Agenten.
  • description: Eine allgemeine Zusammenfassung des Zwecks des Agenten.
  • version: Die Version des Agenten, z. B. 1.0.2.
  • protocolVersion: Die Version des A2A-Protokolls, die der Agent implementiert. Da Version 1.0 dieses Feld der obersten Ebene veraltet, muss der Wert 0.3 oder eine beliebige 0.3-Patchversion wie 0.3.1 für dieses Schema sein.
  • url: Die Endpunkt-URL, über die der Agent erreicht werden kann.
  • capabilities: Optional. Ein Objekt, das die unterstützten Betriebsfunktionen des Agenten angibt, z. B. streaming, pushNotifications oder stateTransitionHistory.
  • defaultInputModes: Optional. Ein Array von Strings, die die Standard-MIME Typen definieren, die der Agent als Eingabe akzeptiert, z. B. ["text/plain"].
  • defaultOutputModes: Optional. Ein Array von Strings, die die Standard- MIME-Typen definieren, die der Agent als Ausgabe erzeugt, z. B. ["text/plain"].
  • skills: Ein Array beschreibender A2A-Fähigkeiten des Agenten:

    • id: Eine eindeutige programmatische Kennung für die A2A-Fähigkeit.
    • name: Ein für Nutzer lesbarer Name für die A2A-Fähigkeit.
    • description: Eine detaillierte Beschreibung der Funktion der A2A-Fähigkeit.
    • tags: Ein Array von Keyword-Strings, mit denen die A2A-Fähigkeit kategorisiert wird.
    • examples: Ein Array von Beispielprompts oder ‑szenarien, die von dieser A2A-Fähigkeit verarbeitet werden.

Schema für MCP-Tools

Beim Registrieren eines MCP-Servers muss die Nutzlast von toolspec.json eine Liste von Tools umfassen, die dem MCP Tool Objektschema entsprechen.

Die erwartete Nutzlast ist ein JSON-Objekt mit einem einzelnen tools Feld, genau wie es von der Standard-MCP-Tool- oder ‑Listenanfrage zurückgegeben wird. Die maximale Dateigröße für diese Spezifikationsdatei beträgt 10 KB.

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

Felddefinitionen

  • tools: Ein Array von Tools, die vom Server bereitgestellt werden:

    • name: Die programmatische Kennung für das Tool.
    • description: Eine für Nutzer lesbare Erklärung des Zwecks des Tools.
    • inputSchema: Ein JSON-Schema-Objekt, das die erwarteten Parameter für das Tool definiert.
    • annotations: Verhaltenshinweise, die die Interaktion von Orchestrator-Agenten mit dem Tool steuern:

      • title: Ein für Nutzer lesbarer Titel für das Tool.
      • readOnlyHint: Wenn true, ruft das Tool nur Daten ab und ändert seine Umgebung nicht. Der Standardwert ist false.
      • destructiveHint: Wenn true, führt das Tool Vorgänge aus, die dauerhafte Änderungen verursachen können. Der Standardwert ist true.
      • idempotentHint: Wenn true, hat das wiederholte Aufrufen des Tools keine zusätzlichen Auswirkungen. Der Standardwert ist false.
      • openWorldHint: Wenn true, interagiert das Tool mit externen Systemen. Der Standardwert ist true.