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

1. 학습할 내용

ADK 마스터 클래스에 오신 것을 환영합니다. 멀티 에이전트 시스템 여정을 시작하세요

이제 흥미로운 AI 에이전트의 세계로 들어가 보세요. 질문에만 답하는 단순한 챗봇은 잊으세요. Google은 Agent Development Kit (ADK)를 심층적으로 연구하여 복잡한 작업을 수행하기 위해 추론하고, 계획하고, 도구를 사용할 수 있는 정교한 자율 시스템을 구축하고 있습니다.

리메이크

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

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

지금 시작해 보세요. 🚀

2. GCP 및 Gemini API 키 설정

GCP 프로젝트 및 Gemini API 키 설정

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

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

  • 배포에 필요한 5달러 크레딧으로 결제 계정을 청구합니다. Gmail 계정으로 로그인해야 합니다.

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: 워크플로 에이전트: 순차적 에이전트, 병렬 에이전트, 루프 에이전트

Parallel Agent

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

👉 테스트 프롬프트:

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

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

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

Sequential Agent(순차적 에이전트)

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

👉 테스트 프롬프트:

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

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

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

Loop 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 Toolbox 서버 설치 및 실행

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

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/genai-toolbox/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