LLM Live
LLM Live는 SK_19 일반 대화를 Gemini Live의 음성 스트리밍으로 처리하는 기능이다.
제품 명령은 기존 기기 로직이 실행하고, Live는 자연스러운 연속 대화와 답변 중 끼어들기를
담당한다.
핵심 원칙
- 로컬이 먼저 판단한다. 첫 입력은 온디바이스 STT/LLM이 분류하고
SK_19만 Live로 전환한다. - 제품은 기기가 실행한다. Gemini는 명령을 제안하며
FunctionCallHandler -> Device API가 최종 실행한다. - 마이크는 한 번만 연다. 하나의 AudioRecord 입력을 로컬 판단과 Live 준비 경로가 공유한다.
- Live 안에서는 대화를 이어 간다. 답변 중 Barge-in과 답변 후 5초 이내 후속 질문을 지원한다.
- 종료는 한 번에 처리한다. 음성, 마이크, WebSocket과 UI가 같은 종료 결과로 수렴한다.
- 오프라인 기능을 보존한다. Live를 사용할 수 없으면 기존 온디바이스 기능과 로컬 TTS를 유지한다.
온디바이스와 클라우드 R&R
기준은 단순히 코드가 있는 위치가 아니라 최종 판단과 운영 책임을 누가 갖는가다.
| 책임 영역 | 담당 | 핵심 책임 |
|---|---|---|
| A1 AI Agent | 온디바이스 팀 | 마이크·스피커, Barge-in, UI·자막, 세션 종료, 제품 명령 검증과 Device API 실행 |
| SK Live Gateway | 클라우드 팀 | 기기 WebSocket, Gemini 연결, API key·model·prompt, search_rag, timeout·취소·관측 |
| Gemini Live | Google 관리형 모델 | 음성 이해, VAD, 대화 추론, tool 선택, Live PCM·전사 생성 |
tool도 소유권에 따라 나눈다.
| tool | 처리 위치 | 동작 |
|---|---|---|
search_rag |
SK Live Gateway | Gateway가 검색하고 근거를 Gemini에 반환한다. Agent에는 tool call을 보내지 않는다. |
execute_rewrite_query |
A1 AI Agent | Gateway가 전달하고 Agent가 검증한 뒤 기존 제품 명령 경로를 실행한다. |
end_conversation |
A1 AI Agent | Agent가 Live 음성·녹음·WebSocket·UI를 함께 종료한다. |
세부 업무와 출시 게이트는 향후 릴리즈 구조에서 관리한다.
현재 PoC 흐름
Wake-up / F2
-> 하나의 마이크 입력
-> 로컬 STT/LLM 분류
-> 제품 명령: 기존 Device API 실행
-> SK_19: Live Shadow를 Primary로 전환
-> Gemini 음성 응답 재생
-> Barge-in 또는 후속 질문
-> 명시 종료 / 5초 무발화 / 오류 시 전체 세션 종료
현재 실기기 PoC는 A1 -> adb reverse -> 로컬 Broker -> Gemini Live로 연결한다. API key는
Broker 환경 변수에만 두며 APK에는 저장하지 않는다.
최신 연결 상태
아래 내용은 2026-08-19 로컬 PoC에서 코드와 실제 Gateway 연결로 확인한 결과다.
| 항목 | 상태 | 확인 내용 |
|---|---|---|
| Live 모델 | 연결됨 | models/gemini-3.1-flash-live-preview |
| 기준 prompt | 적용됨 | 서버 DEFAULT_PROMPT를 Live systemInstruction에 합쳐 제품 분류 기준을 유지 |
| 웹 최신정보 | 동작 확인 | Gemini가 search_rag를 호출하고 Gateway가 검색 근거를 반환한 뒤 음성·자막 응답 생성 |
| 검색 대체 경로 | 동작 확인 | Custom Search가 현재 테스트 키에서 403이면 Gemini Google Search Grounding으로 자동 전환 |
| 내부 문서 RAG | 현재 비활성 | File Search 코드는 연결돼 있으나 테스트 키에 저장소 권한이 없어 403; 운영 권한 확인 전 사용하지 않음 |
/healthz 기준 현재 설정은 ragEnabled=true, internalRagEnabled=false다. E2E 확인에서는
search_rag가 Gateway 안에서 처리되어 Agent로 유출되지 않았고, 검색 근거를 받은 Gemini가
최종 PCM과 전사를 반환했다. 이 상태는 웹 최신정보 연결 검증이며 운영 배포 완료를 뜻하지 않는다.
상세 문서 바로가기
중복을 피하기 위해 각 상세 문서는 아래 주제 하나를 기준으로 관리한다.
| 궁금한 내용 | 문서 | 이 문서에서 확인할 것 |
|---|---|---|
| 기기에서 실제로 어떻게 도는가 | 기기 Runtime | 상태 전환, 마이크, Barge-in, 종료, 기록 범위 |
| Broker는 왜 있고 무엇을 중계하는가 | 현재 Broker | PoC 연결, search_rag, protocol, 환경 변수, 세션 소유권 |
| 해외 업체가 APK를 어떻게 시험하는가 | 해외 업체 테스트 가이드 | Staging/Local Broker 선택, 설정, 보안과 검증 순서 |
| 어떤 값을 조절할 수 있는가 | 튜닝 파라미터 | VAD, Echo, 오디오 버퍼, timeout의 기준값과 영향 |
| 사용자 경험이 어떻게 달라지는가 | 음성 인터랙션 기획 | 기존/Live 차이, 기획 결정, 권장 정책과 KPI |
| 기존 MR8 기능과 무엇이 충돌하는가 | 기존 사양 호환성 | TTS, 오프라인 멀티턴, fallback과 출시 차단 항목 |
| 제품 릴리즈 구조는 어떻게 가져갈 것인가 | 향후 릴리즈 구조 | 온디바이스/클라우드 R&R, 공통 계약과 출시 게이트 |
현재와 목표 구조
| 구분 | 현재 PoC | 향후 릴리즈 기본안 |
|---|---|---|
| 연결 | 기기 -> 로컬 Broker -> Gemini | A1 AI Agent -> SK Live Gateway -> Gemini |
| Cloud 역할 | API key, 모델, prompt, frame 중계와 search_rag |
동일한 기능 + 기기 인증, quota, 제한과 운영 관측 |
| 실시간 PCM | 로컬 Broker를 통과 | 운영 Gateway를 통과 |
| 제품 명령 | 기기가 검증하고 Device API 실행 | 동일 |
| 세션 | 연결별 1:1 중계, 저장 없음 | WebSocket 수명 기준, 세션 DB 없음 |
| 장애 복구 | 연결 실패 시 세션 정리, REST 자동 복구 없음 | 세션 종료 후 기존 경로로 한 번만 fallback |
| 상태 | 실기기 PoC | TODO, 보안·개인정보·품질 승인 필요 |
목표 구조는 구현 완료 사양이 아니다. 자세한 책임과 미완료 항목은 향후 릴리즈 구조에서만 관리한다.
현재 제약
| 항목 | 현재 상태 | 상세 문서 |
|---|---|---|
| 생각 중 끼어들기 | WAITING_RESPONSE에서는 PCM을 보내지 않아 지원하지 않음 |
기기 Runtime |
| 답변 후 대기 | 5초 뒤 전체 세션 종료. 사용자 체감 검증 필요 | 음성 인터랙션 기획 |
| Echo 제거 | 완전한 AEC가 아니라 유사도 gate로 보완 | 튜닝 파라미터 |
| 제품 멀티턴 | NEEDS_USER_INPUT 계약이 미완성 |
기존 사양 호환성 |
| 장애 복구 | Broker/Gemini 첫 응답 전 실패의 자동 REST 재전송 없음 | 기존 사양 호환성 |
| 장시간 세션 | 14분 상한은 정의됐지만 회전 watchdog 연결이 필요 | 기기 Runtime |
검증 기준
JVM 테스트는 상태 전환, PCM 전달, Echo 판정, 명령 handoff와 중복 종료를 확인한다. 제품 승인은 플랫폼 인증서로 서명한 Release APK에서 다음 항목을 별도로 검증해야 한다.
- 일반 대화의 Live 진입과 첫 음성 재생
- 답변 중 Barge-in과 첫 음절 보존
- 자기 음성 Echo로 인한 오중단 여부
- 두 번째 이후 질문과 자막 표시
- 제품 명령의 기존 Device API 실행과 중복 실행 방지
- 명시 종료와 5초 무발화 후 UI·오디오·연결 정리
- 반복 세션 후 AudioRecord, AudioTrack, WebSocket과 thread 회수
보고자료와 구조도
- 사용자 Interaction 변화 보고자료
- 기존과 Live 적용 후 음성 UX
- 기기·Broker·Gemini 상세 연결
- 마이크 입력과 스트리밍
- Barge-in Runtime
- 대화 종료
- 현재 구현과 보완 항목
- 온디바이스·클라우드 R&R
- 향후 Control/Data Plane
- 해외 업체 테스트 구성