Services API를 사용하여 Agent Registry에 에이전트 또는 모델 컨텍스트 프로토콜 (MCP) 서버를 명시적으로 등록할 때는 기능을 설명하는 구성 파일을 제공해야 합니다.
Agent Registry는 에이전트 A2A 스킬 및 도구를 검색하기 위해 색인을 생성하기 전에 업로드된 파일을 외부 오픈소스 사양과 비교하여 유효성을 검사합니다.
이 문서에서는 에이전트 카드 및 MCP 도구 사양에 필요한 JSON 구조의 예시와 링크를 제공합니다.
에이전트 카드 스키마
A2A 호환 에이전트를 등록할 때 agent-card.json 페이로드가
공식
Agent2Agent (A2A) 사양을 준수해야 합니다.
사양 파일의 최대 파일 크기는 10KB입니다.
skills 배열 필드는 키워드 검색 색인을 지원합니다.
Agent Registry는 A2A
에이전트 카드 버전 0.3 및 1.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 유형을 정의하는 문자열 배열입니다(예:["text/plain"]).defaultOutputModes: 선택사항입니다. 에이전트가 출력으로 생성하는 기본 MIME 유형을 정의하는 문자열 배열입니다(예:["text/plain"]).skills: 에이전트가 보유한 설명적인 A2A 기술의 배열입니다.id: A2A 스킬의 고유한 프로그래매틱 식별자입니다.name: 인간이 읽을 수 있는 A2A 스킬 이름입니다.description: A2A 스킬의 기능에 대한 자세한 설명입니다.tags: A2A 스킬을 분류하는 데 사용되는 키워드 문자열의 배열입니다.examples: 이 A2A 스킬이 처리하는 프롬프트 또는 시나리오 예시의 배열입니다.
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입니다.