ADK의 Agent Team 패턴을 사용한 Multi-Agent 시스템
goole_adk/
├── agent.py # Root Agent (delegation)
│
├── agents/ # Sub-Agents 폴더
│ ├── __init__.py
│ │
│ ├── graduation/ # 졸업요건 Agent ✅
│ │ ├── __init__.py
│ │ ├── agent.py # GraduationAgent
│ │ └── tools/
│ │ ├── __init__.py
│ │ └── search_tools.py # 졸업요건 검색 도구 3개
│ │
│ ├── professor/ # 교수 Agent (Placeholder)
│ │ ├── __init__.py
│ │ ├── agent.py # ProfessorAgent
│ │ └── tools/
│ │ └── __init__.py
│ │
│ └── admission/ # 입학 Agent (Placeholder)
│ ├── __init__.py
│ ├── agent.py # AdmissionAgent
│ └── tools/
│ └── __init__.py
│
├── config/
│ └── __init__.py # 공통 설정 (PROJECT_ID, CORPUS_ID 등)
│
├── data/ # 공통 데이터 저장소 (백업/참조용)
│ ├── 졸업요건/
│ │ ├── 2017_2025_통합_졸업이수학점.json
│ │ ├── 2017~2020학년도 입학자 졸업이수학점.json
│ │ ├── 2021~2024학년도 입학자 졸업이수학점.json
│ │ └── 2025이상 입학자 졸업이수학점.json
│ ├── 교수정보/ # 추후
│ └── 입학정보/ # 추후
│
├── .env # 환경 변수
└── README.md
┌─────────────────────────────────────────┐
│ Root Agent (kangnam_agent) │
│ │
│ 역할: 질문 분석 → 적절한 Agent로 위임 │
└─────────────────┬───────────────────────┘
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌────────────┐ ┌─────────────┐
│Graduation │ │ Professor │ │ Admission │
│ Agent │ │ Agent │ │ Agent │
│ │ │ │ │ │
│졸업요건 ✅ │ │교수 정보 ⏳│ │입학 정보 ⏳ │
└─────┬─────┘ └──────┬─────┘ └──────┬──────┘
│ │ │
│ │ │
┌───┴────┐ (추후) (추후)
│ Tools │
│ (3개) │
└────────┘
"2024년 입학생 복지융합대학 졸업 요건 알려줘"
Root Agent (kangnam_agent)
↓
질문 분석: "졸업 요건" 키워드 감지
↓
판단: GraduationAgent가 적합graduation_agent.query("2024년 입학생 복지융합대학 졸업 요건")
↓
Tool 선택: search_by_year_and_college()
↓
Vertex AI RAG 검색
↓
검색 결과 반환Root Agent가 GraduationAgent의 답변을 사용자에게 전달- 파일:
agent.py - 역할: Delegation (위임)
- Tools: 없음 (Sub-agents만 사용)
- Instruction: 질문 분석 후 적절한 agent 호출
- 파일:
agents/graduation/agent.py - 역할: 졸업요건 정보 검색
- Tools:
search_graduation_requirements()- 자유 검색search_by_year_and_college()- 구조화 검색get_available_information()- 정보 확인
- Data: Vertex AI RAG Corpus (ID: 6917529027641081856)
- 파일:
agents/professor/agent.py - 역할: 교수 정보 검색
- Tools: 추후 추가
- Data: 추후 추가
- 파일:
agents/admission/agent.py - 역할: 입학 정보 검색
- Tools: 추후 추가
- Data: 추후 추가
cd /Users/hong-gihyeon/Desktop/cap
uv run python -m google.adk serve goole_adkuv run python -m google.adk run goole_adkuv run python -m google.adk api_server goole_adk# Root Agent가 자동으로 판단
agents=[graduation_agent, professor_agent, admission_agent]
# AI가 agent.description을 보고 자동 선택!
graduation_agent.description = "졸업요건 정보를 검색하는 전문 에이전트"- 각 Agent가 독립적
- 새 Agent 추가 쉬움
- 유지보수 편리
- 각 Agent가 특정 도메인 전문
- Tool도 분리되어 관리
- 명확한 책임 분리
# 새 Agent 추가 시:
1. agents/new_domain/ 폴더 생성
2. agent.py + tools/ 작성
3. Root Agent의 agents=[] 리스트에 추가- 교수 정보 데이터 수집
- Vertex AI RAG Corpus 생성
- search_tools.py 작성
- agent.py 완성
- Root Agent에 등록
- 입학 정보 데이터 수집
- Vertex AI RAG Corpus 생성
- search_tools.py 작성
- agent.py 완성
- Root Agent에 등록
# Google Cloud
GOOGLE_CLOUD_PROJECT=kangnam-backend
GOOGLE_CLOUD_LOCATION=us-east4 # Gemini 모델 위치
VERTEX_AI_LOCATION=us-east4 # RAG 엔진 위치
# RAG Corpus
KANGNAM_CORPUS_ID=6917529027641081856
# GCS
GCS_BUCKET_NAME=kangnam-univ
GCS_BUCKET_LOCATION=asia-northeast3 # 데이터 저장 위치Status:
- ✅ Root Agent 구조 완성
- ✅ GraduationAgent 완성
- ⏳ ProfessorAgent (Placeholder)
- ⏳ AdmissionAgent (Placeholder)