메모리 및 MCP가 포함된 ADK 에이전트 패턴

1. 학습할 내용

ADK 마스터 클래스 - 멀티 에이전트 시스템으로의 여정에 오신 것을 환영합니다

이제 흥미로운 AI 에이전트의 세계로 들어갈 준비가 되었습니다. 단순히 질문에 답변하는 챗봇은 잊으세요. 추론하고, 계획하고, 도구를 사용하여 복잡한 작업을 수행할 수 있는 정교한 자율 시스템을 빌드하기 위해 Agent Development Kit (ADK)를 자세히 살펴보겠습니다.

리메이크

이 튜토리얼을 마치면 다음을 할 수 있습니다.

  • 첫 번째 AI 에이전트 빌드: 사용자의 요구사항을 이해하고, Google 검색과 같은 도구를 사용하고, 자세하고 유용한 응답을 생성할 수 있는 완전한 기능을 갖춘 에이전트를 처음부터 빌드합니다.
  • 멀티 에이전트 시스템 구성: 에이전트가 작업을 다른 전문 에이전트에게 위임하여 함께 작업하는 AI 전문가팀을 만드는 혁신적인 개념인 "도구로서의 에이전트" 패턴을 알아봅니다.
  • 복잡한 워크플로 조정: 단순한 위임을 넘어 라우터, 순차 체인, 루프, 병렬 실행과 같은 고급 패턴을 마스터하여 거의 모든 요청을 처리할 수 있는 강력하고 효율적이며 지능적인 애플리케이션을 빌드합니다.
  • 에이전트에게 메모리 제공: 후속 질문을 처리하고, 의견을 통해 학습하고, 다단계 작업을 원활하게 관리할 수 있도록 하는 대화형 메모리의 중요한 역할을 이해합니다.
  • MCP와 연결: MCP 도구 상자와 연결합니다.

지금 시작해 보세요. 🚀

2. GCP 및 Gemini API 키 설정

GCP 프로젝트 및 Gemini API 키 설정

AI 에이전트를 구동하려면 두 가지가 필요합니다. 기반을 제공하는 Google Cloud 프로젝트와 Google의 강력한 모델에 액세스할 수 있는 Gemini API 키입니다.

1단계: 결제 계정 사용 설정

이 Codelab을 실행하려면 크레딧이 있는 결제 계정이 필요합니다. 이 Codelab 상단의 배너에 있는 크레딧을 사용하여 시작하세요. 이미 결제 계정에 연결되어 있다면 이 단계를 건너뛰어도 됩니다.

2단계: 새 GCP 프로젝트 만들기

  • Google Cloud 콘솔로 이동하여 새 프로젝트를 만듭니다.

새 GCP 계정 만들기

  • Google Cloud 콘솔로 이동하여 새 프로젝트를 만듭니다.
  • 왼쪽 패널을 열고 Billing를 클릭하여 결제 계정이 이 GCP 계정에 연결되어 있는지 확인합니다.

결제 계정을 GCP 계정에 연결

이 페이지가 표시되면 manage billing account를 선택하고 Google Cloud 체험판을 선택하여 연결합니다.

3단계: Google Cloud 프로젝트 ID 찾기

👉Google Cloud 콘솔 상단에서 Cloud Shell 활성화를 클릭합니다 (Cloud Shell 창 상단의 터미널 모양 아이콘). cloud-shell.png

👉'편집기 열기' 버튼 (연필이 있는 열린 폴더 모양)을 클릭합니다. 그러면 창에서 Cloud Shell 코드 편집기가 열립니다. 왼쪽에 파일 탐색기가 표시됩니다. open-editor.png

👉Google Cloud 프로젝트 ID를 찾습니다.

  • Google Cloud 콘솔을 엽니다. 링크
  • 페이지 상단의 프로젝트 드롭다운에서 이 워크숍에 사용할 프로젝트를 선택합니다.
  • 프로젝트 ID가 대시보드의 프로젝트 정보 카드에 표시됩니다.

03-04-project-id.png

👉💻 터미널에서 다음 명령어를 사용하여 이미 인증되었고 프로젝트가 프로젝트 ID로 설정되어 있는지 확인합니다.

gcloud auth list

👉💻 GitHub에서 부트스트랩 프로젝트를 클론합니다.

git clone https://github.com/cuppibla/adk_tutorial.git

👉💻 초기화 스크립트를 실행합니다. 이 스크립트는 Google Cloud 프로젝트 ID 를 입력하라는 메시지를 표시합니다. setup_venv.sh 스크립트에서 메시지가 표시되면 이전 단계에서 찾은 Google Cloud 프로젝트 ID를 입력합니다.

cd ~/adk_tutorial
./setup_venv.sh

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

3. 세션 1: ADK 웹의 첫 번째 에이전트

다음을 실행하여 ADK 웹을 엽니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
adk web

명령어를 실행하면 다음과 같이 ADK 웹 서버가 시작되었음을 나타내는 출력이 터미널에 표시됩니다.

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://localhost:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

👉 다음으로 브라우저에서 ADK 개발 UI에 액세스합니다.

Cloud Shell 툴바 (일반적으로 오른쪽 상단)의 웹 미리보기 아이콘 (눈 또는 화살표가 있는 정사각형 모양)에서 포트 변경을 선택합니다. 팝업 창에서 포트를 8000으로 설정 하고 "변경 및 미리보기"를 클릭합니다. 그러면 Cloud Shell에서 ADK 개발 UI가 표시된 새 브라우저 탭 또는 창이 열립니다.

webpreview

👉 소환 의식이 완료되었으며 이제 에이전트가 실행 중입니다. 브라우저의 ADK 개발 UI 는 Familiar에 직접 연결됩니다.

병렬 워크플로 에이전트 선택 UI 상단의 드롭다운 메뉴에서 parallel_agent를 선택합니다.

여기에서 single_agent를 선택할 수 있습니다. 단일 상담사의 추적 사진

여기에서 추적을 확인할 수 있습니다. 단일 에이전트 추적 그림

👉 테스트 프롬프트:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art.

4. 세션 2: 워크플로 에이전트: 순차 에이전트, 병렬 에이전트, 루프 에이전트

병렬 에이전트

병렬 워크플로 에이전트 선택 UI 상단의 드롭다운 메뉴에서 parallel_agent를 선택합니다.

👉 테스트 프롬프트:

Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.

여기에서 parallel_agent를 선택할 수 있습니다. 병렬 에이전트 추적 그림

여기에서 추적을 확인할 수 있습니다. 병렬 에이전트 추적 그림

순차 에이전트

순차 워크플로 에이전트 선택 UI 상단의 드롭다운 메뉴에서 sequential_agent를 선택합니다.

👉 테스트 프롬프트:

Find a good sushi near Standford and tell me how to get there.

여기에서 sequential_agent를 선택할 수 있습니다. 순차적 에이전트의 추적 그림

여기에서 추적을 확인할 수 있습니다. sequential_agent 추적 그림

루프 에이전트

루프 워크플로 에이전트 선택 UI 상단의 드롭다운 메뉴에서 loop_agent를 선택합니다.

👉 테스트 프롬프트:

Plan a trip from Sunnyvale to San Francisco today.

여기에서 loop_agent를 선택할 수 있습니다. 루프 에이전트 추적 그림

여기에서 추적을 확인할 수 있습니다. 추적 루프 에이전트 그림

5. 세션 3: 커스텀 에이전트

ADK 웹 UI가 열리면 Custom_Agent 에이전트를 선택할 수 있습니다.

👉 테스트 프롬프트:

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.

여기에서 Custom_Agent를 선택할 수 있습니다. Custom_Agent의 추적 그림

여기에서 추적을 확인할 수 있습니다. Custom_Agent의 추적 그림

6. 세션 4: 오케스트레이터 패턴 - 라우팅 에이전트

ADK 웹 UI가 열리면 routing_agent를 선택할 수 있습니다.

👉 테스트 프롬프트:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

여기에서 routing_agent를 선택할 수 있습니다. 라우팅 에이전트 추적 그림

여기에서 추적을 확인할 수 있습니다. 라우팅 에이전트 추적 그림

7. 세션 5: 도구로서의 에이전트

ADK 웹 UI가 열리면 Agent_as_tool 에이전트를 선택할 수 있습니다.

👉 테스트 프롬프트:

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

여기에서 agent_as_tool을 선택할 수 있습니다. 도구로서의 에이전트 추적 그림

여기에서 추적을 확인할 수 있습니다. 라우팅 에이전트 추적 그림

8. 세션 6: 장기 메모리가 있는 에이전트

👉💻 폴더로 이동하여 실행기를 사용하여 에이전트를 파워업하여 장기 메모리를 테스트합니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 테스트 프롬프트:

I like Art and Italian food.

그런 다음 'crtl+C'를 눌러 세션을 종료합니다. 세션을 다시 시작합니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 테스트 프롬프트:

Plan a trip to San Francisco based on my preference.

9. 세션 7: MCP로 에이전트 역량 강화

1단계: 로컬 데이터베이스 준비

👉💻 터미널에서 다음 명령어를 실행합니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
chmod +x setup_trip_database.py
./setup_trip_database.py

2단계: MCP 도구 상자 서버 설치 및 실행

👉💻 터미널에서 다음 명령어를 실행합니다.

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox

다운로드가 완료되면 실행합니다.

chmod +x toolbox

3단계

한 터미널에서 다음 명령어를 실행합니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/mcp_tool_box
./toolbox --tools-file "trip_tools.yaml" --port 7001

다른 터미널에서 다음 명령어를 실행합니다.

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/g_agents_mcp
python main.py