LLM Wiki Карпати: перестать искать и начать компилировать знания

· 2 мин · BadRabbit

В апреле Андрей Карпати выложил на GitHub короткий файл «llm-wiki». Это не код, а файл идеи: описание паттерна, которое можно отдать своему агенту, чтобы тот построил реализацию под тебя. За пару недель у него набрались тысячи звёзд и форков. Сегодня я начал свой проект на эту тему, так что пора разобрать оригинал.

Проблема RAG

Обычный RAG устроен так: на каждый вопрос ищем фрагменты документов, подкладываем их модели, она отвечает. На следующий вопрос всё сначала. Если ответ требует связать пять документов, модель каждый раз заново находит и склеивает эти пять кусков. Знание не накапливается.

Идея

Между человеком и источниками появляется вики: набор связанных Markdown-страниц, которые пишет и поддерживает сама модель. Когда приходит новый источник, модель его не просто индексирует. Она читает его, вытаскивает главное, вписывает в существующие страницы, обновляет перекрёстные ссылки и отмечает противоречия.

Три слоя:

  1. Сырые источники. Неизменяемые статьи, книги, картинки. Модель их читает, но никогда не меняет.
  2. Вики. Страницы-конспекты, страницы сущностей, понятий, выводов. Её целиком ведёт модель.
  3. Схема. Файл вроде CLAUDE.md с правилами: как устроена вики, как оформлять страницы, что делать при каждой операции.

Три операции:

  • ingest: обработать новый источник, причём один источник может затронуть 10–15 страниц;
  • query: ответить по вики со ссылками и, если ответ ценный, сохранить его как новую страницу;
  • lint: периодически искать противоречия, устаревшие утверждения, страницы-сироты и дыры.

Плюс два служебных файла: index.md — каталог страниц с кратким описанием (заменяет векторный поиск на небольших объёмах) и log.md — журнал всех операций.

Роли

Человек выбирает источники, задаёт хорошие вопросы и думает о смысле. Всё остальное — конспекты, ссылки, порядок — делает модель. Вики обычно умирают от скучной бухгалтерии, а модели не скучно.

Критика

У идеи есть и противники. Они говорят, что на тысячах файлов паттерн разваливается, что модель, правящая сама себя, копит галлюцинации, и что вики без людей — не совсем вики.

Мой комментарий

Критика про накопление галлюцинаций — ровно та причина, по которой llm-wiki у меня устроена иначе. Модель предлагает, человек принимает. Каждая правка — это предложение в отдельном Git worktree, с источником и цитатой, которую сервис проверяет на соответствие оригиналу. А lint у меня называется «целитель»: он ищет противоречия по расписанию, но тоже только открывает предложения, а не правит молча.