Vertex AI Agent Engine에서 호스팅되는 ADK 에이전트 등록 및 관리

이 페이지에서는 Gemini Enterprise 관리자가 Vertex AI Agent Engine에서 호스팅되는 에이전트 개발 키트(ADK) 에이전트를 등록하여 Gemini Enterprise 웹 앱의 사용자에게 제공할 수 있는 방법을 설명합니다.

시작하기 전에

다음 항목이 있는지 확인합니다.

승인 세부정보 구성

에이전트가 사용자를 대신하여 BigQuery 테이블과 같은 Google Cloud 리소스에 액세스할 수 있도록 OAuth 2.0 사용자 인증 정보를 만듭니다.

승인 세부정보 가져오기

다음 단계에 따라 승인 세부정보를 가져오세요.

  1. Google Cloud 콘솔의 API 및 서비스 페이지에서 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보로 이동

  2. 에이전트가 액세스할 데이터 소스가 있는 Google Cloud 프로젝트를 선택합니다. 예를 들어 에이전트가 쿼리할 BigQuery 데이터 세트가 포함된 프로젝트를 선택합니다.

  3. 사용자 인증 정보 만들기를 클릭하고 OAuth 클라이언트 ID를 선택합니다.

  4. 애플리케이션 유형에서 웹 애플리케이션을 선택합니다.

  5. 승인된 리디렉션 URI 섹션에 다음 URI를 추가합니다.

    • https://vertexaisearch.cloud.google.com/oauth-redirect
    • https://vertexaisearch.cloud.google.com/static/oauth/oauth.html
  6. 만들기를 클릭합니다.

  7. OAuth 클라이언트 생성됨 패널에서 JSON 다운로드를 클릭합니다. 다운로드한 JSON에는 선택한Google Cloud 프로젝트의 Client ID, Authorization URI, Token URI, Client secret이 포함됩니다. 승인 리소스를 만들려면 이러한 세부정보가 필요합니다.

Gemini Enterprise에 승인 리소스 추가

다음 명령어를 실행하여 Gemini Enterprise에 승인 리소스를 등록합니다.

REST

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_ID/locations/LOCATION/authorizations?authorizationId=AUTH_ID" \
   -d '{
      "name": "projects/PROJECT_ID/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입니다.
  • 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: OAuth 사용자 인증 정보를 만들 때 획득한 승인 URI입니다. 형식은 다음과 같습니다. https://accounts.google.com/o/oauth2/v2/auth?client_id=CLIENT_ID&redirect_uri=https%3A%2F%2Fvertexaisearch.cloud.google.com%2Fstatic%2Foauth%2Foauth.html&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent
  • OAUTH_TOKEN_URI: OAuth 사용자 인증 정보를 만들 때 획득한 토큰 URI입니다.

ADK 에이전트를 Gemini Enterprise에 등록

Google Cloud 콘솔 또는 REST API를 사용하여 ADK 에이전트를 Gemini Enterprise에 등록할 수 있습니다. 이렇게 하면 Gemini Enterprise 앱 내에서 사용자가 에이전트를 사용할 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 ADK 에이전트를 등록하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Gemini Enterprise 페이지로 이동합니다.

    Gemini Enterprise

  2. 에이전트를 등록할 앱의 이름을 클릭합니다.

  3. 에이전트 > 에이전트 추가를 클릭합니다.

  4. 에이전트 유형 선택 섹션에서 Agent Engine을 통한 커스텀 에이전트추가를 클릭합니다.

  5. 에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스하도록 하려면 다음 단계를 따르세요.

    1. 승인 추가를 클릭합니다.

    2. 승인 이름에 고유한 값을 입력합니다. ID는 이름을 기반으로 생성되며 나중에 변경할 수 없습니다.

    3. 승인 세부정보 가져오기 섹션에서 생성한 클라이언트 ID, 클라이언트 보안 비밀번호, 승인 URI, 토큰 URI를 입력합니다.

    4. 승인 추가를 클릭합니다.

  6. 다음을 클릭합니다.

  7. 에이전트를 구성하려면 다음 단계를 따르세요.

    1. 에이전트 이름 필드에 이름을 입력합니다. 이 값은 Gemini Enterprise 웹 앱에 에이전트의 표시 이름으로 표시됩니다.

    2. 에이전트 설명 필드에 설명을 입력합니다. 이 값은 사용자 쿼리에 대한 응답으로 사용자의 에이전트를 호출할지 여부를 결정하기 위해 LLM에서 사용됩니다.

    3. Agent Engine 추론 엔진 리소스 경로를 입력합니다. 리소스 경로의 형식은 다음과 같습니다.

          https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/ADK_RESOURCE_ID
       

      Vertex AI Agent Engine에서 호스팅되는 에이전트를 나열하고 리소스 경로를 가져오는 방법에 대한 자세한 내용은 배포된 에이전트 나열을 참조하세요.

    4. 도구 설정을 구성합니다.

      1. 도구 설명 필드에 설명을 입력합니다. 이 설명은 LLM이 도구의 목적을 이해하고 도구를 사용할 시기를 결정하는 데 사용됩니다.

      2. 입력 파라미터 이름 필드에 이름을 입력합니다. 함수 호출의 파라미터 이름입니다. 이 파라미터 이름은 LLM에 question, command, search_query와 같은 예상 입력 유형에 대한 힌트를 제공합니다.

      3. 입력 파라미터 설명 필드에 설명을 입력합니다. 이 파라미터 설명은 예상되는 콘텐츠, 수행할 작업 등 파라미터에 관한 추가 정보를 LLM에 제공합니다.

    5. 만들기를 클릭합니다.

REST

이 코드 샘플은 ADK 에이전트를 등록하는 방법을 보여줍니다.

   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_ID/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant/agents" \
      -d '{
         "displayName": "DISPLAY_NAME",
         "description": "DESCRIPTION",
         "icon": {
            "uri": "ICON_URI"
      },
      "adk_agent_definition": {
         "provisioned_reasoning_engine": {
            "reasoning_engine":
            "projects/PROJECT_ID/locations/REASONING_ENGINE_LOCATION/reasoningEngines/ADK_RESOURCE_ID"
         }
      },
   "authorization_config": {


   "tool_authorizations": [
   "projects/PROJECT_ID/locations/global/authorizations/AUTH_ID"
   ]
   }
   }'

변수를 다음 값으로 바꿉니다.

  • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.

    • 미국 멀티 리전의 경우 us-
    • EU 멀티 리전의 경우 eu-
    • 전역 위치의 경우 global-
    자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.

  • APP_ID: Gemini Enterprise 앱의 고유 식별자입니다.

  • DESCRIPTION: Gemini Enterprise에 표시되는 에이전트의 설명입니다.

  • ICON_URI: 에이전트 이름 근처에 표시할 아이콘의 공개 URI입니다. 또는 Base64로 인코딩된 이미지 파일 콘텐츠를 전달할 수 있으며, 이 경우 icon.content를 사용합니다.

  • ADK_RESOURCE_ID: ADK 에이전트가 배포된 추론 엔진 엔드포인트의 ID입니다. Vertex AI Agent Engine에서 호스팅되는 에이전트를 나열하고 리소스 ID를 가져오는 방법에 대한 자세한 내용은 배포된 에이전트 나열을 참조하세요.

  • REASONING_ENGINE_LOCATION: 추론 엔진의 클라우드 위치입니다. 자세한 내용은 추론 엔진 위치를 참조하세요.

  • authorizationConfig: 승인 세부정보를 획득했고 에이전트가 사용자를 대신하여 Google Cloud 리소스에 액세스하도록 하려면 JSON 리소스에 authorization_config 필드를 추가합니다.

     * <code><var>AUTH_ID</var></code>: the value that you used for
        <var>AUTH_ID</var> in the [Configure authorization details](#authorize-your-adk-agent)
        section.
    

앱에 연결된 에이전트 나열

다음 코드 샘플은 앱에 연결된 모든 에이전트의 세부정보를 가져오는 방법을 보여줍니다.

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

ADK 에이전트 세부정보 보기

다음 코드 샘플은 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를 확인할 수 있습니다.

ADK 에이전트 업데이트

Google Cloud 콘솔 또는 REST API를 사용하여 Gemini Enterprise에 등록된 기존 에이전트의 세부정보를 수정할 수 있습니다.

콘솔

Google Cloud 콘솔을 사용하여 에이전트를 업데이트하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Gemini Enterprise 페이지로 이동합니다.

    Gemini Enterprise

  2. 업데이트할 에이전트가 포함된 앱의 이름을 클릭합니다.

  3. 에이전트를 클릭합니다.

  4. 업데이트할 에이전트 엔진 에이전트의 이름을 클릭한 다음 수정을 클릭합니다.

  5. 표시 이름, 설명 또는 에이전트 엔진 추론 엔진을 업데이트합니다.

    리소스 경로의 형식은 다음과 같습니다.

      https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/ADK_RESOURCE_ID
    

    Vertex AI Agent Engine에서 호스팅되는 에이전트를 나열하고 리소스 경로를 가져오는 방법에 대한 자세한 내용은 배포된 에이전트 나열을 참조하세요.

  6. 저장을 클릭합니다.

REST

에이전트 등록 중에 모든 필드를 업데이트할 수 있습니다. 하지만 다음 필드는 반드시 업데이트해야 합니다.

  • displayName
  • description
  • reasoningEngine

    이 코드 샘플은 기존 ADK 에이전트의 등록을 업데이트하는 방법을 보여줍니다.

    curl -X PATCH \
       -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/AGENT_RESOURCE_NAME" \
       -d '{
             "displayName": "DISPLAY_NAME",
             "description": "DESCRIPTION",
             "adkAgentDefinition": {
             "provisionedReasoningEngine": {
                "reasoningEngine":
                "projects/PROJECT_ID/locations/REASONING_ENGINE_LOCATION/reasoningEngine
                s/ADK_RESOURCE_ID"
             },
          }
    }'
    

    변수를 다음 값으로 바꿉니다.

  • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.

    • 미국 멀티 리전의 경우 us-
    • EU 멀티 리전의 경우 eu-
    • 전역 위치의 경우 global-
    자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.

  • AGENT_RESOURCE_NAME: 업데이트할 에이전트 등록의 리소스 이름입니다.

  • DISPLAY_NAME: 필수 항목입니다. Gemini Enterprise에 표시되는 에이전트의 사용자 친화적인 이름입니다.

  • DESCRIPTION: 필수 항목입니다. Gemini Enterprise의 사용자에게 표시되는 에이전트의 기능을 간략하게 설명합니다.

  • REASONING_ENGINE_LOCATION: 필수 항목입니다. 에이전트를 만들 추론 엔진의 클라우드 위치입니다. 자세한 내용은 추론 엔진 위치를 참조하세요.

  • ADK_RESOURCE_ID: ADK 에이전트가 배포된 추론 엔진 엔드포인트의 ID입니다. Vertex AI Agent Engine에서 호스팅되는 에이전트를 나열하고 리소스 ID를 가져오는 방법에 대한 자세한 내용은 배포된 에이전트 나열을 참조하세요.

ADK 에이전트 삭제

다음 코드 샘플은 앱에 연결된 에이전트를 삭제하는 방법을 보여줍니다.

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를 확인할 수 있습니다.

추론 엔진 위치

올바른 추론 엔진 위치에 API를 호출하려면 다음 차트를 사용하세요.

호출 중인 클라우드 위치 추론 엔진 위치
us us-central1
eu europe-west1
기타(global 포함) us-central1