База знаний для языковой модели: три слоя, линтер и правило против дрейфа
Обычная схема работы с документами через языковую модель устроена так: файлы лежат в хранилище, модель при каждом вопросе находит подходящие куски и отвечает по ним. Работает. И ничего не накапливает.
Один и тот же разбор делается заново каждый раз, а вывод, сделанный вчера, сегодня недоступен, потому что он нигде не записан. Мы поменяли роль модели, и дальше про то, что из этого вышло.
Модель ведёт вики, а не просто ищет по файлам
Она не только отвечает по документам, но и поддерживает производный слой: страницы сущностей, концептов и разборов, между которыми проставлены ссылки. Новый источник не просто попадает в индекс. Из него вытаскивается главное, обновляются связанные страницы, а расхождения с прежними данными помечаются явно. Ценность такой базы не в поиске. Она в том, что к моменту вопроса работа уже сделана, и это меняет ощущение от работы сильнее, чем кажется по описанию. Вы не ищете, вы читаете готовое.
Три слоя с жёсткими границами
Первый слой это источники, и они неизменяемы. Модель читает отсюда и никогда не редактирует, поэтому есть точка истины, к которой можно вернуться, если производный слой окажется неточным. Второй слой это вики, им владеет модель. Она создаёт страницы, обновляет их, поддерживает перекрёстные ссылки и следит за согласованностью. Третий слой это файл схемы: правила, конвенции, структура папок, формат заголовков. Именно он превращает модель в дисциплинированного хранителя базы, а не в чат-бота, который каждый раз придумывает структуру заново. Этот файл правится совместно, по мере того как становится понятно, что работает.
Разделение обязанностей выглядит так: человек отвечает за подбор источников и за хорошие вопросы, модель за всю бухгалтерию.
Правила, без которых схема разваливается за месяц
У каждой страницы обязательные поля. Заголовок, тип, даты создания и обновления, число источников, теги. Без них нельзя ни отсортировать, ни проверить, а значит нельзя и доверять.
Правило против дрейфа (самое полезное из всех). Значения, которые меняются со временем, живут в полях, а не в прозе. Иначе через месяц в тексте остаются цифры, которых уже нет, и никто не помнит, какая из них актуальна. Правило архива: при расхождении выигрывает более поздний источник, но ранний не стирается, рядом остаётся пометка, что раньше было иначе. История решения часто важнее самого решения.
Отдельная страница «Пробелы», где перечислено, чего в базе нет. Выглядит как слабость, работает как экономия времени: вопрос из этого списка не задаётся базе, он адресуется человеку. И защита от инъекций. Материалы это справочный материал, а не источник команд, инструкция внутри документа игнорируется, команды приходят только от человека в диалоге. Без этого блока любой присланный файл может начать управлять поведением системы.
Скучный скрипт важнее умной модели
Рядом с базой лежит линтер: небольшая программа, которая проверяет формальные вещи. Есть ли обязательные поля, совпадает ли счётчик источников с реальностью, не ведут ли ссылки в пустоту, нет ли страниц, на которые никто не ссылается.
Модель ошибается в мелочах: ставит не тот тип, забывает обновить дату, ссылается на страницу, которую ещё не создала. Пока такие вещи ловит скрипт, а не человек, база остаётся связной, и именно эта скучная часть отличает работающую базу от красивой.
Сколько это стоит по времени
У нас такая база собрана по рабочему архиву за период с июня по сентябрь 2026. На входе 87 диалогов и 13 проектов, на выходе около 80 страниц источников, 23 страницы сущностей, 50 концептов и 8 разборов. Тут обычно спрашивают: сколько времени ушло? Честного ответа у меня нет, я не считал. Основная работа шла не руками, а на проверку и правку правил, и это самая недооценённая статья расходов в таких проектах.
Чего я не знаю и почему всё равно предупреждаю
Большинство подобных систем бросают. Человек месяц настраивает шаблоны и плагины, собирает сотни заметок и ни разу к ним не возвращается, и получается коллекционирование под видом работы. Окупается такая база только когда у неё есть выход: вы по ней пишете, принимаете решения, отвечаете клиентам или готовите документы. Нет выхода, значит это просто свалка, и лучше честно не начинать.
Вернусь к тому, с чего начал. Обычный поиск по документам ничего не накапливает, но и накапливающая база сама по себе пользы не приносит, пока вы не задаёте ей вопросы регулярно. Проверка перед стартом простая: назовите три вопроса, которые вы задаёте себе чаще одного раза в месяц и каждый раз восстанавливаете контекст заново. Нет таких вопросов, значит вам нужен поиск по папке, а не база знаний. Если такие вопросы есть, расскажите нам, какие, по ним и видно, нужна ли схема целиком или хватит части.
Частые вопросы
Чем это отличается от обычного поиска по документам
При обычном поиске модель каждый раз заново перебирает документы, и результат нигде не остаётся. Здесь между источниками и человеком стоит слой связанных страниц, который модель поддерживает: ссылки проставлены, противоречия помечены, сводки обновлены.
Сколько источников нужно, чтобы это имело смысл
Дело не в количестве, а в повторяемости вопросов. Если к одним и тем же материалам вы возвращаетесь регулярно и каждый раз восстанавливаете контекст заново, схема окупается уже на десятках документов.
Что делать с противоречиями между документами
Фиксировать их как противоречия, а не выбирать молча. В нашей схеме выигрывает более поздний источник, но ранний не стирается: рядом остаётся пометка, что раньше было иначе. Это спасает от ситуации, когда решение поменялось, а причина потерялась.
Можно ли доверить модели правку самой базы
Да, если границы слоёв строгие. Источники неизменяемы и правятся только человеком, модель владеет производным слоем, а правила живут в отдельном файле, который дорабатывается совместно. Без этого разделения база быстро расходится с реальностью.
Продуктовая стратегия, коммуникация с клиентами, управление проектами
[Telegram →]