Руководство по оптимизации расходов

Освойте техники контроля расходов в Claude Code и делайте больше при меньшем количестве токенов

Руководство по оптимизации расходов

Писать код с Claude Code — это здорово, но если не следить за использованием, счёт может преподнести «сюрприз». Это руководство поможет понять, как формируются расходы и как разумно контролировать затраты без ущерба для эффективности.

Понимание тарификации по токенам

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

Что такое токен

Токен — это минимальная единица обработки текста в AI-модели. Можно представить его как «слово» модели:

  • Английский язык: 1 токен ≈ 4 символа или 0,75 слова
  • Китайский язык: 1 иероглиф ≈ 1-2 токена (в среднем ~1,5 токена)
  • Код: имена переменных, ключевые слова и символы занимают разное количество токенов

Справочная таблица приблизительных расчётов:

Содержимое Приблизительно символов/строк Приблизительно токенов
Краткое описание требований на естественном языке 100 символов ~150 токенов
TypeScript-файл на 200 строк ~5000 символов ~1500 токенов
Типичный диалоговый ввод с контекстом 5 000–20 000 токенов
Системный промпт Claude Code ~8 000 токенов

Входные и выходные токены

При каждом взаимодействии с Claude расходы складываются из двух частей:

Общие расходы = входные токены × цена входа + выходные токены × цена выхода

Ключевой момент: цена выходных токенов обычно в 5 раз выше цены входных. Для примера, Sonnet 4.6:

Тип Цена (долларов/миллион токенов) Стоимость 1000 токенов
Входные $3.00 $0.003
Выходные $15.00 $0.015
Чтение из кэша $0.30 $0.0003

Это означает: позволить Claude генерировать объёмный текст дороже, чем предоставить ему много контекста.

Сколько токенов потребляет типичный диалог

Для Sonnet 4.6 — примерная стоимость в нескольких распространённых сценариях:

Сценарий Входные токены Выходные токены Ориентировочная стоимость
Простой вопрос (объяснение фрагмента кода) 3 000 500 $0.017
Изменение одной функции 8 000 1 500 $0.047
Создание нового компонента (с чтением файлов) 15 000 3 000 $0.090
Разработка сложной функциональности (много раундов диалога) 50 000 15 000 $0.375
Масштабный рефакторинг (10+ файлов) 200 000 50 000 $1.350

Приведённые цифры являются лишь ориентиром; фактические расходы зависят от объёма вашего кода, числа раундов диалога и размера контекста.

Стратегия выбора модели

Правильный выбор модели — самый прямой способ сэкономить. Разница в ценах между моделями очень велика.

Позиционирование трёх моделей

Модель Цена входа Цена выхода Позиционирование
Haiku 4.5 $1.00 $5.00 Лёгкая и быстрая, для простых повседневных задач
Sonnet 4.6 $3.00 $15.00 Лучший баланс, основная рабочая модель
Opus 4.8 $5.00 $25.00 Текущий флагман, по той же цене, что и 4.7
Opus 4.7 $5.00 $25.00 Флагман прошлого поколения, по-прежнему доступен

Сравнение расходов: выполнение одной и той же задачи средней сложности (вход 10K, выход 3K токенов):

  • Haiku: $0.025
  • Sonnet: $0.075
  • Opus: $0.125

Sonnet в 3 раза дороже Haiku, а Opus в 5 раз дороже Haiku.

Принципы выбора модели

Повседневный выбор — Sonnet (80% задач решаются им)

Переключайтесь на Opus только в следующих случаях:

  - Сложное архитектурное проектирование и технические решения
  - Масштабный рефакторинг кода
  - Межмодульные изменения, затрагивающие несколько систем
  - Сложные баги, требующие глубокого анализа

Переключайтесь на Haiku только в следующих случаях:

  - Простые преобразования форматов
  - Генерация повторяющегося кода (например, CRUD-интерфейсов)
  - Быстрые вопросы (на которые можно ответить одним предложением)
  - Комментирование кода и создание документации

Используйте команду /model, чтобы переключаться в любой момент:

/model sonnet    # Переключиться на Sonnet
/model opus      # Переключиться на Opus
/model haiku     # Переключиться на Haiku

Техники экономии через управление контекстом

Управление контекстом — основа оптимизации расходов. В каждом раунде диалога Claude заново отправляет всю предыдущую историю переписки, а это значит, что чем длиннее диалог, тем больше входных токенов в каждом раунде.

Сжатие истории с помощью /compact

Когда диалог длится более 10 раундов или вы замечаете замедление ответов, используйте /compact:

/compact

/compact заставляет Claude свести предыдущий диалог в краткое резюме, заменяющее полную историю. Благодаря этому количество входных токенов в следующем раунде значительно сокращается.

Когда использовать:

  • Диалог превысил 10 раундов
  • Подзадача завершена, и вы готовы перейти к следующей
  • Чувствуете, что качество ответов Claude снижается (признак перегрузки контекста)

Полная очистка с помощью /clear

При переходе на совершенно другую тему смело используйте /clear:

/clear

Когда использовать:

  • Переход от разработки функции A к функции B
  • Отладка завершена, начинается написание нового кода
  • Диалог ушёл в сторону, и вы хотите начать заново

Цена отказа от /clear: предположим, что предыдущая история диалога занимает 50K токенов. После смены темы вы в каждом раунде впустую платите за эти 50K токенов. По тарифам Sonnet это дополнительно $0.15 за раунд. За 10 раундов диалога вы потеряете $1.5.

Точные ссылки через @

Разница в стоимости между тем, когда Claude сам ищет файлы, и тем, когда вы напрямую на них ссылаетесь, очень велика:

# Дорого! Claude может просмотреть десятки файлов, чтобы найти нужный код
"Помоги изменить часть с проверкой email в логике регистрации пользователя"

# Дёшево! Напрямую укажи Claude, где искать
"Измени регулярное выражение в методе validateEmail файла @src/services/auth-service.ts"

Когда вы знаете, какой файл нужно изменить, всегда используйте @ для прямой ссылки. Позволять Claude искать самостоятельно не только дороже, но и результат может оказаться неточным.

Исключение больших файлов через .claudeignore

Убедитесь, что следующие типы файлов добавлены в .claudeignore:

# Если эти файлы будут прочитаны Claude, они потребляют огромное количество токенов
node_modules/          # Зачастую десятки тысяч файлов
dist/                  # Результаты сборки
*.min.js               # Минифицированный JS
*.sql                  # Дампы базы данных
*.csv                  # Файлы данных
package-lock.json      # Lock-файл (огромного объёма)
pnpm-lock.yaml         # Lock-файл
yarn.lock              # Lock-файл

Реальный случай: один пользователь обнаружил аномально высокие расходы и при разборе выяснил, что Claude при поиске кода прочитал SQL-дамп размером 50 МБ — за один раз было потреблено около 15 млн токенов (около $45 за входные данные).

Использование механизма кэширования

Prompt Caching — это очень важная функция экономии в Claude API.

Что такое Prompt Caching

Когда вы ведёте многораундовый диалог, в каждом раунде заново отправляется всё предыдущее содержимое. Без кэширования каждый раз тарификация идёт по полной цене входных токенов. С кэшированием:

  • Первая отправка: по обычной цене входа (цена записи в кэш немного выше)
  • Последующие отправки: совпадающее содержимое попадает в кэш и оплачивается по цене чтения из кэша (всего 1/10)

Для примера, Sonnet 4.6:

Тип Цена/миллион токенов По сравнению с обычным входом
Обычный вход $3.00 100%
Запись в кэш $3.75 125%
Чтение из кэша $0.30 10%

То есть при попадании в кэш платить нужно лишь 1/10 цены.

Как эффективно использовать кэширование

Кэширование работает автоматически, но вы можете повысить долю попаданий в кэш своими привычками работы:

Сохраняйте связность диалога:

# Хорошая привычка: продолжайте разработку одной и той же функции в одном диалоге
> "Создай базовую структуру UserService"
> "Добавь метод getUserById"        # Предыдущее содержимое попадает в кэш
> "Добавь метод updateUser"         # Предыдущее содержимое попадает в кэш
> "Добавь unit-тесты"               # Предыдущее содержимое попадает в кэш

# Плохая привычка: делать /clear после каждой фразы
> "Создай базовую структуру UserService"
> /clear
> "Добавь метод getUserById в UserService"    # Кэш использовать не получится
> /clear
> "Добавь метод updateUser в UserService"     # Кэш использовать не получится

Не изменяйте CLAUDE.md слишком часто:

Содержимое CLAUDE.md отправляется в каждом раунде диалога. Если оно стабильно, то надолго остаётся в кэше. Частые изменения приводят к промахам кэша.

Разумное время для /compact:

/compact заменяет историю, из-за чего кэш становится недействительным. Поэтому не используйте его слишком часто — применяйте только тогда, когда диалог действительно стал слишком длинным.

Насколько велик эффект кэширования

Предположим, что у нас 10-раундовый диалог, и каждый раунд содержит около 20K входных токенов (включая историю):

Без кэша С кэшем (90% попаданий)
Всего входных токенов 200K 200K
По обычной цене 200K 20K
По цене кэша 0 180K
Общие входные расходы (Sonnet) $0.60 $0.114
Экономия $0.486 (81%)

Кэширование может сэкономить около 80% входных расходов.

Мониторинг и бюджет

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

/cost — просмотр текущей сессии

В любой момент введите в Claude Code:

/cost

Будет показано количество потреблённых токенов и ориентировочная стоимость текущей сессии. Рекомендуется заглядывать туда после завершения каждой задачи.

QCode.cc Dashboard — просмотр истории

Войдите в консоль QCode.cc — на странице «Статистика использования» вы увидите:

  • Детализацию вызовов по моделям: использованную модель, количество токенов и стоимость каждого вызова
  • Сводку по дням/месяцам: графики трендов расходов
  • Прогресс расходования тарифа: процент использования лимита текущего тарифа

Рекомендуется выработать привычку каждый день заглядывать в Dashboard, чтобы вовремя обнаруживать аномальное потребление.

Рекомендации по контролю расходов

Уровень использования Рекомендуемая стратегия по моделям Ориентировочный месячный бюджет
Лёгкое использование (1-2 часа в день) В основном Sonnet $30-80
Умеренное использование (3-5 часов в день) Sonnet + изредка Opus $80-200
Интенсивное использование (разработка весь день) Sonnet как основа + Opus для архитектурных решений $200-500

Частые ловушки расходов

Ниже перечислены ситуации, в которых проще всего впустую растратить токены. Сверьтесь с этим списком и проверьте, не попадаетесь ли вы в эти ловушки:

Ловушка 1: прямое вставление больших файлов

# Неправильный подход: вставить содержимое файла в диалог
> "Вот мой код, помоги проверить его:
[вставлено 500 строк кода]"

# Правильный подход: использовать ссылку через @
> "Проверь метод createOrder в файле @src/services/order-service.ts"

Разница: вставка 500 строк кода составляет около 1500 входных токенов, и это содержимое повторно отправляется в каждом раунде диалога. При использовании @ для ссылки на тот же файл Claude читает его только при необходимости, а прочитанное содержимое к тому же кэшируется.

Ловушка 2: постоянные повторные попытки одной и той же неудачной команды

# Неправильный подход: раз за разом заставлять Claude выполнять одну и ту же неудачную команду
> "Запусти npm run build"
# Не удалось
> "Попробуй ещё раз"
# Снова не удалось
> "Ещё разок"

# Правильный подход: проанализировать причину сбоя и сменить подход
> "Запусти npm run build"
# Не удалось
> "Посмотри логи ошибок, проанализируй причину сбоя, исправь проблему и собери заново"

Каждая повторная попытка отправляет полную историю диалога (включая все предыдущие неудачные выводы), и расход токенов быстро накапливается.

Ловушка 3: забыть про /clear и получить разбухание контекста

Это самая незаметная ловушка расходов:

# Утром: исправили баг (диалог накопил историю на 30K токенов)
# После обеда: начали писать новую функцию, но не сделали /clear
# Каждый новый раунд диалога впустую тащит с собой утренние 30K токенов истории

# Решение: выработайте привычку делать /clear при смене задачи
/clear
> "Теперь начинаем разработку новой функции..."

Ловушка 4: использование Opus для простых задач

# Расточительно: использовать Opus для генерации простого интерфейса
/model opus
> "Помоги определить интерфейс User с полями id, name, email"

# Экономно: для простых задач достаточно Haiku
/model haiku
> "Помоги определить интерфейс User с полями id, name, email"

В этой задаче результат обеих моделей практически одинаков, но Opus стоит в 5 раз дороже Haiku.

Ловушка 5: позволить Claude искать по всему проекту

# Дорого: Claude может прочитать десятки файлов
> "Найди в проекте код, обрабатывающий платежи"

# Дёшево: подскажи ему примерное расположение
> "Найди сервис обработки платежей в каталоге @src/services/"

# Самый дешёвый вариант: напрямую указать файл
> "Посмотри @src/services/payment-service.ts"

Чек-лист оптимизации расходов

Каждый раз при использовании Claude Code сверяйтесь с этим списком:

  • [ ] Выбрана ли подходящая модель (для большинства задач — Sonnet)
  • [ ] Используете ли вы ссылку через @ вместо вставки содержимого файлов
  • [ ] Выполняете ли /clear при смене темы
  • [ ] Рассматриваете ли /compact, если диалог превысил 10 раундов
  • [ ] Настроен ли .claudeignore для исключения больших файлов
  • [ ] Достаточно ли чётко сформулированы требования (чтобы избежать переделок из-за недопонимания)
  • [ ] Проверили ли вы /cost, чтобы понять текущее потребление

Выработав эти привычки, вы обнаружите, что расходы можно снизить на 30-50%, при этом эффективность разработки нисколько не пострадает.

Prompt-кэширование и стоимость

Ранее уже упоминалось, что попадание в кэш стоит лишь 1/10 цены входных токенов. В этом разделе подробнее объясняется почему так и как самостоятельно проектировать контекст, чтобы максимизировать выгоду от кэша.

Кэшируется только стабильный префикс

Prompt Caching в Claude API кэширует стабильный префикс вашего промпта — неизменное начало: системный промпт, CLAUDE.md, объёмные справочные материалы и т. п. После попадания в кэш чтение этой части стоит около 10% от обычного входа (примерно на 90% дешевле). Главное здесь в том, что кэш работает по принципу «префикса»: как только что-то в начале префикса меняется, весь кэш от точки изменения и далее становится недействительным.

Поэтому ключевой принцип экономии таков: размещайте неизменное содержимое в самом начале и старайтесь его не редактировать.

Тип содержимого Размещение Дружелюбность к кэшу
Системный промпт, CLAUDE.md В самом начале (стабильно) Высокая, долгие попадания
Соглашения проекта, документация API и прочий длинный контекст Ближе к началу (стабильно) Высокая
Конкретные инструкции для текущей задачи Ближе к концу Низкая (по природе часто меняются)
Живая история диалога В конце Растёт вместе с диалогом

Как сделать контекст дружелюбным к кэшу

  • Лаконичный и стабильный CLAUDE.md: содержимое с высокой плотностью смысла и редкими правками. Частые изменения CLAUDE.md обнуляют весь кэш, идущий после него, заставляя каждый раз пересчитывать всё по полной цене.
  • Переиспользуйте сессии: продолжайте вести одну и ту же задачу в рамках одной сессии — тогда префикс остаётся неизменным, и каждый последующий раунд оплачивается по цене чтения из кэша.
  • Ссылайтесь по пути вместо вставки: используйте @путь для ссылки на файлы, а не вставляйте содержимое в диалог — это и сокращает количество токенов, и не даёт изменчивому содержимому попасть в префикс и сломать кэш.
  • Используйте /compact осторожно: /compact переписывает резюме истории, что фактически переписывает префикс и обнуляет существующий кэш, — применяйте его только когда диалог действительно стал слишком длинным.

Если коротко: стабильное содержимое — в начало, изменчивое — в конец, и не редактируйте префикс без нужды — вот ключ к тому, чтобы получить скидку кэша при минимальных затратах. Об иерархии контекста и приёмах его сокращения см. сопутствующие рекомендации в Руководстве по выбору модели.

Выбор модели по роли

«Повседневно используйте Sonnet» — хорошая отправная точка, но более экономичный подход — выбирать модель по роли задачи, выполняя каждый вид работы на наиболее выгодной по соотношению цена/качество модели, а не используя одну и ту же модель на протяжении всего пути.

Распределение по ролям

Роль задачи Рекомендуемая модель Типичные сценарии
Поиск / форматирование / простое переписывание Haiku 4.5 Поиск в документации, преобразование форматов, правка комментариев, вопросы с ответом в одно предложение
Повседневная реализация / исправление багов Sonnet 4.6 Написание функций, изменение логики, обычная отладка (около 80% работы)
Архитектура / крупный рефакторинг / оркестрация Opus 4.8 Межмодульное проектирование, масштабный рефакторинг, оркестрация многошаговых задач, сложные рассуждения
Кодинг в стиле Codex gpt-5.6-terra Генерация кода в рабочих процессах в стиле Codex

Основная идея — не запускать Opus на тривиальных задачах: для простого определения интерфейса Haiku и Opus дают почти одинаковый результат, но Opus в 5 раз дороже. Приберегите тяжёлую модель для этапов, которые действительно требуют глубоких рассуждений.

Переключение в середине сессии

Команда /model позволяет переключаться в любой момент, без перезапуска сессии:

/model haiku     # Перейти на лёгкую модель для простых шагов
/model sonnet    # Вернуться к основной модели и продолжить реализацию
/model opus      # Временно повысить уровень при архитектурном решении

Эффективный ритм экономии таков: вести основную часть разработки на Sonnet, при архитектурном затруднении временно переключаться командой /model opus для обдумывания, а после принятия решения возвращаться к Sonnet; объёмную же простую доработку поручать Haiku. Подробное сравнение возможностей по моделям и советы по выбору см. в Руководстве по выбору модели.

Похожие документы

Подключение QCode к 9router
Добавьте QCode.cc как кастомного провайдера в 9router — локальный мульти-провайдерный маршрутизатор — для межпровайдерного фолбэка и единого управления
gpt-image-2: генерация и редактирование изображений
OpenAI-совместимое API gpt-image-2 для генерации изображений из текста и редактирования: переключите base_url и используйте, мульти-регион, единый биллинг через QCode-ключ
Ввод изображений (зрение)
Передавайте изображения в Claude Code: вставка, перетаскивание или ссылка на путь к файлу — чтобы модель читала скриншоты, макеты, схемы архитектуры и графики. На базе vision-моделей QCode.cc — один API Key работает на всех эндпоинтах.
🚀
Начните с QCode — Claude Code & Codex
Один тариф для Claude Code и Codex, низкая задержка в Азии
Посмотреть тарифы → Создать аккаунт
Команда 3+?
Enterprise: выделенный домен + управление ключами + защита от бана, от ¥250/чел/мес
Enterprise →