피드로 돌아가기
Two Nasty Gotchas When Building Multi-Agent Systems with Google ADK
Dev.toDev.to
AI/ML

Google ADK 기반 Multi-Agent 시스템의 Runtime 충돌 및 파싱 오류 해결

Two Nasty Gotchas When Building Multi-Agent Systems with Google ADK

Hiroshi Toyama2026년 4월 28일3intermediate

Context

Google ADK를 활용해 Multi-Agent 계층 구조를 설계했으나 Cloud Run 환경의 Module Reload 동작으로 인해 런타임 예외 발생. 특히 Singleton 패턴으로 정의된 Sub-Agent들이 이전 요청의 Parent Reference를 유지하며 Pydantic 유효성 검사 단계에서 충돌하는 구조적 한계 노출.

Technical Solution

  • Cloud Run의 Request-per-reload 동작에 따른 Agent 인스턴스 중복 할당 문제 해결을 위해 Constructor 주입 전 parent_agent 속성을 None으로 초기화하는 Reset 로직 도입
  • Module-level Singleton 객체가 메모리에 상주하며 발생하는 상태 오염을 방지하기 위해 동적 인스턴스 생성 전 상태 초기화 강제
  • ADK의 instructions_utils.py 내 정규표현식({+[^{}]*}+) 기반의 Session State 주입 메커니즘 분석을 통한 KeyError 원인 파악
  • Python의 .format() 방식과 다른 ADK 고유의 Regex 매칭 특성으로 인해 Double-brace({{ }}) 이스케이프가 작동하지 않음을 확인
  • Instruction 내 Literal Placeholder를 중괄호에서 앵글 브래킷(< >) 또는 대괄호([ ]) 형식으로 변경하여 런타임 파싱 충돌 제거

1. Serverless 환경에서 Module-level Singleton 사용 시 요청 간 상태 공유 및 Reload 동작 여부 검토

2. 프레임워크 내부의 문자열 치환 Regex 패턴을 확인하여 Prompt 내 예약어 충돌 가능성 점검

3. Pydantic 기반의 모델 설계 시 객체 재사용 과정에서 발생할 수 있는 Validation 에러 케이스 정의

원문 읽기