1. 양방향 스트리밍이란 무엇인가요?
양방향 스트리밍 (bidi-streaming)을 사용하면 애플리케이션과 AI 모델 간에 동시에 양방향 통신이 가능합니다. 전체 메시지를 보내고 전체 답장을 기다리는 기존 요청-응답 패턴과 달리 양방향 스트리밍을 사용하면 다음이 가능합니다.
- 연속 입력: 캡처되는 대로 오디오, 동영상 또는 텍스트를 스트리밍합니다.
- 실시간 출력: AI 응답이 생성되는 대로 수신
- 자연스러운 중단: 사용자는 사람과의 대화처럼 AI의 응답 중간에 중단할 수 있습니다.

중요한 이유: 양방향 스트리밍을 사용하면 AI와의 대화가 자연스럽게 느껴집니다. 컨텍스트를 제공하는 동안 AI가 대답할 수 있으며, 충분히 들었다면 사람과 대화하는 것처럼 중단할 수 있습니다.
ADK Gemini Live API 툴킷이란 무엇인가요?
에이전트 개발 키트 (ADK)는 Gemini Live API에 대한 상위 수준 추상화를 제공하여 실시간 스트리밍의 복잡한 배관을 처리하므로 애플리케이션 빌드에 집중할 수 있습니다.

ADK Gemini Live API 툴킷은 다음을 관리합니다.
- 연결 수명 주기: WebSocket 연결 설정, 유지, 복구
- 메시지 라우팅: 오디오, 텍스트, 이미지를 올바른 핸들러로 전달
- 세션 상태: 재연결 시 대화 기록 유지
- 도구 실행: 함수 호출에서 자동으로 호출 및 재개
원시 Live API 대신 ADK를 사용해야 하는 이유는 무엇인가요?
Gemini Live API에서 직접 빌드할 수도 있지만 ADK는 복잡한 인프라를 처리하므로 애플리케이션에 집중할 수 있습니다.

기능 | Raw Live API | ADK Gemini Live API 툴킷 |
에이전트 프레임워크 | 처음부터 새로 작성 | 도구, 평가, 보안이 포함된 단일/멀티 에이전트 |
도구 실행 | 수동 처리 | 자동 병렬 실행 |
연결 관리 | 수동 재연결 | 투명한 세션 재개 |
이벤트 모델 | 맞춤 구조 | 통합된 유형이 지정된 이벤트 객체 |
비동기 프레임워크 | 수동 조정 | LiveRequestQueue + run_live() 생성기 |
세션 지속성 | 수동 구현 | 기본 제공 SQL, Vertex AI 또는 인메모리 |
결론: ADK를 사용하면 몇 개월이 걸리던 인프라 개발을 며칠 만에 애플리케이션 개발로 단축할 수 있습니다. 스트리밍 작동 방식이 아닌 에이전트가 하는 일에 집중합니다.
실제 사용 사례
- 고객 서비스: 고객이 전화 카메라를 통해 결함이 있는 커피 머신을 보여주면서 문제를 설명합니다. AI가 모델과 실패 지점을 식별하고 고객은 대화 중에 세부정보를 수정하기 위해 중단할 수 있습니다.
- 전자상거래: 쇼핑객이 웹캠에 옷을 들고 '이 바지와 어울리는 신발을 찾아 줘'라고 말합니다. 에이전트가 스타일을 분석하고 유연한 대화를 나눕니다. '좀 더 캐주얼한 스타일을 보여 줘' → '이 스니커즈는 어때?' → '파란색 10사이즈를 추가해 줘.'
- 현장 서비스: 스마트 글라스를 착용한 기술자가 '이 컴프레서에서 이상한 소리가 들립니다. 확인해 주시겠어요?'라고 말하면서 자신의 시야를 스트리밍합니다. 상담사는 핸즈프리로 단계별 안내를 제공합니다.
- 의료: 환자가 피부 상태를 라이브 동영상으로 공유합니다. AI가 예비 분석을 수행하고, 불확실한 부분을 확인하는 질문을 하고, 다음 단계를 안내합니다.
- 금융 서비스: 고객이 포트폴리오를 검토하는 동안 상담사가 차트를 표시하고 거래 영향을 시뮬레이션합니다. 고객은 화면을 공유하여 특정 뉴스 기사를 논의할 수 있습니다.
쇼핑객 컨시어지 2 데모: ADK Gemini Live API 툴킷과 Vertex AI 벡터 검색, 임베딩, Feature Store, Ranking API로 구축된 전자상거래용 실시간 에이전트형 RAG 데모입니다.

자세히 알아보기: 개발자 가이드
자세한 내용은 ADK Gemini Live API 툴킷 개발자 가이드를 참고하세요. 아키텍처부터 프로덕션 배포까지 다루는 5부작 시리즈입니다.
파트 | 포커스 | 실습 내용 |
기반 | 아키텍처, 라이브 API 플랫폼, 4단계 수명 주기 | |
업스트림 | LiveRequestQueue를 통해 텍스트, 오디오, 동영상 전송 | |
다운스트림 | 이벤트 처리, 도구 실행, 멀티 에이전트 워크플로 | |
구성 | 세션 관리, 할당량, 프로덕션 제어 | |
멀티모달 | 오디오 사양, 모델 아키텍처, 고급 기능 |
2. 워크숍 개요
빌드할 항목
이 실무형 워크숍에서는 처음부터 완전한 양방향 스트리밍 AI 애플리케이션을 빌드합니다. 이 과정을 마치면 다음 작업을 할 수 있는 음성 AI가 완성됩니다.
- 텍스트, 오디오, 이미지 입력 허용
- 스트리밍 텍스트 또는 자연스러운 음성으로 대답
- 자연스럽게 방해 처리
- Google 검색과 같은 도구 사용
문서를 읽는 것과 달리 각 구성요소를 단계별로 검사하여 점진적으로 빌드하면서 조각이 어떻게 맞는지 이해합니다.

학습 접근 방식
Google은 증분 빌드 접근 방식을 따릅니다.
- 1단계: 최소 WebSocket 서버 → 'Hello World' 응답
- 2단계: 에이전트 추가 → AI 동작 및 도구 정의
- 3단계: 애플리케이션 초기화 → 러너 및 세션 서비스
- 4단계: 세션 초기화 → RunConfig 및 LiveRequestQueue
- 5단계: 업스트림 작업 → 클라이언트-대기열 커뮤니케이션
- 6단계: 다운스트림 작업 → 클라이언트 스트리밍 이벤트
- 7단계: 오디오 추가 → 음성 입력 및 출력
- 8단계: 이미지 입력 추가 → 멀티모달 AI
각 단계는 이전 단계를 기반으로 합니다. 각 단계를 완료한 후 테스트를 통해 진행 상황을 확인할 수 있습니다.
기본 요건
- 결제가 사용 설정된 Google Cloud 계정
- 기본 Python 및 비동기 프로그래밍 (async/await) 지식
- 마이크 및 웹 카메라 액세스 권한이 있는 웹브라우저 (Chrome 권장)
예상 시간
- 전체 워크숍: 약 90분
- 간단한 버전 (1~4단계만 해당): 약 45분
3. 워크숍
여기의 안내에 따라 워크숍을 시작하세요.
https://github.com/kazunori279/adk-streaming-guide/blob/main/workshops/workshop.md
4. 마무리 및 핵심 내용
빌드한 항목
처음부터 완전한 양방향 스트리밍 AI 애플리케이션을 빌드했습니다. 이 애플리케이션은 텍스트, 음성, 이미지 입력을 실시간 스트리밍 응답으로 처리하여 프로덕션 준비가 완료된 대화형 AI를 빌드할 수 있는 기반을 제공합니다.
구성요소 | 기능 | 단계 |
에이전트 | AI 페르소나, 지침, 사용 가능한 도구 (예: Google 검색)를 정의합니다. | 2단계 |
SessionService | 다시 연결 시 대화 기록 유지 | 3단계 |
실행자 | 스트리밍 수명 주기를 오케스트레이션하고 에이전트를 Live API에 연결합니다. | 3단계 |
RunConfig | 응답 모달리티 (TEXT/AUDIO), 스크립트 작성, 세션 재개를 구성합니다. | 4단계 |
LiveRequestQueue | 모델에 텍스트, 오디오, 이미지를 전송하기 위한 통합 인터페이스 | 5단계 |
run_live() | 모델에서 스트리밍 이벤트를 생성하는 비동기 생성기 | 6단계 |
send_realtime() | 지속적인 스트리밍 입력을 위해 오디오/이미지 BLOB을 전송합니다. | 7~8단계 |
리소스
다음 공식 리소스를 통해 계속 학습하세요. ADK Gemini Live API 툴킷 가이드에서는 이 워크숍의 모든 내용을 자세히 다룹니다.
리소스 | URL |
ADK 문서 | |
ADK Gemini Live API 툴킷 가이드 | |
Gemini Live API | |
Vertex AI Live API | https://cloud.google.com/vertex-ai/generative-ai/docs/live-api |
ADK 샘플 저장소 |