Публікація
LLM Wiki в дії: як агент у Docker за одну ніч зберіг лекції зруйнованого війною фізика у самооновлюваній вікі
Статтю написано спеціально для DOU.
Нещодавно я опублікував на DOU статтю «Від RAG до LLM Wiki: як побудувати персистентну базу знань за концепцією Андрея Карпати». У ній ми розбирали теорію: чому класичний RAG змушує модель щоразу «відкривати Америку» і як заміна векторного пошуку на скомпільовану й пов'язану перехресними посиланнями Markdown-базу знань (під керуванням ШІ-агента) вирішує проблему «рутинної плати» (bookkeeping tax).
Сьогодні я хочу поділитися живим кейсом. Це історія про те, як теорія перетворилася на інструмент цифрової стійкості знань, коли реальний науковий архів опинився под загрозою повного зникнення внаслідок ракетного удару.
Контекст: трагедія, що стала поштовхом
У ніч проти 2 липня 2026 року російська ракетна атака на Київ (під час якої ворог випустив 74 ракети та 496 дронів) зруйнувала будинок біля кіностудії ім. Довженка. У цьому будинку згоріли квартири родини доцента КНУ імені Тараса Шевченка, відомого фізика та популяризатора науки Михайла Висоцького, а також житло його батьків.
Вогонь ущент знищив документи, техніку, наукові напрацювання та сімейний архів, який збирався понад 100 років. Сам Михайло прокоментував так: «У нас не залишилося абсолютно нічого… знищене все моє життя».
Через втрату обладнання та архівів Михайло повідоомив, що, ймовірно, припиняє роботу над своїм YouTube-каналом, де він роками безкоштовно ділився глибокими науково-популярними лекціями з фізики, космології та астрофізики.
Для мене це стало тригером. Особисті фізичні архіви науковця, на жаль, втрачені назавжди. Але його публічні лекції на YouTube — це знання, які все ж можна врятувати.
Що було зроблено: архівація знань
Я побудував незалежний освітній архів на базі відкритих відеолекцій каналу «Михайло Висоцький: науково-популярні лекції». Результатом став сайт «Науковий образ світу».
Станом на зараз база знань налічує:
- 48 вихідних джерел (очищених транскриптів лекцій) у папці
raw/, які були пакетно імпортовані; - 41 сторінка концепцій (
wiki/concepts/) та сутностей (wiki/entities/), що охоплюють квантову фізику, теорію відносності, космологію, біологічну еволюцію, науковий метод тощо;
Технічна архітектура: LLM Wiki під капотом
Весь контент сайту та структуру зв'язків згенерував LLM-агент, запущений локально в Docker-контейнері. Я виступав виключно в ролі архітектора та валідатора (підхід human-in-the-loop).
Проєкт побудовано за канонами патерну LLM Wiki, проте його доповнено генератором MkDocs:
.
├── src/
│ ├── hooks.py # Python-хуки збірки MkDocs
│ ├── config.yaml # Конфігурація для хуків
│ ├── templates/ # Шаблони розмітки для збірки сторінок
│ └── overrides/ # Кастомні перевизначення шаблонів теми Material
├── mkdocs.yml # Основний конфігураційний файл сайту
└── data/ # Каталог із вихідними даними
├── raw/ # Первинні джерела
├── wiki/ # Вікі-база знань
├── pages/ # Статичні сторінки
└── static/ # Статичні файли
1. Ізольовані субагенти для імпорту (Ingest)
Це ключове рішення, про яке я згадував у теоретичній статті. Замість того, щоб «годувати» головного агента десятками транскриптів лекцій одночасно (що миттєво забило б контекстне вікно моделі та призвело до галюцинацій), архітектура передбачає запуск ізольованих субагентів.
Головний оркестратор брав один файл транскрипту лекції, створював під нього чистого субагента, який аналізував текст, створював або оновлював файли концепцій і повертав результат. Після цього субагент знищувався, а оркестратор переходив до наступного файлу.
2. Контроль якості через Git Diff
Моделі схильні помилятися. Щоб гарантувати точність, кожна дія агента фіксувалася локальними змінами в Git. Перед публікацією я перевіряв зміни через git diff. Якщо агент неправильно пов'язав концепції або спотворив науковий термін, я скасовував зміни (або відкочував коміт) і коригував інструкції.
3. MkDocs, Python та кастомні хуки
Сайт рендериться як статичний за допомогою генератора MkDocs з темою Material. Для керування залежностями та швидкої збірки використовується сучасний інструмент uv:
uv run mkdocs build
Стандартний MkDocs «із коробки» не ідеально виконував це завдання, тому агент під моїм контролем написав кастомні хуки на Python, що автоматизували рутину:
- Сортування кирилиці: Стандартне сортування MkDocs ламається на українських літерах (І, Є, Ґ тощо), якщо в системі чи Docker-контейнері немає потрібної системної локалі. Хук реалізує сортування без прив'язки до локалей ОС.
- Динамічна навігація: Ми не прописували розділ
navуmkdocs.ymlвручну. Хук самостійно сканує папкиconcepts/таentities/і будує дерево меню «на льоту». - Інтерактивні віджети: Реалізовано блок «Випадкові статті» з адаптивною мобільною версткою, щоб читачам було зручніше досліджувати базу знань.
Процес: «з телефона на дитячому майданчику»
Найбільше вау-враження від цього проєкту — це зміна ролі розробника. Я не писав тексти статей і не проставляв сотні перехресних посилань вручну. Більшість роботи зробив агент, поки я гуляв з дитиною на вулиці.
Mій workflow виглядав так:
- Запустив Docker-контейнер з агентом через SSH-клієнт на телефоні.
- Через чат в месенджері поставив задачу клонувати репозиторій.
- Доручив агенту зробити транскрипти лекцій та закинути в папку
inbox/. - Запустив скіл імпорту (
ingest) та пішов спати. - Понад 4 години агент у Docker автономно та послідовно обробляв десятки текстів, будуючи зв'язки.
- Зранку я перевірив результат і переконався, що структура є логічною.
Це наочна демонстрація відсутності «рутинної плати» (bookkeeping tax). Вся механічна робота делегована ШІ, людина лише коригує вектор руху та валідує кінцевий результат.
Чому це важливо для спільноти?
Війна показала, що цифрова інфраструктура та фізичні носії є вразливими. Підхід LLM Wiki — це не просто спосіб зекономити час на веденні нотаток. Це інструмент цифрової стійкості знань (digital knowledge resilience).
Якщо у вас є цінні публічні джерела, лекції чи матеріали, які можуть зникнути — не треба чекати. Компілюйте їх у персистентну базу знань.
Гуманітарна підтримка
Цей технічний кейс народився через трагедію конкретної родини. Михайло Висоцький та його батьки втратили все майно. На створеному сайті також розміщено інформаційний блок із закликом допомогти родині науковця.
Якщо ви хочете підтримати родину Михайла фінансово, ви можете зробити внесок на його банку в Monobank.
Висновки та посилання
Практичний запуск показав: патерн LLM Wiki дійсно масштабується і працює асинхронно без перевантаження контексту.
Корисні лінки для тих, хто хоче спробувати:
- Перша (теоретична) стаття на DOU: «Від RAG до LLM Wiki»
- Створений сайт-архів лекцій: «Науковий образ світу»
- Репозиторій проєкту: BogdanovychA/scientific-image
- Репозиторій шаблону LLM Wiki: BogdanovychA/llm-wiki (можна клонувати та використовувати під власні проєкти)