Google ADK (Agent Development Kit)를 활용한 다양한 멀티 에이전트 시스템 패턴을 구현한 프로젝트입니다. 이 프로젝트는 순차 실행, 병렬 실행, 루프 기반 워크플로우, 오케스트레이션 등 다양한 에이전트 아키텍처 패턴을 실습할 수 있는 예제들을 제공합니다.
이 프로젝트는 Google의 Agent Development Kit (ADK)을 사용하여 다양한 멀티 에이전트 시스템 패턴을 구현합니다. 각 예제는 실제 사용 사례를 기반으로 하며, 에이전트 간 협업, 작업 위임, 병렬 처리, 반복 개선 등의 개념을 학습할 수 있습니다.
- LLM 오케스트레이터 패턴: 메인 에이전트가 다른 에이전트를 도구로 사용하여 작업을 조율
- 순차 워크플로우: 여러 에이전트가 순차적으로 작업을 수행하는 파이프라인
- 병렬 워크플로우: 여러 에이전트가 동시에 독립적인 작업을 수행
- 루프 워크플로우: 피드백 루프를 통한 반복적 개선 프로세스
- 커스텀 도구 통합: Python 함수, 코드 실행기, 검색 도구 등을 에이전트에 통합
- Python 3.12 이상
- Google API Key (Gemini API)
- pip 패키지 관리자
-
저장소 클론 또는 프로젝트 디렉토리로 이동
cd AgenticAIA2A -
가상 환경 생성 및 활성화 (권장)
python -m venv agenticai-A2A # Windows agenticai-A2A\Scripts\activate # Linux/Mac source agenticai-A2A/bin/activate
-
필요한 패키지 설치
pip install google-adk python-dotenv
-
환경 변수 설정 프로젝트 루트에
.env파일을 생성하고 다음 내용을 추가하세요:GOOGLE_API_KEY=your_google_api_key_here
AgenticAIA2A/
├── orchestrator-agents.py # LLM 오케스트레이터 패턴 예제
├── sequential-agents.py # 순차 워크플로우 예제 (블로그 작성 파이프라인)
├── parellel-agents.py # 병렬 워크플로우 예제 (동시 리서치)
├── loop-agents.py # 루프 워크플로우 예제 (스토리 개선)
├── agent-tools.py # 커스텀 도구 및 코드 실행기 예제
├── sample-agent/ # 기본 에이전트 예제
│ └── agent.py
├── agenticai-A2A/ # 가상 환경 디렉토리
└── README.md # 프로젝트 문서
메인 에이전트가 리서치 에이전트와 요약 에이전트를 도구로 사용하여 작업을 조율합니다.
python orchestrator-agents.py기능:
- 리서치 에이전트가 Google 검색을 통해 정보 수집
- 요약 에이전트가 수집된 정보를 요약
- 코디네이터 에이전트가 전체 프로세스를 관리
블로그 작성 파이프라인: 개요 작성 → 초안 작성 → 편집
python sequential-agents.py기능:
- OutlineAgent: 블로그 개요 생성
- WriterAgent: 개요를 기반으로 초안 작성
- EditorAgent: 초안을 편집 및 개선
세 개의 리서치 에이전트가 동시에 기술, 건강, 금융 분야를 조사하고 결과를 취합합니다.
python parellel-agents.py기능:
- TechResearcher: AI/ML 트렌드 조사
- HealthResearcher: 의학적 돌파구 조사
- FinanceResearcher: 핀테크 트렌드 조사
- AggregatorAgent: 세 가지 조사 결과를 통합 요약
스토리 작성 및 반복적 개선 프로세스
python loop-agents.py기능:
- InitialWriterAgent: 초기 스토리 초안 작성
- CriticAgent: 스토리 비평 및 피드백 제공
- RefinerAgent: 피드백을 반영하여 스토리 개선
- 최대 2회 반복 (무한 루프 방지)
커스텀 Python 함수와 코드 실행기를 사용하는 에이전트 예제
python agent-tools.py기능:
- 커스텀 함수 도구: 환율 조회, 수수료 계산
- 코드 실행기: Python 코드를 실행하여 계산 수행
- 에이전트를 도구로 사용: 계산 에이전트를 다른 에이전트의 도구로 활용
모든 예제는 HTTP 재시도 설정을 포함하고 있습니다:
retry_config = types.HttpRetryOptions(
attempts=5, # 최대 5회 재시도
exp_base=7, # 지수 백오프 베이스
initial_delay=1, # 초기 지연 시간 (초)
http_status_codes=[429, 500, 503, 504], # 재시도할 HTTP 상태 코드
)현재 프로젝트는 gemini-2.5-flash-lite 모델을 사용합니다. 필요에 따라 다른 Gemini 모델로 변경할 수 있습니다.
llm = Gemini(model="gemini-2.5-flash-lite", retry_options=retry_config)- Google ADK (Agent Development Kit): 멀티 에이전트 시스템 구축을 위한 프레임워크
- Gemini API: Google의 대규모 언어 모델
- Python 3.12+: 프로그래밍 언어
- python-dotenv: 환경 변수 관리
사용자 요청
↓
Coordinator Agent
├─→ Research Agent (도구로 사용)
└─→ Summarizer Agent (도구로 사용)
↓
최종 응답
사용자 요청
↓
Agent 1 → Agent 2 → Agent 3
↓
최종 결과
사용자 요청
↓
├─→ Agent 1 (병렬)
├─→ Agent 2 (병렬)
└─→ Agent 3 (병렬)
↓
Aggregator Agent
↓
최종 결과
초기 작업
↓
[Critic Agent → Refiner Agent] (반복)
↓
조건 만족 시 종료
↓
최종 결과