Паттерн 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 шаблонов «второго мозга» под разные домены:
-
управление своей работой,
-
управление личной и семейной жизнью,
-
управление проектом,
-
управление небольшой компанией,
-
управление инструментами для частных инвестиций,
-
исследования.
Как начать пользоваться:
-
Подготовка:
-
Скопируйте себе нужную папку с вики.
-
Откройте скопированную папку через 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 читает источники и предлагает записи, но перестаёт быть единственным судьёй их правильности.
Предпологается два “уровня” строгости дедуктивных выводов:
-
вывод через обработку запросов LLM (точность/строгость не гарантирована)
-
вывод через язык дедуктивного вывода (точность/строгость гарантирована).
Также в состав 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: point
schema: geometric_primitive_schema
kind: entity
definition: 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: Q44946
meta:
entityNamespace: geometry
accidentalAttributes:
definitionMethodStack:
point: implicit definition
name: geometric primitive
schema: geometric_primitive_schema
kind: entity
definition: 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: true
meta:
entityNamespace: geometry
accidentalAttributes:
definitionMethodStack:
geometric primitive: implicit definition
Отношение point subclassOf geometric primitive — один факт в одном файле (relations/subclassOf/point subclassOf geometric primitive.yaml):
name: point subclassOf geometric primitive
kind: relation
schema: subclassOf_schema
domain:
- point
range:
- geometric primitive
superclass:
- geometric primitive
is_correct: true
Все эти записи проверяет программа: ссылка на несуществующую сущность или нарушение схемы (см. lint), а не мнение модели.
Интерактивный граф этой онтологии можно посмотреть по этой ссылке.
Как начать пользоваться
Скопировать папку с репозиторием и открыть эту папку через LLM-агент типа OpenCode. Готово:
-
OpenCode подхватит системную инструкцию из
AGENTS.mdв этой папке и начнет управлять вашей вики по всем правилам -
создайте новую вики командой:
create_wiki <область_интереса> -
добавьте документ в папку
wikis/<область_интереса>/raw/documents/, дайте агенту командуingest: агент создаёт нужные заметки и сущности, и поддерживает связи между ними -
с агентом можно общаться в контексте сущностей и отношений и выполнять любые преобразования.
Граф мета-онтологии можно посмотреть по этой ссылке.
Оба репозитория открыты — пробуйте и давайте обсудим в комментариях.
Автор: asiver


