Agent2Agent (A2A) 프로토콜은 에이전트를 위한 개방형 통신 프로토콜이자 범용 언어입니다. 이 프로토콜을 사용하면 서로 다른 빌더와 플랫폼의 에이전트가 서로를 검색하고, 공동작업하고, 작업을 안전하게 위임할 수 있습니다. 이 문서에서는 Gemini Enterprise 관리자가 A2A를 사용하여 빌드되고 모든 플랫폼에서 호스팅되는 에이전트를 Gemini Enterprise에 연결하여 Gemini Enterprise 웹 앱 사용자가 이용할 수 있도록 하는 방법을 설명합니다.
시작하기 전에
다음 항목이 있는지 확인합니다.
Discovery Engine API 사용 설정 Google Cloud프로젝트에 Discovery Engine API를 사용 설정하려면 Google Cloud 콘솔에서 Discovery Engine API 페이지로 이동합니다.
기존 Gemini Enterprise 앱. 앱을 만들려면 앱 만들기를 참조하세요.
A2A 프로토콜을 사용하는 에이전트입니다.
Gemini Enterprise는 A2A v0.3 스트리밍 메커니즘을 지원합니다.
A2A v1.0.0 이상을 사용하는 경우 SDK에서 제공하는 호환성 패키지를 사용하여 에이전트가 이전 메커니즘에서 작동하는지 확인합니다 (예: Go의 경우
a2acompat/a2av0패키지, Python의 경우a2a.compat.v0_3패키지).A2A 에이전트가 Cloud Run에서 호스팅되고, 기본
.run.appURL을 직접 사용하며, 인증이 필요한 경우 Discovery Engine 서비스 에이전트에 Cloud Run 호출자 (roles/run.invoker) 역할을 부여합니다 (Cloud Run이 Apigee, 부하 분산기 또는 커스텀 도메인 뒤에 있는 경우에는 적용되지 않음).gcloud projects add-iam-policy-binding <var>PROJECT_ID</var> \ --member="serviceAccount:service-<var>PROJECT_NUMBER</var>@gcp-sa-discoveryengine.iam.gserviceaccount.com" \ --role="roles/run.invoker"다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.PROJECT_NUMBER: Google Cloud 프로젝트 수
인증 및 승인 구성
에이전트 호스팅 환경 및 보안 요구사항에 따라 Gemini Enterprise가 에이전트를 인증하는 방법, 에이전트가 최종 사용자를 대신하여 리소스에 액세스하는 방법, 에이전트 엔드포인트를 보호하는 방법을 구성할 수 있습니다.
Gemini Enterprise가 에이전트를 인증하는 방법
Gemini Enterprise가 A2A 에이전트를 호출하면 호스팅 및 보안 구성에 따라 요청 헤더에 인증 및 승인 데이터를 전송할 수 있습니다.
| 헤더 | 설명 |
|---|---|
X-Serverless-Authorization |
서비스 간 IAM 인증 (Cloud Run) A2A 에이전트가 Cloud Run에서 호스팅되고 에이전트 URL이 기본 Gemini Enterprise가 기본 |
Authorization |
최종 사용자 OAuth 2.0 승인 (사용자 컨텍스트 및 API 액세스용) A2A 에이전트에 OAuth 2.0 사용자 인증 정보를 구성하는 경우(최종 사용자 승인을 위한 OAuth 2.0 구성 참고) Gemini Enterprise는 로그인한 최종 사용자가 동의를 부여한 후 최종 사용자를 대신하여 OAuth 2.0 액세스 토큰 또는 ID 토큰을 획득하고 이를 표준 Cloud Run은 |
최종 사용자 승인을 위한 OAuth 2.0 구성 (선택사항)
A2A 에이전트의 경우 에이전트가 최종 사용자를 대신하여Google Cloud 리소스에 액세스하거나 작업을 수행해야 하는 경우 OAuth 2.0 사용자 인증 정보를 구성합니다. 인증 및 승인 헤더의 작동 방식에 대한 자세한 내용은 Gemini Enterprise가 에이전트를 인증하는 방법을 참조하세요.
OAuth 클라이언트 ID를 만들려면 다음 단계를 따르세요.
Google Cloud 콘솔의 API 및 서비스 페이지에서 사용자 인증 정보 페이지로 이동합니다.
-
에이전트가 액세스할 데이터 소스가 있는 Google Cloud 프로젝트를 선택합니다. 예를 들어 에이전트가 쿼리할 BigQuery 데이터 세트가 포함된 프로젝트를 선택합니다.
사용자 인증 정보 만들기를 클릭하고 OAuth 클라이언트 ID를 선택합니다.
애플리케이션 유형에서 웹 애플리케이션을 선택합니다.
승인된 리디렉션 URI 섹션에 다음 URI를 추가합니다.
https://vertexaisearch.cloud.google.com/oauth-redirecthttps://vertexaisearch.cloud.google.com/static/oauth/oauth.html
만들기를 클릭합니다.
OAuth 클라이언트 생성됨 패널에서 JSON 다운로드를 클릭합니다. 다운로드한 JSON에는 선택한Google Cloud 프로젝트의
Client ID,Authorization URI,Token URI,Client secret이 포함됩니다. 승인 리소스를 만들려면 이러한 세부정보가 필요합니다.
A2A 에이전트 엔드포인트 보호
Gemini Enterprise가 A2A 에이전트에 전송하는 인증 헤더는 Gemini Enterprise가 에이전트로 인증하는 방법을 참조하세요. 에이전트 엔드포인트 또는 그 앞의 API 게이트웨이를 보호할 때는 다음을 고려하세요.
- 에이전트 카드 보안 스키마: Gemini Enterprise는 에이전트 카드의
securitySchemes및security필드를 사용하여 에이전트를 인증하지 않습니다. - API 키 및 커스텀 헤더: Gemini Enterprise는
apiKey보안 스키마를 지원하지 않으며 에이전트에 전송하는 요청에 정적 API 키 또는 기타 커스텀 헤더 값을 추가하는 방법을 제공하지 않습니다. - 서비스 에이전트 ID 토큰: Gemini Enterprise는 에이전트 URL이
.run.app로 끝나는 기본 Cloud Run URL인 경우에만X-Serverless-Authorization헤더를 전송합니다. 에이전트 URL이 커스텀 도메인, 부하 분산기 또는 API Gateway를 사용하는 경우 Gemini Enterprise는 이 헤더를 전송하지 않습니다. - 최종 사용자 토큰: 에이전트에 OAuth 2.0을 구성하는 경우 Gemini Enterprise는
Authorization헤더에 OAuth 2.0 제공업체의 최종 사용자 토큰을 전송합니다.
Apigee로 Agent Endpoint 보호
Apigee API 프록시를 통해 A2A 에이전트를 노출하는 경우 프록시는 Authorization 헤더에서 최종 사용자 토큰을 수신하지만 X-Serverless-Authorization 헤더는 수신하지 않습니다. 프록시를 보호하려면 다음을 수행합니다.
- Google Cloud OAuth 2.0 클라이언트 ID 또는 서드 파티 OAuth 2.0 제공업체를 사용하여 에이전트에 최종 사용자 승인을 위한 OAuth 2.0을 구성하고 에이전트를 등록할 때 해당 OAuth 2.0 세부정보를 제공합니다. Apigee API 프록시를 보호할 때는 OAuth 2.0을 구성해야 합니다. 등록 중에 승인 단계를 건너뛰지 마세요.
- 에이전트 카드에서
url를 Apigee API 프록시의 URL로 설정합니다. - API 프록시에서 요청을 에이전트로 전달하기 전에
Authorization헤더의 최종 사용자 토큰을 검증합니다. OAuth 2.0 제공업체에서 발급하는 토큰 형식에 따라 Apigee 정책을 선택합니다.- 서명된 JWT 액세스 토큰을 발급하는 서드 파티 OAuth 2.0 제공업체: VerifyJWT 정책을 사용하여 제공업체의 공개 JSON 웹 키 세트 (JWKS) URI에 대해 토큰 서명을 확인하고 발급기관 (
iss) 및 대상 (aud) 클레임을 검증합니다. - Google OAuth 2.0 (
accounts.google.com): Google OAuth 2.0 액세스 토큰 (ya29...)은 서명된 JWT가 아닌 불투명 토큰입니다. ServiceCallout 정책을 사용하여https://oauth2.googleapis.com/tokeninfo를 호출하고 잠재고객(aud) 및scope필드를 확인합니다.
- 서명된 JWT 액세스 토큰을 발급하는 서드 파티 OAuth 2.0 제공업체: VerifyJWT 정책을 사용하여 제공업체의 공개 JSON 웹 키 세트 (JWKS) URI에 대해 토큰 서명을 확인하고 발급기관 (
A2A 에이전트를 Gemini Enterprise에 등록
Google Cloud 콘솔 또는 REST API를 사용하여 A2A 에이전트를 Gemini Enterprise에 등록할 수 있습니다. 이렇게 하면 Gemini Enterprise 앱 내에서 사용자가 에이전트를 사용할 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 A2A 에이전트를 등록하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Gemini Enterprise 페이지로 이동합니다.
에이전트를 등록할 앱의 이름을 클릭합니다.
에이전트 > 에이전트 추가를 클릭합니다.
에이전트 유형 선택 섹션에서 A2A를 통한 커스텀 에이전트의 추가를 클릭합니다.
에이전트 카드 JSON 필드에 에이전트 카드 세부정보를 JSON 형식으로 입력합니다. 사용 가능한 필드의 전체 목록은 Agent2Agent(A2A) 프로토콜 공식 사양을 참조하세요. 다음 예시에서는 필수 입력란만 사용합니다.
예를 들면 다음과 같습니다.
{ "protocolVersion": "0.3", "name": "Hello World Agent", "description": "Just a hello world agent", "url": "https://example.com/myagent", "iconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTkiIGhlaWdodD0iOTkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMyAwaDMzdjMzSDMzeiBNMCAzM2gzM3YzM0gweiBNNjYgMzNoMzN2MzNINjZ6IE0zMyA2NmgzM3YzM0gzM3oiIGZpbGw9ImJsdWUiLz48L3N2Zz4=", "version": "1.0.0", "capabilities": { }, "skills": [ { "id": "data-analysis", "name": "Data Analysis", "description": "Data analysis", "tags": [] } ], "defaultInputModes": [ "text/plain" ], "defaultOutputModes": [ "text/plain" ] }에이전트 세부정보 프리뷰 > 다음을 클릭합니다.
다음 방법 중 하나를 사용하여 설정을 완료합니다.
에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스하도록 하거나 에이전트 엔드포인트에
Authorization헤더가 필요한 경우 (예: Apigee API 프록시를 보호하는 경우) 다음 단계를 따르세요.최종 사용자 승인을 위한 OAuth 2.0 구성(선택사항)에서 생성한 클라이언트 ID, 클라이언트 보안 비밀번호, 승인 URI, 토큰 URI를 입력합니다.
범위를 입력합니다.
마침을 클릭합니다.
에이전트가 사용자 대신 Google Cloud 리소스에 액세스하지 못하도록 하고 Agent Endpoint에
Authorization헤더가 필요하지 않은 경우 건너뛰기 및 완료를 클릭합니다.
REST
REST API를 사용하여 A2A 에이전트를 등록하려면 다음 단계를 따르세요.
Gemini Enterprise에 승인 리소스 추가 (선택사항)
에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스해야 하는 경우 다음 명령어를 실행하여 승인 세부정보 구성 (선택사항) 섹션에서 만든 승인 리소스를 Gemini Enterprise에 등록합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
-d '{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/authorizations/AUTH_ID",
"serverSideOauth2": {
"clientId": "OAUTH_CLIENT_ID",
"clientSecret": "OAUTH_CLIENT_SECRET",
"authorizationUri": "OAUTH_AUTH_URI",
"tokenUri": "OAUTH_TOKEN_URI"
}
}'
다음을 바꿉니다.
PROJECT_ID: 프로젝트의 ID입니다.PROJECT_NUMBER: Google Cloud 프로젝트 수ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).AUTH_ID: 승인 리소스의 ID입니다. 이는 사용자가 정의하는 임의의 영숫자 ID입니다. OAuth 지원이 필요한 에이전트를 등록할 때 이 ID를 나중에 참조해야 합니다.OAUTH_CLIENT_ID: OAuth 사용자 인증 정보를 만들 때 획득한 OAuth 2.0 클라이언트 식별자입니다.OAUTH_CLIENT_SECRET: OAuth 사용자 인증 정보를 만들 때 획득한 OAuth 2.0 클라이언트 보안 비밀번호입니다.OAUTH_AUTH_URI: 승인 URI입니다. 앱을 승인하려면 OAuth 사용자 인증 정보 JSON 파일의 세부정보를 사용하여 특정 승인 URI를 구성합니다. 다음 템플릿을 복사하고 자리표시자를 특정 값으로 바꿉니다.https://accounts.google.com/o/oauth2/v2/auth?client_id=OAUTH_CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=YOUR_CUSTOM_SCOPES&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
YOUR_CUSTOM_SCOPES: 필요한 범위를 추가할 수 있습니다. 예를 들어 다음 OAuth 범위 문자열은 Google Drive 및 Google Docs에 대한 읽기 전용 액세스를 요청합니다.scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments.readonly
OAUTH_TOKEN_URI: OAuth 사용자 인증 정보를 만들 때 획득한 토큰 URI입니다.
승인 URI 매개변수에 관한 자세한 정보
URI가 올바르게 작동하는지 확인하려면 다음 필드를 확인하세요.
| 매개변수 | 가치 또는 액션 |
|---|---|
client_id |
다운로드한 JSON에 있는 client_id로 바꿉니다. |
redirect_uri |
변경하지 마세요. must be
https://vertexaisearch.cloud.google.com/static/oauth/oauth.html. |
scope |
앱이 사용자를 대신하여 액세스해야 하는 Google API 범위를 나열합니다. 예를 들어 BigQuery에 대한 액세스 권한을 부여하려면 여러 범위를 사용하는 경우 공백으로 구분합니다. URL에서는 |
include_granted_scopes |
true이어야 합니다. |
response_type |
승인 코드를 받으려면 code이어야 합니다. |
access_type |
갱신 토큰을 수신하려면 offline로 설정합니다. |
prompt |
사용자에게 항상 동의 화면이 표시되도록 하려면 consent로 설정합니다. |
A2A 에이전트 등록
Gemini Enterprise에서 에이전트를 만들고 등록하려면 agents.create 메서드를 사용합니다. 다음 명령어는 필수 필드만 사용합니다. 사용 가능한 필드의 전체 목록은 Agent2Agent(A2A) 프로토콜 공식 사양을 참조하세요.
다음 명령어를 실행하여 A2A 에이전트를 Gemini Enterprise에 등록합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents \
-d '
{
"name": "AGENT_NAME",
"displayName": "AGENT_DISPLAY_NAME",
"description": "AGENT_DESCRIPTION",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
다음을 바꿉니다.
ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).PROJECT_ID: 프로젝트의 ID입니다.APP_ID: 에이전트를 등록할 앱의 ID입니다.AGENT_NAME: 에이전트의 고유 식별자입니다.AGENT_DISPLAY_NAME: 웹 앱에 표시되는 에이전트의 이름입니다.AGENT_DESCRIPTION: 에이전트가 수행할 수 있는 일에 대한 설명입니다.PROTOCOLVERSION: 에이전트가 지원하는 A2A 프로토콜의 버전입니다. 지원되는 버전에 대한 자세한 내용은 A2A 출시 노트를 참조하세요.AGENT_URL: 에이전트의 엔드포인트 URL입니다.AGENT_VERSION: 에이전트의 버전입니다.INPUT_MODE: 기본 입력 미디어 유형입니다. 예를 들면application/json또는text/plain입니다.OUTPUT_MODE: 기본 출력 미디어 유형입니다. 예를 들면text/plain"또는image/png입니다.CAPABILITIES: 지원되는 A2A 기능이 포함된 JSON 객체입니다. 예를 들면\"streaming\": true또는\"pushNotifications\": false입니다.SKILLS: 에이전트가 제공하는AgentSkill객체 목록입니다.authorizationConfig: 승인 세부정보를 획득했고 에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스하도록 하려면 JSON 리소스에authorization_config필드를 추가합니다.AUTH_ID: Gemini Enterprise에 승인 리소스 추가 섹션에서 AUTH_ID에 사용한 값입니다.
앱에 연결된 에이전트 나열
다음 코드 샘플은 앱에 연결된 모든 에이전트의 세부정보를 가져오는 방법을 보여줍니다.
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents"
변수를 다음 값으로 바꿉니다.
- ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.
- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- LOCATION: 앱의 멀티 리전입니다(
global,us또는eu). - APP_ID: Gemini Enterprise 앱의 ID입니다.
에이전트가 Google에서 사전 빌드되지 않은 경우 응답의 처음 몇 줄에 name 필드가 포함됩니다. 이 필드의 값에는 경로 끝에 있는 에이전트 ID가 포함됩니다. 예를 들어 다음 응답에서 에이전트 ID는 12345678901234567890입니다.
{
"name": "projects/123456/locations/global/collections/default_collection/engines/my-app/assistants/default_assistant/agents/12345678901234567890",
...
}
A2A 에이전트 세부정보 보기
다음 코드 샘플은 Gemini Enterprise에 등록된 에이전트의 세부정보를 가져오는 방법을 보여줍니다.
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"
변수를 다음 값으로 바꿉니다.
- ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.
- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- LOCATION: 앱의 멀티 리전입니다(
global,us또는eu). - APP_ID: Gemini Enterprise 앱의 ID입니다.
- AGENT_ID: 에이전트의 ID입니다. 앱에 연결된 에이전트를 나열하여 에이전트 ID를 확인할 수 있습니다.
A2A 에이전트 업데이트
Google Cloud 콘솔 또는 REST API를 사용하여 Gemini Enterprise에 등록된 기존 A2A 에이전트의 세부정보를 수정할 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 A2A 에이전트를 업데이트하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Gemini Enterprise 페이지로 이동합니다.
업데이트할 에이전트가 포함된 앱의 이름을 클릭합니다.
에이전트를 클릭합니다.
업데이트할 A2A(커스텀) 에이전트의 이름을 클릭한 다음 수정을 클릭합니다.
에이전트 카드 JSON 필드에서 에이전트 카드 세부정보를 JSON 형식으로 업데이트합니다. 사용 가능한 필드의 전체 목록은 Agent2Agent(A2A) 프로토콜 공식 사양을 참조하세요. 다음 예시에서는 필수 입력란만 사용합니다.
예를 들면 다음과 같습니다.
{ "protocolVersion": "0.3", "name": "Hello World Agent", "description": "Just a hello world agent", "url": "https://example.com/myagent", "iconUrl": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTkiIGhlaWdodD0iOTkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmdyYXk7IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zMyAwaDMzdjMzSDMzeiBNMCAzM2gzM3YzM0gweiBNNjYgMzNoMzN2MzNINjZ6IE0zMyA2NmgzM3YzM0gzM3oiIGZpbGw9ImJsdWUiLz48L3N2Zz4=", "version": "1.1.0", "capabilities": { }, "skills": [ { "id": "data-analysis", "name": "Data Analysis", "description": "Data analysis", "tags": [] } ], "defaultInputModes": [ "text/plain" ], "defaultOutputModes": [ "text/plain" ] }저장을 클릭합니다.
REST
Gemini Enterprise에 등록된 A2A 에이전트의 세부정보를 업데이트하려면 agents.patch 메서드를 사용합니다. 다음 명령어는 필수 필드만 사용합니다. 사용 가능한 필드의 전체 목록은 Agent2Agent(A2A) 프로토콜 공식 사양을 참조하세요.
다음 명령어를 실행하여 Gemini Enterprise로 A2A 에이전트를 업데이트합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID \
-d '
{
"name": "AGENT_NAME",
"displayName": "AGENT_DISPLAY_NAME",
"description": "AGENT_DESCRIPTION",
"a2aAgentDefinition": {
"jsonAgentCard": "{\"protocolVersion\":\"PROTOCOLVERSION\",\"name\":\"AGENT_NAME\",\"description\":\"AGENT_DESCRIPTION\",\"url\":\"AGENT_URL\",\"version\":\"AGENT_VERSION\",\"defaultInputModes\":[\"INPUT_MODE\"],\"defaultOutputModes\":[\"OUTPUT_MODE\"],\"capabilities\":{ CAPABILITIES },\"skills\":[SKILLS]}"
},
"authorizationConfig": {
"agentAuthorization": "projects/PROJECT_ID/locations/LOCATION/authorizations/AUTH_ID"
}
}
'
다음을 바꿉니다.
ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
LOCATION: 데이터 스토어의 멀티 리전입니다(global,us또는eu).PROJECT_ID: 프로젝트의 ID입니다.APP_ID: 에이전트를 등록할 앱의 ID입니다.- AGENT_ID: 에이전트의 ID입니다. 앱에 연결된 에이전트를 나열하여 에이전트 ID를 확인할 수 있습니다.
AGENT_NAME: 에이전트의 고유 식별자입니다.AGENT_DISPLAY_NAME: 웹 앱에 표시되는 에이전트의 이름입니다.AGENT_DESCRIPTION: 에이전트가 수행할 수 있는 일에 대한 설명입니다.PROTOCOLVERSION: 에이전트가 지원하는 A2A 프로토콜의 버전입니다. 지원되는 버전에 대한 자세한 내용은 A2A 출시 노트를 참조하세요.AGENT_URL: 에이전트의 엔드포인트 URL입니다.AGENT_VERSION: 에이전트의 버전입니다.INPUT_MODE: 기본 입력 미디어 유형입니다. 예를 들면application/json또는text/plain입니다.OUTPUT_MODE: 기본 출력 미디어 유형입니다. 예를 들면text/plain또는image/png입니다.CAPABILITIES: 지원되는 A2A 기능이 포함된 JSON 객체입니다. 예를 들면\"streaming\": true또는\"pushNotifications\": false입니다.SKILLS: 에이전트가 제공하는AgentSkill객체 목록입니다.authorizationConfig: 승인 세부정보를 획득했고 에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스하도록 하려면 JSON 리소스에authorization_config필드를 추가합니다.AUTH_ID: Gemini Enterprise에 승인 리소스 추가 섹션에서 AUTH_ID에 사용한 값입니다.
A2A 에이전트 삭제
다음 코드 샘플은 앱에 연결된 에이전트를 삭제하는 방법을 보여줍니다.
REST
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents/AGENT_ID"
변수를 다음 값으로 바꿉니다.
- ENDPOINT_LOCATION: API 요청의 멀티 리전입니다. 다음 값 중 하나를 지정합니다.
- 미국 멀티 리전의 경우
us - EU 멀티 리전의 경우
eu - 전역 위치의 경우
global
- 미국 멀티 리전의 경우
- PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
- LOCATION: 앱의 멀티 리전입니다(
global,us또는eu). - APP_ID: Gemini Enterprise 앱의 ID입니다.
- AGENT_ID: 에이전트의 ID입니다. 앱에 연결된 에이전트를 나열하여 에이전트 ID를 확인할 수 있습니다.
다음 단계
- 웹 앱에서 Gemini Enterprise에 등록한 에이전트를 사용합니다.