---
title: "Salesforce, 음성 RAG 검색 지연을 316배 줄이는 VoiceAgentRAG 오픈소스 공개"
published: 2026-03-30T09:51:42.157Z
canonical: https://jeff.news/article/1379
---
# Salesforce, 음성 RAG 검색 지연을 316배 줄이는 VoiceAgentRAG 오픈소스 공개

Salesforce AI Research가 음성 에이전트의 RAG 검색 지연 문제를 해결하는 듀얼 에이전트 아키텍처 VoiceAgentRAG를 오픈소스로 공개함. Fast Talker(포그라운드)와 Slow Thinker(백그라운드)가 비동기로 협업해 캐시 히트 시 316배 속도 향상(110ms→0.35ms)을 달성하며, 전체 75% 캐시 히트율을 기록함.

## 문제: 음성 AI의 지연 시간 한계

- 음성 에이전트는 자연스러운 대화를 위해 **200ms 이내** 응답이 필요함
  - 텍스트 기반 RAG는 수 초의 '사고 시간'이 허용되지만, 음성에서는 그 여유가 없음
- 표준 벡터 DB 쿼리는 **50~300ms의 네트워크 지연**을 추가해, LLM 생성이 시작되기도 전에 전체 시간 예산을 소진함

## 듀얼 에이전트 아키텍처

- VoiceAgentRAG는 비동기 이벤트 버스를 통해 두 개의 동시 에이전트를 조율하는 **메모리 라우터**로 작동함

```mermaid
sequenceDiagram
    participant U as 사용자
    participant FT as Fast Talker (포그라운드)
    participant SC as 시맨틱 캐시 (FAISS)
    participant ST as Slow Thinker (백그라운드)
    participant VDB as 벡터 DB (Qdrant)

    Note over ST,VDB: 백그라운드: 예측 프리페치
    ST->>ST: 최근 6턴 슬라이딩 윈도우 분석
    ST->>VDB: 예상 후속 주제 3~5개 프리페치
    VDB-->>SC: 문서 청크 캐시 적재

    U->>FT: 음성 질의
    FT->>SC: 캐시 조회 (0.35ms)
    alt 캐시 히트
        SC-->>FT: 캐시된 컨텍스트 반환
        FT->>U: 즉시 응답 생성
    else 캐시 미스
        FT->>VDB: 벡터 DB 폴백 쿼리 (110ms)
        VDB-->>FT: 결과 반환
        FT->>SC: 결과 캐시 저장
        FT->>U: 응답 생성
        FT->>ST: PriorityRetrieval 이벤트 발행
        ST->>VDB: 확장된 top-k (2x) 즉시 검색
        VDB-->>SC: 새 주제 영역 캐시 적재
    end
```

### Fast Talker (포그라운드 에이전트)

- 지연 시간이 중요한 크리티컬 패스를 담당함
  - 모든 사용자 쿼리에 대해 먼저 **로컬 인메모리 시맨틱 캐시**를 확인함
  - 캐시 히트 시 조회 시간은 약 **0.35ms**
  - 캐시 미스 시 원격 벡터 DB로 폴백하고, 결과를 즉시 캐시에 저장함

### Slow Thinker (백그라운드 에이전트)

- 대화 스트림을 지속적으로 모니터링하며 **예측 프리페치**를 수행함
  - 최근 **6턴의 슬라이딩 윈도우**를 사용해 3~5개의 후속 주제를 예측함
  - 사용자가 다음 질문을 하기 전에 관련 문서 청크를 미리 가져와 로컬 캐시에 적재함
- 검색 정확도 최적화를 위해 질문 형태가 아닌 **문서 스타일 설명문**을 생성함
  - 지식 베이스의 실제 문서와 임베딩이 더 잘 정렬되도록 하는 전략임

## 시맨틱 캐시 기술 상세

- **FAISS IndexFlat IP**(내적) 기반 인메모리 캐시로 구현됨
- **문서 임베딩 인덱싱**: 쿼리 의미가 아닌 문서 자체 임베딩으로 인덱싱함
  - 사용자 표현이 예측과 달라도 관련 결과를 정확히 검색할 수 있음
- **임계값 관리**: 쿼리-문서 코사인 유사도는 쿼리-쿼리보다 체계적으로 낮으므로, 기본 임계값 **τ=0.40**을 사용함
- **캐시 유지보수**:
  - 코사인 유사도 0.95 임계값으로 중복 감지
  - **LRU 퇴거 정책** 적용, TTL은 **300초**
- **PriorityRetrieval**: Fast Talker 캐시 미스 시, Slow Thinker가 기본값의 **2배 top-k**로 즉시 검색해 새 주제 영역의 캐시를 빠르게 채움

## 벤치마크 성능

- Qdrant Cloud를 원격 벡터 DB로 사용, **200개 쿼리·10개 대화 시나리오**에서 평가함
- **핵심 수치**:
  - 검색 속도: **316배 향상** (110ms → 0.35ms, 캐시 히트 시)
  - 전체 캐시 히트율: **75%**
  - 주제 일관성 높은 대화(예: 기능 비교 시나리오 S8)에서 최대 **95%** 히트율
  - 변동성 높은 시나리오에서는 성능 저하: 기존 고객 업그레이드(S9) 45%, 혼합 질의(S10) 55%

## 호환성 및 지원

- **LLM**: OpenAI, Anthropic, Gemini/Vertex AI, Ollama 지원 (기본 평가 모델은 GPT-4o-mini)
- **임베딩**: OpenAI text-embedding-3-small (1536차원), Ollama 지원
- **STT/TTS**: Whisper(로컬 또는 OpenAI), Edge TTS, OpenAI TTS
- **벡터 스토어**: FAISS, Qdrant 기본 지원
- 전체 코드가 **오픈소스**로 공개됨

## 기술 맥락: 왜 이 설계인가

- **핵심 트레이드오프**: 음성 에이전트에서 RAG의 최대 병목은 네트워크 왕복 시간임. VoiceAgentRAG는 "모든 쿼리를 정확하게 검색"하는 대신 "대부분의 쿼리를 사전 예측으로 즉시 응답"하는 전략을 선택함
- **문서 임베딩 vs 쿼리 임베딩**: 일반적인 시맨틱 캐시는 쿼리 임베딩으로 인덱싱하지만, 사용자 표현의 다양성 때문에 히트율이 떨어짐. 문서 임베딩 인덱싱은 "같은 정보를 다르게 물어도 동일 캐시 엔트리에 매칭"되는 장점이 있음
- **τ=0.40의 의미**: 쿼리와 문서 간 유사도는 동일 의미여도 0.4~0.6 수준이 일반적이므로, 임계값을 낮게 설정해 재현율(recall)을 확보하면서 LRU+TTL로 캐시 오염을 방지하는 구조임
- **비동기 이벤트 버스 선택**: 포그라운드/백그라운드 에이전트를 동기 호출 대신 이벤트 기반으로 분리해, 프리페치 지연이 응답 지연에 영향을 주지 않도록 설계함

## 핵심 포인트

- 음성 에이전트의 200ms 응답 예산 내에서 RAG를 수행하기 위한 듀얼 에이전트 아키텍처
- Fast Talker: 인메모리 시맨틱 캐시로 0.35ms 조회, 캐시 미스 시 벡터 DB 폴백
- Slow Thinker: 최근 6턴 슬라이딩 윈도우로 후속 주제 예측 및 프리페치
- 316배 검색 속도 향상(110ms→0.35ms), 전체 75% 캐시 히트율, 최대 95%
- FAISS IndexFlat IP 기반 시맨틱 캐시, 문서 임베딩 인덱싱, τ=0.40 임계값
- OpenAI, Anthropic, Gemini, Ollama 등 주요 LLM 지원, 오픈소스 공개

## 인사이트

음성 AI에서 RAG의 병목이 모델 추론이 아닌 검색 지연이라는 점을 정면으로 공략한 설계임. 예측 프리페치와 문서 임베딩 인덱싱의 조합은 음성뿐 아니라 실시간 응답이 필요한 모든 RAG 시스템에 적용 가능한 패턴임.
