Agent Second Brain — голосовой ассистент в Telegram, который ведёт ваш Obsidian
📂 Исходный код на GitHubВсегда активная вторая память, с которой можно разговаривать: голосовые заметки из Telegram превращаются в связанные знания в Obsidian-хранилище, работает 24/7 на VPS за $5 и подписке Claude.
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.