LLM Wiki: готовые baseline-шаблоны и новая реализация паттерна для доказательных выводов

—

от автора

Паттерн LLM Wiki (предложен Андреем Карпаты, 2026) устроен так: LLM-агент не ищет фрагменты заново при каждом вопросе, а инкрементально встраивает новые источники в постоянную вики — дополняет страницы, связывает их ссылками, отмечает противоречия и поддерживает обзор.

Типичные элементы паттерна:

  • Три слоя. raw/ — неизменяемые источники (курирует владелец), wiki/ — страницы под управлением агента, AGENTS.md — схема-регламент.

  • Операции. ingest (один источник каскадно обновляет 10–15 страниц), query (вопрос по вики), lint (периодическая проверка здоровья: противоречия, устаревшие утверждения, страницы-сироты).

  • Навигация. index.md — каталог всех страниц; log.md — append-only журнал с разбираемым префиксом: в оригинале паттерна — ## [YYYY-MM-DD] <операция> | <заголовок>, в kbt — ## <YYYY-MM-DD HH:MM> — ingest '<файл>'.

  • Obsidian как просмотрщик: graph view показывает связи, Dataview читает frontmatter, Web Clipper кладёт статьи прямо в raw/.

Baseline-реализация LLM Wiki: llm-wiki-baseline

Git-репозиторий llm-wiki-baseline предлагает готовую baseline-реализацию паттерна: шесть папок — starter-pack шаблонов «второго мозга» под разные домены:

  • управление своей работой,

  • управление личной и семейной жизнью,

  • управление проектом,

  • управление небольшой компанией,

  • управление инструментами для частных инвестиций,

  • исследования.

Как начать пользоваться:

  1. Подготовка:

    1. Поставьте OpenCode (или любой другой надежный LLM-агент) и настройте доступ к LLM провайдеру

    2. Опционально поставьте Obsidian для ввода информации и аналитики через Obsidian плагины. Для OpenCode можно поставить плагин внутри Obsidian и работать с агентом также внутри Obsidian.

  2. Скопируйте себе нужную папку с вики.

  3. Откройте скопированную папку через OpenCode. Готово:

  • OpenCode подхватит системную инструкцию из AGENTS.md в этой папке и начнет управлять вашей вики по всем правилам паттерна LLM Wiki

  • добавьте документ в папку raw/ (заметки, факты, готовые/официальные документы, диалоги, статьи и информацию из браузера), дайте агенту команду ingest: агент создаёт нужные заметки и сущности, и поддерживает связи между ними;

  • для всех загруженных в raw/ документов, которые не в .md формате, агент попробует сделать преобразование в .md для загрузки

  • также можно загружать как заметки информацию из Интернета

  • через диалог агент создаёт нужные заметки и делает нужные правки

  • с агентом можно общаться в контексте заметок — он “знает” весь необходимый контекст, понимает и поддерживает схему вики

  • эту вики можно открыть в Obsidian как vault и пользоваться всеми его плюшками.

Для своей семьи я создал семейную LLM Wiki, в которой мы храним детальную информацию обо всём, что касается жизни и счастья всех членов семьи: медицинские анализы (здоровье), интересы, данные для инвентаризации: точные модели техники в доме, задания для выполнения, и т.д. и т.п. Как мы раньше жили без этого?..

Реализация LLM Wiki на схемах данных для дедуктивных выводов: llm-wiki-kbt

Baseline реализация LLM Wiki интересна и полезна. Однако следующие недостатки этой реализации обращают на себя внимание:

  • baseline реализация остаётся prose-first: знание хранится как связанные markdown-страницы, а целостность держится регламентом агента и простыми проверками, средствами самой LLM — без формальной онтологии;

  • в baseline инструкциях и методологии нет “оснований”, по которым можно было бы суждения разложить на правдивые и ложные, как это обычно делается в классической логике (см. “Учебник Логики” (Г.В. Челпанов), “Логика” (С.Н. Виноградов)). Это означает, что в какой-то момент агент может сгаллюцинировать или логика агента начнет “дрифтовать”, и в вики попадет ложная по смыслу информация. Нет никакого гарантирующего способа определить и исправить такую информацию;

  • все связи — одного типа. Опыт и практика говорят, что эффективнее различать типы связей, т.к. связь соответствует отношению, которое на практике бывает разных типов;

  • на одну и ту же сущность можно смотреть под разной перспективой рассмотрения: на один и тот же вопрос или предмет химик, физик и системный администратор “смотрят” по-разному.

В итоге понятно, что baseline-реализацию нельзя использовать в областях с высокой ценой ошибки, т.к. для выводов, который делает агента, нет строгого доказательства.

Проект llm-wiki-kbt развивает идею LLM Wiki следующим образом:

  • добавляется проверяемая структура на основе принципов классической логики, с возможностью доказательных выводов, на основе расширяемых схем данных

  • вместо одного типа связи — типизированные отношения (subclassOf, partOf, instanceOf и другие)

  • у каждой вики явно задана перспектива рассмотрения: цель, правило, объём и точка зрения

  • консистентность проверяют программные зонды (lint), а не LLM

  • структура сущностей позволяет делать дедуктивные выводы, аналогично тому как работают reasoning engine для OWL формата представления знаний

  • в специальной вики по мета-онтологии (meta_ontology) выявляются все верхнеуровневые понятия из классической Логики. Используя эти термины как базовые можно представить знания из любой области знаний, включая любые научные теории.

По сравнению с LLM Wiki baseline, в llm-wiki-kbt всего два вида записей:

  • сущность (entity) — понятие с определением, атрибутами и, возможно, с дополнительным описанием при необходимости (для случаев, когда сущность на данной стадии не удается представить в виде набора существенных признаков);

  • отношение (relation) между сущностями, по одному на файл: subclassOf, partOf, instanceOf, disjointWith и другие.

Каждая запись подчиняется схеме, опеределяемой в настройках вики. Для всех вики общая небольшая базовая онтология wikis/meta_ontology. Кроме того, каждая вики объявляет свою перспективу рассмотрения (perspective of consideration) — цель, объём и точку зрения, с которой будет описан предмет, а также правила рассмотрения. Системный администратор и физик описывают одно и то же по-разному, и это прямо фиксируется в настройках вики.

В результате подход в llm-wiki-kbt раскладывает текстовую информацию на консистентные сущности и отношения ровно так, как на это смотрит пользователь вики.

Рабочая цель — описать каждую сущность через её существенные атрибуты, то есть свойства, без которых она перестаёт быть собой. Когда предметная область описана так, сущность опознаётся по значениям этих атрибутов, а на логические вопросы — является ли X разновидностью Y, может ли что-то быть одновременно X и Y, что следует из Z — отвечает алгоритм. LLM читает источники и предлагает записи, но перестаёт быть единственным судьёй их правильности.

Предпологается два “уровня” строгости дедуктивных выводов:

  1. вывод через обработку запросов LLM (точность/строгость не гарантирована)

  2. вывод через язык дедуктивного вывода (точность/строгость гарантирована).

Также в состав llm-wiki-kbt входит библиотека для базовой визуализацию для представления графа сущностей.

Возможные применения:

  • Представление информации в областях с высокой ценой ошибки, для принятия решений, которые имеют строгое доказательство.

  • Оцифровка и анализ научной информации, автоматический анализ научных статей.

  • Память о предметной области для агента.

  • Общий глоссарий для команды и её агентов: одно определение на термин, указана точка зрения, есть граф, по которому может пройтись новичок.

  • Проверка сгенерированного текста — утверждения из ответа модели сверяются с отношениями в вики, противоречащие помечаются.

  • Исследовательская работа — утверждение о возможной проблеме, формулировка гипотезы, проверка гипотезы и выяснение, есть ли незакрытые проблемы.

Пример вики: евклидова геометрия

На основе базовой мета-онтологии в llm-wiki-kbt можно строить доменные вики-онтологии. Самый простой пример такой онтологии — вики wikis/euclidean_geometry: 33 сущности и 116 отношений.

В ней есть примитивы — point (точка), line (прямая), plane (плоскость), и фигуры — угол, окружность, отрезок, треугольник. Есть постулаты 1–5 и общие понятия из Евклида как отдельные сущности. Есть теоремы: предложения I.1 («построение равностороннего треугольника на данном отрезке»), I.15 (вертикальные углы равны), I.32 (сумма углов треугольника) и I.47 (теорема Пифагора) — сущности с определениями.

Все они связаны отношениями: subclassOf выстраивает их в дерево классов, instanceOf помещает конкретную теорему в класс, partOf описывает композицию. Перспектива рассмотрения этой вики сформулирована прямо: «плоские фигуры изучаются аксиоматически, из небольшого набора постулатов и общих понятий, дедуктивным доказательством; точка зрения — геометр, работающий от первых принципов».

Покажем оба вида записей на реальных файлах этой вики. Сущности — point (точка) и geometric primitive (геометрический примитив, подкласс геометрического объекта):

name: pointschema: geometric_primitive_schemakind: entitydefinition: That which has no part — the primitive geometric object with position but no length, area, or volume.description: |  - An undefined primitive; Euclid's first definition  - [Wikipedia: "Point (geometry)"](https://en.wikipedia.org/wiki/Point_(geometry))essentialAttributes:  isIdentifiedByEssentialAttributes: true  isSpatiotemporal: false  isIdealized: true  isMathematicallyDescribable: true  wikidataItemIDStack:    point:      ID: Q44946meta:  entityNamespace: geometryaccidentalAttributes:  definitionMethodStack:    point: implicit definition
name: geometric primitiveschema: geometric_primitive_schemakind: entitydefinition: An undefined primitive geometric object — a point, a line, or a plane — introduced without definition and governed by the postulates.description: |  - Primitives are the starting vocabulary of the theory  - Their behaviour is fixed only by the postulates and common notions  - [Wikipedia: "Foundations of geometry"](https://en.wikipedia.org/wiki/Foundations_of_geometry)essentialAttributes:  isIdentifiedByEssentialAttributes: true  isSpatiotemporal: false  isIdealized: true  isMathematicallyDescribable: truemeta:  entityNamespace: geometryaccidentalAttributes:  definitionMethodStack:    geometric primitive: implicit definition

Отношение point subclassOf geometric primitive — один факт в одном файле (relations/subclassOf/point subclassOf geometric primitive.yaml):

name: point subclassOf geometric primitivekind: relationschema: subclassOf_schemadomain:  - pointrange:  - geometric primitivesuperclass:  - geometric primitiveis_correct: true

Все эти записи проверяет программа: ссылка на несуществующую сущность или нарушение схемы (см. lint), а не мнение модели.

Интерактивный граф этой онтологии можно посмотреть по этой ссылке.

Интерактивный граф онтологии евклидовой геометрии

Интерактивный граф онтологии евклидовой геометрии

Как начать пользоваться

Скопировать папку с репозиторием и открыть эту папку через LLM-агент типа OpenCode. Готово:

  • OpenCode подхватит системную инструкцию из AGENTS.md в этой папке и начнет управлять вашей вики по всем правилам

  • создайте новую вики командой: create_wiki <область_интереса>

  • добавьте документ в папку wikis/<область_интереса>/raw/documents/, дайте агенту команду ingest: агент создаёт нужные заметки и сущности, и поддерживает связи между ними

  • с агентом можно общаться в контексте сущностей и отношений и выполнять любые преобразования.

Граф мета-онтологии можно посмотреть по этой ссылке.

Оба репозитория открыты — пробуйте и давайте обсудим в комментариях.

ссылка на оригинал статьи https://habr.com/ru/articles/1091774/