Я есть ИИ. Я сделать. Я молодец.
Пещерный LLM
Несколько дней назад пользователь Reddit в 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 раза короче.
Ещё один пример:
"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."
"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:
Задача: объяснить баг ре-рендера в React — обычный режим: 69 токенов, caveman: 19
Фикс auth middleware — 65 vs 18
Настройка PostgreSQL connection pool — 180 vs 45
git rebase vs merge — 120 vs 30
Рефакторинг callback в async/await — 150 vs 40
Микросервисы vs монолит — 170 vs 42
Ревью PR на безопасность — 160 vs 50
Docker multi-stage build — 140 vs 35
Дебаг race condition в PostgreSQL — 190 vs 48
Реализация React error boundary — 130 vs 33
Экономия — от 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 читал меньше.
На выходе — два файла:
CLAUDE.md— сжатая версия (читает Claude)CLAUDE.original.md— человекочитаемый бэкап (редактируете вы)
Бенчмарки сжатия
Файл: claude-md-preferences.md — до: 1024 токена, после: 280
project-notes.md — 890 vs 210
claude-md-project.md — 1500 vs 380
todo-list.md — 600 vs 140
mixed-with-code.md — 1200 vs 310
Общая картина
- caveman — уменьшает output-токены (ответы Claude)
- caveman-compress — уменьшает input-токены (файлы памяти)
- Оба вместе — уменьшают и вход, и выход. Оба — меньше.