목표
도로 관리 정보 (RMI) ADK 에이전트는 Google BigQuery에 저장된 RMI 데이터를 쿼리하고 분석하기 위한 자연어 인터페이스를 제공합니다. Google의 에이전트 개발 키트 (ADK)와 Gemini 대규모 언어 모델을 활용하여 사용자는 복잡한 SQL 쿼리를 수동으로 작성하지 않고도 대규모 도로 네트워크 및 교통 데이터 세트에서 실행 가능한 통계를 추출할 수 있습니다.
참조 아키텍처
이 아키텍처는 루트 에이전트가 사용자 상호작용을 계획하고 조정하며, 특정 데이터 검색 및 SQL 생성 작업을 전문 하위 에이전트에게 위임하는 계층적 에이전트 시스템으로 구성됩니다.
구성요소
1. RMI 에이전트 (루트 에이전트)
- 역할: 기본 대화형 인터페이스 및 작업 오케스트레이터입니다.
- 책임:
- 멀티턴 대화 컨텍스트를 유지합니다.
- 자연어 요청을 실행 가능한 분석 작업으로 분해합니다.
- 구조화된 데이터 검색 작업을 BigQuery 에이전트에 위임합니다.
- 하위 에이전트가 반환한 원시 표 데이터를 간결하고 사람이 읽을 수 있는 통계로 종합합니다.
2. BigQuery 에이전트 (하위 에이전트)
- 역할: 전문적인 SQL 번역 및 데이터베이스 실행 에이전트
- 책임:
- 루트 에이전트의 자연어 명령어를 최적화된 BigQuery SQL 쿼리로 변환합니다.
- 구성된 BigQuery 데이터 세트에 대해 직접 쿼리를 실행합니다.
- 변경되지 않은 원시 쿼리 결과를 루트 에이전트에 반환합니다.
3. BigQuery 데이터 세트
- 역할: 클라우드 네이티브 분석 데이터 웨어하우스
- 콘텐츠: RMI BigQuery 스키마에 따라 구조화된
historical_travel_time및recent_roads_data을 포함한 도로 관리 정보 (RMI) 테이블
4. Google 생성형 AI
- 역할: 핵심 추론 및 언어 생성 엔진입니다.
- 모델: Google Gemini 모델 (예:
gemini-3.5-flash)을 활용하여 에이전트 조정, 자연어 이해, SQL 생성을 지원합니다.
실행 흐름
- 사용자 요청: 사용자가 자연어 질문 (예: '어제 66번 국도의 평균 이동 시간은 얼마였어?')을 제출합니다.
- 계획 및 오케스트레이션: RMI 에이전트가 요청을 수신하고, 실증적 트래픽 데이터가 필요함을 식별하고, 하위 에이전트에 대한 특정 검색 명령어를 공식화합니다.
- 위임: RMI 에이전트는 구조화된 명령어와 관련 시간 또는 공간 제약 조건을 사용하여 BigQuery 에이전트를 호출합니다.
- SQL 생성: BigQuery 에이전트는 RMI 스키마에 대한 이해를 활용하여 최적화된 BigQuery SQL 쿼리를 생성합니다.
- 실행 및 데이터 가져오기: BigQuery 에이전트는 기본 BigQuery 데이터 세트에 대해 쿼리를 실행하고 결과로 생성된 표 형식 레코드를 가져옵니다.
- 대답 합성: BigQuery 에이전트는 변경되지 않은 원시 데이터를 RMI 에이전트에 반환합니다. RMI 에이전트는 결과를 해석하고, 누락된 도로 식별자를 해결하고, 사용자에게 명확한 자연어 대답을 구성합니다.
예시 시나리오
과제
도시 계획자는 대도시 도로망의 교통 체증을 평가하여 저녁 퇴근 시간대에 교통 신호 타이밍을 조정해야 하는지 확인해야 합니다.
솔루션 워크플로
사용자 질문: 플래너가 CLI 또는 웹 UI를 사용하여 에이전트와 상호작용하며 다음과 같이 질문합니다.
'지난 금요일 오후 5시에 보스턴 시내에서 가장 혼잡한 경로 5개를 알려줘.'
상담사 처리:
- RMI 에이전트가 요청을 파싱합니다. 타겟 위치('보스턴 시내'), 시간대 ('지난 금요일 오후 5시'), 분석 목표 ('가장 혼잡한 상위 5개 경로')를 식별합니다. '혼잡'은 실시간 이동 시간과 정적 시간의 비율 (
duration_in_seconds/static_duration_in_seconds)로 측정해야 한다고 판단합니다. 구조화된 명령어를 사용하여 데이터 검색을 BigQuery 에이전트에 위임합니다.
'2026년 1월 9일 금요일 오후 5시에 보스턴 시내의 도로 구간을 찾아 혼잡 비율이 가장 높은 상위 5개를 반환해 줘.'
- RMI 에이전트가 요청을 파싱합니다. 타겟 위치('보스턴 시내'), 시간대 ('지난 금요일 오후 5시'), 분석 목표 ('가장 혼잡한 상위 5개 경로')를 식별합니다. '혼잡'은 실시간 이동 시간과 정적 시간의 비율 (
데이터 검색:
- BigQuery 에이전트는 이 명령어를
historical_travel_time테이블을 타겟팅하는 SQL 쿼리로 변환하여 혼잡 비율을 계산하고 결과를 정렬하여 상위 5개 세그먼트를 식별합니다. - BigQuery에 대해 쿼리를 실행합니다.
- BigQuery는
(segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio)와 같은 원시 표 형식 결과를 반환합니다.
- BigQuery 에이전트는 이 명령어를
통계 생성:
- BigQuery 에이전트는 세그먼트의 원시 목록을 RMI 에이전트에 다시 전달합니다.
- RMI 에이전트는 레코드를 분석하고, 표시 이름이 누락되었거나 식별자만 참조하는 도로 구간을 처리하고, 데이터를 요약으로 합성합니다.
에이전트가 최종 대답을 구성합니다.
'2026년 1월 9일 금요일 오후 5시에 보스턴 시내에서 가장 혼잡한 경로의 이동 시간이 일반적인 정적 시간보다 훨씬 길었습니다. 트래픽 인식 기간과 정적 기간의 비율을 기준으로 가장 혼잡한 상위 5개 구간은 다음과 같습니다. Route roads/CgkJZ-tTXuNcW4s: 이 구간은 가장 혼잡한 구간으로, 이동 시간은 66초인 반면 정적 기간은 6초에 불과합니다 (혼잡 비율 11.0배).'
결론
대화형 상호작용과 설명 합성 기능을 하위 수준 SQL 생성 및 데이터 검색에서 분리함으로써 계층적 RMI ADK 에이전트 아키텍처는 복잡한 지리 공간 데이터 웨어하우스와 최종 사용자 간의 격차를 해소합니다. 특수 하위 에이전트 내에서 데이터베이스 실행을 격리하면 모듈성, 유지관리 가능성, 운영 안전성이 향상되는 동시에 의사결정자가 자연어를 통해 검증 가능한 통계를 빠르게 추출할 수 있습니다.
다음 단계
- 사용 사례에 맞게 맞춤설정: 이 멀티 에이전트 아키텍처와 프롬프트 설계를 특정 지리정보 또는 조직 사용 사례에 맞게 조정합니다.
- 전문 계획자 에이전트로 확장: 전용 계획자 에이전트를 통합하여 복잡한 다단계 분석 워크플로를 조정합니다.
- 멀티모달 데이터 소스 통합: RMI 데이터를 날씨 이벤트, 공사 일정, 실시간 사고 피드와 같은 추가 공간 레이어와 결합하여 교통 및 도로 관리 통계를 보강합니다.
- 프로덕션에 배포: Gemini Enterprise Agent Platform에서 호스팅되는 ADK 에이전트를 등록하고 관리 가이드에 따라 프로토타입에서 프로덕션 엔터프라이즈 환경으로 에이전트를 전환합니다.
참여자
켈 마커트 | 클라우드 지리학자