Skema JSON

Saat mendaftarkan agen atau server Model Context Protocol (MCP) secara eksplisit dengan Agent Registry menggunakan API Layanan, Anda harus memberikan file konfigurasi yang menjelaskan kemampuannya.

Agent Registry memvalidasi file yang Anda upload berdasarkan spesifikasi open source eksternal sebelum mengindeksnya untuk menemukan alat dan kemampuan agen.

Dokumen ini memberikan contoh dan link ke struktur JSON yang diharapkan untuk spesifikasi alat MCP dan Kartu Agen.

Skema Kartu Agen

Saat mendaftarkan agen yang kompatibel dengan A2A, payload agent-card.json Anda harus mematuhi spesifikasi Agent2Agent (A2A) resmi. Ukuran file maksimum untuk file spesifikasi adalah 10 KB. Kolom array skills mendukung indeks penelusuran kata kunci.

Agent Registry mendukung versi 0.3 dan 1.0 dari Kartu Agen A2A.

Skema versi 1.0 (direkomendasikan)

Untuk Kartu Agen A2A versi 1.0, payload harus mematuhi spesifikasi v1.0 A2A resmi. Dalam spesifikasi ini, Anda mendeklarasikan endpoint transportasi dalam array 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"
      ]
    }
  ]
}

Definisi kolom (Versi 1.0)

  • name: Nama agen yang dapat dibaca manusia.
  • description: Ringkasan tingkat tinggi tentang tujuan agen.
  • version: Versi agen, misalnya, 1.0.0.
  • supportedInterfaces: Array kombinasi URL dan transport yang didukung. Setiap antarmuka berisi:
    • url: URL endpoint tempat antarmuka ini dijangkau.
    • protocolBinding: Pengikatan protokol yang didukung di URL ini, misalnya, HTTP+JSON, JSONRPC, atau GRPC.
    • protocolVersion: Versi protokol A2A yang diekspos oleh antarmuka ini, misalnya, 1.0.0.
    • tenant: Opsional. ID pemilik agen.
  • capabilities: Opsional. Menentukan kemampuan operasional yang didukung seperti berikut:
    • extensions: Opsional. Array ekstensi protokol.
    • streaming: Opsional. Boolean yang menunjukkan apakah agen mendukung respons streaming.
    • pushNotifications: Opsional. Boolean yang menunjukkan apakah notifikasi push didukung untuk update tugas.
    • extendedAgentCard: Opsional. Boolean yang menunjukkan apakah agen menyediakan Kartu Agen yang diperluas saat diautentikasi.
  • defaultInputModes: Opsional. Array jenis MIME yang diterima sebagai input.
  • defaultOutputModes: Opsional. Array jenis MIME yang dihasilkan sebagai output.
  • skills: Array kemampuan yang dimiliki agen:
    • id: ID terprogram unik untuk skill.
    • name: Nama yang mudah dibaca manusia untuk skill.
    • description: Penjelasan mendetail tentang fungsi skill.
    • tags: Array string kata kunci yang digunakan untuk mengategorikan skill.
    • examples: Array contoh perintah atau skenario.

Skema Versi 0.3

Untuk Kartu Agen A2A versi 0.3, payload harus mematuhi spesifikasi v0.3.0. Dalam spesifikasi ini, URL inferensi utama dan versi protokol dideklarasikan sebagai kolom tingkat teratas.

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

Definisi kolom (Versi 0.3)

  • name: Nama agen yang dapat dibaca manusia.
  • description: Ringkasan tingkat tinggi tentang tujuan agen.
  • version: Versi agen, misalnya, 1.0.2.
  • protocolVersion: Versi A2A protocol yang diimplementasikan agen. Karena versi 1.0 menghentikan penggunaan kolom tingkat teratas ini, nilai harus berupa 0.3 atau versi patch 0.3 apa pun, seperti 0.3.1, untuk skema ini.
  • url: URL endpoint tempat agen dapat dijangkau.
  • capabilities: Opsional. Menentukan kemampuan operasional yang didukung, seperti streaming, pushNotifications, atau stateTransitionHistory.
  • defaultInputModes: Opsional. Array jenis MIME yang diterima sebagai input.
  • defaultOutputModes: Opsional. Array jenis MIME yang dihasilkan sebagai output.
  • skills: Array kemampuan yang dimiliki agen:
    • id: ID terprogram unik untuk skill.
    • name: Nama yang mudah dibaca manusia untuk skill.
    • description: Penjelasan mendetail tentang fungsi skill.
    • tags: Array string kata kunci yang digunakan untuk mengategorikan skill.
    • examples: Array contoh perintah atau skenario.

Skema alat MCP

Saat mendaftarkan server MCP, payload toolspec.json Anda harus menyertakan daftar alat yang mematuhi skema objek Tool MCP.

Payload yang diharapkan adalah objek JSON dengan satu kolom tools, persis seperti yang ditampilkan oleh alat MCP standar atau permintaan daftar. Ukuran file maksimum untuk file spesifikasi ini adalah 10 KB.

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

Definisi kolom

  • tools: Array alat yang disediakan oleh server:

    • name: ID terprogram untuk alat.
    • description: Penjelasan tujuan alat yang dapat dibaca manusia.
    • inputSchema: Objek Skema JSON yang menentukan parameter yang diharapkan untuk alat.
    • annotations: Petunjuk perilaku yang memandu cara agen pengelola berinteraksi dengan alat:

      • title: Judul yang dapat dibaca manusia untuk alat.
      • readOnlyHint: Jika true, alat hanya mengambil data dan tidak mengubah lingkungannya. Jumlah defaultnya adalah false
      • destructiveHint: Jika true, alat ini melakukan operasi yang dapat menyebabkan perubahan permanen. Jumlah defaultnya adalah true
      • idempotentHint: Jika true, memanggil alat berulang kali tidak akan berpengaruh tambahan. Jumlah defaultnya adalah false
      • openWorldHint: Jika true, alat berinteraksi dengan sistem eksternal. Jumlah defaultnya adalah true