В мире голосового ИИ разница между полезным помощником и неловким взаимодействием измеряется в миллисекундах. В то время как текстовые системы генерации с дополнением на основе поиска (RAG) могут позволить себе несколько секунд на «размышления», голосовые агенты должны отвечать в пределах бюджета в 200 мс, чтобы поддерживать естественный ход беседы. Стандартные запросы к производственным векторным базам данных обычно добавляют 50–300 мс задержки в сети, фактически расходуя весь бюджет ещё до того, как LLM начнёт генерировать ответ.
Команда исследователей Salesforce AI выпустила VoiceAgentRAG — архитектуру с открытым исходным кодом, предназначенную для обхода этого узкого места при поиске путём разделения извлечения документов и генерации ответов.
Двухагентная архитектура: Быстрый Говорящий и Медленный Мыслитель
VoiceAgentRAG работает как маршрутизатор памяти, который управляет двумя параллельными агентами через асинхронную шину событий:
- Быстрый Говорящий (Foreground Agent): этот агент обрабатывает критический путь задержки. Для каждого пользовательского запроса он сначала проверяет локальный семантический кеш в памяти. Если требуемый контекст присутствует, поиск занимает примерно 0,35 мс. При промахе в кеше он обращается к удалённой векторной базе данных и немедленно кэширует результаты для будущих обращений.
- Медленный Мыслитель (Background Agent): работая в фоновом режиме, этот агент постоянно отслеживает поток беседы. Он использует скользящее окно из последних шести поворотов разговора, чтобы предсказать 3–5 наиболее вероятных последующих тем. Затем он предварительно извлекает соответствующие фрагменты документов из удалённого векторного хранилища в локальный кеш до того, как пользователь задаст следующий вопрос.
Чтобы оптимизировать точность поиска, Медленному Мыслителю поручено генерировать описания документов, а не вопросы. Это гарантирует, что полученные вложения будут более точно соответствовать фактической прозе, найденной в базе знаний.
Техническая основа: семантическое кэширование
Эффективность системы зависит от специализированного семантического кэша, реализованного с помощью индекса FAISS IndexFlat IP (внутренний продукт).
- Индексация вложений документов: в отличие от пассивных кэшей, которые индексируют по смыслу запроса, VoiceAgentRAG индексирует записи по их собственным вложениям документов. Это позволяет кэшу выполнять надлежащий семантический поиск по своему содержимому, обеспечивая релевантность, даже если формулировка пользователя отличается от предсказаний системы.
- Управление порогами: поскольку косинусное сходство запроса и документа систематически ниже, чем косинусное сходство запроса и запроса, система использует пороговое значение по умолчанию τ=0,40 для балансировки точности и полноты.
- Обслуживание: кеш обнаруживает почти дубликаты, используя порог косинусного сходства 0,95, и применяет политику вытеснения Least Recently Used (LRU) с временем жизни (TTL) в 300 секунд.
- Приоритетный поиск: при промахе в кэше Быстрого Говорящего событие PriorityRetrieval запускает Медленного Мыслителя для немедленного поиска с расширенным top-k (в 2 раза больше, чем по умолчанию), чтобы быстро заполнить кеш вокруг новой тематической области.
Бенчмарки и производительность
Команда исследователей оценила систему, используя Qdrant Cloud в качестве удалённой векторной базы данных для 200 запросов и 10 сценариев разговора.
| Метрика | Производительность |
| — | — |
| Общий процент попаданий в кеш | 75% (79% на тёплых поворотах) |
| Ускорение поиска | 316 раз (110 мс → 0,35 мс) |
| Общее время поиска сэкономлено | 16,5 секунд за 200 ходов |
Архитектура наиболее эффективна в сценариях с тематической согласованностью или устойчивыми темами. Например, «Сравнение функций» (S8) достигло показателя попаданий 95%.
Интеграция и поддержка
Репозиторий VoiceAgentRAG разработан для широкой совместимости со стеком ИИ:
- Поставщики LLM: поддерживает OpenAI, Anthropic, Gemini/Vertex AI и Ollama. Модель оценки по умолчанию в статье — GPT-4o-mini.
- Вложения: в исследовании использовалось OpenAI text-embedding-3-small (1536 измерений), но репозиторий поддерживает как OpenAI, так и Ollama вложения.
- STT/TTS: поддерживает Whisper (локальный или OpenAI) для преобразования речи в текст и Edge TTS или OpenAI для преобразования текста в речь.
- Векторные хранилища: встроенная поддержка FAISS и Qdrant.
Ключевые выводы
- Двухагентная архитектура: система решает проблему задержки RAG, используя переднего агента «Быстрый Говорящий» для субмиллисекундных поисков в кеше и фонового агента «Медленный Мыслитель» для предиктивного предварительного извлечения.
- Значительное ускорение: достигается 316-кратное ускорение поиска (110 мс → 0,35 мс) при попадании в кеш, что критически важно для соблюдения естественного бюджета голосового ответа в 200 мс.
- Высокая эффективность кеширования: в различных сценариях система поддерживает общий процент попаданий в кеш на уровне 75%, достигая 95% в тематически согласованных беседах, таких как сравнение функций.
- Кэширование с индексацией документов: для обеспечения точности независимо от формулировки пользователя семантический кеш индексирует записи по вложениям документов, а не по вложениям, предсказанным запросом.
- Предсказательное предварительное извлечение: фоновый агент использует скользящее окно из последних шести поворотов разговора, чтобы предсказать вероятные последующие темы и заполнить кеш во время естественных пауз между ходами.
Ознакомьтесь с [документом и репозиторием](https://arxiv.org/pdf/2603.02206) здесь. Также подписывайтесь на нас в [Twitter](https://twitter.com) и присоединяйтесь к нашему [ML SubReddit](https://www.reddit.com/r/MachineLearning/) и подписывайтесь на [наш Newsletter](https://www.marktechpost.com/newsletter/). А если вы в Telegram, присоединяйтесь к нам и там!
1. Какие основные проблемы решает VoiceAgentRAG в контексте голосового ИИ?
VoiceAgentRAG решает проблему задержки поиска в голосовом RAG, сокращая её в 316 раз. Голосовые агенты должны отвечать в пределах бюджета в 200 мс, чтобы поддерживать естественный ход беседы. Стандартные запросы к производственным векторным базам данных обычно добавляют 50–300 мс задержки в сети, фактически расходуя весь бюджет ещё до того, как LLM начнёт генерировать ответ.
2. Какие агенты входят в архитектуру VoiceAgentRAG и какие функции они выполняют?
В архитектуру VoiceAgentRAG входят два агента:
* Быстрый Говорящий (Foreground Agent) обрабатывает критический путь задержки. Для каждого пользовательского запроса он сначала проверяет локальный семантический кеш в памяти. При промахе в кеше он обращается к удалённой векторной базе данных и немедленно кэширует результаты для будущих обращений.
* Медленный Мыслитель (Background Agent) работает в фоновом режиме и постоянно отслеживает поток беседы. Он использует скользящее окно из последних шести поворотов разговора, чтобы предсказать 3–5 наиболее вероятных последующих тем. Затем он предварительно извлекает соответствующие фрагменты документов из удалённого векторного хранилища в локальный кеш до того, как пользователь задаст следующий вопрос.
3. Какие технические основы лежат в основе работы VoiceAgentRAG?
Эффективность системы VoiceAgentRAG зависит от специализированного семантического кэша, реализованного с помощью индекса FAISS IndexFlat IP (внутренний продукт). Система индексирует записи по их собственным вложениям документов, что позволяет кэшу выполнять надлежащий семантический поиск по своему содержимому, обеспечивая релевантность, даже если формулировка пользователя отличается от предсказаний системы.
4. Какие метрики использовались для оценки производительности VoiceAgentRAG?
Для оценки производительности VoiceAgentRAG использовались следующие метрики:
* общий процент попаданий в кеш;
* ускорение поиска;
* общее время поиска, сэкономленное за 200 ходов.
5. С какими поставщиками LLM и векторными хранилищами совместим репозиторий VoiceAgentRAG?
Репозиторий VoiceAgentRAG совместим со следующими поставщиками LLM: OpenAI, Anthropic, Gemini/Vertex AI и Ollama. Также поддерживается использование FAISS и Qdrant в качестве векторных хранилищ.