- JSON 표현
- AgentInterface
- AgentProvider
- SecurityScheme
- HTTPAuthSecurityScheme
- OAuth2SecurityScheme
- OAuthFlows
- AuthorizationCodeOAuthFlow
- ClientCredentialsOAuthFlow
- ImplicitOAuthFlow
- PasswordOAuthFlow
- OpenIdConnectSecurityScheme
- MutualTlsSecurityScheme
- 보안
- StringList
- AgentSkill
- AgentCardSignature
AgentCard는 다음과 같은 주요 정보를 전달합니다. - 전체 세부정보 (버전, 이름, 설명, 사용) - 기술: 에이전트가 실행할 수 있는 작업/솔루션 집합 - 에이전트가 지원하는 기본 모달리티/콘텐츠 유형 - 인증 요구사항 다음 ID: 19
| JSON 표현 |
|---|
{ "protocolVersion": string, "name": string, "description": string, "url": string, "preferredTransport": string, "additionalInterfaces": [ { object ( |
| 필드 | |
|---|---|
protocolVersion |
이 에이전트가 지원하는 A2A 프로토콜의 버전입니다. |
name |
인간이 읽을 수 있는 에이전트 이름입니다. 예: '레시피 에이전트' |
description |
에이전트의 작업 도메인/솔루션 공간에 대한 설명입니다. 예: '사용자의 레시피 및 요리를 지원하는 에이전트' |
url |
에이전트가 호스팅되는 주소의 URL입니다. 이는 에이전트가 선언한 기본 엔드포인트를 나타냅니다. |
preferredTransport |
기본 엔드포인트의 전송입니다. 비어 있으면 기본값은 JSONRPC입니다. |
additionalInterfaces[] |
추가 지원되는 전송 발표 클라이언트는 지원되는 전송 중 하나를 사용할 수 있습니다. |
provider |
에이전트의 서비스 제공업체입니다. |
version |
에이전트 버전입니다. 예: '1.0.0' |
documentationUrl |
에이전트에 관한 추가 문서를 제공하는 URL입니다. |
capabilities |
에이전트에서 지원하는 A2A 기능 집합입니다. |
securitySchemes |
이 에이전트로 인증하는 데 사용되는 보안 스킴 세부정보입니다.
|
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[] |
protolint:enable REPEATED_FIELD_NAMES_PLURALIZED 에이전트가 모든 스킬에서 지원하는 상호작용 모드 집합입니다. 이는 스킬별로 재정의할 수 있습니다. MIME 유형으로 정의됩니다. |
defaultOutputModes[] |
이 에이전트에서 출력으로 지원되는 MIME 유형입니다. |
skills[] |
기술은 상담사가 수행할 수 있는 능력의 단위를 나타냅니다. 다소 추상적일 수 있지만 에이전트가 성공할 가능성이 높은 더 집중적인 작업 집합을 나타냅니다. |
supportsAuthenticatedExtendedCard |
사용자가 인증되었을 때 에이전트가 확장된 에이전트 카드 제공을 지원하는지 여부입니다. 즉, .well-known의 카드가 v1.getCard의 카드와 다른지 여부입니다. |
signatures[] |
이 AgentCard에 대해 계산된 JSON 웹 서명입니다. |
iconUrl |
에이전트 아이콘의 선택적 URL입니다. |
AgentInterface
에이전트의 추가 전송 정보를 정의합니다.
| JSON 표현 |
|---|
{ "url": string, "transport": string, "tenant": string } |
| 필드 | |
|---|---|
url |
이 인터페이스가 있는 URL입니다. |
transport |
전송이 이 URL을 지원했습니다. 이는 여러 전송 프로토콜로 쉽게 확장할 수 있는 개방형 형식 문자열입니다. 공식적으로 지원되는 핵심은 JSONRPC, GRPC, HTTP+JSON입니다. |
tenant |
에이전트를 호출할 때 요청에 설정할 테넌트입니다. 실험적이며 1.0 출시를 위해 변경될 수 있습니다. |
AgentProvider
에이전트의 서비스 제공업체에 관한 정보를 나타냅니다.
| JSON 표현 |
|---|
{ "url": string, "organization": string } |
| 필드 | |
|---|---|
url |
제공업체 참조 URL입니다. 예: 'https://ai.google.dev' |
organization |
제공업체의 조직 이름입니다. 예: 'Google' |
SecurityScheme
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드
|
|
apiKeySecurityScheme |
|
httpAuthSecurityScheme |
|
oauth2SecurityScheme |
|
openIdConnectSecurityScheme |
|
mtlsSecurityScheme |
|
HTTPAuthSecurityScheme
| JSON 표현 |
|---|
{ "description": string, "scheme": string, "bearerFormat": string } |
| 필드 | |
|---|---|
description |
이 보안 스키마에 대한 설명입니다. |
scheme |
RFC7235에 정의된 대로 Authorization 헤더에 사용할 HTTP 인증 스키마의 이름입니다. 사용된 값은 IANA 인증 스킴 레지스트리에 등록되어야 합니다(SHOULD). 이 값은 RFC7235에 정의된 대로 대소문자를 구분하지 않습니다. |
bearerFormat |
클라이언트가 베어러 토큰의 형식을 식별하는 데 도움이 되는 힌트입니다. 베어러 토큰은 일반적으로 승인 서버에서 생성되므로 이 정보는 주로 문서화 목적으로 사용됩니다. |
OAuth2SecurityScheme
| JSON 표현 |
|---|
{
"description": string,
"flows": {
object ( |
| 필드 | |
|---|---|
description |
이 보안 스키마에 대한 설명입니다. |
flows |
지원되는 흐름 유형의 구성 정보가 포함된 객체 |
oauth2MetadataUrl |
oauth2 승인 서버 메타데이터 RFC8414의 URL입니다. TLS가 필요합니다. |
OAuthFlows
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드
|
|
authorizationCode |
|
clientCredentials |
|
implicit |
|
password |
|
AuthorizationCodeOAuthFlow
| JSON 표현 |
|---|
{ "authorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
authorizationUrl |
이 흐름에 사용할 승인 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS 사용을 요구합니다. |
tokenUrl |
이 흐름에 사용할 토큰 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 맵입니다. 맵은 비어 있을 수 있습니다(MAY).
|
ClientCredentialsOAuthFlow
| JSON 표현 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
tokenUrl |
이 흐름에 사용할 토큰 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 맵입니다. 맵은 비어 있을 수 있습니다(MAY).
|
ImplicitOAuthFlow
| JSON 표현 |
|---|
{ "authorizationUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
authorizationUrl |
이 흐름에 사용할 승인 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS 사용을 요구합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 맵입니다. 맵은 비어 있을 수 있습니다(MAY).
|
PasswordOAuthFlow
| JSON 표현 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
tokenUrl |
이 흐름에 사용할 토큰 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 맵입니다. 맵은 비어 있을 수 있습니다(MAY).
|
OpenIdConnectSecurityScheme
| JSON 표현 |
|---|
{ "description": string, "openIdConnectUrl": string } |
| 필드 | |
|---|---|
description |
이 보안 스키마에 대한 설명입니다. |
openIdConnectUrl |
[[OpenID-Connect-Discovery]] 제공업체 메타데이터를 검색하는 데 사용되는 잘 알려진 URL입니다. |
MutualTlsSecurityScheme
| JSON 표현 |
|---|
{ "description": string } |
| 필드 | |
|---|---|
description |
이 보안 스키마에 대한 설명입니다. |
보안
| JSON 표현 |
|---|
{
"schemes": {
string: {
object ( |
| 필드 | |
|---|---|
schemes |
|
StringList
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
| JSON 표현 |
|---|
{ "list": [ string ] } |
| 필드 | |
|---|---|
list[] |
|
AgentSkill
AgentSkill은 에이전트가 수행할 수 있는 작업/솔루션 단위를 나타냅니다. 이를 에이전트가 제공하도록 요청받을 수 있는 매우 신뢰할 수 있는 솔루션 유형으로 생각할 수 있습니다. 상담사는 특정 스킬을 언제 어떻게 사용할지 자율적으로 선택할 수 있지만, 클라이언트는 스킬이 정의된 경우 해당 작업 단위를 안정적으로 실행할 수 있다고 확신해야 합니다.
| JSON 표현 |
|---|
{
"id": string,
"name": string,
"description": string,
"tags": [
string
],
"examples": [
string
],
"inputModes": [
string
],
"outputModes": [
string
],
"security": [
{
object ( |
| 필드 | |
|---|---|
id |
이 상담사 내 기술의 고유 식별자입니다. |
name |
기술의 사람이 읽을 수 있는 이름입니다. |
description |
기술 세부정보와 동작에 대한 사람이 읽을 수 있는 설명입니다. |
tags[] |
분류/활용을 개선하기 위한 스킬의 태그 집합입니다. 예: ['cooking', 'customer support', 'billing'] |
examples[] |
이 스킬이 처리하도록 설계된 예시 질문의 집합입니다. 이러한 예는 발신자가 특정 목표를 달성하기 위해 상담사에게 요청을 작성하는 방법을 이해하는 데 도움이 됩니다. 예: ["빵 레시피가 필요해."] |
inputModes[] |
지원되는 가능한 입력 모달리티입니다. |
outputModes[] |
생성된 가능한 출력 모달리티 |
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 |
필수 항목입니다. 서명의 보호된 JWS 헤더입니다. 이는 항상 base64url로 인코딩된 JSON 객체입니다. 필수 항목입니다. |
signature |
필수 항목입니다. 계산된 서명으로, base64url로 인코딩됩니다. 필수 항목입니다. |
header |
보호되지 않은 JWS 헤더 값입니다. |