AgentCard

AgentCard는 다음과 같은 주요 정보를 전달합니다. - 전체 세부정보 (버전, 이름, 설명, 사용) - 기술: 에이전트가 실행할 수 있는 작업/솔루션 집합 - 에이전트가 지원하는 기본 모달리티/콘텐츠 유형 - 인증 요구사항 다음 ID: 19

JSON 표현
{
  "protocolVersion": string,
  "name": string,
  "description": string,
  "url": string,
  "preferredTransport": string,
  "additionalInterfaces": [
    {
      object (AgentInterface)
    }
  ],
  "provider": {
    object (AgentProvider)
  },
  "version": string,
  "documentationUrl": string,
  "capabilities": {
    object (AgentCapabilities)
  },
  "securitySchemes": {
    string: {
      object (SecurityScheme)
    },
    ...
  },
  "security": [
    {
      object (Security)
    }
  ],
  "defaultInputModes": [
    string
  ],
  "defaultOutputModes": [
    string
  ],
  "skills": [
    {
      object (AgentSkill)
    }
  ],
  "supportsAuthenticatedExtendedCard": boolean,
  "signatures": [
    {
      object (AgentCardSignature)
    }
  ],
  "iconUrl": string
}
필드
protocolVersion

string

이 에이전트가 지원하는 A2A 프로토콜의 버전입니다.

name

string

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

description

string

에이전트의 작업 도메인/솔루션 공간에 대한 설명입니다. 예: '사용자의 레시피 및 요리를 지원하는 에이전트'

url

string

에이전트가 호스팅되는 주소의 URL입니다. 이는 에이전트가 선언한 기본 엔드포인트를 나타냅니다.

preferredTransport

string

기본 엔드포인트의 전송입니다. 비어 있으면 기본값은 JSONRPC입니다.

additionalInterfaces[]

object (AgentInterface)

추가 지원되는 전송 발표 클라이언트는 지원되는 전송 중 하나를 사용할 수 있습니다.

provider

object (AgentProvider)

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

version

string

에이전트 버전입니다. 예: '1.0.0'

documentationUrl

string

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

capabilities

object (AgentCapabilities)

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

securitySchemes

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

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

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

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 상담사에게 문의하기 위한 보안 요구사항 이 목록은 AND의 OR로 볼 수 있습니다. 목록의 각 객체는 요청에 있어야 하는 가능한 보안 요구사항 집합을 설명합니다. 이를 통해 예를 들어 '호출자는 OAuth 또는 API 키와 mTLS를 사용해야 합니다'를 지정할 수 있습니다. 예: security { schemes { key: "oauth" value { list: ["read"] } } } security { schemes { key: "api-key" } schemes { key: "mtls" } }

defaultInputModes[]

string

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

defaultOutputModes[]

string

이 에이전트에서 출력으로 지원되는 MIME 유형입니다.

skills[]

object (AgentSkill)

기술은 상담사가 수행할 수 있는 능력의 단위를 나타냅니다. 다소 추상적일 수 있지만 에이전트가 성공할 가능성이 높은 더 집중적인 작업 집합을 나타냅니다.

supportsAuthenticatedExtendedCard

boolean

사용자가 인증되었을 때 에이전트가 확장된 에이전트 카드 제공을 지원하는지 여부입니다. 즉, .well-known의 카드가 v1.getCard의 카드와 다른지 여부입니다.

signatures[]

object (AgentCardSignature)

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

iconUrl

string

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

AgentInterface

에이전트의 추가 전송 정보를 정의합니다.

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

string

이 인터페이스가 있는 URL입니다.

transport

string

전송이 이 URL을 지원했습니다. 이는 여러 전송 프로토콜로 쉽게 확장할 수 있는 개방형 형식 문자열입니다. 공식적으로 지원되는 핵심은 JSONRPC, GRPC, HTTP+JSON입니다.

tenant

string

에이전트를 호출할 때 요청에 설정할 테넌트입니다. 실험적이며 1.0 출시를 위해 변경될 수 있습니다.

AgentProvider

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

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

string

제공업체 참조 URL입니다. 예: 'https://ai.google.dev'

organization

string

제공업체의 조직 이름입니다. 예: 'Google'

SecurityScheme

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)

httpAuthSecurityScheme

object (HTTPAuthSecurityScheme)

oauth2SecurityScheme

object (OAuth2SecurityScheme)

openIdConnectSecurityScheme

object (OpenIdConnectSecurityScheme)

mtlsSecurityScheme

object (MutualTlsSecurityScheme)

HTTPAuthSecurityScheme

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

string

이 보안 스키마에 대한 설명입니다.

scheme

string

RFC7235에 정의된 대로 Authorization 헤더에 사용할 HTTP 인증 스키마의 이름입니다. 사용된 값은 IANA 인증 스킴 레지스트리에 등록되어야 합니다(SHOULD). 이 값은 RFC7235에 정의된 대로 대소문자를 구분하지 않습니다.

bearerFormat

string

클라이언트가 베어러 토큰의 형식을 식별하는 데 도움이 되는 힌트입니다. 베어러 토큰은 일반적으로 승인 서버에서 생성되므로 이 정보는 주로 문서화 목적으로 사용됩니다.

OAuth2SecurityScheme

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

string

이 보안 스키마에 대한 설명입니다.

flows

object (OAuthFlows)

지원되는 흐름 유형의 구성 정보가 포함된 객체

oauth2MetadataUrl

string

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

OAuthFlows

JSON 표현
{

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

통합 필드 flow.

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

authorizationCode

object (AuthorizationCodeOAuthFlow)

clientCredentials

object (ClientCredentialsOAuthFlow)

implicit

object (ImplicitOAuthFlow)

password

object (PasswordOAuthFlow)

AuthorizationCodeOAuthFlow

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

string

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

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

ClientCredentialsOAuthFlow

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

ImplicitOAuthFlow

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

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

OpenIdConnectSecurityScheme

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

string

이 보안 스키마에 대한 설명입니다.

openIdConnectUrl

string

[[OpenID-Connect-Discovery]] 제공업체 메타데이터를 검색하는 데 사용되는 잘 알려진 URL입니다.

MutualTlsSecurityScheme

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

string

이 보안 스키마에 대한 설명입니다.

보안

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

AgentSkill은 에이전트가 수행할 수 있는 작업/솔루션 단위를 나타냅니다. 이를 에이전트가 제공하도록 요청받을 수 있는 매우 신뢰할 수 있는 솔루션 유형으로 생각할 수 있습니다. 상담사는 특정 스킬을 언제 어떻게 사용할지 자율적으로 선택할 수 있지만, 클라이언트는 스킬이 정의된 경우 해당 작업 단위를 안정적으로 실행할 수 있다고 확신해야 합니다.

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

string

이 상담사 내 기술의 고유 식별자입니다.

name

string

기술의 사람이 읽을 수 있는 이름입니다.

description

string

기술 세부정보와 동작에 대한 사람이 읽을 수 있는 설명입니다.

tags[]

string

분류/활용을 개선하기 위한 스킬의 태그 집합입니다. 예: ['cooking', 'customer support', 'billing']

examples[]

string

이 스킬이 처리하도록 설계된 예시 질문의 집합입니다. 이러한 예는 발신자가 특정 목표를 달성하기 위해 상담사에게 요청을 작성하는 방법을 이해하는 데 도움이 됩니다. 예: ["빵 레시피가 필요해."]

inputModes[]

string

지원되는 가능한 입력 모달리티입니다.

outputModes[]

string

생성된 가능한 출력 모달리티

security[]

object (Security)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 에이전트가 이 스킬을 활용하는 데 필요한 보안 스키마입니다. 전체 AgentCard.security와 마찬가지로 이 목록은 보안 요구사항 객체의 논리적 OR을 나타냅니다. 각 객체는 함께 사용해야 하는 보안 스킴 집합입니다 (논리적 AND). protolint:enable REPEATED_FIELD_NAMES_PLURALIZED

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 헤더 값입니다.