Коротко
AnovaX — локальный голосовой ассистент, который превращает рабочий стол в поле для действий, а телефон — в пульт. Разбираем архитектуру: LLM-планировщик, типизированные агенты-исполнители и цикл восстановления.
Голосовые ассистенты для десктопа до сих пор работают по модели «отправь аудио в облако, получи ответ». AnovaX делает наоборот: весь пайплайн крутится на машине пользователя, а рабочий стол становится поверхностью для действий. LLM (Gemini) здесь не болтает, а генерирует JSON-план вызовов инструментов, который мультиагентный оркестратор превращает в типизированных дочерних агентов на ограниченном пуле потоков.
Архитектура — один Python-процесс, связывающий wake-word, речевой пайплайн, планировщик, слой безопасности (whitelist + denylist) и цикл адаптивного восстановления. Каждый инструмент — это отдельный класс агента: AppAgent, TypingAgent, BrowserAgent и ещё шесть. У каждого свой таймаут, политика повторов и блокировки на общие ресурсы. MetaAgent позволяет планировщику делегировать подцель самому себе, но не глубже двух уровней вложенности — жёсткий ограничитель против рекурсивного разрастания.
Самое интересное — восстановление и сокрытие задержек. Когда ключевой шаг падает, включается компактный ReAct-промпт, который пытается починить ситуацию. Параллельно read-only инструменты запускаются спекулятивно, чтобы скрыть задержку Gemini. Это не магия, а инженерный трюк: пока LLM думает, система делает полезную работу, не требующую его ответа.
Управление — с телефона через локальный WiFi. Flask-сервер транслирует на смартфон каждое событие жизненного цикла агентов в реальном времени и стримит экран ноутбука по MJPEG, чтобы пользователь видел, как команды приземляются. LLM никогда не касается клавиатуры напрямую — только генерирует план, а исполняют типизированные агенты.
Главная ценность проекта — не конкуренция с Siri или Alexa, а доказательство: читаемый ассистент на несколько тысяч строк кода способен открывать приложения, вводить текст, запускать поиск, координировать параллельные действия, восстанавливаться после ошибок и управляться с телефона из другой комнаты. Для практиков это рабочий референс того, как собирать локальных агентов без облачной зависимости.
Источник: cs.AI updates on arXiv.org