Iva — самохостируемый Telegram AI-ассистент со слоистой памятью и Obsidian-совместимым vault
📂 Исходный код на GitHubSelf-hosted Telegram AI assistant with layered memory that turns messages into an Obsidian-compatible vault. Voice via Deepgram, vision через встроенную модель провайдера, search BM25+link-graph, четыре провайдера LLM, MCP и Skills. Установка одной командой.
Iva — это самохостируемый Telegram AI-ассистент со слоистой памятью, который превращает ваши сообщения в Obsidian-совместимый vault. Вы пишете, шлёте голосовые, пересылаете посты — ассистент раскладывает всё в plain-markdown карточки, которые действительно помнит не только в рамках текущего чата, а через месяцы. Всё работает на вашем сервере, с вашими ключами и вашими данными. Установка — одна команда:
curl -fsSL https://raw.githubusercontent.com/smixs/iva/main/install.sh | bash
Проект smixs/iva вырос из двух предыдущих наработок автора — agent-second-brain и autograph — и собран на фреймворке eve от Vercel. Лицензия MIT, последний релиз на момент публикации — v0.2.3 (06.07.2026), 45 звёзд, 6 форков. Языковая база: Python 49.2%, TypeScript 22.2%, JavaScript 21.1%, Shell 7.5%.
Что внутри
Iva задумана как личный ассистент «на каждый день», а не как чат-бот в классическом смысле. Главное отличие — память, которая накапливается, и Obsidian-совместимый vault как формат хранения. Всё, что вы пишете, оседает в виде обычных markdown-файлов, которые можно открыть в Obsidian, читать как git-репозиторий, бэкапить и мигрировать.
Возможности из коробки:
- 🎙️ Голос, аудио, видео — расшифровка через Deepgram nova-3 с авто-определением русского, узбекского и английского.
- 👁️ Фото — описание делает встроенная vision-модель выбранного провайдера, без отдельного ключа и доплат.
- 🧠 Слоистая память — помнит через месяцы, а не только в рамках текущего окна чата.
- 📇 Личный CRM — кто ваши люди, что с ними обсуждали, когда вернуться к разговору.
- 🔎 Семантический поиск — BM25 + link-graph rerank на любом языке; опционально векторный режим с одним ключом.
- 🧭 Карточки решений — что выбрали, когда и почему; старые версии сохраняются в датированной
History. - ⏰ Задачи и напоминания — приоритеты, сроки и утренний дайджест.
- 🌐 Веб-поиск — четыре подключаемых провайдера: Tavily, Exa, Parallel или Brave.
- 🧩 Skills и MCP — добавьте процедуру или подключите MCP-сервер одним файлом; ключи остаются в
.env. - 🛡️ Безопасная пересылка — ссылки, PDF и чужие сообщения проходят проверку до того, как модель их прочтёт.
- 📊 Токен-учёт — каждый шаг модели логируется;
/usageотдаёт отчёт бесплатно.
Память — главная часть
Центральная идея Iva — древо памяти, в котором ежедневные логи сворачиваются в недельные, месячные и годовые сводки вокруг одного ствола CORE.md.
- Каждое сообщение ложится дословно в дневной markdown-лог — на входе ничего не перефразируется.
- В 04:00 запускается nightly rollup: день → неделя → месяц → год, схема-валидированные карточки; изменившиеся факты переписываются, а не накапливаются слоями.
- Один файл
CORE.md(≤ 1 200 символов) едет в каждом промпте — Iva «знает вас» до того, как что-либо ищет.
Такая архитектура принципиально отличается от классического чат-ассистента, который помнит только текущую сессию. В Iva через полгода вы можете спросить «о чём мы договаривались с Х в марте?» — и ассистент поднимет карточку решения, ссылку на недельную сводку и оригинальный дневной лог с цитатой.
Полная архитектура и устройство поиска — в docs/memory.md.
Голос, видео и фото
Iva нативно работает с несколькими модальностями, что важно для повседневного использования: люди чаще наговаривают, чем печатают, и не хотят тратить время на расшифровку вручную.
- Голосовые, аудио и видео-кружочки идут через Deepgram nova-3 — современную модель распознавания речи. Авто-определение языка на лету: русский, узбекский, английский. Это удобно в мультиязычной среде, где в одном чате смешиваются языки.
- Фото описываются vision-моделью выбранного провайдера LLM. Никакого отдельного OpenAI-ключа для vision не требуется: модель, которая генерирует ответы, умеет и смотреть. Это убирает лишнюю статью расходов и упрощает конфигурацию.
Поиск
Поиск в Iva — двухступенчатый и работает на любом языке. По умолчанию это BM25 (классический keyword-ранкер) плюс link-graph rerank — переранжирование с учётом графа связей между карточками vault'а. Это даёт релевантность, близкую к семантическому поиску, но без необходимости гонять эмбеддинги на каждый запрос.
Если хочется полноценного векторного поиска, его можно включить одним ключом — режим BM25+link-graph остаётся работоспособным fallback'ом.
Команды
В Telegram-чате с ботом:
/help— справка по командам/task— поставить задачу/digest— утренний дайджест/new— начать новую тему/usage— отчёт по токенам, бесплатно
На сервере:
iva status— статус всех юнитовiva update— обновлениеiva doctor— диагностикаiva logs— логи
Полный справочник по командам, включая раскладку /usage по моделям и источникам — в docs/cli.md.
Провайдеры и стоимость
Iva поддерживает четыре провайдера моделей. Вы выбираете одного и заполняете соответствующий блок в .env:
| Провайдер | Как платить |
|---|---|
| OpenCode Zen | API-ключ, ~$5/мес |
| Ollama Cloud | API-ключ, ~$20/мес |
| OpenRouter | API-ключ, pay-as-you-go, 300+ моделей |
| OpenAI (ChatGPT) | ваша подписка Plus/Pro, без отдельного API-ключа |
Модель по умолчанию — deepseek-v4-pro, контекст 131k. На OpenCode Zen всё вместе выходит примерно в $9/мес ($5 на модель + $4–5 за VPS) без наценки; голосовые ездят на бесплатном стартовом кредите Deepgram. Списки моделей, лимиты и матрица поиска — в docs/providers.md.
Безопасность и приватность
Безопасность в Iva построена на двух шлюзах — входящем и исходящем — и жёстком allowlist.
- Входящий санитайзер — каждое сообщение (особенно пересланные ссылки, PDF, чужие тексты) проходит проверку на prompt-injection до того, как попасть в контекст модели.
- Исходящий редact-гейт — каждый ответ проходит через фильтр секретов: токены, ключи, пароли не утекут в сообщение.
- Allowlist по пользователям — пустой список отвечает никому (fail-closed). Это правильная настройка по умолчанию для self-hosted решения.
- Память — это ваш git-репозиторий, который вы контролируете. Честная граница: модель и распознавание речи — это облачные API, которые вы сами выбираете и за которые платите.
Устройство шлюзов подробно — в docs/security.md.
Установка
- Получите токен бота у @BotFather.
- Запустите однострочный установщик выше на любом Ubuntu/Debian — свежем VPS или своей машине.
- Напишите боту. Мастер подхватит ваш Telegram ID из этого сообщения, завершит настройку и подтвердит прямо в чате, что всё работает.
Для headless-установки есть флаги --skip-setup или --non-interactive. Пошаговый мастер и SSH-праймер для тех, кто впервые ставит на VPS — в docs/install.md.
Как это работает под капотом
Данные идут по цепочке: Telegram → long-poll bridge → security gate → agent → vault, плюс nightly rollup и doctor loop.
Важный архитектурный момент: bridge использует long-polling, а не webhook. Это значит, что для работы не нужен публичный HTTPS, домен или входящие порты — бот сам забирает обновления. Для self-hosted на домашнем сервере или за NAT это критично.
Агент, bridge и пять таймеров памяти работают как systemd user units на вашей машине. Операционная документация — в docs/deploy.md.
Документация
Вся документация Iva лежит в репозитории на GitHub в папке docs/:
- Install — установка
- Configuration — конфигурация
- Memory — память и поиск
- Providers — провайдеры моделей
- Security — шлюзы безопасности
- Deploy — эксплуатация
- CLI — команды
- Extending — расширение
- FAQ — частые вопросы
- Troubleshooting — диагностика
Русская версия документации → docs/ru/.
Где это стоит использовать
Iva — это решение для тех, кто:
- уже ведёт Obsidian-базу знаний и хочет, чтобы она пополнялась из Telegram автоматически;
- хочет персонального ассистента с длинной памятью, но не хочет сливать переписку в чужие облака;
- готов потратить ~$5–10 в месяц и один раз настроить VPS, чтобы получить «честного» AI-помощника;
- работает в режиме «решил — записал — через месяц вспомнил» и устал терять контекст в чатах.
По сравнению с облачными ассистентами (Replika, Pi, даже ChatGPT с памятью) здесь данные остаются у вас, а по сравнению с «обычным» Telegram-ботом — есть настоящая память через месяцы, а не скользящее окно.
Лицензия
MIT — берите, меняйте, разворачивайте на сотне серверов; только не вините автора, если что-то сломалось.
Источник: https://github.com/smixs/iva