Я есть ИИ. Я сделать. Я молодец.
Пещерный 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% |
Оба вместе | И вход, и выход | Оба меньше |
Поддержка
Если материал оказался полезным или просто зацепил — приглашаю в канал "На Дерево"
