강남대학교 Multi-Agent 시스템을 Vertex AI Agent Engine에 배포하는 가이드입니다.
- GCP 프로젝트:
kangnam-backend - 리전:
us-east4(Agent Engine 지원 리전) - 필요한 API 활성화:
- Vertex AI API
- Cloud Storage API
- Discovery Engine API (Vertex AI Search)
# GCP 로그인
gcloud auth login
# Application Default Credentials 설정
gcloud auth application-default login
# 프로젝트 설정
gcloud config set project kangnam-backend.env 파일을 생성하거나 업데이트하세요:
# Google Cloud 기본 설정
GOOGLE_CLOUD_PROJECT=kangnam-backend
VERTEX_AI_LOCATION=us-east4
GOOGLE_CLOUD_STAGING_BUCKET=gs://kangnam-backend-agent-staging
# Vertex AI Search (이미 설정되어 있음)
KANGNAM_CORPUS_ID=6917529027641081856
GCS_BUCKET_NAME=kangnam-univ
GCS_BUCKET_LOCATION=asia-northeast3배포에 필요한 staging bucket을 생성합니다:
cd /Users/hong-gihyeon/Desktop/cap
python create_staging_bucket.py출력 예시:
======================================================================
GCP Staging Bucket Creator
======================================================================
🪣 Creating staging bucket: gs://kangnam-backend-agent-staging
📍 Location: us-east4
🏷️ Project: kangnam-backend
🚀 Creating bucket...
✅ Successfully created: gs://kangnam-backend-agent-staging
📝 Add this to your .env file:
GOOGLE_CLOUD_STAGING_BUCKET=gs://kangnam-backend-agent-staging
💡 Next steps:
1. Add the line above to your .env file
2. Run: python deploy.py --create
출력된 GOOGLE_CLOUD_STAGING_BUCKET 라인을 .env 파일에 추가하세요.
python deploy.py --create배포 과정:
root_agent를AdkApp으로 래핑goole_adk패키지 전체를 패키징- 필요한 requirements 설치:
google-cloud-aiplatform[adk,agent_engines]requestsbeautifulsoup4python-dotenv
- Agent Engine에 업로드 및 배포
예상 소요 시간: 5-10분
출력 예시:
🚀 Starting deployment...
📦 Packaging goole_adk...
======================================================================
✅ Deployment successful!
======================================================================
📝 Resource ID: projects/88199591627/locations/us-east4/reasoningEngines/1234567890
💾 Save this ID for later use!
🔑 Next steps:
1. Create a session:
python deploy.py --create_session \
--resource_id="projects/88199591627/locations/us-east4/reasoningEngines/1234567890"
2. Send a message:
python deploy.py --send \
--resource_id="projects/88199591627/locations/us-east4/reasoningEngines/1234567890" \
--session_id="<SESSION_ID>" \
--message="2024년 졸업 요건 알려줘"
중요: Resource ID를 복사하여 저장하세요!
배포된 Agent와 통신하려면 세션을 생성해야 합니다:
python deploy.py --create_session \
--resource_id="projects/88199591627/locations/us-east4/reasoningEngines/1234567890"출력 예시:
🔑 Creating session for user: test_user
======================================================================
✅ Session created!
======================================================================
Session ID: session_abc123def456
User ID: test_user
App name: kangnam_assistant
Last update: 2025-01-09T12:34:56Z
💡 Use this session ID with --session_id when sending messages.
중요: Session ID를 복사하여 저장하세요!
python deploy.py --send \
--resource_id="projects/88199591627/locations/us-east4/reasoningEngines/1234567890" \
--session_id="session_abc123def456" \
--message="2024년 입학생 공과대학 졸업 요건 알려줘"응답 예시:
📤 Sending message to session session_abc123def456:
Message: 2024년 입학생 공과대학 졸업 요건 알려줘
🤖 Response:
----------------------------------------------------------------------
안녕하세요! 2024년 입학생(2021~2024학년도)의 공과대학 졸업 요건을 안내해드리겠습니다.
📌 공과대학 2021~2024학년도 졸업요건
✅ 기초교양: 14학점
✅ 계열교양: 6학점
✅ 균형교양: 15학점 (5개 영역에서 각 1개)
✅ 전공학점:
- 심화전공자: 66학점
- 다전공자: 42학점
✅ 최소졸업학점: 130학점
다른 궁금하신 사항이 있으신가요?
python deploy.py --listpython deploy.py --list_sessions \
--resource_id="..."python deploy.py --get_session \
--resource_id="..." \
--session_id="..."python deploy.py --delete \
--resource_id="..."Root Agent (kangnam_agent)
├── Graduation Agent (졸업요건 검색)
│ └── Tools: Vertex AI Search 기반
├── Subject Agent (과목 정보 검색)
│ └── Tools: 크롤링 + 파싱
├── Professor Agent (교수 정보 검색)
│ └── Tools: Vertex AI Search 기반
└── Admission Agent (입학 정보 - Placeholder)
goole_adk/전체 (agents, config, tools 등)- Python requirements:
google-cloud-aiplatform[adk,agent_engines]requestsbeautifulsoup4python-dotenv
- Vertex AI Agent Engine: Agent 호스팅
- Vertex AI Search: 졸업요건, 교수 정보 검색
- Cloud Storage: Staging bucket (배포 파일 저장)
- Gemini 2.0 Flash: LLM 모델
배포된 Agent Engine은 gRPC 및 REST API를 제공합니다. 프론트엔드 연동을 위해서는:
- 백엔드 API 서버 구성 (FastAPI/Flask 권장)
- 백엔드가 Agent Engine API 호출
- 프론트엔드는 백엔드 API 호출
[Frontend (React)]
↓ HTTP
[Backend API (FastAPI)]
↓ gRPC/REST
[Agent Engine (Deployed)]
↓
[Vertex AI Search + Gemini]
from fastapi import FastAPI
from vertexai import agent_engines
app = FastAPI()
RESOURCE_ID = "projects/.../reasoningEngines/..."
@app.post("/chat")
async def chat(user_id: str, session_id: str, message: str):
remote_app = agent_engines.get(RESOURCE_ID)
responses = []
for event in remote_app.stream_query(
user_id=user_id,
session_id=session_id,
message=message
):
responses.append(event)
return {"response": responses}- Agent Engine 배포:
us-east4 - Staging Bucket:
us-east4 - Vertex AI Search:
global(자동) - GCS 데이터:
asia-northeast3(별도)
필요한 IAM 역할:
- Vertex AI User
- Storage Admin
- Discovery Engine Admin (Vertex AI Search)
- Agent Engine: 요청당 과금 (idle 시 무료)
- Vertex AI Search: 검색 요청당 과금
- Gemini API: 토큰당 과금
- Cloud Storage: 저장 용량 + 네트워크
- 세션은 영구적이지 않음 (일정 시간 후 만료)
- 프로덕션에서는 세션 ID를 DB에 저장하여 관리 권장
→ create_staging_bucket.py를 실행하고 .env에 추가하세요.
→ gcloud auth application-default login 실행
→ GCP Console에서 Vertex AI API 활성화
→ 로그 확인: gcloud logging read "resource.type=vertex_ai_agent_engine"
→ Bucket이 us-east4에 생성되었는지 확인:
gsutil ls -L gs://kangnam-backend-agent-staging | grep Location배포 관련 이슈 발생 시:
- GCP Console > Vertex AI > Agent Engine에서 로그 확인
gcloudCLI로 배포 상태 확인.env파일의 모든 환경 변수 확인
배포 완료 후 다음 단계:
- 프론트엔드 API 연동
- 모니터링 설정
- 로깅 및 에러 트래킹
- 사용량 모니터링