AlloyDB 및 ADK용 MCP 도구 상자로 멀티 에이전트 앱 빌드

AlloyDB 및 ADK용 MCP 도구 상자로 멀티 에이전트 앱 빌드

이 Codelab 정보

subject최종 업데이트: 6월 17, 2025
account_circle작성자: Author: Abirami Sukumaran

1. 개요

에이전트는 AI 모델과 소통하면서 보유한 도구와 컨텍스트를 사용해 목표 기반 작업을 수행하는 자율 프로그램으로, 진실에 기반한 자율적 의사 결정을 할 수 있습니다.

애플리케이션에 여러 에이전트가 있으며 각 에이전트가 독립적으로 지식을 보유하고 특정 관심 분야에 대한 책임을 지며 애플리케이션의 더 큰 목적을 충족하기 위해 필요에 따라 자율적으로 함께 작동하는 경우 애플리케이션은 멀티 에이전트 시스템이 됩니다.

에이전트 개발 키트 (ADK)

에이전트 개발 키트 (ADK)는 AI 에이전트를 개발하고 배포하기 위한 유연하고 모듈식 프레임워크입니다. ADK는 여러 개의 고유한 에이전트 인스턴스를 멀티 에이전트 시스템 (MAS)으로 구성하여 정교한 애플리케이션 빌드를 지원합니다.

ADK에서 멀티 에이전트 시스템은 계층 구조를 형성하는 경우가 많은 여러 에이전트가 협력하거나 조정하여 더 큰 목표를 달성하는 애플리케이션입니다. 이렇게 애플리케이션을 구성하면 향상된 모듈성, 전문성, 재사용성, 유지보수성, 전용 워크플로 에이전트를 사용하여 구조화된 제어 흐름을 정의하는 기능 등 상당한 이점을 얻을 수 있습니다.

첫째, 각 상담사의 전문 분야를 올바르게 이해하고 추론하는 것이 중요합니다. — '어떤 문제에 특정 하위 상담사가 필요한지 알고 계신가요?'라는 질문을 먼저 해결합니다.

둘째, 루트 에이전트와 함께 가져와 각 응답을 라우팅하고 이해하는 방법

세 번째, 이 문서에서 확인할 수 있는 여러 유형의 상담사 라우팅이 있습니다. 애플리케이션의 흐름에 맞는 방법을 선택하세요. 또한 멀티 에이전트 시스템의 흐름 제어에 필요한 다양한 컨텍스트와 상태는 무엇인가요?

빌드할 항목

AlloyDB용 MCP 도구 상자 및 ADK를 사용하여 주방 리노베이션을 처리하는 멀티 에이전트 시스템을 빌드해 보겠습니다.

  1. 리노베이션 제안서 상담사
  2. 허가 및 규정 준수 확인 상담사
  3. 주문 상태 확인 (데이터베이스용 MCP 도구 상자를 사용하는 도구)

Renovation Proposal Agent: 주방 리노베이션 제안서 문서를 생성합니다.

허가 및 규정 준수 상담사: 허가 및 규정 준수 관련 작업을 처리합니다.

Order Status Check Agent: AlloyDB에 설정된 주문 관리 데이터베이스를 통해 자재의 주문 상태를 확인합니다. 하지만 이 데이터베이스 부분에서는 AlloyDB용 MCP 도구 상자를 사용하여 주문의 상태 검색 로직을 구현합니다.

2. MCP

MCP는 Anthropic에서 개발한 개방형 표준인 Model Context Protocol의 약자이며, AI 에이전트가 외부 도구, 서비스, 데이터와 일관된 방식으로 연결할 수 있도록 지원합니다. 기본적으로 AI 애플리케이션의 공통 표준으로 작동하여 다양한 데이터 소스 및 도구와 원활하게 상호작용할 수 있도록 지원합니다.

  1. 클라이언트-서버 모델을 사용하며, 여기서 AI 애플리케이션 (호스트)은 MCP 서버와 통신하는 MCP 클라이언트를 실행합니다.
  2. AI 상담사가 특정 도구나 데이터에 액세스해야 하는 경우 MCP 클라이언트에 구조화된 요청을 전송하고 MCP 클라이언트는 이를 적절한 MCP 서버로 전달합니다.
  3. AI 모델이 각 통합에 맞는 맞춤 코드 없이 외부 데이터 및 도구에 액세스할 수 있도록 지원합니다.
  4. 대규모 언어 모델 (LLM)을 기반으로 에이전트와 복잡한 워크플로를 빌드하는 프로세스를 간소화합니다.

데이터베이스용 MCP 도구 상자

Google의 데이터베이스용 MCP 도구 상자는 데이터베이스용 오픈소스 MCP 서버입니다. 엔터프라이즈급 및 프로덕션 품질을 고려하여 설계되었습니다. 이를 통해 연결 풀링, 인증 등의 복잡성을 처리하여 도구를 더 쉽고 빠르고 안전하게 개발할 수 있습니다.

상담사가 데이터베이스의 데이터에 액세스하도록 허용하세요. 방법

간소화된 개발: 10줄 미만의 코드로 도구를 상담사에게 통합하고, 여러 상담사 또는 프레임워크 간에 도구를 재사용하며, 새 버전의 도구를 더 쉽게 배포할 수 있습니다.

성능 개선: 연결 풀링, 인증 등 권장사항

보안 강화: 통합 인증을 통해 데이터에 더 안전하게 액세스할 수 있습니다.

엔드 투 엔드 모니터링 가능성: OpenTelemetry를 기본적으로 지원하는 즉시 사용 가능한 측정항목 및 추적

MCP 이전에 이루어진 업데이트라는 점을 명시해야 합니다.

데이터베이스용 MCP 도구 상자는 에이전트 애플리케이션의 조정 프레임워크와 데이터베이스 사이에 위치하여 도구를 수정, 배포 또는 호출하는 데 사용되는 제어 플레인을 제공합니다. 도구를 저장하고 업데이트할 수 있는 중앙 위치를 제공하여 도구 관리를 간소화하므로 상담사와 애플리케이션 간에 도구를 공유하고 애플리케이션을 다시 배포하지 않고도 이러한 도구를 업데이트할 수 있습니다.

9a9018b8596bd34e.png

요구사항에 따라 이러한 에이전트를 조정하는 루트 에이전트가 있습니다.

요구사항

  • 브라우저(Chrome 또는 Firefox 등)
  • 결제가 사용 설정된 Google Cloud 프로젝트.

3. 시작하기 전에

프로젝트 만들기

  1. Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
  2. Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요 .

또한 이 글을 읽고 Google Cloud를 시작하고 ADK를 사용하는 데 도움이 되는 크레딧을 받고 싶다면 이 링크를 사용하여 크레딧을 사용하세요. 여기의 안내에 따라 혜택을 사용하실 수 있습니다. 이 링크는 5월 말까지만 사용할 수 있습니다.

  1. 링크를 클릭하여 Cloud Shell을 활성화합니다. Cloud Shell에서 해당 버튼을 클릭하여 Cloud Shell 터미널 (클라우드 명령어 실행용)과 편집기 (프로젝트 빌드용) 간에 전환할 수 있습니다.
  2. Cloud Shell에 연결되면 다음 명령어를 사용하여 이미 인증되었는지, 프로젝트가 프로젝트 ID로 설정되어 있는지 확인합니다.
gcloud auth list
  1. Cloud Shell에서 다음 명령어를 실행하여 gcloud 명령어가 프로젝트를 알고 있는지 확인합니다.
gcloud config list project
  1. 프로젝트가 설정되지 않은 경우 다음 명령어를 사용하여 설정합니다.
gcloud config set project <YOUR_PROJECT_ID>
  1. 다음 명령어를 실행하여 다음 API를 사용 설정합니다.
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. Python 3.9 이상이 설치되어 있어야 합니다.
  2. gcloud 명령어 및 사용법은 문서를 참조하세요.

4. ADK 설정

  1. 가상 환경 만들기 및 활성화 (권장)

Cloud Shell 터미널에서 가상 환경을 만듭니다.

python -m venv .venv

가상 환경을 활성화합니다.

source .venv/bin/activate
  1. ADK 설치
pip install google-adk

5. 프로젝트 구조

  1. Cloud Shell 터미널에서 다음 명령어를 하나씩 실행하여 루트 및 프로젝트 폴더를 만듭니다.
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. Cloud Shell 편집기로 이동하여 파일을 만들어 다음 프로젝트 구조를 만듭니다 (처음에는 비어 있음).
renovation-agent/
        __init__
.py
        agent
.py
       
.env

6. 소스 코드

  1. init.py로 이동하여 다음 내용으로 업데이트합니다.
from . import agent
  1. agent.py로 이동하여 다음 경로의 다음 콘텐츠로 파일을 업데이트합니다.
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

agent.py에서는 필요한 종속 항목을 가져오고, .env 파일에서 구성 매개변수를 가져오고, 이 애플리케이션에서 만들기로 한 세 개의 하위 에이전트를 조정하는 root_agent를 정의합니다. 이러한 하위 상담사의 핵심 기능과 지원 기능에 도움이 되는 여러 도구가 있습니다.

  1. Cloud Storage 버킷이 있는지 확인

상담사가 생성하는 제안서 문서를 저장하기 위함입니다. Vertex AI로 만든 멀티 에이전트 시스템이 액세스할 수 있도록 만들고 액세스 권한을 제공합니다. 방법은 다음과 같습니다.

https://cloud.google.com/storage/docs/creating-buckets#console
  1. 버킷 이름을 'next-demo-store' 또는 허용되는 다른 이름으로 지정합니다. .env 파일 (ENV 변수 설정 단계)에서 STORAGE_BUCKET 값을 업데이트해야 하므로 이 값을 기록해 둡니다.
  2. us-central1 위치에 만듭니다.
  3. 버킷에 대한 액세스를 설정하려면 Cloud Storage 콘솔로 이동하여 스토리지 버킷으로 이동합니다 (이 경우 버킷 이름은 'next-demo-storage'임: https://console.cloud.google.com/storage/browser/next-demo-storage).

'권한 -> 주 구성원 보기 -> 액세스 권한 부여'로 이동합니다. 'allUsers'를 'Principals'로, 'Storage Object User'를 'Role'로 선택합니다.

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.

7. 데이터베이스 설정

ordering_agent에서 사용하는 도구 중 하나인 'check_status'에서 AlloyDB 주문 데이터베이스에 액세스하여 주문 상태를 가져옵니다. 이 섹션에서는 AlloyDB 데이터베이스 클러스터와 인스턴스를 설정합니다.

클러스터 및 인스턴스 만들기

  1. Cloud 콘솔에서 AlloyDB 페이지로 이동합니다. Cloud Console에서 대부분의 페이지를 찾는 가장 쉬운 방법은 콘솔의 검색창을 사용하는 것입니다.
  2. 이 페이지에서 클러스터 만들기를 선택합니다.

f76ff480c8c889aa.png

  1. 아래와 같은 화면이 표시됩니다. 다음 값으로 클러스터 및 인스턴스를 만듭니다 (저장소에서 애플리케이션 코드를 클론하는 경우 값이 일치하는지 확인).
  • 클러스터 ID: 'vector-cluster'
  • 비밀번호: "alloydb"
  • PostgreSQL 16 호환 / 최신 버전 권장
  • 지역: "us-central1"
  • 네트워킹: 'default'

538dba58908162fb.png

  1. 기본 네트워크를 선택하면 아래와 같은 화면이 표시됩니다.

연결 설정을 선택합니다.
7939bbb6802a91bf.png

  1. 여기에서 '자동으로 할당된 IP 범위 사용'을 선택하고 계속을 클릭합니다. 정보를 검토한 후 '연결 만들기'를 선택합니다. 768ff5210e79676f.png

6. 중요사항: 클러스터 / 인스턴스 구성 시 확인할 수 있는 인스턴스 ID다음으로 변경해야 합니다.

vector-instance. 변경할 수 없는 경우 향후 모든 참조에서 인스턴스 ID를 사용해야 합니다.

  1. Toolbox 설정을 준비하기 위해 새 도구가 데이터베이스에 액세스할 수 있도록 AlloyDB 인스턴스에서 공개 IP 연결을 사용 설정합니다.
  2. 공개 IP 연결 섹션으로 이동하여 공개 IP 사용 설정 체크박스를 선택하고 Cloud Shell 머신의 IP 주소를 입력합니다.
  3. Cloud Shell 머신의 IP를 가져오려면 Cloud Shell 터미널로 이동하여 ifconfig를 입력합니다. 결과에서 eth0 inet 주소를 식별하고 마지막 2자리를 0.0으로 바꾸고 마스크 크기를 '/16'으로 지정합니다. 예를 들어 'XX.XX.0.0/16'과 같이 표시되며 여기서 XX는 숫자입니다.
  4. 이 IP를 인스턴스 수정 페이지의 승인된 외부 네트워크 '네트워크' 텍스트 상자에 붙여넣습니다.

e4d1045e1255e40f.png

  1. 네트워크가 설정되면 클러스터를 계속 만들 수 있습니다. '클러스터 만들기'를 클릭하여 아래와 같이 클러스터 설정을 완료합니다.

e06623e55195e16e.png

클러스터를 만드는 데 약 10분이 소요됩니다. 완료되면 방금 만든 클러스터의 개요를 보여주는 화면이 표시됩니다.

데이터 수집

이제 매장 데이터가 포함된 표를 추가하겠습니다. AlloyDB로 이동하여 기본 클러스터를 선택한 다음 AlloyDB Studio를 선택합니다.

847e35f1bf8a8bd8.png

인스턴스 생성이 완료될 때까지 기다려야 할 수 있습니다. 클러스터가 생성되면 클러스터를 만들 때 만든 사용자 인증 정보를 사용하여 AlloyDB에 로그인합니다. PostgreSQL에 인증할 때 다음 데이터를 사용합니다.

  • 사용자 이름 : 'postgres'
  • 데이터베이스 : 'postgres'
  • 비밀번호 : 'alloydb'

AlloyDB 스튜디오에 성공적으로 인증하면 편집기에 SQL 명령어가 입력됩니다. 마지막 창 오른쪽에 있는 더하기 기호를 사용하여 여러 편집기 창을 추가할 수 있습니다.

91a86d9469d499c4.png

필요에 따라 실행, 형식 지정, 지우기 옵션을 사용하여 편집기 창에 AlloyDB 명령어를 입력합니다.

테이블 만들기

AlloyDB Studio에서 아래 DDL 문을 사용하여 테이블을 만들 수 있습니다.

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

레코드 삽입

위에 언급된 database_script.sql 스크립트에서 insert 쿼리 문을 편집기에 복사합니다.

실행을 클릭합니다.

이제 데이터 세트가 준비되었으므로 AlloyDB의 모든 주문 데이터베이스 상호작용의 제어 평면 역할을 할 데이터베이스용 MCP 도구 상자를 설정하겠습니다.

8. 데이터베이스용 MCP 도구 상자 설정

Toolbox는 애플리케이션의 오케스트레이션 프레임워크와 데이터베이스 사이에 있으며 도구를 수정, 배포 또는 호출하는 데 사용되는 제어 영역을 제공합니다. 도구를 저장하고 업데이트할 수 있는 중앙 위치를 제공하여 도구 관리를 간소화하므로 상담사와 애플리케이션 간에 도구를 공유하고 애플리케이션을 다시 배포하지 않고도 이러한 도구를 업데이트할 수 있습니다.

데이터베이스용 MCP 도구 상자에서 지원하는 데이터베이스 중 하나가 AlloyDB입니다. 이전 섹션에서 이미 프로비저닝했으므로 이제 도구 상자를 설정하겠습니다.

  1. Cloud Shell 터미널로 이동하여 프로젝트가 선택되어 있고 터미널 프롬프트에 표시되는지 확인합니다. Cloud Shell 터미널에서 아래 명령어를 실행하여 프로젝트 디렉터리로 이동합니다.
cd adk-renovation-agent
  1. 아래 명령어를 실행하여 새 폴더에 Toolbox를 다운로드하고 설치합니다.
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Cloud Shell 편집기 (코드 수정 모드용)로 이동하여 프로젝트 루트 폴더에 'tools.yaml'이라는 파일을 추가합니다.
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1)
      LIMIT 1;

쿼리 부분 (위의 '문장' 매개변수 참고)에서는 재료 이름이 사용자의 검색 텍스트와 일치하는 경우에만 order_status 필드의 값을 검색합니다.

tools.yaml 이해하기

소스는 도구가 상호작용할 수 있는 다양한 데이터 소스를 나타냅니다. 소스는 도구가 상호작용할 수 있는 데이터 소스를 나타냅니다. sources 섹션에서 sources를 맵으로 정의할 수 있습니다. 일반적으로 소스 구성에는 데이터베이스에 연결하고 상호작용하는 데 필요한 모든 정보가 포함됩니다.

도구는 소스 읽기 및 쓰기와 같이 에이전트가 취할 수 있는 작업을 정의합니다. 도구는 상담사가 취할 수 있는 작업(예: SQL 문 실행)을 나타냅니다. tools.yaml 파일의 tools 섹션에서 도구를 맵으로 정의할 수 있습니다. 일반적으로 도구는 작업할 소스가 필요합니다.

tools.yaml 구성에 관한 자세한 내용은 이 문서를 참고하세요.

데이터베이스 서버용 MCP 도구 상자를 실행해 보겠습니다.

mcp-toolbox 폴더에서 다음 명령어를 실행하여 서버를 시작합니다.

./toolbox --tools-file "tools.yaml"

이제 클라우드에서 웹 미리보기 모드로 서버를 열면 get-order-data라는 새 도구를 사용하여 Toolbox 서버가 실행 중인 것을 볼 수 있습니다.

MCP Toolbox 서버는 기본적으로 포트 5000에서 실행됩니다. Cloud Shell을 사용하여 테스트해 보겠습니다.

아래와 같이 Cloud Shell에서 웹 미리보기를 클릭합니다.

f990712162e8e924.png

포트 변경을 클릭하고 아래와 같이 포트를 5000으로 설정한 다음 변경 및 미리보기를 클릭합니다.

d1b9de0c46ecef8a.png

다음과 같은 출력이 표시됩니다.

2fdcdac326034d41.png

데이터베이스용 MCP 도구 키트는 도구를 검증하고 테스트하는 데 사용할 수 있는 Python SDK를 설명하며, 이는 여기에 설명되어 있습니다. 이 부분은 건너뛰고 다음 섹션에서 이러한 도구를 활용하는 Agent Development Kit (ADK)로 바로 이동하겠습니다.

Cloud Run에 Toolbox를 배포해 보겠습니다.

먼저 MCP Toolbox 서버를 시작하고 Cloud Run에서 호스팅할 수 있습니다. 그러면 다른 애플리케이션 또는 상담사 애플리케이션과 통합할 수 있는 공개 엔드포인트가 생성됩니다. Cloud Run에서 호스팅하는 방법은 여기를 참고하세요. 이제 주요 단계를 살펴보겠습니다.

  1. 새 Cloud Shell 터미널을 실행하거나 기존 Cloud Shell 터미널을 사용합니다. 도구 상자 바이너리와 tools.yaml이 있는 프로젝트 폴더(이 경우 adk-renovation-agent)로 이동합니다.
  2. PROJECT_ID 변수를 Google Cloud 프로젝트 ID를 가리키도록 설정합니다.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. 다음 Google Cloud 서비스 사용 설정하기
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. Google Cloud Run에 배포할 Toolbox 서비스의 ID 역할을 할 별도의 서비스 계정을 만들어 보겠습니다.
gcloud iam service-accounts create toolbox-identity
  1. 또한 이 서비스 계정에 올바른 역할(예: Secret Manager에 액세스하고 AlloyDB와 통신할 수 있는 기능)이 있는지 확인합니다.
gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/alloydb.client

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/serviceusage.serviceUsageConsumer
  1. tools.yaml 파일을 보안 비밀로 업로드합니다.
gcloud secrets create tools --data-file=tools.yaml

이미 보안 비밀이 있고 보안 비밀 버전을 업데이트하려면 다음을 실행합니다.

gcloud secrets versions add tools --data-file=tools.yaml

Cloud Run에 사용할 컨테이너 이미지를 환경 변수로 설정합니다.

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. Cloud Run에 배포하는 익숙한 명령어의 마지막 단계는 다음과 같습니다.
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

이렇게 하면 구성된 tools.yaml을 사용하여 Toolbox 서버를 Cloud Run에 배포하는 프로세스가 시작됩니다. 배포가 완료되면 다음과 유사한 메시지가 표시됩니다.

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

이제 상담 애플리케이션에서 새로 배포된 도구를 사용할 수 있습니다.

Toolbox 도구를 상담사에게 연결해 보겠습니다.

멀티 에이전트 시스템의 소스는 이미 만들었습니다. 방금 Cloud Run에 배포한 데이터베이스용 새로운 MCP 도구 상자를 포함하도록 업데이트해 보겠습니다.

  1. 저장소의 소스로 requirements.txt 파일을 수정합니다.

requirements.txt에 데이터베이스용 MCP 도구 상자의 종속 항목을 포함합니다.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. 저장소의 코드로 agent.py 파일을 수정합니다.

주문된 특정 자료의 주문 데이터를 가져오기 위해 도구 상자 엔드포인트를 호출하는 도구가 포함됩니다.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. 모델 설정

사용자 요청을 이해하고 응답을 생성하는 상담사의 기능은 대규모 언어 모델 (LLM)을 기반으로 합니다. 에이전트는 인증 사용자 인증 정보가 필요한 이 외부 LLM 서비스를 안전하게 호출해야 합니다. 유효한 인증이 없으면 LLM 서비스에서 에이전트의 요청을 거부하고 에이전트가 작동하지 않습니다.

  1. Google AI Studio에서 API 키를 가져옵니다.
  2. .env 파일을 설정하는 다음 단계에서 <<your API KEY>>를 실제 API 키 값으로 바꿉니다.

10. ENV 변수 설정

  1. 템플릿 .env 파일에서 매개변수 값을 설정합니다. 제 경우에는 .env에 다음과 같은 변수가 있습니다.
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>

자리표시자를 값으로 바꿉니다.

11. 에이전트 실행

  1. 터미널을 사용하여 상위 디렉터리로 이동합니다.
cd renovation-agent
  1. 종속 항목을 설치합니다.
pip install -r requirements.txt
  1. Cloud Shell 터미널에서 다음 명령어를 실행하여 에이전트를 실행할 수 있습니다.
adk run .
  1. 다음을 실행하여 ADK 프로비저닝된 웹 UI에서 실행할 수 있습니다.
adk web
  1. 다음 프롬프트를 사용하여 테스트합니다.
user>> 

Hello. Check order status for Cement Bags.

13. 삭제

이 게시물에서 사용한 리소스의 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.
  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력하고 종료를 클릭하여 프로젝트를 삭제합니다.

14. 축하합니다

축하합니다. ADK 및 데이터베이스용 MCP 도구 상자를 사용하여 멀티 에이전트 애플리케이션을 만들었습니다. 자세한 내용은 제품 문서인 에이전트 개발 키트데이터베이스용 MCP 도구 상자를 참고하세요.