본문 바로가기
AI 개발/AI 에이전트 (AI Agents)

[AI 에이전트 프로젝트] ✈️ Part 1. 여행비서의 탄생: Google ADK로 나만의 AI Agent 만들기

by 데이터 AI 벌집 2025. 4. 20.
반응형

[AI 에이전트 프로젝트] ✈️ Part 1. 여행비서의 탄생: Google ADK로 나만의 AI Agent 만들기

 

이 글은 Google의 Agent Development Kit(ADK)를 활용해 스마트 여행 비서를 직접 만드는 4부작 시리즈 중 첫 번째입니다.
오늘은 아주 기본적인 하나의 Agent를 만들어보고, 자연어 대화로 여행 관련 질문에 답하는 첫 번째 여행 비서를 완성해보겠습니다.

 

📦 목표

  • Google ADK를 설치하고 기본 구조를 이해하기
  • 여행 관련 질문에 답할 수 있는 단일 Agent 생성
  • 간단한 질의응답 테스트

 

🧰 사전 준비 (Prerequisites)

1. 가상 환경 생성 및 ADK 설치

python -m venv .adk_env
source .adk_env/bin/activate
pip install google-adk==0.2.0

2. .env 파일 설정

.env 파일을 프로젝트 루트에 만들고 다음처럼 입력하세요:

GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=your-gcp-project-id
GOOGLE_CLOUD_LOCATION=us-central1
MODEL='gemini-2.0-flash-001'

💡 주의: 실제 실행을 위해선 Google Cloud API 키 설정이 필요하며, Vertex AI가 활성화되어 있어야 합니다.

🧠 Step 1. 여행비서 Agent 만들기

basic_travel_agent.py 파일을 만들고 아래와 같이 작성합니다.

from google.adk.agents import Agent
from google.adk.artifacts import InMemoryArtifactService
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types

MODEL = 'gemini-2.0-flash-001'

travel_agent = Agent(
    model=MODEL,
    name="travel_agent_basic",
    description="사용자의 여행 목적지를 추천하는 에이전트입니다.",
    instruction=(
        "여행 목적지를 추천해 주세요. 계절, 날씨, 취향 등을 고려해 파리, 도쿄, 바르셀로나, 방콕 등 다양한 도시를 제안할 수 있습니다."
    ),
    generate_content_config=types.GenerateContentConfig(temperature=0.6),
)

📌 description은 추후 멀티에이전트 시스템에서 자동 위임(delegation)에 매우 중요한 역할을 합니다.
📌 instruction은 에이전트가 어떻게 동작해야 하는지를 LLM에게 알려주는 핵심 가이드입니다.

🧪 Step 2. 간단한 대화 테스트

같은 파일에 아래 코드를 추가하세요:

 

session_service = InMemorySessionService()
artifact_service = InMemoryArtifactService()

runner = Runner(
    app_name="travel_agent_app",
    agent=travel_agent,
    artifact_service=artifact_service,
    session_service=session_service,
)

def ask_agent(agent, query: str):
    session = session_service.create_session(app_name="travel_agent_app", user_id="user")
    content = types.Content(role='user', parts=[types.Part(text=query)])
    events = runner.run(user_id='user', session_id=session.id, new_message=content)

    for event in events:
        if event.is_final_response():
            print("🤖 여행비서의 응답:", event.content.parts[0].text)

 

실행 예시:

ask_agent(travel_agent, "이번 봄에 유럽 어디가 좋아요?")

 

출력 예시:

🤖 여행비서의 응답: 봄에는 파리나 프라하처럼 날씨가 온화하고 꽃이 피기 시작하는 도시들이 좋아요! 파리는 벚꽃 시즌이고, 프라하는 관광객이 덜 붐비는 시기라 추천드립니다.

 

이제 여러분은 Google ADK를 이용해 나만의 여행 추천 AI 에이전트를 만들고, 자연어 대화를 통해 목적지를 추천받을 수 있게 되었습니다.

 

이제 여러분은 Google ADK를 이용해 나만의 여행 추천 AI 에이전트를 만들고, 자연어로 대화하며 목적지를 추천받을 수 있게 되었습니다.
이 에이전트는 아직 단일 기능만 수행하지만, 이후 글에서는 다음과 같은 기능들을 점차 확장해볼 예정입니다:

  • 다양한 LLM 모델과 연동 (Gemini, GPT-4o, Claude)
  • 인사/작별 에이전트 분리 및 자동 위임
  • 사용자 정보 기억 (예: 선호 도시, 방문 이력)
  • 위험한 요청에 대한 안전 장치 (Guardrails)
반응형