Что Anthropic объяснила о цене длинной сессии Claude Code?
Статья Anthropic называется Maximizing the value of your Claude Code sessions. В ней разбирается экономика уже запущенной сессии Claude Code.
Claude Code использует накопленную историю как контекст текущего разговора. На каждом новом ходе накопленная история снова отправляется модели. В неё попадают:
- системные инструкции;
- содержимое
CLAUDE.md; - прочитанные файлы;
- результаты команд;
- предыдущие сообщения;
- вывод тестов и сборки.
Anthropic формулирует это прямо:
Всё, что попало в разговор, файл, который прочитал Claude, или вывод запущенной команды, отправляется снова на каждом следующем ходе.
Кэш хранит состояние, чтобы сервер не вычислял его заново, но контекст всё равно занимает место и участвует в расчёте.
Есть и другая причина лишнего расхода. Расплывчатая задача заставляет Claude искать больше. Запрос «тесты падают» оставляет агенту широкий поиск. Более точный запрос «исправь падающий тест в utils.test.ts» задаёт конкретную точку входа. Claude меньше ходит по проекту, меньше читает и меньше добавляет в историю.
Практический вывод для сборщика простой: разговор не стоит продолжать только потому, что он уже открыт. Сначала спроси себя, нужна ли следующему шагу вся накопленная история. Если нет, используй /clear, новую сессию или отдельного subagent.
Как выстроить рабочий процесс в Claude Code?

После каждого завершённого шага у Claude Code есть пять нормальных вариантов. Anthropic перечисляет их в материале о сессиях и контексте:
- Продолжить текущую сессию, если следующий шаг использует ту же историю и те же решения.
- Выполнить
/rewind, если нужно вернуться к состоянию до неудачной правки. - Начать новую сессию через
/clear, если текущая задача закончена или контекст стал лишним. - Сжать разговор через
/compact, если работа продолжается, но вся история уже не нужна. - Передать отдельную работу subagent, если она объёмная, шумная или достаточно самостоятельная.
Я бы строил процесс вокруг этапов. Например:
- Сначала попроси Claude изучить задачу и составить план.
- Затем отдельно реализуй один небольшой блок.
- После реализации запусти проверку и разберись с ошибками.
- Когда блок готов, зафиксируй решения в файле проекта.
- Для следующего независимого блока начни новую сессию.
Команда /clear очищает текущий разговор, а прошлая сессия остаётся доступной через /resume. Поэтому очистка контекста не равна потере работы.
/compact подходит для продолжения той же задачи. Например, Claude уже изменил несколько файлов, впереди проверка, а ранняя переписка занимает большую часть окна. Сжатие оставит резюме и позволит продолжить работу.
/resume нужен, когда ты возвращаешься к конкретному разговору. В терминале можно продолжить последнюю сессию командой:
claude --continueДля выбора конкретной сессии используется:
claude --resumeЕсли задача связана с предыдущим обсуждением, но старый разговор уже не нужен целиком, я бы не тащил его автоматически. Сохрани итог в файл и начни чистую сессию. Так Claude получит актуальный статус, ограничения и решения без истории всех попыток.
Есть простой шаблон запроса для завершения этапа:
Перед завершением текущего этапа: 1. Перечисли изменённые файлы. 2. Запиши, что уже работает. 3. Запиши ошибки и незавершённые действия. 4. Отдельно перечисли решения, которые нельзя менять без новой проверки. 5. Сохрани результат в файл HANDOFF.md в корне проекта. После записи перечитай файл и проверь, что в нём нет общих фраз.
У Anthropic нет официальной универсальной схемы handoff-файла. Это заготовка для практического применения. Важно другое: состояние должно жить в проекте и быть доступным за пределами длинного окна чата.
Сколько стоит лишний контекст в сессии?

Цена складывается из нескольких разных действий, разобранных в таблице контроля расходов Claude Code.
| Что происходит | Относительная цена |
|---|---|
| Обычный входной токен | 1x |
| Чтение токена из prompt cache | 0,1x |
| Запись токена в prompt cache | до 2x |
| Выходной токен | примерно 5x входного |
Anthropic объясняет дорогой вывод так:
На каждый токен декодирование намного дольше держит GPU занятым, поэтому вывод стоит примерно в 5 раз дороже входа.
Кэш помогает, пока совпадает начало запроса. Смена модели или уровня effort может нарушить совпадение и заставить систему заново обработать накопленный контекст. Долгая пауза тоже имеет значение: для подписки кэш живёт без нового хода один час, для API-ключа по умолчанию пять минут.
В примере Anthropic Claude делает пять запросов для одного небольшого исправления теста. Каждый из пяти содержит всю историю до текущего момента. Один запрос может выглядеть недорогим. Пять повторов уже дают другой результат.
Вывод команд тоже остаётся частью сессии. Тест-раннер, который печатает 400 успешных тестов построчно, добавляет эти 400 строк в каждый последующий ход. Если вывод превышает 30 000 символов, Claude Code записывает его в файл и оставляет в разговоре короткое превью с путём. До этого порога длинный вывод может продолжать тянуться за сессией.
В статье Anthropic есть ещё одна наглядная деталь: 40-й ход перечитывает 39 предыдущих ходов. Поэтому одна длинная сессия может стоить больше, чем та же работа, разделённая на несколько коротких.
Практический порядок экономии выглядит так:
- Выбирай модель и effort до начала длинной работы.
- Не оставляй в разговоре успешный шумный вывод, если достаточно короткого результата.
- Не отправляй пять расплывчатых запросов вместо одного точного.
- После завершения этапа очищай контекст.
- Для самостоятельного исследования используй subagent.
Деньги здесь не единственный критерий. Лишний контекст ещё и мешает результату. Claude должен учитывать старые попытки, даже если они больше не относятся к текущей задаче.
После этого раздела можно перейти от арифметики к настройке процесса. На практикуме мы руками собираем связку правил, файлов контекста и проверок, чтобы ИИ-агент не начинал каждый этап с хаотичного чтения проекта.
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК
Почему /compact может вернуть уже отвергнутую идею?
Сжатие решает одну проблему и создаёт ограничение. Контекст становится меньше, но старые сообщения больше не участвуют в работе в прежнем виде.
Практик BSWEN описал это так:
Claude Code резко теряет контекст после сжатия.
Рабочая цепочка выглядит так:
- Claude предлагает архитектуру A.
- Ты проверяешь её и находишь ограничение.
- Выбираешь архитектуру B.
- Claude пишет код под B.
- Проходит
/compact. - В следующем этапе Claude видит код, но не помнит, почему A была отвергнута.
- Он снова предлагает A.
Код никуда не исчез. Потерялось происхождение решения. Это самая неприятная часть, знакомая по разбору потери контекста в Claude Code: модель может выглядеть уверенно, потому что вариант A сам по себе кажется разумным.
Пользователь Reddit сформулировал разницу коротко:
Код лежит в репозитории, и модель может перечитать его; причина, по которой код написан именно так, живёт только в разговоре.
Поэтому перед /compact сохраняй три вещи вместо пересказа всех сообщений:
- принятое решение;
- отвергнутые варианты;
- причину отказа.
Подойдёт DECISIONS.md, короткий HANDOFF.md или запись рядом с кодом. Причину важно сохранить доступной после сжатия.
Сжатое резюме может сохранить общий ход работы и пропустить деталь, на которой держится архитектура. Перед сжатием вынеси решения и ограничения в файл проекта, затем попроси Claude прочитать этот файл после операции.
Для завершённого этапа сохраняй состояние и выполняй /clear. Если этап продолжается, но история стала слишком большой, сначала зафиксируй важное, а потом сжимай.
Как сделать рабочий процесс в Claude Code динамичным?
Не складывай все инструкции в один файл. У разных правил разная частота использования.
CLAUDE.md нужен для постоянного контракта проекта:
- какие команды запускают проверку;
- какие папки нельзя менять;
- какой стиль кода уже принят;
- что считать готовым результатом;
- где лежат важные файлы состояния.
Skill подходит для сценария, который нужен иногда. Например, отдельный skill может описывать выпуск релиза, проверку доступности, подготовку миграции или разбор большого набора файлов.
Hook нужен, когда действие должно произойти в конкретный момент и не зависеть от решения модели. Форматирование после изменения файла лучше запускать автоматически, чем каждый раз надеяться на фразу «не забудь отформатировать».
Subagent нужен для самостоятельной шумной работы:
- изучить большой репозиторий;
- собрать список вариантов;
- проверить несколько файлов;
- провести отдельный review;
- вернуть только вывод.
Отдельные subagents не наследуют контекст основной сессии и возвращают только результат. Это требует собственных ресурсов: subagent делает отдельные ходы и может перечитать то, что главная сессия уже знает. Зато промежуточный шум не разрастается в основном разговоре.
Динамика здесь означает, что каждый кусок инструкции появляется в момент, когда нужен:
- Постоянное правило загружается всегда.
- Процедура подключается по задаче.
- Механическое действие запускается hook.
- Исследование выполняется в отдельном контексте.
- В главную сессию возвращается короткий результат.
Что держать в CLAUDE.md, а что вынести в skills?
Документация Anthropic перечисляет расположения файлов:
./CLAUDE.md;./.claude/CLAUDE.md;~/.claude/CLAUDE.mdдля общих пользовательских правил.
Проектный файл загружается в начале сессии. Вложенные инструкции подгружаются, когда Claude читает файлы из соответствующего подкаталога.
В CLAUDE.md я бы оставил только то, что нельзя забыть:
# Project rules
- Run `npm test -- --runInBand` after changes to application logic.
- Do not edit files in `data/backups/`.
- Keep API responses backward-compatible.
- The project uses TypeScript and ESLint.
- Record non-obvious architecture decisions in `DECISIONS.md`.Это пример регламента. Команды и ограничения должны соответствовать конкретному проекту. Смысл примера в размере: несколько правил, которые действительно применяются постоянно.
Подробную процедуру лучше вынести в skill:
.claude/
skills/
release-check/
SKILL.mdВнутри SKILL.md можно держать порядок проверки, дополнительные файлы, команды и условия запуска. Такой материал не обязан занимать контекст каждой новой сессии.
Anthropic рекомендует использовать skills для процедур, которые загружаются по необходимости. Это особенно полезно для новичка: не требуется помнить весь список команд, но и не приходится заставлять Claude читать его перед каждой мелкой правкой.
Разделяй также инструкции и автоматические действия. CLAUDE.md сообщает правило. Skill объясняет процедуру. Hook выполняет механическое действие. Если в файле написано «после каждого изменения запускай форматирование», это пожелание модели. Hook превращает его в автоматический запуск.
Важное ограничение: CLAUDE.md не даёт гарантии строгого исполнения каждой строки. Документация описывает содержимое файла как контекст для модели. Если действие должно произойти в определённый момент, его лучше оформить hook.
Когда отдавать задачу subagent, а не продолжать сессию?
Обычный subagent начинает с отдельного контекста, как в read-only-сценарии субагента в Claude Code. Главная сессия передаёт ему запрос, а обратно получает результат. История основного разговора не копируется целиком.
Это удобно, когда нужно:
- найти все места использования функции;
- изучить большой репозиторий;
- сравнить несколько решений;
- проверить отдельный модуль;
- собрать список потенциальных проблем.
Fork работает иначе. Он наследует историю текущей сессии, поэтому ему требуется минимальное повторное объяснение уже обсуждённой задачи. При этом промежуточный вывод fork не засоряет основной контекст.
Документация Claude Code определяет fork так:
Fork - это subagent, который наследует весь разговор до текущего момента, а не начинает с чистого контекста.
Выбор можно свести к двум вопросам:
- Нужна ли subagent вся история текущего разговора?
- Может ли он выполнить работу самостоятельно и вернуть короткий вывод?
Если история не нужна, бери обычный subagent. Если без неё потеряется условие или уже принятое решение, используй fork.
Не отдавай subagent задачу, для которой нужен постоянный контроль на каждом шаге. Он работает автономно в своём контексте. Главная сессия увидит итог, но не весь путь.
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК
Как не потерять работу между сессиями?
Команды решают разные задачи:
| Команда | Что происходит |
|---|---|
/clear | Текущий контекст очищается, старая сессия остаётся доступной |
/compact | История заменяется сжатым резюме, работа продолжается |
/resume | Открывается предыдущая сессия |
/export | Разговор сохраняется в текстовом виде |
/context | Показывается состав занятого контекста |
Транскрипты сессий хранятся локально в формате JSONL, а передачу задачи между сессиями я разбирал отдельно. Это помогает восстановить разговор, но не превращает чат в удобную документацию проекта.
Перед очисткой можно переименовать сессию через /rename. Это пригодится, если к ней понадобится вернуться. Для продолжения последнего разговора после перезапуска есть claude --continue, для выбора конкретного - claude --resume.
Я бы разделял два типа сохранения.
Сохранение разговора:
/export;- локальный JSONL-транскрипт;
/resume.
Сохранение рабочего состояния:
HANDOFF.md;DECISIONS.md;- список незавершённых действий;
- коммит с понятным сообщением;
- тест, который фиксирует принятое поведение.
Второй тип важнее для следующего этапа. Для следующего этапа вместо разговора на 200 сообщений нужны четыре ответа:
- что сделано;
- что сломано;
- что нельзя менять;
- с чего продолжать.
Не полагайся на то, что новая сессия сама найдёт старый план. Если нужен конкретный файл, укажи его явно:
Прочитай HANDOFF.md и DECISIONS.md в корне проекта. Сначала перечисли текущий статус и ограничения. Не меняй файлы, пока не назовёшь следующий конкретный шаг и файлы, которых он касается. После выполнения обнови HANDOFF.md.
Как проверить Claude Code перед следующей задачей?

Запусти Claude из корня проекта.
Открой терминал в папке, где лежат исходники и проектный
CLAUDE.md. Не начинай с родительской директории и не надейся, что Claude сам выберет правильную папку.Проверь путь до запуска:
bashpwd claudeВ начале сессии отправь короткий запрос:
Проверить рабочую папкуВыведи текущую рабочую директорию и корень проекта. Ничего не изменяй.
Если Claude пытается запускать тесты или искать файлы в другом месте, останови работу и исправь расположение сессии. Для сохранения исходной папки после Bash-команд можно использовать переменную
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1.Проверь загруженные инструкции.
Файл проекта должен лежать в
./CLAUDE.mdили./.claude/CLAUDE.md. Общие пользовательские инструкции лежат в~/.claude/CLAUDE.md.Выполни:
/memoryКоманда показывает загруженные
CLAUDE.md,CLAUDE.local.mdи файлы правил. Если нужного файла нет в списке, не проси Claude работать по нему. Сначала исправь расположение или явно укажи файл в запросе.Посмотри состав контекста и MCP.
Сначала выполни:
/contextПроверь, что в новой сессии нет неожиданно большого набора инструкций и подключений. Затем выполни:
/mcpУбедись, что нужный MCP-сервер подключён и показывает доступные tools. Настройка MCP в Claude Desktop сама по себе не означает, что сервер появился в Claude Code.
Если MCP не нужен для задачи, отключи лишние серверы. Anthropic отдельно советует проверять состав контекста через
/contextи ненужные MCP через/mcp.
Проверка перед задачей должна закончиться ясным состоянием: правильная папка, нужный CLAUDE.md, понятный контекст, ожидаемый MCP. Только после этого отдавай Claude задачу на изменение файлов.
Вопросы и ответы
Вопросы и ответы
Как выстроить claude code workflow?
Разделяй работу на этапы. Для новой задачи запускай чистую сессию через /clear. Продолжение выполняй через /compact или /resume, а шумное исследование отдавай subagent. Постоянные ограничения храни в CLAUDE.md, подробные процедуры - в skills.
Что делает claude code dynamic workflows динамичным?
Динамичный процесс подгружает инструкции по необходимости. CLAUDE.md содержит постоянные правила, skills описывают отдельные процедуры, hooks запускают обязательные механические действия, а subagents изолируют самостоятельную работу и возвращают только итог.
Какие советы claude code tips дают наибольший эффект?
Начинай из корня проекта, проверяй /memory и /context, не смешивай независимые задачи, указывай файлы через @, заранее выбирай модель и effort для длинной сессии, важные решения сохраняй в DECISIONS.md или HANDOFF.md.
Как получать больше результата от claude code sessions?
Ставь одну конкретную цель на сессию. Перед запросом проверь рабочую папку и инструкции. После завершения этапа сохрани статус, очисти контекст для новой задачи или возобнови нужную старую сессию через /resume.
Что выбрать: `/clear` или `/compact`?
Для новой задачи запускай /clear, когда старая история больше не нужна. При продолжении текущей работы используй /compact, если подробная переписка уже мешает. Перед сжатием сохрани решения и ограничения в файле проекта.
Можно ли полагаться на историю сессии как на память проекта?
Нет. Историю можно возобновить через /resume, экспортировать через /export или найти в локальном JSONL-транскрипте. Но решения, текущий статус и причины отказа от вариантов лучше хранить в файлах проекта.
Источники
- Maximizing the value of your Claude Code sessions | Claude by Anthropic
- Using Claude Code: session management and 1M context | Claude by Anthropic
- CLI reference | Claude Code Docs
- Manage sessions | Claude Code Docs
- How Claude remembers your project | Claude Code Docs
- Common workflows | Claude Code Docs
- Create custom subagents | Claude Code Docs
- Why Claude Loses Context After Compaction | BSWEN
- What Actually Happens When You Run
/compactin Claude Code - The failure mode I keep hitting in long Claude Code sessions
- Connect Claude Code to tools via MCP
Практикум «Старт»
Три дня живой практики: от идеи до работающего проекта по ссылке
2 000 ₽старт 5 августа, 18:00 МСК

