AgentCard

에이전트의 자체 설명 매니페스트입니다. 여기에는 에이전트의 ID, 기능, 기술, 지원되는 커뮤니케이션 방법, 보안 요구사항 등 필수 메타데이터가 포함됩니다. 다음 ID: 20

JSON 표현
{
  "name": string,
  "description": string,
  "supportedInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "documentationUrl": string,
  "iconUrl": string
}
필드
name

string

필수 항목입니다. 인간이 읽을 수 있는 에이전트 이름입니다. 예: '레시피 에이전트'

description

string

필수 항목입니다. 사용자와 다른 에이전트가 목적을 이해하는 데 도움이 되는 사람이 읽을 수 있는 에이전트 설명입니다. 예: '사용자가 레시피와 요리를 할 수 있도록 지원하는 에이전트'

supportedInterfaces[]

object (AgentInterface)

필수 항목입니다. 지원되는 인터페이스의 순서가 지정된 목록입니다. 첫 번째 항목이 선호됩니다.

provider

object (AgentProvider)

에이전트의 서비스 제공업체입니다.

version

string

필수 항목입니다. 에이전트 버전입니다. 예: '1.0.0'

capabilities

object (AgentCapabilities)

필수 항목입니다. 에이전트에서 지원하는 A2A 기능 집합입니다.

securitySchemes

map (key: string, value: object (SecurityScheme))

이 에이전트로 인증하는 데 사용되는 보안 스킴 세부정보입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

securityRequirements[]

object (SecurityRequirement)

상담사에게 문의하기 위한 보안 요구사항입니다.

defaultInputModes[]

string

필수사항입니다. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED 에이전트가 모든 스킬에서 지원하는 상호작용 모드의 집합입니다. 이는 스킬별로 재정의할 수 있습니다. 미디어 유형으로 정의됩니다.

defaultOutputModes[]

string

필수 항목입니다. 이 에이전트에서 출력으로 지원되는 미디어 유형입니다.

skills[]

object (AgentSkill)

필수 항목입니다. 기술은 상담사의 능력을 나타냅니다. 주로 설명적인 개념이지만 에이전트가 성공할 가능성이 높은 더 집중된 행동을 나타냅니다.

signatures[]

object (AgentCardSignature)

AgentCard에 대해 계산된 JSON 웹 서명입니다.

documentationUrl

string

에이전트에 관한 추가 문서를 제공하는 URL입니다.

iconUrl

string

선택사항입니다. 에이전트 아이콘의 URL입니다.

AgentInterface

에이전트와 상호작용하기 위한 대상 URL, 전송, 프로토콜 버전의 조합을 선언합니다. 이를 통해 에이전트는 여러 프로토콜 바인딩 메커니즘을 통해 동일한 기능을 노출할 수 있습니다.

JSON 표현
{
  "url": string,
  "protocolBinding": string,
  "tenant": string,
  "protocolVersion": string
}
필드
url

string

필수 항목입니다. 이 인터페이스를 사용할 수 있는 URL입니다. 프로덕션에서는 유효한 절대 HTTPS URL이어야 합니다. 예: 'https://api.example.com/a2a/v1', 'https://grpc.example.com/a2a'

protocolBinding

string

필수 항목입니다. 이 URL에서 지원되는 프로토콜 바인딩입니다. 이는 다른 프로토콜 바인딩을 위해 쉽게 확장할 수 있는 개방형 양식 문자열입니다. 공식적으로 지원되는 핵심 모델은 JSONRPC, GRPC, HTTP+JSON입니다.

tenant

string

선택사항입니다. 단일 A2A 엔드포인트 뒤에 여러 에이전트가 제공될 때 요청을 특정 에이전트 또는 테넌트로 라우팅하는 데 사용되는 불투명 문자열입니다. 설정된 경우 클라이언트는 이 인터페이스로 전송되는 모든 요청 메시지의 tenant 필드에 이 값을 포함해야 합니다(MUST). 서버는 값을 해석하고 그에 따라 요청을 라우팅해야 합니다. 프로토콜은 형식이나 의미를 정의하지 않습니다.

protocolVersion

string

필수 항목입니다. 이 인터페이스가 노출하는 A2A 프로토콜의 버전입니다. 지원되는 최신 마이너 버전을 메이저 버전별로 사용합니다. 예: '0.3', '1.0'

AgentProvider

에이전트의 서비스 제공업체를 나타냅니다.

JSON 표현
{
  "url": string,
  "organization": string
}
필드
url

string

필수 항목입니다. 에이전트 제공업체의 웹사이트 또는 관련 문서의 URL입니다. 예: 'https://ai.google.dev'

organization

string

필수 항목입니다. 에이전트 제공업체 조직의 이름입니다. 예: 'Google'

AgentCapabilities

에이전트가 지원하는 선택적 기능을 정의합니다.

JSON 표현
{
  "extensions": [
    {
      object (AgentExtension)
    }
  ],
  "streaming": boolean,
  "pushNotifications": boolean,
  "extendedAgentCard": boolean
}
필드
extensions[]

object (AgentExtension)

에이전트에서 지원하는 프로토콜 확장 프로그램 목록입니다.

streaming

boolean

에이전트가 스트리밍 응답을 지원하는지 여부를 나타냅니다.

pushNotifications

boolean

에이전트가 비동기 작업 업데이트에 대한 푸시 알림 전송을 지원하는지 나타냅니다.

extendedAgentCard

boolean

인증 시 상담사가 확장된 상담사 카드를 제공하는 것을 지원하는지 여부를 나타냅니다.

AgentExtension

에이전트가 지원하는 프로토콜 확장 프로그램의 선언입니다.

JSON 표현
{
  "uri": string,
  "description": string,
  "required": boolean,
  "params": {
    object
  }
}
필드
uri

string

확장 프로그램을 식별하는 고유 URI입니다.

description

string

이 에이전트가 확장 프로그램을 사용하는 방식에 대한 사람이 읽을 수 있는 설명입니다.

required

boolean

true인 경우 클라이언트는 확장 프로그램의 요구사항을 이해하고 준수해야 합니다.

params

object (Struct format)

선택사항입니다. 확장 프로그램별 구성 매개변수입니다.

SecurityScheme

에이전트의 엔드포인트를 보호하는 데 사용할 수 있는 보안 스키마를 정의합니다. OpenAPI 3.2 보안 스킴 객체를 기반으로 하는 차별화된 유니온 유형입니다. https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object을 참고하세요.

JSON 표현
{

  // Union field scheme can be only one of the following:
  "apiKeySecurityScheme": {
    object (APIKeySecurityScheme)
  },
  "httpAuthSecurityScheme": {
    object (HTTPAuthSecurityScheme)
  },
  "oauth2SecurityScheme": {
    object (OAuth2SecurityScheme)
  },
  "openIdConnectSecurityScheme": {
    object (OpenIdConnectSecurityScheme)
  },
  "mtlsSecurityScheme": {
    object (MutualTlsSecurityScheme)
  }
  // End of list of possible types for union field scheme.
}
필드

통합 필드 scheme.

scheme는 다음 중 하나여야 합니다.

apiKeySecurityScheme

object (APIKeySecurityScheme)

API 키 기반 인증입니다.

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

HTTP 인증 (기본, 베어러 등)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

OAuth 2.0 인증입니다.

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

OpenID Connect 인증입니다.

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

상호 TLS 인증입니다.

APIKeySecurityScheme

API 키를 사용하여 보안 스키마를 정의합니다.

JSON 표현
{
  "description": string,
  "location": string,
  "name": string
}
필드
description

string

보안 스킴에 대한 설명(선택사항)입니다.

location

string

필수 항목입니다. API 키의 위치입니다. 유효한 값은 'query', 'header' 또는 'cookie'입니다.

name

string

필수 항목입니다. 사용할 헤더, 쿼리 또는 쿠키 매개변수의 이름입니다.

HTTPAuthSecurityScheme

HTTP 인증을 사용하여 보안 스키마를 정의합니다.

JSON 표현
{
  "description": string,
  "scheme": string,
  "bearerFormat": string
}
필드
description

string

보안 스킴에 대한 설명(선택사항)입니다.

scheme

string

필수 항목입니다. RFC7235에 정의된 대로 Authorization 헤더에 사용될 HTTP 인증 스키마의 이름입니다 (예: 'Bearer'). 이 값은 IANA 인증 체계 레지스트리에 등록되어야 합니다.

bearerFormat

string

보유자 토큰의 형식을 식별하기 위한 클라이언트 힌트입니다 (예: 'JWT'). 주로 문서화 목적으로 사용됩니다.

OAuth2SecurityScheme

OAuth 2.0을 사용하여 보안 스키마를 정의합니다.

JSON 표현
{
  "description": string,
  "flows": {
    object (OAuthFlows)
  },
  "oauth2MetadataUrl": string
}
필드
description

string

보안 스킴에 대한 설명(선택사항)입니다.

flows

object (OAuthFlows)

필수 항목입니다. 지원되는 OAuth 2.0 흐름의 구성 정보가 포함된 객체입니다.

oauth2MetadataUrl

string

OAuth2 승인 서버 메타데이터 RFC 8414의 URL입니다. TLS가 필요합니다.

OAuthFlows

지원되는 OAuth 2.0 흐름의 구성을 정의합니다.

JSON 표현
{

  // Union field flow can be only one of the following:
  "authorizationCode": {
    object (AuthorizationCodeOAuthFlow)
  },
  "clientCredentials": {
    object (ClientCredentialsOAuthFlow)
  },
  "implicit": {
    object (ImplicitOAuthFlow)
  },
  "password": {
    object (PasswordOAuthFlow)
  },
  "deviceCode": {
    object (DeviceCodeOAuthFlow)
  }
  // End of list of possible types for union field flow.
}
필드

통합 필드 flow.

flow는 다음 중 하나여야 합니다.

authorizationCode

object (AuthorizationCodeOAuthFlow)

OAuth 승인 코드 플로우의 구성입니다.

clientCredentials

object (ClientCredentialsOAuthFlow)

OAuth 클라이언트 사용자 인증 정보 흐름의 구성입니다.

implicit
(deprecated)

object (ImplicitOAuthFlow)

지원 중단됨: 대신 승인 코드 + PKCE를 사용하세요.

password
(deprecated)

object (PasswordOAuthFlow)

지원 중단됨: 승인 코드 + PKCE 또는 기기 코드를 사용하세요.

deviceCode

object (DeviceCodeOAuthFlow)

OAuth 기기 코드 흐름의 구성입니다.

AuthorizationCodeOAuthFlow

OAuth 2.0 승인 코드 플로우의 구성 세부정보를 정의합니다.

JSON 표현
{
  "authorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  },
  "pkceRequired": boolean
}
필드
authorizationUrl

string

필수 항목입니다. 이 흐름에 사용할 승인 URL입니다.

tokenUrl

string

필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다.

refreshUrl

string

갱신 토큰을 획득하는 데 사용되는 URL입니다.

scopes

map (key: string, value: string)

필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

pkceRequired

boolean

이 흐름에 PKCE (RFC 7636)가 필요한지 여부를 나타냅니다. PKCE는 항상 공개 클라이언트에 사용해야 하며 모든 클라이언트에 권장됩니다.

ClientCredentialsOAuthFlow

OAuth 2.0 클라이언트 사용자 인증 정보 흐름의 구성 세부정보를 정의합니다.

JSON 표현
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
필드
tokenUrl

string

필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다.

refreshUrl

string

갱신 토큰을 획득하는 데 사용되는 URL입니다.

scopes

map (key: string, value: string)

필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

ImplicitOAuthFlow

지원 중단됨: 대신 승인 코드 + PKCE를 사용하세요.

JSON 표현
{
  "authorizationUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
필드
authorizationUrl

string

이 흐름에 사용할 승인 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS 사용이 필요합니다.

refreshUrl

string

갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다.

scopes

map (key: string, value: string)

OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 매핑입니다. 맵은 비어 있을 수 있습니다(MAY).

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

PasswordOAuthFlow

지원 중단됨: 승인 코드 + PKCE 또는 기기 코드를 사용하세요.

JSON 표현
{
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
필드
tokenUrl

string

이 흐름에 사용할 토큰 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다.

refreshUrl

string

갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다.

scopes

map (key: string, value: string)

OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 매핑입니다. 맵은 비어 있을 수 있습니다(MAY).

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

DeviceCodeOAuthFlow

OAuth 2.0 기기 코드 흐름 (RFC 8628)의 구성 세부정보를 정의합니다. 이 흐름은 IoT 기기, 사용자가 별도의 기기에서 인증하는 CLI 도구와 같이 입력이 제한된 기기를 위해 설계되었습니다.

JSON 표현
{
  "deviceAuthorizationUrl": string,
  "tokenUrl": string,
  "refreshUrl": string,
  "scopes": {
    string: string,
    ...
  }
}
필드
deviceAuthorizationUrl

string

필수 항목입니다. 기기 승인 엔드포인트 URL입니다.

tokenUrl

string

필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다.

refreshUrl

string

갱신 토큰을 획득하는 데 사용되는 URL입니다.

scopes

map (key: string, value: string)

필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

OpenIdConnectSecurityScheme

OpenID Connect를 사용하는 보안 스키마를 정의합니다.

JSON 표현
{
  "description": string,
  "openIdConnectUrl": string
}
필드
description

string

보안 스킴에 대한 설명(선택사항)입니다.

openIdConnectUrl

string

필수 항목입니다. OIDC 제공업체의 메타데이터에 대한 OpenID Connect Discovery URL입니다.

MutualTlsSecurityScheme

mTLS 인증을 사용하여 보안 스키마를 정의합니다.

JSON 표현
{
  "description": string
}
필드
description

string

보안 스킴에 대한 설명(선택사항)입니다.

SecurityRequirement

에이전트의 보안 요구사항을 정의합니다.

JSON 표현
{
  "schemes": {
    string: {
      object (StringList)
    },
    ...
  }
}
필드
schemes

map (key: string, value: object (StringList))

보안 스키마에서 필수 범위로 매핑되는 맵입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

StringList

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 문자열 목록입니다.

JSON 표현
{
  "list": [
    string
  ]
}
필드
list[]

string

개별 문자열 값입니다.

AgentSkill

에이전트가 실행할 수 있는 고유한 기능 또는 함수를 나타냅니다.

JSON 표현
{
  "id": string,
  "name": string,
  "description": string,
  "tags": [
    string
  ],
  "examples": [
    string
  ],
  "inputModes": [
    string
  ],
  "outputModes": [
    string
  ],
  "securityRequirements": [
    {
      object (SecurityRequirement)
    }
  ]
}
필드
id

string

필수 항목입니다. 상담사의 기술에 대한 고유 식별자입니다.

name

string

필수 항목입니다. 인간이 읽을 수 있는 스킬 이름입니다.

description

string

필수 항목입니다. 스킬에 대한 자세한 설명입니다.

tags[]

string

필수 항목입니다. 스킬의 기능을 설명하는 키워드 세트입니다.

examples[]

string

이 스킬이 처리할 수 있는 프롬프트 또는 시나리오의 예시입니다.

inputModes[]

string

이 스킬에 지원되는 입력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다.

outputModes[]

string

이 스킬에 지원되는 출력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다.

securityRequirements[]

object (SecurityRequirement)

이 스킬에 필요한 보안 스키마입니다.

AgentCardSignature

AgentCardSignature는 AgentCard의 JWS 서명을 나타냅니다. 이는 RFC 7515 JSON 웹 서명 (JWS)의 JSON 형식을 따릅니다.

JSON 표현
{
  "protected": string,
  "signature": string,
  "header": {
    object
  }
}
필드
protected

string

(필수 항목) 필수 항목입니다. 서명의 보호된 JWS 헤더입니다. 항상 base64url로 인코딩된 JSON 객체입니다.

signature

string

필수 항목입니다. 계산된 서명으로, base64url로 인코딩됩니다.

header

object (Struct format)

보호되지 않은 JWS 헤더 값입니다.