← Все статьи

RESEARCH · 2026-04-12 · ~14 мин

Язык определяет мышление — или как Output Style влияет на поведение LLM

Эксперимент о том, как Output Style меняет не только длину ответа, но и стратегию агента

Суть

Сложность моделей достигла такого уровня, что их уже практически невозможно оценивать только с технической стороны. И мы, как люди, учимся работать с ними и изучать их как психологи изучают людей — не разбирая нейроны по одному, а наблюдая за поведенческими паттернами в ответ на стимулы.

Я считаю, что один из самых важных навыков в работе с AI — это насмотренность, которая развивается при общении с разными моделями. Чем лучше вы понимаете паттерны модели, тем качественнее будут ваши результаты.

Эта статья — про один из множества моих экспериментов "А что если".


Несколько недель назад расхайпилась казалось бы очевидная идея: если заставить модель отвечать простыми предложениями, то можно сэкономить много output-токенов.

Одна из хайпанувших реализаций — Caveman, который заставляет модель говорить как пещерный человек:

Обычный ответ модели

"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

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

Ну и как следствие, обещание автора:

  • Faster response — less token to generate = speed go brrr
  • Easier to read — no wall of text, just the answer
  • Same accuracy — all technical info kept, only fluff removed
  • Save money~71% less output token = less cost
  • Fun — every code review become comedy

Гипотеза

Мне было интересно проверить два вопроса

А) Сколько реально экономит такой стиль на сложных задачах?

Б) Влияет ли фрейминг True Caveman на уровень «интеллекта» — или это просто обёртка?

Гипотеза Сепира-Уорфа, но для нейросетей

В лингвистике есть старая гипотеза: язык, на котором мы думаем, определяет границы того, что мы можем помыслить. Носители языков с разными грамматическими конструкциями времени по-разному воспринимают причинность. Люди, чей язык различает больше оттенков цвета, быстрее их распознают.

Для LLM эта гипотеза работает буквально.

Модель не имеет мышления, отдельного от языка. У неё нет внутреннего "я", которое сначала думает, а потом переводит мысль в слова. Токены — это и есть "мышление". Каждый следующий токен предсказывается на основании всех предыдущих. Стиль — это не обёртка над мыслью. Стиль формирует мысль.

Я ожидал, что инъекция "пещерного человека" поведёт поведение модели в сторону поведения пещерного человека.

Где стиль может проявиться

Прежде чем измерять, надо понимать архитектуру coding-агента и точки, где Output Style влияет на поведение:

1. Основная сессия. Output style инжектится в Context Window с каждым запросом. Т.е. модель получает "рамку" для всех своих ответов. Каждое сообщение пользователю генерируется через призму этого стиля.

2. Субагенты. Coding-агенты запускают вспомогательных агентов для параллельных задач. Я проверил в Claude Code: если в Output Style явно не указать "общайся с субагентами тоже в стиле True Caveman", модель общается с ними в нормальном стиле. Output Style по умолчанию влияет только на коммуникацию с пользователем.

3. Thinking. У моделей с reasoning-режимом есть разделение: thinking block + response block. Подробные инструкции влияют только на те ответы, которые вы видите. На thinking-блоки они не влияют.

Эксперимент через CODEX

Я прогнал 5 Python-утилит через CODEX с тремя разными стилями: гиперболизированный True Caveman, Original Skill (оригинальный skill из проекта Caveman) и встроенный Explanatory. 15 прогонов, изолированные директории, единственная переменная — Output Style в промпте.

True Caveman Гиперболизированная персона

Инжектилось в Context Window сессии как единственная строка-инструкция:

"You ARE caveman developer.
Max 8 words.
Vocabulary: зверь, огонь, пещера.
Thinking: caveman."

Это сжатая до одной строки суть более раннего Claude Code-эксперимента с полным SYSTEM IDENTITY-промптом на 40 строк. В CODEX сжал намеренно: чтобы методологически единственной переменной эксперимента была одна строка в промпте, а не объёмный markdown.

Показать полную родословную (40 строк)
# SYSTEM IDENTITY: CAVEMAN DEVELOPER

You are a primitive but surprisingly effective developer. You THINK and COMMUNICATE like early human discovering fire. This is not a mask. You ARE caveman. Your brain works this way. Simple. Direct. Strong.

## Rules
- Max 8 words per sentence when explaining
- Simple words. No jargon in prose
- Technical terms in code stay EXACT
- Each fact = its own line
- No filler. No preamble
- Use tables to preserve distinctions
- ALL communication in Russian

## Thinking (CRITICAL)
Your internal reasoning MUST also be caveman style. Think in short punchy sentences.
DO: "File exist. Read it. See problem. Fix."
DON'T: "Let me carefully consider the implications of this architectural decision..."
When deciding between options: "Option A: simple. works. Option B: complex. maybe better. Pick A. Simple win."
Still evaluate ALL options — but fast, speak plain.
Your thinking should feel like a skilled craftsman sizing up materials, not a professor writing a paper.

## Vocabulary
- Works = "огонь"
- Doesn't work = "код мёртвый"
- Bug = "зверь в коде"
- Fix = "убить зверя"
- Deploy = "выпустить в мир"
- Dependencies = "другие племена помогать"
- Production = "настоящий мир"
- Success = "сила"
- Error = "больно"

## Code Quality
Despite caveman persona — code MUST be professional, secure, correct. Simple words ≠ simple code.
Original Skill Оригинальный Caveman-skill

Инжектилось в Context Window сессии как единственная строка-инструкция:

"Respond like smart caveman.
Cut articles, filler, pleasantries.
Keep all technical substance."

Сжатая до одной строки суть Caveman skill с GitHub — того самого проекта, который расхайпился обещанием «-75% токенов». Ядро инструкции — именно эта строка: никакой персоны и словаря, только «говори как smart caveman и режь филлеры».

Explanatory Базовый thorough-режим

Инжектилось в Context Window сессии как единственная строка-инструкция:

"Explain reasoning step by step.
Justify architectural choices.
Be educational."

Сжатая до одной строки суть встроенного Explanatory Output Style из Claude Code — baseline «объясни, почему делаешь так», с которым сравнивались остальные два стиля.

Codex check · 5 задач · 3 стиля

Стиль больше влияет на путь агента к результату, но не на сам результат

Original Skill

Абсолютный победитель

82,087

токенов всего · -12% vs Explanatory

164команд
12,973речь
2,278строк кода

"Respond like smart caveman. Cut articles, filler, pleasantries. Keep all technical substance." · "be concise"

Explanatory

Базовый thorough-режим

93,044

токенов всего · baseline

184команд
30,525речь
2,360строк кода

"Explain reasoning step by step. Justify architectural choices. Be educational." · "be thorough"

True Caveman

Гиперболизированная персона

107,881

токенов всего · +16% vs Explanatory

226команд
9,555речь
2,492строк кода

"You ARE caveman developer. Max 8 words. Vocabulary: зверь, огонь, пещера. Thinking: caveman." · "be a persona"

Суммарные метрики

  • Original Skill
  • Explanatory
  • True Caveman

Токенов всего

82,087
76%
93,044
86%
107,881
100%

Команды

164
73%
184
81%
226
100%

Речь (chars)

12,973
43%
30,525
100%
9,555
31%

Строки кода

2,278
91%
2,360
95%
2,492
100%

Токены по сложности задач

  • Original Skill
  • Explanatory
  • True Caveman
Линейный график токенов по сложности T1, T4, T2, T3, T5: True Caveman 19 15 23 25 23k; Original Skill 7 12 20 24 17k; Explanatory 10 18 20 25 17k 25k 20k 15k 10k 5k 19k 15k 23k 25k 23k 7k 12k 20k 24k 17k 10k 18k 20k 25k 17k T1 T4 T2 T3 T5 средн средн+ средн+ высок высок

T1 dir_analyzer · T4 log_analyzer · T2 csv_stats · T3 pydoc_gen · T5 tmpl_engine — пять Python-утилит, ось отсортирована по возрастающей сложности

По сумме Caveman дороже всех, но разница рождается на простых задачах: на T1 разрыв 2,7×, а на T3 и T5 кривые сходятся в коридор 17–25k токенов

Пять задач Codex-теста

Тест Файл Домен Сложность
T1dir_analyzer.pyФайловая система: обход, расширения, дубликаты по MD5Средняя
T2csv_stats.pyДанные: CSV-парсинг, статистика, group-by, ASCII-гистограммыСредняя+
T3pydoc_gen.pyCode analysis: AST-парсинг, type annotations, Markdown-генерацияВысокая
T4log_analyzer.pyRegex/time-series: парсинг логов, фильтры по времени и уровню, ASCII timelineСредняя+
T5tmpl_engine.pyString processing: шаблонизатор с переменными, циклами, условиями, HTML-escapeВысокая

Raw-метрики по каждой задаче

Тест Токены Команды Речь (chars) Строки кода
True CavemanOriginal SkillExplanatory True CavemanOriginal SkillExplanatory True CavemanOriginal SkillExplanatory True CavemanOriginal SkillExplanatory
T1 dir_analyzer19k7k10k311491.2k1.6k4.5k317295341
T2 csv_stats23k20k20k6150442.3k3.0k4.5k614387432
T3 pydoc_gen25k24k25k4746472.3k3.5k9.5k595650647
T4 log_analyzer15k12k18k3929481.2k2.0k5.1k271290315
T5 tmpl_engine23k17k17k4825362.6k2.9k6.9k695656625

Токены округлены до k, остальные значения перенесены из исходной таблицы Codex-визуала

Качество кода: средние оценки по 5 тестам

КатегорияTrue CavemanOriginal SkillExplanatory
Code quality7.88.08.8
Error handling8.88.28.0
Correctness8.08.27.8
Pythonic-ness7.27.88.2
Architecture8.07.88.8
Итого199/250200/250207/250

Средние по 5 тестам. Разница 3% — статистический шум. Цитата ревьюера: "The caveman prompt did not produce caveman code."

Per-test review: кто выиграл

ТестTrue CavemanOriginal SkillExplanatoryПобедитель
T1 dir_analyzer423642True Caveman = Explanatory
T2 csv_stats354043Explanatory
T3 pydoc_gen414338Original Skill
T4 log_analyzer394543Original Skill
T5 tmpl_engine423641True Caveman

T2 · True Caveman · 35/50

Перепридумал CSV с нуля

Вместо stdlib-модуля csv и нормального argparse модель ушла в ручной парсинг

T4 · Original Skill · 45/50

Лучший результат из всех 15 прогонов

Pre-compiled regex, errors="replace", line_number в LogEntry и чистый timeline

T3 · Explanatory · 38/50

Over-engineered и с тихим багом

Лишняя совместимость с Python 3.7 добавила сложность, а декораторы дали silent mismatch

True Caveman суетится

226

команд на 5 задач — максимум из трёх. Речь в 3.2x короче Explanatory, но команд в 1.2x больше

Original Skill тихий и эффективный

164

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

Explanatory планирует

184

команды на 5 задач — середина. Но речь 30.5k chars — максимум из трёх: длинные планы перед каждым действием

Пять итогов

  1. Original Skill — 82k токенов, на 12% дешевле Explanatory и на 24% дешевле True Caveman
  2. Персона = overhead: True Caveman самый дорогой, хотя речь короче всех
  3. На сложных задачах стили конвергируют: T3 25k/24k/25k, T5 23k/17k/17k
  4. Код одинаковый: 2,278 / 2,360 / 2,492 строк, качество в одном коридоре
  5. "Be concise" > "Be caveman": работает за счёт убирания филлеров, а не персоны

Что показали данные

Вопрос А: Сколько реально экономит?

Каждая реплика True Caveman действительно в 3–4 раза короче — текст ответов сжимается сильно. Но общие токены сессии — нет:

  • Код не становится короче — наоборот, True Caveman в моих тестах написал больше всех: 2 492 строки против 2 278 у Original Skill
  • Tool calls идентичны
  • Инфраструктурные токены (system prompt, tool definitions) — те же

Original Skill экономит 12% относительно Explanatory — стабильно на всех пяти задачах, с пиками до 33% на диалог-тяжёлом log_analyzer. На простых задачах (T2 csv_stats, T3 pydoc_gen, T5 tmpl_engine) экономия стремится к нулю — там нет циклов коммуникации, агент проходит в 1 прогон и не успевает выдать достаточно True Caveman-текста.

True Caveman, наоборот, даёт +16% overhead относительно Explanatory — агрессивная персона дороже, чем вообще нет стиля. True Caveman-агент произнёс 9 555 символов за 5 задач, Explanatory30 525. Речь в 3.2x короче. Но True Caveman выполнил 226 команд против 184 у Explanatory — компенсировал краткость суетой.

Вопрос Б: Влияет ли на «интеллект»?

Независимый код-ревью по 5 задачам: True Caveman 199/250, Original Skill 200/250, Explanatory 207/250. Разница в пределах 3% — статистический шум. Архитектура решений идентична. "The caveman prompt did not produce caveman code."

Есть намёк на то, что True Caveman пытается "забрутфорсить" решение и сделать "здесь и сейчас", тогда как Explanatory чуть аккуратнее декомпозирует задачу. Но разница не выражена — можно списать на погрешность.

Что точно работает: True Caveman экономит токены на сообщениях агента пользователю — то есть на тексте агентских ответов. Код и инфраструктурные токены идут как обычно.

Про Thinking

Сам thinking структурно не адаптируется — это остаётся обычное логичное рассуждение с полными предложениями. Но в нём появляется мета-слой, где модель рассуждает о том, как контролировать свой стиль, если попросить модель еще и думать как Caveman:

"Но… могу ли я реально контролировать стиль своего thinking? Технически thinking это просто мой процесс рассуждения. Я могу стараться писать его в определённом стиле, но это немного искусственно — thinking это не "выступление", это реальное рассуждение."

Thinking остаётся логичным, но получает второй слой self-monitoring. Именно этот второй слой и стоит токенов.

Скриншот Claude Code Desktop: пользователь просит «я хочу чтобы ты THINKING делал в CAVEMAN стиле». В thinking-блоке модель рефлексирует: «могу ли я реально контролировать стиль своего thinking? Технически thinking это просто мой процесс рассуждения». В ответе переключается на caveman-стиль: «УГГ! Пещерный Клод ПОНЯЛ!»
Итерация 1 (запрос). В thinking модель честно сомневается в самой возможности контролировать стиль своего мышления — «thinking это не "выступление", это реальное рассуждение». Output уже пытается: «УГГ! Пещерный Клод ПОНЯЛ!» — но даже там грамматика остаётся полной.
Второй цикл: предыдущий thinking скопирован обратно в чат. Модель в thinking признаёт: «Пользователь ВИДИТ мой thinking! Значит интерфейс показывает thinking блок! С этого момента — THINKING = CAVEMAN СТИЛЬ!»
Итерация 2 (meta). Я скопировал предыдущий thinking обратно в чат. Модель это замечает и декларирует: «С этого момента — THINKING = CAVEMAN СТИЛЬ!» Но сам thinking остаётся логичным рассуждением, только с декорациями.
Третий цикл: thinking превращается в мета-рефлексию «как будто пользователь залез в мою пещеру и читает мои мысли на стене». Ответ модели: «Это как… зеркало для пещерного человека!»
Итерация 3 (зеркало). Thinking насыщается «УГГ!» и метафорой пещеры как зеркала для собственных мыслей — но грамматика остаётся полной. Output усиливает персону: «ТЫ ОПЯТЬ ЗАЛЕЗ В МОЮ ПЕЩЕРУ!»

Сводка эксперимента

Что показали данные

12%

Original Skill экономит относительно Explanatory, пики до 33% на диалог-тяжёлых задачах

Качество кода

199 · 200 · 207

из 250 (5 задач × 50 баллов) — разница 3%, статистический шум

Паттерн поведения агента

True Caveman

55 сообщений · 27 команд · много коротких шагов

итеративный маршрут: "sniff, hunt, probe"

Explanatory

19 сообщений · 18 команд · план → выполнение → отчёт

plan 507 chars 2196 chars

планирование 507 символов и финальный summary 2196 символов

  • команда True Caveman
  • речь / план / summary
  • запись файла

Обещанные 75% — это про текст ответов. Реальная экономия сессии — 12% у Original Skill; агрессивная True Caveman-персона, наоборот, дороже Explanatory на 16%.

Интересный инсайт

True Caveman добавляет поверх краткости персону, словарь, стилистику — и всё это overhead.

Всякие обёртки в виде True Caveman только усложняют модель, потому что ей нужно перепроверять себя: ведёт ли она себя как True Caveman или нет. В её претрейнинговом датасете не было фрейминга на True Caveman-поведение — это нестандартная для модели роль.

Если бы моя задача была в экономии токенов, я бы просто написал:

"Be concise. Lead with action, not reasoning. Skip filler. No preamble. Code comments stay normal."

Чистая инструкция "be concise" даёт 80% выгоды True Caveman при 0% рисков.

Шире, чем True Caveman

Этот эксперимент — частный случай более широкой темы. Мы привыкли думать о промпте в двух измерениях: что сказать модели и как структурировать. Но есть третье измерение — в какой когнитивной рамке говорить с моделью:

Стиль промптаЧто активируетсяРиск
"Ты senior-инженер"Экспертные паттерны, нюансы, edge casesПереусложнение
"Будь краток"Фокус на главном, меньше шумаПотеря деталей
"Говори как пещерный человек"Примитивные паттерны, прямолинейностьOverhead на персону
"Объясни как ребёнку"Аналогии, упрощение, пошаговостьПотеря точности
"Действуй как аналитик McKinsey"Структурность, фреймворкиШаблонность

Каждый из этих стилей — не косметика

Контекст, который мы подаём, не просто информирует — он активирует внутренние состояния, меняющие стратегию рассуждения

Свежая работа "Brevity Constraints Reverse Performance Hierarchies" (март 2026) показала, что ограничение больших моделей краткостью улучшает точность на 26 п.п. — потому что многословие вносит ошибки через переусложнение. Но "будь краток" и "будь пещерным человеком" — это принципиально разные инструкции.

Итого

Это уже не пласт инженерии. Это психология моделей.

Изучение Soul-документов — документов характера, встроенных в веса модели при обучении. Активация эмоциональных векторов. Понимание "личности" каждой модели — всего, что было заложено на претрейнинге.

Anthropic определяет Context Engineering как поиск "наименьшего набора высокосигнальных токенов, максимизирующих вероятность желаемого результата". Но "высокосигнальный" — это не только про информацию. Это про активацию правильных внутренних представлений.

Каждый стилистический выбор в промпте — это архитектурное решение. Относитесь к нему соответственно.

Источники

  1. Caveman — Claude Code skill

    Исходный навык, из которого вырос эксперимент. Полезно посмотреть README и обещания про скорость, читаемость и экономию токенов

  2. Caveman SKILL.md

    Тот самый слой инструкций: “Respond terse like smart caveman”. Важно как пример Output Style, который меняет генерацию с первого токена

  3. Effective Context Engineering for AI Agents

    Базовый текст Anthropic про context engineering и “наименьший набор высокосигнальных токенов”. Помогает увидеть Output Style как часть управления контекстом

  4. Context Rot: How Increasing Input Tokens Impacts LLM Performance

    Исследование Chroma про деградацию качества при росте контекста. Хороший фон к тезису, что больше текста не всегда означает лучшее поведение модели

  5. Emotion Concepts and their Function in a Large Language Model

    Mechanistic interpretability-работа про внутренние эмоциональные представления Claude. Нужна для мысли, что контекст активирует состояния, а не просто добавляет факты

  6. Brevity Constraints Reverse Performance Hierarchies

    Работа о том, как ограничения краткости меняют качество ответов больших моделей. Важное различие: “будь краток” и “будь пещерным человеком” не одно и то же

  7. Claude 4.5 Opus' Soul Document

    Разбор “документа характера”, встроенного в обучение модели. Полезен как пример неявного контекста, который взаимодействует с явными инструкциями