JSON 스키마

서비스 API를 사용하여 에이전트 또는 모델 컨텍스트 프로토콜 (MCP) 서버를 에이전트 레지스트리에 명시적으로 등록할 때는 기능을 설명하는 구성 파일을 제공해야 합니다.

에이전트 레지스트리는 에이전트 기술과 도구를 검색하기 위해 색인을 생성하기 전에 업로드된 파일을 외부 오픈소스 사양에 대해 검증합니다.

이 문서에서는 에이전트 카드 및 MCP 도구 사양에 대한 예상 JSON 구조의 예시와 링크를 제공합니다.

상담사 카드 스키마

A2A 호환 에이전트를 등록할 때 agent-card.json 페이로드가 공식 Agent2Agent (A2A) 사양을 준수해야 합니다. 사양 파일의 최대 파일 크기는 10KB입니다. skills 배열 필드는 키워드 검색 색인을 지원합니다.

에이전트 레지스트리는 A2A 에이전트 카드의 버전 0.31.0을 지원합니다.

버전 1.0 스키마 (권장)

A2A 에이전트 카드의 버전 1.0의 경우 페이로드가 공식 A2A v1.0 사양을 준수해야 합니다. 이 사양에서는 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"
      ]
    }
  ]
}

필드 정의 (버전 1.0)

  • name: 에이전트의 사람이 읽을 수 있는 이름입니다.
  • description: 에이전트의 목적에 관한 개략적인 요약입니다.
  • version: 에이전트 버전입니다(예: 1.0.0).
  • supportedInterfaces: 지원되는 전송 및 URL 조합의 배열입니다. 각 인터페이스에는 다음이 포함됩니다.
    • url: 이 인터페이스에 도달하는 엔드포인트 URL입니다.
    • protocolBinding: 이 URL에서 지원되는 프로토콜 바인딩입니다(예: HTTP+JSON, JSONRPC, GRPC).
    • protocolVersion: 이 인터페이스가 노출하는 A2A 프로토콜 버전입니다(예: 1.0.0).
    • tenant: 선택사항. 에이전트 소유자의 식별자입니다.
  • capabilities: 선택사항. 다음과 같은 지원되는 운영 기능을 지정합니다.
    • extensions: 선택사항. 프로토콜 확장 프로그램의 배열입니다.
    • streaming: 선택사항. 에이전트가 스트리밍 응답을 지원하는지 여부를 나타내는 불리언입니다.
    • pushNotifications: 선택사항. 작업 업데이트에 푸시 알림이 지원되는지 여부를 나타내는 불리언입니다.
    • extendedAgentCard: 선택사항. 인증 시 에이전트가 확장된 에이전트 카드를 제공하는지 여부를 나타내는 불리언입니다.
  • defaultInputModes: 선택사항. 입력으로 허용되는 MIME 유형의 배열입니다.
  • defaultOutputModes: 선택사항. 출력으로 생성된 MIME 유형의 배열입니다.
  • skills: 상담사가 보유한 기능의 배열입니다.
    • id: 스킬의 고유 프로그래매틱 식별자입니다.
    • name: 스킬의 사람이 읽을 수 있는 이름입니다.
    • description: 스킬이 수행하는 작업에 대한 자세한 설명입니다.
    • tags: 스킬을 분류하는 데 사용되는 키워드 문자열의 배열입니다.
    • examples: 예시 프롬프트 또는 시나리오의 배열입니다.

버전 0.3 스키마

A2A 에이전트 카드 버전 0.3의 경우 페이로드가 v0.3.0 사양을 준수해야 합니다. 이 사양에서는 기본 추론 URL과 프로토콜 버전이 최상위 필드로 선언됩니다.

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

필드 정의 (버전 0.3)

  • name: 에이전트의 사람이 읽을 수 있는 이름입니다.
  • description: 에이전트의 목적에 관한 개략적인 요약입니다.
  • version: 에이전트 버전입니다(예: 1.0.2).
  • protocolVersion: 에이전트가 구현하는 A2A 프로토콜의 버전입니다. 버전 1.0에서 이 최상위 필드가 지원 중단되므로 이 스키마의 값은 0.3 또는 0.3.1과 같은 0.3 패치 버전이어야 합니다.
  • url: 에이전트에 연결할 수 있는 엔드포인트 URL입니다.
  • capabilities: 선택사항. streaming, pushNotifications, stateTransitionHistory와 같은 지원되는 운영 기능을 지정합니다.
  • defaultInputModes: 선택사항. 입력으로 허용되는 MIME 유형의 배열입니다.
  • defaultOutputModes: 선택사항. 출력으로 생성된 MIME 유형의 배열입니다.
  • skills: 상담사가 보유한 기능의 배열입니다.
    • id: 스킬의 고유 프로그래매틱 식별자입니다.
    • name: 스킬의 사람이 읽을 수 있는 이름입니다.
    • description: 스킬이 수행하는 작업에 대한 자세한 설명입니다.
    • tags: 스킬을 분류하는 데 사용되는 키워드 문자열의 배열입니다.
    • examples: 예시 프롬프트 또는 시나리오의 배열입니다.

MCP 도구 스키마

MCP 서버를 등록할 때 toolspec.json 페이로드에 MCP Tool 객체 스키마를 준수하는 도구 목록이 포함되어야 합니다.

예상되는 페이로드는 표준 MCP 도구 또는 목록 요청에서 반환되는 것과 정확히 동일한 단일 tools 필드가 있는 JSON 객체입니다. 이 사양 파일의 최대 파일 크기는 10KB입니다.

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

필드 정의

  • tools: 서버에서 제공하는 도구의 배열입니다.

    • name: 도구의 프로그래매틱 식별자입니다.
    • description: 도구의 목적에 대한 인간이 읽을 수 있는 설명입니다.
    • inputSchema: 도구에 필요한 매개변수를 정의하는 JSON 스키마 객체입니다.
    • annotations: 오케스트레이터 에이전트가 도구와 상호작용하는 방식을 안내하는 행동 힌트입니다.

      • title: 도구의 사람이 읽을 수 있는 제목입니다.
      • readOnlyHint: true인 경우 도구는 데이터만 가져오고 환경을 수정하지 않습니다. 기본값은 false입니다.
      • destructiveHint: true인 경우 도구는 영구적인 변경을 일으킬 수 있는 작업을 실행합니다. 기본값은 true입니다.
      • idempotentHint: true인 경우 도구를 반복적으로 호출해도 추가 효과가 없습니다. 기본값은 false입니다.
      • openWorldHint: true인 경우 도구가 외부 시스템과 상호작용합니다. 기본값은 true입니다.