Iva — самохостируемый Telegram AI-ассистент со слоистой памятью и Obsidian-совместимым vault

· 2 мин чтения
ai-agents self-hosted telegram-bot obsidian memory
📂 Исходный код на GitHub

Self-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

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.

Установка

  1. Получите токен бота у @BotFather.
  2. Запустите однострочный установщик выше на любом Ubuntu/Debian — свежем VPS или своей машине.
  3. Напишите боту. Мастер подхватит ваш 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/:

Русская версия документации → docs/ru/.

Где это стоит использовать

Iva — это решение для тех, кто:

  • уже ведёт Obsidian-базу знаний и хочет, чтобы она пополнялась из Telegram автоматически;
  • хочет персонального ассистента с длинной памятью, но не хочет сливать переписку в чужие облака;
  • готов потратить ~$5–10 в месяц и один раз настроить VPS, чтобы получить «честного» AI-помощника;
  • работает в режиме «решил — записал — через месяц вспомнил» и устал терять контекст в чатах.

По сравнению с облачными ассистентами (Replika, Pi, даже ChatGPT с памятью) здесь данные остаются у вас, а по сравнению с «обычным» Telegram-ботом — есть настоящая память через месяцы, а не скользящее окно.

Лицензия

MIT — берите, меняйте, разворачивайте на сотне серверов; только не вините автора, если что-то сломалось.

Источник: https://github.com/smixs/iva