LLM Wiki Карпати: перестать искать и начать компилировать знания
В апреле Андрей Карпати выложил на GitHub короткий файл «llm-wiki». Это не код, а файл идеи: описание паттерна, которое можно отдать своему агенту, чтобы тот построил реализацию под тебя. За пару недель у него набрались тысячи звёзд и форков. Сегодня я начал свой проект на эту тему, так что пора разобрать оригинал.
Проблема RAG
Обычный RAG устроен так: на каждый вопрос ищем фрагменты документов, подкладываем их модели, она отвечает. На следующий вопрос всё сначала. Если ответ требует связать пять документов, модель каждый раз заново находит и склеивает эти пять кусков. Знание не накапливается.
Идея
Между человеком и источниками появляется вики: набор связанных Markdown-страниц, которые пишет и поддерживает сама модель. Когда приходит новый источник, модель его не просто индексирует. Она читает его, вытаскивает главное, вписывает в существующие страницы, обновляет перекрёстные ссылки и отмечает противоречия.
Три слоя:
- Сырые источники. Неизменяемые статьи, книги, картинки. Модель их читает, но никогда не меняет.
- Вики. Страницы-конспекты, страницы сущностей, понятий, выводов. Её целиком ведёт модель.
- Схема. Файл вроде
CLAUDE.mdс правилами: как устроена вики, как оформлять страницы, что делать при каждой операции.
Три операции:
- ingest: обработать новый источник, причём один источник может затронуть 10–15 страниц;
- query: ответить по вики со ссылками и, если ответ ценный, сохранить его как новую страницу;
- lint: периодически искать противоречия, устаревшие утверждения, страницы-сироты и дыры.
Плюс два служебных файла: index.md — каталог страниц с кратким описанием (заменяет векторный поиск на небольших объёмах) и log.md — журнал всех операций.
Роли
Человек выбирает источники, задаёт хорошие вопросы и думает о смысле. Всё остальное — конспекты, ссылки, порядок — делает модель. Вики обычно умирают от скучной бухгалтерии, а модели не скучно.
Критика
У идеи есть и противники. Они говорят, что на тысячах файлов паттерн разваливается, что модель, правящая сама себя, копит галлюцинации, и что вики без людей — не совсем вики.
Мой комментарий
Критика про накопление галлюцинаций — ровно та причина, по которой llm-wiki у меня устроена иначе. Модель предлагает, человек принимает. Каждая правка — это предложение в отдельном Git worktree, с источником и цитатой, которую сервис проверяет на соответствие оригиналу. А lint у меня называется «целитель»: он ищет противоречия по расписанию, но тоже только открывает предложения, а не правит молча.