- JSON 표현
- AgentInterface
- AgentProvider
- AgentCapabilities
- AgentExtension
- SecurityScheme
- APIKeySecurityScheme
- HTTPAuthSecurityScheme
- OAuth2SecurityScheme
- OAuthFlows
- AuthorizationCodeOAuthFlow
- ClientCredentialsOAuthFlow
- ImplicitOAuthFlow
- PasswordOAuthFlow
- DeviceCodeOAuthFlow
- OpenIdConnectSecurityScheme
- MutualTlsSecurityScheme
- SecurityRequirement
- StringList
- AgentSkill
- AgentCardSignature
에이전트의 자체 설명 매니페스트입니다. 여기에는 에이전트의 ID, 기능, 기술, 지원되는 커뮤니케이션 방법, 보안 요구사항 등 필수 메타데이터가 포함됩니다. 다음 ID: 20
| JSON 표현 |
|---|
{ "name": string, "description": string, "supportedInterfaces": [ { object ( |
| 필드 | |
|---|---|
name |
필수 항목입니다. 인간이 읽을 수 있는 에이전트 이름입니다. 예: '레시피 에이전트' |
description |
필수 항목입니다. 사용자와 다른 에이전트가 목적을 이해하는 데 도움이 되는 사람이 읽을 수 있는 에이전트 설명입니다. 예: '사용자가 레시피와 요리를 할 수 있도록 지원하는 에이전트' |
supportedInterfaces[] |
필수 항목입니다. 지원되는 인터페이스의 순서가 지정된 목록입니다. 첫 번째 항목이 선호됩니다. |
provider |
에이전트의 서비스 제공업체입니다. |
version |
필수 항목입니다. 에이전트 버전입니다. 예: '1.0.0' |
capabilities |
필수 항목입니다. 에이전트에서 지원하는 A2A 기능 집합입니다. |
securitySchemes |
이 에이전트로 인증하는 데 사용되는 보안 스킴 세부정보입니다.
|
securityRequirements[] |
상담사에게 문의하기 위한 보안 요구사항입니다. |
defaultInputModes[] |
필수사항입니다. protolint:enable REPEATED_FIELD_NAMES_PLURALIZED 에이전트가 모든 스킬에서 지원하는 상호작용 모드의 집합입니다. 이는 스킬별로 재정의할 수 있습니다. 미디어 유형으로 정의됩니다. |
defaultOutputModes[] |
필수 항목입니다. 이 에이전트에서 출력으로 지원되는 미디어 유형입니다. |
skills[] |
필수 항목입니다. 기술은 상담사의 능력을 나타냅니다. 주로 설명적인 개념이지만 에이전트가 성공할 가능성이 높은 더 집중된 행동을 나타냅니다. |
signatures[] |
이 |
documentationUrl |
에이전트에 관한 추가 문서를 제공하는 URL입니다. |
iconUrl |
선택사항입니다. 에이전트 아이콘의 URL입니다. |
AgentInterface
에이전트와 상호작용하기 위한 대상 URL, 전송, 프로토콜 버전의 조합을 선언합니다. 이를 통해 에이전트는 여러 프로토콜 바인딩 메커니즘을 통해 동일한 기능을 노출할 수 있습니다.
| JSON 표현 |
|---|
{ "url": string, "protocolBinding": string, "tenant": string, "protocolVersion": string } |
| 필드 | |
|---|---|
url |
필수 항목입니다. 이 인터페이스를 사용할 수 있는 URL입니다. 프로덕션에서는 유효한 절대 HTTPS URL이어야 합니다. 예: 'https://api.example.com/a2a/v1', 'https://grpc.example.com/a2a' |
protocolBinding |
필수 항목입니다. 이 URL에서 지원되는 프로토콜 바인딩입니다. 이는 다른 프로토콜 바인딩을 위해 쉽게 확장할 수 있는 개방형 양식 문자열입니다. 공식적으로 지원되는 핵심 모델은 |
tenant |
선택사항입니다. 단일 A2A 엔드포인트 뒤에 여러 에이전트가 제공될 때 요청을 특정 에이전트 또는 테넌트로 라우팅하는 데 사용되는 불투명 문자열입니다. 설정된 경우 클라이언트는 이 인터페이스로 전송되는 모든 요청 메시지의 |
protocolVersion |
필수 항목입니다. 이 인터페이스가 노출하는 A2A 프로토콜의 버전입니다. 지원되는 최신 마이너 버전을 메이저 버전별로 사용합니다. 예: '0.3', '1.0' |
AgentProvider
에이전트의 서비스 제공업체를 나타냅니다.
| JSON 표현 |
|---|
{ "url": string, "organization": string } |
| 필드 | |
|---|---|
url |
필수 항목입니다. 에이전트 제공업체의 웹사이트 또는 관련 문서의 URL입니다. 예: 'https://ai.google.dev' |
organization |
필수 항목입니다. 에이전트 제공업체 조직의 이름입니다. 예: 'Google' |
AgentCapabilities
에이전트가 지원하는 선택적 기능을 정의합니다.
| JSON 표현 |
|---|
{
"extensions": [
{
object ( |
| 필드 | |
|---|---|
extensions[] |
에이전트에서 지원하는 프로토콜 확장 프로그램 목록입니다. |
streaming |
에이전트가 스트리밍 응답을 지원하는지 여부를 나타냅니다. |
pushNotifications |
에이전트가 비동기 작업 업데이트에 대한 푸시 알림 전송을 지원하는지 나타냅니다. |
extendedAgentCard |
인증 시 상담사가 확장된 상담사 카드를 제공하는 것을 지원하는지 여부를 나타냅니다. |
AgentExtension
에이전트가 지원하는 프로토콜 확장 프로그램의 선언입니다.
| JSON 표현 |
|---|
{ "uri": string, "description": string, "required": boolean, "params": { object } } |
| 필드 | |
|---|---|
uri |
확장 프로그램을 식별하는 고유 URI입니다. |
description |
이 에이전트가 확장 프로그램을 사용하는 방식에 대한 사람이 읽을 수 있는 설명입니다. |
required |
true인 경우 클라이언트는 확장 프로그램의 요구사항을 이해하고 준수해야 합니다. |
params |
선택사항입니다. 확장 프로그램별 구성 매개변수입니다. |
SecurityScheme
에이전트의 엔드포인트를 보호하는 데 사용할 수 있는 보안 스키마를 정의합니다. OpenAPI 3.2 보안 스킴 객체를 기반으로 하는 차별화된 유니온 유형입니다. https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object을 참고하세요.
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드
|
|
apiKeySecurityScheme |
API 키 기반 인증입니다. |
httpAuthSecurityScheme |
HTTP 인증 (기본, 베어러 등) |
oauth2SecurityScheme |
OAuth 2.0 인증입니다. |
openIdConnectSecurityScheme |
OpenID Connect 인증입니다. |
mtlsSecurityScheme |
상호 TLS 인증입니다. |
APIKeySecurityScheme
API 키를 사용하여 보안 스키마를 정의합니다.
| JSON 표현 |
|---|
{ "description": string, "location": string, "name": string } |
| 필드 | |
|---|---|
description |
보안 스킴에 대한 설명(선택사항)입니다. |
location |
필수 항목입니다. API 키의 위치입니다. 유효한 값은 'query', 'header' 또는 'cookie'입니다. |
name |
필수 항목입니다. 사용할 헤더, 쿼리 또는 쿠키 매개변수의 이름입니다. |
HTTPAuthSecurityScheme
HTTP 인증을 사용하여 보안 스키마를 정의합니다.
| JSON 표현 |
|---|
{ "description": string, "scheme": string, "bearerFormat": string } |
| 필드 | |
|---|---|
description |
보안 스킴에 대한 설명(선택사항)입니다. |
scheme |
필수 항목입니다. RFC7235에 정의된 대로 Authorization 헤더에 사용될 HTTP 인증 스키마의 이름입니다 (예: 'Bearer'). 이 값은 IANA 인증 체계 레지스트리에 등록되어야 합니다. |
bearerFormat |
보유자 토큰의 형식을 식별하기 위한 클라이언트 힌트입니다 (예: 'JWT'). 주로 문서화 목적으로 사용됩니다. |
OAuth2SecurityScheme
OAuth 2.0을 사용하여 보안 스키마를 정의합니다.
| JSON 표현 |
|---|
{
"description": string,
"flows": {
object ( |
| 필드 | |
|---|---|
description |
보안 스킴에 대한 설명(선택사항)입니다. |
flows |
필수 항목입니다. 지원되는 OAuth 2.0 흐름의 구성 정보가 포함된 객체입니다. |
oauth2MetadataUrl |
OAuth2 승인 서버 메타데이터 RFC 8414의 URL입니다. TLS가 필요합니다. |
OAuthFlows
지원되는 OAuth 2.0 흐름의 구성을 정의합니다.
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드
|
|
authorizationCode |
OAuth 승인 코드 플로우의 구성입니다. |
clientCredentials |
OAuth 클라이언트 사용자 인증 정보 흐름의 구성입니다. |
implicit |
지원 중단됨: 대신 승인 코드 + PKCE를 사용하세요. |
password |
지원 중단됨: 승인 코드 + PKCE 또는 기기 코드를 사용하세요. |
deviceCode |
OAuth 기기 코드 흐름의 구성입니다. |
AuthorizationCodeOAuthFlow
OAuth 2.0 승인 코드 플로우의 구성 세부정보를 정의합니다.
| JSON 표현 |
|---|
{ "authorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... }, "pkceRequired": boolean } |
| 필드 | |
|---|---|
authorizationUrl |
필수 항목입니다. 이 흐름에 사용할 승인 URL입니다. |
tokenUrl |
필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. |
scopes |
필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.
|
pkceRequired |
이 흐름에 PKCE (RFC 7636)가 필요한지 여부를 나타냅니다. PKCE는 항상 공개 클라이언트에 사용해야 하며 모든 클라이언트에 권장됩니다. |
ClientCredentialsOAuthFlow
OAuth 2.0 클라이언트 사용자 인증 정보 흐름의 구성 세부정보를 정의합니다.
| JSON 표현 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
tokenUrl |
필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. |
scopes |
필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.
|
ImplicitOAuthFlow
지원 중단됨: 대신 승인 코드 + PKCE를 사용하세요.
| JSON 표현 |
|---|
{ "authorizationUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
authorizationUrl |
이 흐름에 사용할 승인 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS 사용이 필요합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 매핑입니다. 맵은 비어 있을 수 있습니다(MAY).
|
PasswordOAuthFlow
지원 중단됨: 승인 코드 + PKCE 또는 기기 코드를 사용하세요.
| JSON 표현 |
|---|
{ "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
tokenUrl |
이 흐름에 사용할 토큰 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. URL 형식이어야 합니다(MUST). OAuth2 표준에서는 TLS를 사용해야 합니다. |
scopes |
OAuth2 보안 체계에 사용할 수 있는 범위입니다. 범위 이름과 범위의 간단한 설명 간의 매핑입니다. 맵은 비어 있을 수 있습니다(MAY).
|
DeviceCodeOAuthFlow
OAuth 2.0 기기 코드 흐름 (RFC 8628)의 구성 세부정보를 정의합니다. 이 흐름은 IoT 기기, 사용자가 별도의 기기에서 인증하는 CLI 도구와 같이 입력이 제한된 기기를 위해 설계되었습니다.
| JSON 표현 |
|---|
{ "deviceAuthorizationUrl": string, "tokenUrl": string, "refreshUrl": string, "scopes": { string: string, ... } } |
| 필드 | |
|---|---|
deviceAuthorizationUrl |
필수 항목입니다. 기기 승인 엔드포인트 URL입니다. |
tokenUrl |
필수 항목입니다. 이 흐름에 사용할 토큰 URL입니다. |
refreshUrl |
갱신 토큰을 획득하는 데 사용되는 URL입니다. |
scopes |
필수 항목입니다. OAuth2 보안 체계에 사용할 수 있는 범위입니다.
|
OpenIdConnectSecurityScheme
OpenID Connect를 사용하는 보안 스키마를 정의합니다.
| JSON 표현 |
|---|
{ "description": string, "openIdConnectUrl": string } |
| 필드 | |
|---|---|
description |
보안 스킴에 대한 설명(선택사항)입니다. |
openIdConnectUrl |
필수 항목입니다. OIDC 제공업체의 메타데이터에 대한 OpenID Connect Discovery URL입니다. |
MutualTlsSecurityScheme
mTLS 인증을 사용하여 보안 스키마를 정의합니다.
| JSON 표현 |
|---|
{ "description": string } |
| 필드 | |
|---|---|
description |
보안 스킴에 대한 설명(선택사항)입니다. |
SecurityRequirement
에이전트의 보안 요구사항을 정의합니다.
| JSON 표현 |
|---|
{
"schemes": {
string: {
object ( |
| 필드 | |
|---|---|
schemes |
보안 스키마에서 필수 범위로 매핑되는 맵입니다.
|
StringList
protolint:disable REPEATED_FIELD_NAMES_PLURALIZED 문자열 목록입니다.
| JSON 표현 |
|---|
{ "list": [ string ] } |
| 필드 | |
|---|---|
list[] |
개별 문자열 값입니다. |
AgentSkill
에이전트가 실행할 수 있는 고유한 기능 또는 함수를 나타냅니다.
| JSON 표현 |
|---|
{
"id": string,
"name": string,
"description": string,
"tags": [
string
],
"examples": [
string
],
"inputModes": [
string
],
"outputModes": [
string
],
"securityRequirements": [
{
object ( |
| 필드 | |
|---|---|
id |
필수 항목입니다. 상담사의 기술에 대한 고유 식별자입니다. |
name |
필수 항목입니다. 인간이 읽을 수 있는 스킬 이름입니다. |
description |
필수 항목입니다. 스킬에 대한 자세한 설명입니다. |
tags[] |
필수 항목입니다. 스킬의 기능을 설명하는 키워드 세트입니다. |
examples[] |
이 스킬이 처리할 수 있는 프롬프트 또는 시나리오의 예시입니다. |
inputModes[] |
이 스킬에 지원되는 입력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
outputModes[] |
이 스킬에 지원되는 출력 미디어 유형의 집합으로, 에이전트의 기본값을 재정의합니다. |
securityRequirements[] |
이 스킬에 필요한 보안 스키마입니다. |
AgentCardSignature
AgentCardSignature는 AgentCard의 JWS 서명을 나타냅니다. 이는 RFC 7515 JSON 웹 서명 (JWS)의 JSON 형식을 따릅니다.
| JSON 표현 |
|---|
{ "protected": string, "signature": string, "header": { object } } |
| 필드 | |
|---|---|
protected |
(필수 항목) 필수 항목입니다. 서명의 보호된 JWS 헤더입니다. 항상 base64url로 인코딩된 JSON 객체입니다. |
signature |
필수 항목입니다. 계산된 서명으로, base64url로 인코딩됩니다. |
header |
보호되지 않은 JWS 헤더 값입니다. |