Полностью локальный голосовой агент с оффлайн-распознаванием речи, встроенной локальной моделью LLM и удобным графическим интерфейсом.
- О проекте
- Возможности
- Системные требования
- Установка и запуск
- Графический интерфейс (GUI)
- Внешние LLM-серверы
- Полный справочник команд
- Периодические задачи и напоминания
- Инструменты (Tools)
- Telegram-режим
- Как работает веб-поиск
- Конфигурация
- Запуск через Vite/Electron
- Устранение неполадок
- FAQ
- Благодарности
Vera — локальный голосовой агент для Windows, работающий без передачи данных в облако. Все вычисления выполняются на компьютере пользователя:
- Распознавание речи: Sherpa-ONNX (оффлайн, streaming)
- Модель LLM: Ваша локальная (при разработке использовалась Qwen 3.5 2B) или внешний сервер (Ollama, LM Studio)
- Синтез речи: pyttsx3
- Интерфейс: Плавающий виджет и полноценное окно чата поверх всех окон
Важно: агент может ошибаться. Проверяйте критически важные данные, включая результаты веб-поиска, курсы валют, погодные данные и статистику.
Чтобы прервать разговор Веры, скажите "Вера" — она остановится и будет ждать команду.
Вы можете скачать агента на сайте https://agentvera.ru
| Категория | Функции |
|---|---|
| Интерфейс | Плавающий виджет, текстовый чат, стриминг ответов, светлая/темная тема |
| Трей и запуск | Иконка в системном трее Windows, меню «Открыть чат/Выход», защита от запуска второго экземпляра |
| Голосовое управление | Активация по слову, прерывание командой, офлайн STT, синтез речи |
| LLM-управление | Переключение мышления, лимит reasoning_budget, подключение внешних LLM-серверов |
| Приложения | Запуск, закрытие, автоматический запуск по расписанию |
| Окна | Управление окнами (свернуть, развернуть, переключить) |
| Файлы | Поиск и открытие файлов, прикрепление документов в чат для анализа |
| Веб | Поиск, погода, курсы валют |
| Продуктивность | Таймеры, периодические задачи, визуальное управление расписанием |
| Система | Громкость, яркость, управление музыкой, скриншоты, меню Пуск, проводник |
| Мультизадачность | Декомпозиция сложных задач и выполнение их по шагам |
| Инструменты | Чтение документов, интерпретатор Python, генерация презентаций и отчетов |
| Telegram | Telegram-хостинг (Saved Messages), чтение/отправка сообщений |
| Память | Долгосрочная память (персонализация) и сохранение контекста диалога |
| Надежность | Автоперезапуск backend, уведомления о перезапуске и сетевых сбоях в GUI |
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| ОС | Windows 10 x64 | Windows 11 x64 |
| Python | 3.10 | 3.11+ |
| Node.js | 14.18+ | 18+ LTS |
| RAM | 8 ГБ | 16+ ГБ |
| Диск | 4 ГБ | 5 ГБ SSD |
| Микрофон | Любой | USB или качественный встроенный |
Минимальные версии рассчитаны по фактическим ограничениям зависимостей проекта:
Python 3.10+(требованияfastapi,uvicorn,websockets,Pillowизrequirements.txt).Node.js 14.18+(требованияviteи@vitejs/plugin-reactизui/package.json).
git clone https://github.com/tripleguard/Vera.git
cd agent_verapip install -r requirements.txtcd ui
npm install
cd ..Sherpa-ONNX:
- Скачайте модель
sherpa-onnx-streaming-zipformer-small-ru-vosk-2025-08-16 - Распакуйте её в корень проекта
LLM: Если вы используете встроенный механизм запуска, скачайте модель формата GGUF (например, Qwen3-4B-Q4_K_M) и поместите файл в корень проекта.
cd ui
npm startnpm start поднимает Vite + Electron и автоматически запускает Python backend (server.py) из .venv, если окружение найдено.
Консольные команды:
| Команда | Описание |
|---|---|
| /mute / /unmute | Управление микрофоном |
| /exit | Завершение работы |
Агент работает в фоновом режиме через графический интерфейс с плавающим поверх остальных окон виджетом, который пульсирует во время разговора и обдумывания ответа. Также доступно окно чата для текстового взаимодействия. Распознанные голосовые запросы автоматически отображаются в чате вместе с ответами.
В интерфейсе чата доступны следующие визуальные элементы и кнопки управления:
- Системный трей (Windows): Иконка агента в трее открывает чат, а через контекстное меню доступны действия «Открыть чат» и «Выход».
- Кнопка-скрепка (Прикрепление файлов): Позволяет загружать файлы прямо в чат, передавая их содержимое в контекст запроса. Поддерживаются форматы
.docx,.txt,.xlsx,.pptx,.md,.py,.pdf,.html,.json. Загрузив документ, вы можете просить агента извлечь нужную информацию, проанализировать код или таблицы, сделать саммари. - Переключатель темы (иконка Солнца/Луны): Расположен в верхнем меню, переключает светлую и темную темы оформления интерфейса.
- Переключатель мышления (иконка мозга рядом с вводом): Позволяет быстро включать/выключать режим размышления модели; лимит задается в настройках (
reasoning_budget). - Блок "Размышления модели" (иконка мозга): При решении сложных задач и генерации ответов может появляться индикатор размышлений с иконкой мозга. Нажав на него, можно развернуть внутренний монолог агента в реальном времени.
- Кнопки источников: Ссылки из веб-поиска парсятся и отображаются в виде аккуратных кликабельных кнопок с доменами сайтов, открывающихся в браузере.
- Кнопка "Открыть папку с файлом": После генерации документов/презентаций и создания скриншота появляется кнопка для быстрого перехода к файлу в Проводнике.
- Системные уведомления в чате: GUI показывает служебные сообщения при проблемах backend (автоперезапуск, исчерпание попыток, сетевые неполадки).
Для удобства пользователя реализован стриминг ответов: в чате текст набирается плавно и постепенно, слово за словом (в голосовом режиме ответы выводятся целиком для синхронизации со звуком).
Агент поддерживает работу со сторонними серверами, такими как Ollama или LM Studio. Это позволяет не запускать локальную модель силами самого агента, а перенаправить запросы на уже запущенный в системе (или в другой сети) инстанс, экономя ресурсы компьютера и обеспечивая гибкость в выборе моделей.
Как подключить другой эндпоинт:
- Откройте настройки в графическом интерфейсе агента.
- Включите опцию "Внешний LLM-сервер".
- Введите URL вашего сервера (например,
http://localhost:11434/v1для Ollama илиhttp://localhost:1234/v1для LM Studio). - Нажмите кнопку сохранения. Изменения применяются мгновенно без необходимости перезапуска агента.
Вы можете управлять фоновыми задачами и напоминаниями двумя способами: ставя их голосом или настраивая самостоятельно через графический интерфейс.
Самостоятельная настройка через GUI:
- Откройте окно Настроек в интерфейсе агента.
- Перейдите к разделу "Периодические задачи".
- В этом разделе представлен список всех активных задач. Вы можете визуально добавлять новые напоминания, редактировать время и интервал срабатывания существующих, а также удалять их.
- Сложные задачи (например, запрос новостей или погоды по утрам) автоматически направляются в LLM для обработки, а простые (напоминания вроде "попей воду") сразу выводятся на экран в виде текста.
Звук таймера:
В систему добавлен обновленный звук таймера, который проигрывается по кругу до тех пор, пока вы не остановите его командой «стоп». Таймер теперь работает с секундной точностью.
Управление голосом (Примеры команд):
Вера, таймер 10 минут
Вера, напомни через полчаса позвонить начальнику
Вера, читай мне новости каждое утро в 9:30
Вера, удали таймер
Агент использует нечёткий поиск названий программ.
Вера, открой хром
Вера, закрой телеграм
Вера, запусти калькулятор
Вера, открой командную строку
Вера, сверни окно
Вера, разверни браузер
Вера, переключись на телеграм
Агент может запускать приложения по расписанию, автоматически определяя правильные даты.
Вера, запускай телегу каждый день в 9 утра
Вера, запускай хром в 8:30 по будням
Вера, запусти дискорд в 22:30
Вера, покажи запланированные запуски
Поиск директорий и файлов с фильтрацией по дискам и fallback на встроенный поиск Windows:
Вера, открой файл отчет
Вера, найди файл резюме
Вера, открой папку проект
Вера, открой папку bb на диске d
Вера, громкость 75 процентов
Вера, яркость 7
Вера, открой пуск
Вера, мой компьютер
Вера, сделай скриншот
Вера, какой мой IP
Вера, выключи компьютер
Вера, перезагрузи через час
Вера, спящий режим
Управление воспроизведением (Spotify, Яндекс Музыка и другие плееры). Команды выполняются без голосового подтверждения.
Вера, пауза
Вера, играй
Вера, продолжи
Вера, стоп музыка
Вера, выключи музыку
Вера, дальше трек
Вера, следующий трек
Вера, назад
Вера, открой корзину
Вера, очисти корзину
Вера, открой диспетчер задач
Вера, закрой диспетчер задач
Вера, подбрось монетку
Агент самостоятельно очищает текст загруженных веб-страниц, анализирует собранные данные, используя глубокий поиск:
Вера, погода в Москве
Вера, курс доллара
Вера, найди информацию о Python
Вера, кто такой Эйнштейн
Вера, открой ютуб
Источником курсов валют является ЦБ РФ.
Агент обладает долгосрочной персистентной памятью (сохраняется между запусками в файл). Факты извлекаются автоматически из обычного разговора, но можно управлять знаниями напрямую:
Вера, запомни меня зовут Имя
Вера, запомни я работаю программистом
Вера, что ты знаешь обо мне
Вера, забудь про работу
Агент может выполнять сложные и алгоритмические запросы, используя систему плагинов. В случае комплексных запросов, задача декомпозируется и выполняется по шагам с передачей контекста:
Вера, расскажи что написано в файле readme
Вера, прочитай документ отчёт.docx
Вера, о чём файл changelog.md
Длинные документы автоматически суммаризируются.
Создание текстовых файлов, таблиц и интеллектуальных презентаций. Агент самостоятельно генерирует структуру слайдов и осуществляет веб-поиск источников:
Вера, создай заметку с текстом привет мир
Вера, сделай презентацию про искусственный интеллект
Вера, создай таблицу с расходами
Презентации генерируются с цветовым оформлением и автодобавлением источников, если использовался поиск.
Безопасное выполнение скриптов в отдельном процессе с защитой от зацикливания:
Вера, посчитай факториал 20
Вера, сгенерируй случайный пароль
Вера, реши уравнение x^2 - 5x + 6 = 0
Агент может работать через "Telethon", подключаясь к привязанному аккаунту Telegram, обрабатывая команды прямо из папки Избранное (Saved Messages):
Вера, уйди в телегу
Вера, перейди в телеграм
- Работа с файлами: можно написать "скинь файл отчет.docx" — агент найдет и отправит документ или фото прямо в чат. Если доступно несколько вариантов, он предложит выбор.
- Генерация презентаций: отправьте запрос на создание презентации, и готовый
.pptxфайл автоматически придет в чат. - Для возврата в десктопный режим напишите «вернись» в чате. С целью безопасности в Telegram-режиме отключено управление ПК.
Доступно чтение сообщений из переписок с нормализацией имён:
Вера, напиши Назару привет
Вера, что написал Назар?
Вера, мне кто-то писал в телеге?
Вера, выйди из телеги
- Запрос через Brave
- Получение списка ссылок
- Загрузка страниц
- Очистка текста
- Суммаризация LLM
Файл: data/config.json
Ключевые параметры: настройки слова активации, таймаут тишины, голос для TTS (tts.voice_index), внешние серверы LLM и алиасы сайтов.
cd ui
npm startПайплайн на run_vera.py и PyInstaller удалён. Актуальный entry point — Electron (ui/main.js) + FastAPI backend (server.py).
- Sherpa-ONNX не загружается: проверьте наличие папки с моделью (например,
sherpa-onnx-streaming-zipformer-small-ru-vosk-2025-08-16). - LLM не заводится / Ошибка llama-server.exe:
- Проверьте, что в папке с программой (
C:\Program Files\Veraпо умолчанию) есть файлllama-server.exeи сопутствующие ему DLL. - Если файлы отсутствуют (ошибка автоматического скачивания), скачайте архив
llama-bin-win-vulkan-x64.zip(илиcpuверсию) с официального релиза llama.cpp и распакуйте его содержимое прямо в папку с приложением. - Убедитесь, что там же лежит файл модели
.gguf.
- Проверьте, что в папке с программой (
- Нет звука: настройте
tts.voice_index. - Микрофон не работает: проверьте настройки звука в Windows.
- Backend перезапускается: в GUI появится служебное уведомление о перезапуске. Если попытки исчерпаны, перезапустите приложение и проверьте логи backend.
- Telegram не отвечает при существующей сессии: при сетевой ошибке вида
[WinError 121]GUI покажет уведомление о неполадках сети; после восстановления сети взаимодействие с Telegram возобновится.
Передает ли агент данные в интернет?
Нет, кроме веб-поиска, погоды и курсов валют. STT и LLM работают локально (или на вашем внешнем сервере, если он настроен).
Можно ли изменить слово активации?
Да, в config.json.
Как прервать Веру, когда она говорит?
Просто скажите "Вера" или "Вера, стоп" — она сразу остановится.
- Георгию Герганову — за вклад в развитие локальных языковых моделей.
Sherpa-ONNX: https://github.com/k2-fsa/sherpa-onnx
llama.cpp: https://github.com/ggerganov/llama.cpp