A2A 프로토콜

Agent Registry는 Agent2Agent(A2A) 에이전트 카드, 전송 인터페이스, 인라인 스킬을 색인 생성하므로 사용자와 조정자 에이전트가 Google Cloud 환경 전반에서 에이전트를 검색하고 호출할 수 있습니다. 자율 AI 에이전트는 A2A 프로토콜을 사용하여 내부 상태, 프롬프트 또는 도구를 공유하지 않고도 메시지를 교환하고 작업을 위임할 수 있습니다.

AI 에이전트, A2A, MCP 간의 관계

멀티 에이전트 아키텍처는 에이전트 레지스트리가 분류하는 다음과 같은 개방형 표준을 결합할 수 있습니다.

  • Agent2Agent(A2A) 프로토콜: 조정자 에이전트 또는 사용자 대상 애플리케이션과 같은 A2A 클라이언트와 원격 A2A 에이전트 간의 P2P 통신을 표준화합니다. 클라이언트는 자연어 또는 구조화된 메시지를 전송하고 원격 에이전트의 기본 모델, 메모리 기판 또는 내부 추론 루프에 대한 가시성 없이 스테이트풀(Stateful) 태스크 업데이트 또는 아티팩트를 수신합니다. 에이전트 레지스트리는 Google Cloud API에 의해 노출되는 기본 제공 Google 에이전트와 자체 환경에 배포하는 커스텀 A2A 에이전트를 모두 분류합니다. 커스텀 A2A 에이전트를 호스팅하는 아키텍처 예시는 Cloud Run의 A2A 에이전트 개요를 참조하세요.
  • 모델 컨텍스트 프로토콜(MCP): 에이전트가 MCP 서버에 연결하여 결정론적 도구를 호출하고 구조화된 데이터 리소스를 읽는 클라이언트-서버 도구 실행을 표준화합니다.

Agent Registry에서 조정자 에이전트는 단일 레지스트리를 쿼리하여 다단계 위임을 위한 전문가 A2A 하위 에이전트를 검색할 수 있으며, 직접 도구 사용을 위한 MCP 서버 및 독립형 기술도 검색할 수 있습니다.

프로토콜 버전 및 에이전트 카드 검색

모든 A2A 호환 에이전트는 에이전트 카드(agent-card.json)라는 JSON 메타데이터 문서에 자신의 ID, 엔드포인트, 기능을 설명합니다.

에이전트 레지스트리는 A2A 프로토콜 사양의 버전 1.0(권장) 및 0.3를 지원합니다. 특정 에이전트 카드 필드 및 이러한 버전의 구조에 대한 자세한 내용은 에이전트 카드 스키마를 참조하세요.

에이전트 레지스트리가 에이전트 카드를 색인 생성하는 방법

A2A 에이전트가 자동 등록을 통해 수집되든 수동 등록을 통해 추가되든 에이전트 레지스트리는 에이전트 카드를 검증하고 다음 정보가 포함된 읽기 전용 Agent 검색 리소스를 만듭니다.

  • 에이전트 카드 페이로드: 에이전트 레지스트리는 type가 A2A_AGENT_CARD로 설정된 Agent 리소스의 card 필드에 전체 JSON 페이로드를 저장합니다.
  • 검색 필드: 에이전트 레지스트리는 에이전트 카드에서 에이전트의 displayName, description, version, 전송 protocols, 인라인 skills를 추출하여 Agent 리소스에 저장합니다. 서비스 전반에서 개별 /.well-known/agent-card.json 엔드포인트를 가져오지 않고도 이러한 기능을 검색하고 필터링할 수 있습니다.

Google Cloud 서비스 및 관리형 런타임이 항상 공개 /.well-known/agent-card.json URL을 노출하는 것은 아닙니다. 대신 사용자와 클라이언트 애플리케이션이 에이전트 레지스트리에서 직접 에이전트 카드를 검색합니다. 일부 에이전트는 인증된 클라이언트만 사용할 수 있는 추가 세부정보가 포함된 확장된 에이전트 카드도 제공합니다. 에이전트 카드가 capabilities.extendedAgentCard를 true로 설정하면 인증된 클라이언트는 에이전트의 런타임 엔드포인트에서 확장된 에이전트 카드를 가져와 해당 세부정보를 검색할 수 있습니다.

전송 바인딩 및 핵심 작업

전송 바인딩은 클라이언트가 네트워크를 통해 A2A 에이전트에 요청을 형식화하고 전송하는 방법을 정의합니다. A2A 프로토콜은 다양한 플랫폼에서 빌드된 에이전트가 통신할 수 있도록 다음 전송 옵션을 지원합니다.

  • HTTP+JSON: JSON 페이로드를 전송하고 수신하는 HTTPS 요청입니다.
  • JSON-RPC: JSON-RPC 메시지 내에서 작업 이름과 매개변수를 래핑하는 HTTPS 요청입니다.
  • gRPC: 서비스 간 지연 시간이 짧은 통신을 위한 TLS를 통한 바이너리 gRPC 호출입니다.

에이전트 레지스트리는 각 에이전트의 지원되는 전송 유형과 Agent 리소스의 에이전트 엔드포인트 URL을 기록합니다. 엔드포인트 URL은 Google Cloud 서비스 및 배포에 따라 다르므로 코드에서 URL을 하드코딩하지 마세요. 대신 런타임 시 Agent Registry에서 에이전트의 엔드포인트 URL과 전송을 조회합니다.

에이전트가 사용하는 전송에 관계없이 클라이언트는 동일한 핵심 A2A 작업을 통해 에이전트와 상호작용합니다.

작업 설명
SendMessage 새 작업을 시작하거나 대화를 계속하기 위해 메시지를 보냅니다. 에이전트는 즉각적인 답장 또는 추적할 수 있는 작업을 반환합니다.
SendStreamingMessage 에이전트가 스트리밍을 지원하는 경우 에이전트가 작업할 때 메시지를 전송하고 실시간 상태 업데이트, 부분 답변, 결과를 스트리밍합니다.
GetTask 현재 상태를 확인하고 기존 태스크의 출력을 검색합니다.
ListTasks 에이전트가 지원하는 경우 대화 또는 프로젝트의 작업을 나열합니다.
SubscribeToTask 실행 중인 태스크에 다시 연결하여 태스크가 일시중지되거나 완료될 때까지 실시간 업데이트를 스트리밍합니다.
CancelTask 취소가 지원되는 경우 에이전트가 진행 중인 작업을 중지하도록 요청합니다.
GetExtendedAgentCard 인증된 클라이언트만 사용할 수 있는 추가 세부정보가 포함된 에이전트의 확장된 에이전트 카드를 가져옵니다.

작업 수명 주기 및 멀티턴 상태

A2A는 다음 두 식별자를 사용하여 대화 연속성을 개별 실행 단위와 분리합니다.

  • 컨텍스트 ID(contextId): 원격 에이전트가 순차적 요청에서 대화 컨텍스트를 보존할 수 있도록 공유 세션 내에서 관련된 멀티턴 상호작용을 그룹화합니다.
  • 작업 ID(taskId): A2A 클라이언트가 메시지를 보낼 때 생성되는 특정 비동기식 또는 동기식 작업 단위를 식별합니다.

원격 에이전트가 요청을 처리하면 작업은 다음 A2A 수명 주기 상태로 전환됩니다.

주 카테고리 설명
TASK_STATE_SUBMITTED 활성 원격 에이전트가 요청을 수락하고 실행할 작업을 큐에 추가했습니다.
TASK_STATE_WORKING 활성 원격 에이전트가 작업을 위해 적극적으로 추론하거나 도구를 호출하거나 아티팩트를 생성하고 있습니다.
TASK_STATE_INPUT_REQUIRED 일시중지됨 동일한 taskId 및 contextId에 대한 후속 입력, 설명 또는 휴먼인더루프 확인을 기다리는 동안 실행이 일시중지됩니다.
TASK_STATE_AUTH_REQUIRED 일시중지됨 클라이언트가 다운스트림 리소스에 대한 인증 또는 사용자 동의 흐름을 완료할 때까지 실행이 일시중지됩니다.
TASK_STATE_COMPLETED 터미널 태스크가 성공적으로 완료되고 최종 응답 또는 출력 아티팩트를 반환했습니다.
TASK_STATE_FAILED 터미널 실행 또는 다운스트림 서비스 오류로 인해 태스크가 중지되었습니다.
TASK_STATE_CANCELED 터미널 작업이 완료되기 전에 취소되었습니다.
TASK_STATE_REJECTED 터미널 원격 에이전트가 요청된 작업을 실행하지 않았습니다.

A2A 스킬, 독립형 스킬, MCP 도구

에이전트 레지스트리는 세 가지 고유한 기능 메커니즘을 색인 생성하므로 각 워크플로에 적합한 통합 패턴을 선택할 수 있습니다.

  • 인라인 A2A 기술: 에이전트의 Agent 검색 리소스에 있는 skills 필드에는 에이전트 카드 내에 삽입된 id, name, description, tags, examples를 포함한 JSON 메타데이터가 포함됩니다. 인라인 A2A 기술은 조정자 에이전트가 A2A 전송을 통해 원격 에이전트에 위임할 수 있는 상위 수준 작업을 알립니다.
  • 독립형 스킬: Agent Registry의 독립적인 Skill 및 SkillRevision 최상위 리소스에는 SKILL.md 파일의 안내와 선택적 스크립트가 포함된 버전이 지정된 ZIP 파일이 포함됩니다. 에이전트는 실행을 다른 에이전트에 위임하는 대신 독립형 기술을 자체 컨텍스트로 다운로드합니다. 인라인 A2A 기술과 독립형 기술을 완전히 비교하려면 독립형 기술과 A2A 기술의 차이점을 참고하세요.
  • MCP 도구: McpServer 검색 리소스의 tools 필드에는 등록된 MCP 서버에서 노출하는 정형 함수 스키마가 포함되어 있습니다. 에이전트는 이 서버를 직접 호출하여 데이터를 쿼리하거나 결정론적 작업을 실행합니다.

런타임 보안, 거버넌스, 에이전트 호출

에이전트 레지스트리는 A2A 에이전트를 검색하는 카탈로그 역할을 합니다. 런타임 인증, 승인, 콘텐츠 검사, 감사 로깅, 할당량 적용은 클라이언트 또는 조정자 에이전트가 대상 에이전트를 호출할 때 발생합니다.

다음 단계