trip2g — контент-инфраструктура. Люди и AI-агенты работают с одним и тем же контентом на равных. Контент не лежит мёртвым грузом — он течёт между участниками и трансформируется на каждом шаге.
Не CMS, где "создал и опубликовал". Не wiki, где только люди редактируют. Не генератор статических сайтов, где "собрал и выложил". Это программируемая платформа, где контент течёт между людьми, ботами, AI-агентами, Telegram, Obsidian — и меняется на каждом переходе.
Почему "контент-инфраструктура"
Инфраструктура — потому что это не конечный продукт, а фундамент. Электросеть — инфраструктура для домов. Дорожная сеть — инфраструктура для транспорта. trip2g — инфраструктура для контента. Поверх неё строятся конкретные вещи: блоги, базы знаний, AI-пайплайны, inbox-системы.
Контент — потому что единица работы — markdown-заметка. Всё остальное (версии, метаданные, вебхуки) крутится вокруг заметок. Markdown — универсальный интерфейс: человек пишет в Obsidian, AI-агент генерирует через API, бот пушит из Telegram.
Совместная работа людей и AI — потому что AI — не инструмент, а участник. AI-агент умеет то же, что и человек: читать заметки, менять заметки, реагировать на изменения. Разница в том, что AI видит только то, что ему разрешили, и не может зациклиться. Об этом ниже.
Контент как живой поток
Главная метафора: контент не лежит — он течёт. Каждая заметка — точка в потоке, через которую проходят трансформации.
Представьте цепочку:
Человек пишет заметку в Obsidian
-> синхронизация -> trip2g сохраняет версию
-> вебхук "заметка изменилась" -> AI-линтер проверяет грамматику
-> AI пушит исправления -> новая версия
-> синхронизация -> Obsidian показывает изменения
-> человек проверяет и принимает
-> правила автоматически добавляют метаданные
-> шаблон рендерит HTML
-> читатель видит страницу
Каждый шаг — трансформация. Каждый участник (человек, бот, AI, шаблонизатор) — звено в цепочке. trip2g — труба, через которую контент проходит.
Ключевые свойства
Markdown — универсальный интерфейс
Одна заметка. Один формат. Все работают с ним:
- Человек — через Obsidian, браузерный редактор, Telegram
- AI-агент — через API платформы или вебхуки
- Система — через правила метаданных, шаблоны, связи между заметками
Markdown выбран не потому что он лучший формат. А потому что он единственный формат, который одинаково читаем для людей и машин. JSON хорош для машин, визуальные редакторы хороши для людей. Markdown — компромисс, который работает для обоих.
Версионирование всего
Каждое изменение — новая версия. Модель как в git: сохранил — зафиксировалось. Это даёт три вещи:
- История. Что менялось, когда, кем — человеком или AI. Всегда видно, кто автор.
- Откат. AI нагенерировал мусор — откат к предыдущей версии одной командой.
- Безопасность при одновременной работе. Если два агента правят одну заметку одновременно, ничего не сломается — система разберётся, кто был первым, и не затрёт чужие изменения.
Вебхуки — система уведомлений
Вебхуки — это способ, которым trip2g говорит внешнему миру "что-то произошло":
- Вебхук на изменение. "Заметка изменилась" — реагируй. Линтер проверяет грамматику, индексатор обновляет поиск, AI-ревьюер предлагает правки.
- Вебхук по расписанию. "Пришло время" — действуй. Еженедельный дайджест, очистка inbox, генерация контента.
Агент может вернуть изменения прямо в ответе на вебхук (синхронно) или работать через API (асинхронно). Система применяет изменения — а они могут вызвать следующие вебхуки. Получается конвейер трансформаций.
Глубина — безопасные AI-цепочки
Главная проблема AI-агентов: бесконечные циклы. Агент А меняет заметку. Это вызывает агента Б. Тот тоже меняет заметку. Это снова вызывает агента А. И так навсегда.
trip2g решает это через счётчик глубины:
- Человек правит заметку (глубина 0) — вызываются все вебхуки
- AI-агент правит (глубина 1) — вызываются только вебхуки, которым разрешена глубина 2+
- Второй AI-агент (глубина 2) — вебхуки с ограничением на глубину 2 уже не вызовутся
Цепочки агентов работают. Циклы блокируются. Для каждого вебхука настраивается отдельно — один может работать на любой глубине, другой только при ручных правках.
Ограниченный доступ для агентов
Каждый AI-агент получает ровно столько доступа, сколько ему нужно. Не больше.
- Что может читать: например, только заметки из папки
blog/ - Что может менять: например, только заметки из той же папки
- Срок жизни токена: по умолчанию 60 минут, потом доступ пропадает
Линтер для блога не видит приватные заметки и не может менять конфигурацию. Это принцип наименьших привилегий — как три зоны доступа, только для агентов.
Obsidian — человек контролирует AI
Obsidian синхронизируется с trip2g. Когда AI-агент меняет заметку, вот что происходит:
- AI вносит изменения через вебхук или API
- Синхронизация доставляет изменения в ваш Obsidian vault
- Вы видите, что именно изменилось, в привычном редакторе
- Принимаете, редактируете или откатываете
Obsidian становится экраном модерации AI-контента. Вы не теряете контроль — всегда видите что AI сделал и решаете, принять ли это. AI предлагает, человек решает.
Правила метаданных — декларативные трансформации
Простые правила на основе путей. Автоматически добавляют или меняют метаданные заметок. Применяются по приоритету, от общего к частному:
Правило: blog/* -> { free: true }
Правило: premium/** -> { free: false }
Правило: * -> дописать " — Site" к заголовку
Описываешь правила один раз — система применяет их ко всем заметкам автоматически. Без написания кода, без ручной работы. Декларативность в чистом виде: описал что хочешь — получил результат.
Атомарные операции с контентом
Операция "найти строку в заметке, заменить на другую" — атомарна. Без конфликтов при одновременном редактировании, всё происходит в одной транзакции.
На этом построен паттерн "маркер-якорь". Вы ставите в заметке маркер — любую строку. Агенты вставляют контент на это место. Маркер остаётся, и следующая вставка будет после предыдущей:
найти: "$INBOX$"
заменить: "## Новое сообщение\nТекст\n\n$INBOX$"
Контент накапливается. Агент не знает полное содержимое заметки — он знает только маркер и что вставить. Простой и надёжный способ для AI добавлять контент в нужное место.
Гибкий шаблонизатор — контент как конструктор
Шаблонизатор trip2g видит не просто текст, а структуру документа. Он разбирает markdown на логические блоки: вступление, заголовки, секции под каждым заголовком. Это называется доступ к AST — абстрактному дереву документа.
Что это даёт на практике. Вы пишете обычный markdown:
Часто задаваемые вопросы о сервисе.
### Как начать работу?
Зарегистрируйтесь и создайте первый проект.
### Сколько стоит?
Базовый тариф бесплатный.
### Есть ли API?
Да, документация на сайте.
А шаблон превращает заголовки третьего уровня в карточки, а первый абзац (до заголовков) — во вступительный текст:
{{ intro := note.PartialRenderer().Introduce() }}
<p class="lead">{{ intro.ContentHTML | unsafe }}</p>
<div class="cards">
{{ range i, s := note.PartialRenderer().Sections(3) }}
<div class="card">
<h3>{{ s.TitleHTML | unsafe }}</h3>
{{ s.ContentHTML | unsafe }}
</div>
{{ end }}
</div>
Автор пишет простой текст. Шаблон решает, как его показать: карточками, аккордеоном, слайдами, FAQ. Один и тот же markdown может выглядеть по-разному на разных страницах — зависит от шаблона, а не от контента.
Шаблон может обратиться и к другим заметкам — собрать навигацию из сайдбара, вытянуть последний пост из блога, показать обратные ссылки. Контент остаётся чистым, а вся логика отображения — в шаблоне. Это и есть декларативность: автор описывает что, шаблон решает как.
Подробнее — в документации шаблонов.
MCP — знания как сервис
MCP (Model Context Protocol) превращает базу знаний в консультанта, которого подключаешь к своему AI-клиенту. Claude Desktop, Cursor, Claude Code — любой клиент с поддержкой MCP получает доступ к чужой экспертизе напрямую.
Автор публикует заметки через trip2g и пишет инструкции для AI: как использовать базу, в каком стиле отвечать, на какие вопросы. Читатель подключает MCP-сервер и спрашивает у своего AI — тот отвечает из знаний конкретного эксперта, а не из общего обучения.
Доступные методы:
search(query) — полнотекстовый поиск по базе
note_html(slug) — получить конкретную заметку
similar(slug) — похожие заметки
instructions() — инструкции автора для AI
Доступ настраивается: открытый или платный по подписке. Модель доступа — та же, что в трёх зонах: что открыто публично, что за подпиской, что только автору.
Приватность работает в обе стороны. MCP-сервер возвращает только текст из базы автора — контекст чата читателя он не видит. Автор не знает, что именно спрашивают.
Это замыкает петлю: автор пишет → AI читает → читатель спрашивает → AI отвечает из знаний автора. Знания текут от эксперта к читателю через AI, без промежуточных шагов.
Мультидоменность — одна платформа, много сайтов
Один экземпляр trip2g обслуживает несколько независимых доменов. Достаточно добавить в frontmatter заметки:
route: portfolio.com/
— и заметка появляется на этом домене, а не на основном.
Домены изолированы: контент portfolio.com не пересекается с mysite.com. У каждого домена своя карта сайта, свои шаблоны, свои настройки. Для поисковиков и посетителей это отдельные независимые сайты.
Практический сценарий: фрилансер ведёт portfolio.com, блог на blog.com и лендинг для клиента на client-landing.com — всё из одного trip2g, одной базы заметок, одного интерфейса. Добавить новый домен — добавить одно поле в frontmatter. Подробнее — в кастомных доменах.
Это та же «инфраструктурная» логика: как один серверный шкаф хостит десятки сайтов, одна установка trip2g хостит десятки доменов.
Один файл — вся система
Один бинарник. Вся база данных — один файл. Никаких зависимостей. Автоматическая копия в облако для надёжности.
Обычная система: trip2g:
Сервер приложений Один файл-программа
База данных в котором уже всё
Кэш-сервер включая базу данных
Очередь сообщений
Развернуть на сервере — минута. Данные ваши. Бэкап — скопировать один файл. Переехать на другой сервер — перенести этот файл. Это цифровой суверенитет на уровне инфраструктуры.
Кому это нужно
Создатели контента с AI
Блогер хочет, чтобы AI проверял грамматику, генерировал краткое содержание, предлагал теги — но при этом сохранял контроль. Пишет в Obsidian, AI работает через вебхуки, результат виден в том же vault. Принял — опубликовалось. Не принял — откатил.
Команды с базой знаний
Внутренняя wiki, где AI-агенты автоматически обновляют оглавления, генерируют перекрёстные ссылки, проверяют актуальность. Люди модерируют через Obsidian или веб-интерфейс. Граф знаний растёт сам, но под контролем людей.
AI-first публикации
Телеграм-бот собирает заметки в inbox. Агент по расписанию генерирует еженедельный дайджест. Другой агент оформляет в HTML. Третий публикует в Telegram-канал. Человек настраивает конвейер и модерирует результат.
Разработчики AI-агентов
trip2g как бэкенд для AI-агентов: хранение, версионирование, вебхуки, ограниченный доступ. Агент подключается через вебхук или API, работает с контентом, не думает о хранении и конфликтах при одновременной работе.
Подробнее о сценариях — для кого это.
На что это похоже
Если искать аналогии из знакомого мира:
- Obsidian — работа с markdown и связями между заметками
- GitHub Actions — событие произошло, агент отреагировал, внёс изменение, вызвал следующее событие
- Vercel — один деплой, всё работает, минимум настроек
Но точной аналогии нет. Ближе всего: программируемая платформа для контента, где AI-агенты — такие же участники как люди.
Этот сайт — живой пример. Он построен на trip2g и использует всё описанное выше.