Я есть ИИ. Я сделать. Я молодец.


Пещерный LLM

Несколько дней назад пользователь реддит в r/ClaudeAI рассказал, что научил Claude отвечать в стиле пещерного человека: короткие фразы, без вежливости, без преамбул, без "С радостью помогу вам с этой задачей!".

И получилось, что выходные токены упали с ~180 до ~45 на задаче web search. Минус 75%.

Пост быстро подхватили. На GitHub появился репозиторий caveman от JuliusBrussee - готовый плагин для Claude Code, который включает пещерный режим одной командой. Тысячи звёзд за пару дней. Тема вышла в топ Hacker News (800+ поинтов) и разлетелась по всем соцсетям.


Примеры

Обычный Claude (69 токенов):

"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object."

Caveman Claude (19 токенов):

"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."

Тот же ответ. Та же точность. В 3.5 раза короче.

Обычный Claude:

"Sure! I'd be happy to help you with that. The issue you're experiencing is most likely caused by your authentication middleware not properly validating the token expiry. Let me take a look and suggest a fix."

Caveman:

"Bug in auth middleware. Token expiry check use < not <=. Fix:"


Современные LLM после RLHF сильно воспитаны. Модель обучена быть вежливой, объяснять подробно, добавлять вводные фразы. "Конечно, с радостью помогу...", "Давайте разберёмся шаг за шагом...", "Вот подробное объяснение..." - всё это токены. Много токенов.

Когда ты заставляешь модель говорить примитивно - короткие предложения по 3-6 слов, без артиклей, без нарратива - она выдаёт только суть. Просто фильтр от воды.

Плюс есть исследование от марта 2026 - "Brevity Constraints Reverse Performance Hierarchies in Language Models". Если коротко, ограничение на краткость ответа в некоторых бенчмарках повысило точность на 26 процентных пунктов. Меньше слов - иногда более точный ответ. Модель не тратит внимание на воду. (Об этом раннее рассказывал, почему модели врут или додумывают)


Что именно caveman режет, а что не трогает

Вещи

Что происходит

Объяснения на английском/русском

Убирает воду, оставляет суть

Блоки кода

Пишет нормально (caveman не тупой)

Технические термины

Не трогает (полиморфизм остаётся полиморфизм)

Сообщения об ошибках

Цитирует точно

Git-коммиты и PR

Пишет нормально

Артикли (a, an, the)

Убраны полностью

Вежливость

Убрана полностью

Осторожные формулировки

Убраны полностью

По сути, всё техническое остаётся как есть. Умирает только обёртка из слов, за которые вы платите деньги.

Вот конкретные примеры того, что обычная LLM тратит впустую:

  • "I'd be happy to help you with that" — 8 токенов в никуда

  • "The reason this is happening is because" — 7 токенов в никуда

  • "I would recommend that you consider" — 7 токенов в никуда

  • "Sure, let me take a look at that for you" — 10 токенов в никуда


Бенчмарки

Реальные замеры токенов через Claude API из репозитория caveman:

Задача

Обычный (токены)

Caveman (токены)

Экономия

Объяснить баг ре-рендера в React

1180

159

87%

Фикс auth middleware

704

121

83%

Настройка PostgreSQL connection pool

2347

380

84%

git rebase vs merge

702

292

58%

Рефакторинг callback в async/await

387

301

22%

Микросервисы vs монолит

446

310

30%

Ревью PR на безопасность

678

398

41%

Docker multi-stage build

1042

290

72%

Дебаг race condition в PostgreSQL

1200

232

81%

Реализация React error boundary

3454

456

87%

Среднее

1214

294

65%

Разброс от 22% до 87%. Чем более объяснительная задача - тем больше экономия. На задачах, где и так нужен только код, выигрыш меньше.


Три уровня пещерности

Авторы плагина предлагают три режима:

Lite - просто без воды:

"Your component re-renders because you create a new object reference each render. Inline object props fail shallow comparison every time. Wrap it in useMemo."

Full - классический caveman:

"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."

Ultra - для тех, кто каждую копейку считает:

"Inline obj prop → new ref → re-render. useMemo."


Caveman Compress

Caveman режет выходные токены. Но есть ещё входные.

Если вы используете Claude Code, у вас наверняка есть CLAUDE.md - файл с настройками проекта, который подгружается при каждом запуске сессии. Тысяча токенов в файле - тысяча токенов за каждый запуск.

Caveman Compress - второй инструмент из того же репозитория. Он переписывает ваши файлы памяти в пещерном стиле, чтобы Claude читал меньше.

/caveman-compress CLAUDE.md

На выходе два файла:

  • CLAUDE.md — сжатая версия (это читает Claude каждую сессию)

  • CLAUDE.original.md — человекочитаемый бэкап (это редактируете вы)

Бенчмарки сжатия

Файл

До (токены)

После (токены)

Экономия

claude-md-preferences.md

706

285

59.6%

project-notes.md

1145

535

53.3%

claude-md-project.md

1122

687

38.8%

todo-list.md

627

388

38.1%

mixed-with-code.md

888

574

35.4%

Среднее

898

494

45%

Общая картина

Инструмент

Что режет

Экономия

caveman

Output-токены (ответы Claude)

~65%

caveman-compress

Input-токены (файлы памяти)

~45%

Оба вместе

И вход, и выход

Оба меньше

Поддержка

Если материал оказался полезным или просто зацепил — приглашаю в канал "На Дерево"