Agent Second Brain — голосовой ассистент в Telegram, который ведёт ваш Obsidian

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

Всегда активная вторая память, с которой можно разговаривать: голосовые заметки из Telegram превращаются в связанные знания в Obsidian-хранилище, работает 24/7 на VPS за $5 и подписке Claude.

Agent Second Brain — голосовой ассистент в Telegram, который ведёт ваш Obsidian

Agent Second Brain — это open-source система, которая превращает Telegram в интерфейс личной базы знаний. Вы наговариваете голосовое сообщение на ходу, а агент сам раскладывает его по карточкам в вашем Obsidian-хранилище, связывает вики-ссылками, проставляет напоминания и каждое утро присылает отчёт о вчерашнем дне. Всё это работает 24/7 на VPS за $5 и подписке Claude Pro — без счётчика токенов и без отправки ваших заметок в чужие SaaS.

Почему это вообще появилось

Автор (Serge Shima, 20 лет в маркетинге, BBDO/Publicis) формулирует проблему так: почти любая продуктивная система умирает одинаково. Её поднимают в воскресенье, пользуются две недели, а потом бросают — потому что поддерживать систему становится дороже, чем сама работа. Голосовые, которые никто не переслушивает. Идеи, утонувшие в чатах. Vault с markdown, в котором через месяц невозможно ориентироваться.

Решение — убрать шаг «организовать» как класс. Вы просто говорите, агент сам раскладывает. И это должно быть ваше: автор принципиально не хотел прогонять личные заметки, клиентов и цели через чужие сервисы. Поэтому всё работает на вашем собственном сервере, хранилище лежит у вас как plain markdown, а код достаточно мал, чтобы прочитать его за вечер, прежде чем доверять ему свою жизнь.

Что видит пользователь

Никаких команд, категорий, отдельных приложений. Telegram — это весь интерфейс.

Вы   (голосом, 40 секунд на ходу): «Звонок с Алишером — они готовы
      к пилоту, но старт хотят сдвинуть на июль. Надо обновить
      предложение и напомни в пятницу отправить договор.»

Бот:  💾 Сохранил: карточка CRM по Алишеру обновлена (пилот,
      старт в июле), связана с [[pilot-project]]. Напоминание:
      пятница 10:00 — отправить договор.

      — Пятница, 10:00 —

Бот:  🔔 Напоминание: отправить Алишеру договор. Контекст: пилот,
      старт в июле, предложение обновлено во вторник.
Вы:  что я писал на прошлой неделе по маркетинговому проекту?
Бот:  *находит записи, цитирует, прикладывает ссылки*
Вы:  оформи вторую идею как проектную заметку с next steps
Бот:  *создаёт заметку, линкует к клиенту и целям недели*
Вы:  *форвардите пост, кидаете фото доски, отправляете PDF*
Бот:  *читает сам, раскладывает выжимки в граф, отвечает, что сохранил*

Ключевые принципы

Голос в первую очередь. Захват должен быть дешевле, чем забывание. Голосовое — это пять секунд; печатать заметку — это минута, и её никогда не напишут.

Хранилище — единственный источник правды. Всё лежит plain markdown в вашем Obsidian-хранилище на вашем сервере. Удалите агента завтра — всё останется читаемым навсегда. Никакого лок-ина, никакой кнопки «экспорт».

Память, которая забывает, как ваша. Хранилище — это не память. Знания затухают по кривой Эббингауза, проходят пять ярусов и всплывают обратно, когда это уместно. Так граф остаётся острым, а не превращается в свалку.

Интерактивная сессия по правилам. Один долгоживущий Claude Code-сеанс в tmux, управляемый ровно так, как им управляет человек в терминале. В горячем пути нет headless-вызовов claude -p — CI-guard валит сборку, если кто-то попробует.

Достаточно маленькое, чтобы прочитать. Один Python-процесс, горстка модулей, 220+ тестов. Вещь, которая читает ваши личные заметки, можно проаудитить за вечер.

Что умеет система

🎙 Тотальный захват. Голос (Deepgram, секунды), текст, фото, документы, видео, форварднутые посты, целые альбомы — агент читает файлы сам и раскладывает выжимки. Ничего не теряется молча.

🧠 Граф памяти. Под капотом autograph — типизированные карточки, вики-линки, затухание по Эббингаузу через пять ярусов, автогенерация MOC-индексов, health-score, починка битых ссылок и дедуп. Самый проработанный open-source слой памяти, который можно положить на vault.

⏰ Самоуправляемые расписания. «Напомни в пятницу в 15:00», «каждый будний день в 18:30 проверяй папку с входящими» — агент сам ставит себе cron из обычной речи. Однократные напоминания, интервалы, полные cron-выражения. Без внешних таск-менеджеров.

🌙 Ночная обработка. В 21:00 по вашему времени система классифицирует записи дня, пишет карточки в vault, обновляет цели и долгосрочную память, пересобирает граф и шлёт ежедневный отчёт.

🔌 Claude Code, но для PKM. Под капотом — буквально Claude Code. Киньте любой MCP-сервер в mcp-config.json, любой skill в vault/.claude/skills/ — вторая память обрастёт новыми способностями. Как Claude Code в Telegram, только для знаний, а не для кода.

🩺 Самовосстановление. Watchdog поднимает зависшую сессию, ежедневный doctor шлёт 🟢/🔴 canary-отчёт, сломанные задачи сами себя выключают и рассказывают об этом. Просто продолжает работать.

Движок памяти: autograph

То, что превращает систему из логгера в мозг — это autograph, типизированный слой памяти для always-on агентов, поставляется здесь как skill и работает standalone на любом Obsidian-хранилище.

  • Типизированный граф — у каждой карточки есть тип (заметка, контакт, проект, CRM), описание для retrieval, теги, статус; всё управляется одним schema.json.
  • Затухание по Эббингаузу — сила 1 + ln(access_count): каждое касание замедляет забывание; контакты тускнеют за ~100 дней, дневные записи — за ~25.
  • Пять ярусов — core → active → warm → cold → archive; касание поднимает карточку обратно.
  • Случайное вспоминание — иногда архивная карточка всплывает рядом с актуальной. Иногда шум. Иногда — лучшая идея, про которую вы забыли, что она у вас была.
  • Самоподдержка — детект orphan, починка битых ссылок, дедуп в .trash/, генерация MOC, health-score на 100 баллов. Никаких ручных хлопот с vault.
Ярус Что происходит
Core Всегда в контексте: текущие проекты, активные клиенты, ключевые цели
Active Регулярно проверяется: свежие идеи, актуальные треки
Warm Находится поиском
Cold Всплывает только в глубоком поиске
Archive Почти исчезло — но случайно вспоминается для творческих коллизий

Как это работает технически

Telegram ──▶ bot (aiogram) ──▶ persistent Claude Code session (tmux pane)
                 │                       │
                 │                       ├──▶ Obsidian vault (plain markdown)
                 │                       └──▶ autograph: graph · decay · MOC
                 ├──▶ cron ticker ──▶ вторая изолированная сессия (напоминания не блокируют чат)
                 └──▶ watchdog + daily doctor (самовосстановление, 🟢/🔴 отчёт)

Бот никогда не спавнит claude на каждое сообщение. Он держит одну долгоживущую интерактивную Claude Code-сессию живой в tmux-панели и печатает в неё промпты — поэтому 24/7-агент работает на плоской подписке Pro/Max, а не на помеченных API-токенах. Плановые задачи уходят во вторую изолированную сессию, так что сработавшее напоминание не перебивает ваш разговор. Кросс-процессный лок сериализует всё; watchdog перезапускает то, что заклинило.

С приватностью всё явно: голос уходит в Deepgram на транскрибацию, текст — в Anthropic по вашей подписке, всё остальное остаётся на вашем сервере. Vault никогда не покидает машину.

Сколько это стоит

Сервис Стоимость
Claude Pro $20/мес
VPS (любой дешёвый) ~$5/мес
Deepgram бесплатный тир ($200 кредита)
Итого ~$25/мес, фиксированно

Персональный ассистент, который организует вашу жизнь, никогда не спит и становится лучше, чем больше вы им пользуетесь — по цене двух чашек кофе. А раз сессия интерактивная, эта цена остаётся этой ценой: никакого счётчика токенов, который внезапно улетает.

Быстрый старт

Три шага, ~15 минут работы. Полная пошаговая инструкция для новичков — в docs/setup-guide.ru.md на русском.

1. Форкните репозиторий (форк сделайте приватным — там будет ваша жизнь), заполните vault/goals/ и персону в vault/.claude/skills/dbrain-processor/references/about.md.

2. Достаньте два ключа: токен бота у @BotFather, бесплатный ключ в Deepgram, плюс свой Telegram ID у @userinfobot.

3. На чистой Ubuntu-VPS:

curl -fsSL https://raw.githubusercontent.com/YOUR_USERNAME/agent-second-brain/main/bootstrap.sh | bash

Установщик опрашивает вас на токены, проводит через логин в Claude Code (ссылка в браузере), ставит systemd-сервисы и завершается health-чеком. Бот сам напишет вам, когда оживёт. Всё — начинайте говорить.

Что система НЕ делает

  • Не отправляет ваш vault куда-то. Plain markdown, ваш диск, ваш git remote, если настроите.
  • Не использует headless claude -p. scripts/check-no-claude-p.sh крутится в CI и валит сборку, если это правило нарушат.
  • Не требует API-ключей кроме Telegram + Deepgram. Никаких OpenAI, никакого счётчика токенов.
  • Не запирает вас. Удалите всё завтра — ваш vault всё равно открывается в Obsidian.

Структура vault

vault/
├── daily/              # Сырой поток дня (голос, текст, вложения)
├── goals/              # Видение → год → месяц → неделя
├── business/
│   ├── crm/            # Карточки клиентов
│   └── network/        # Профессиональные контакты
├── projects/           # Активная работа, лиды, воронка
├── thoughts/
│   ├── ideas/          # Идеи и брейнштормы
│   ├── learnings/      # Извлечённые уроки
│   └── reflections/    # Личные рефлексии
├── MOC/                # Maps of Content (генерируются автоматически)
└── MEMORY.md           # Долгосрочная память агента

Skills

Skill Что делает
dbrain-processor Классифицирует записи, пишет карточки, делает дневные отчёты
autograph Движок памяти: decay, health графа, MOC, schema-as-code, dedup
cron Агент сам управляет своим расписанием из обычной речи
migrate-doctor Диагностирует и чинит сломанные апгрейды со старых версий

Свои skills можно кинуть в vault/.claude/skills/ — сессия подхватит их, как в любом Claude Code.

Конфигурация

Файл Что контролирует
.env Токены, таймзона, модель, тонкая настройка cron (см. .env.example)
vault/.claude/CLAUDE.md Личность агента и правила
mcp-config.json Опционально: любые MCP-серверы, которые нужны вашему мозгу

Все секреты лежат в .env.gitignore, chmod 600). Выставьте CLAUDE_MODEL=sonnet, чтобы снизить давление на недельные лимиты 24/7-бота.

Выставьте TZ на свою IANA-зону (например, TZ=Europe/Moscow) — по умолчанию UTC, и напоминания/расписания интерпретируются в вашей зоне. Cron-skill в примерах использует плейсхолдеры, а не фиксированную зону, так что мозг планирует в вашем времени.

Кому это подойдёт

  • Тем, кто ведёт PKM-систему и устал руками её поддерживать.
  • Тем, кому нужен личный ассистент, но не хочется сливать заметки в чужой SaaS.
  • Тем, у кого уже есть подписка Claude Pro/Max и есть VPS за $5.
  • Тем, кто любит ковыряться в конфигах и читать 200 строк скрипта перед тем, как дать ему доступ к своей жизни.

Кому скорее не подойдёт

  • Тем, кто ждёт готовый мобильный продукт «нажал кнопку — работает». Установка требует ~15 минут и базового понимания, что такое VPS и systemd.
  • Тем, кому нужен публичный SaaS. Здесь всё строго self-hosted, и это by design.
  • Тем, кто хочет облачную синхронизацию между устройствами. Vault живёт на вашем VPS, открывается в Obsidian где угодно, но синкается через git.

Источник: https://github.com/smixs/agent-second-brain