API и разработка
Как снизить расходы Claude API: контекст, модели и кеш
Почему растёт стоимость Claude API и Claude Code. Как сократить лишний контекст, проверить prompt caching и сравнивать цену выполненной задачи.
Если API стал расходовать заметно больше, сначала посмотрите объём входа и число вызовов. Частая причина — длинная история, которую приложение отправляет снова, или агент, выполняющий много промежуточных действий. Смена модели помогает не во всех случаях.
Ниже — порядок проверки, который позволяет найти источник расхода и сохранить качество ответа.
1. Считайте стоимость законченной задачи
Один вопрос в интерфейсе может включать основной вызов, обращения помощников, инструменты и повторные попытки. Поэтому сравнивать две модели по цене последней строки истории недостаточно.
Для нескольких типичных задач запишите:
| Что записать | Что это покажет |
|---|---|
| Модель и версия | С чем сравнивается результат |
| Входные и выходные токены | На какую часть запроса приходится объём |
| Число вызовов | Не уходит ли агент в повторные попытки |
| Кеш: чтение и запись | Используется ли повторяющийся материал |
| Итоговая стоимость | Сколько обошлась вся задача |
| Принят ли результат | Не достигнута ли экономия ценой непригодного ответа |
Цифры в клиентском приложении могут рассчитываться по его собственной таблице цен. При работе через шлюз сверяйте фактическое списание с кабинетом поставщика. В Клодыче для этого есть история API-запросов.
2. Уберите контекст, который не помогает ответить
Предположим, программе нужно определить тему нового обращения. Если вместе с ним каждый раз отправляются все закрытые обращения за месяц, модель оплачиваемо читает большой объём лишнего текста.
Оставьте правила классификации, несколько нужных примеров и текущее обращение. Если требуется история клиента, передавайте релевантную часть или подготовленную сводку с важными фактами.
Для разработки это означает: прикладывать нужные файлы и конкретный лог, а не весь вывод сборки без ограничения. Для документов — выбирать главы, относящиеся к вопросу.
3. Не просите длинный ответ по умолчанию
Сформулируйте желаемый результат: «верни пять пунктов», «только изменённую функцию», «таблица из трёх колонок». Это часто полезнее, чем резко уменьшить max_tokens.
Слишком низкий предел вывода может оборвать код или объяснение посередине. Тогда приходится делать новый запрос, оплачивать дополнительный контекст и склеивать результат. Смотрите на причину остановки и увеличивайте лимит там, где полный ответ нужен для завершения задачи.
Для модели с рассуждениями учитывайте её собственные правила бюджета вывода. Настройки разных поколений нельзя переносить автоматически. Например, в Opus 5.5 рассуждение включено постоянно, а бюджет вывода учитывает и его, и итоговый текст. Руководство по переходу на Opus 5.5.
4. Что даёт prompt caching
Кеширование позволяет повторно использовать одинаковую начальную часть запроса. Это может снизить стоимость и время обработки повторяющегося материала. При этом кеш контекста не является кешем готового ответа: модель всё равно генерирует новый результат.
В Anthropic API используются cache_control, отдельные показатели записи и чтения кеша, сроки хранения и минимальный объём, зависящий от модели. В шлюзе нужно дополнительно проверить поддержку выбранного режима и тарифы. Документация prompt caching.
Практический порядок данных:
Постоянные правила и справочник
↓
Конец повторяемого блока
↓
Новые данные пользователя и текущий вопрос
Если вставлять меняющееся время, случайный ID или новый вопрос в начало, стабильная часть запроса может перестать совпадать. Поэтому сначала отделите повторяемые инструкции от переменных данных, а потом проверяйте кеширование.
5. Как проверить, что кеш действительно используется
В ответе Anthropic-формата ищите cache_creation_input_tokens и cache_read_input_tokens. Само наличие cache_control в запросе ещё не доказывает экономию.
Проведите небольшой эксперимент на своём поставщике:
- Выберите реальную задачу с повторяющимся большим справочником.
- Выполните первый запрос и сохраните показатели использования и списание.
- Не меняя начальный блок, задайте другой вопрос в следующем запросе.
- Сравните показатели чтения кеша и полную стоимость обоих вызовов.
- Повторите на нескольких типичных вопросах, чтобы исключить случайный результат.
Если чтение нулевое, проверьте длину, срок между запросами, неизменность начала, модель и поддержку у поставщика. Не добавляйте бессмысленный текст только ради объёма: сначала проверьте, окупится ли такая схема на вашем потоке.
У кеша есть стоимость записи, поэтому однократная отправка материала не обязана становиться дешевле. Тарифы чтения и записи нужно смотреть отдельно от обычного входа.
6. Разделяйте простые и сложные задачи
Для потока однотипных операций сравните Haiku и Sonnet на своих данных. Сложные исключения можно отправлять более сильной модели, если программа умеет их надёжно распознавать.
Пример: быстрая модель извлекает поля обращения. Если обязательное поле отсутствует или данные противоречат друг другу, приложение передаёт задачу на дополнительную проверку. Решение о повторе лучше основывать на проверяемых признаках, а не только на фразе модели «я уверен».
Как оценивать качество разных моделей — в таблице выбора Claude.
7. Контролируйте автоматические повторы
Ошибка авторизации не исчезнет от десяти повторов. Перегрузка сервера, наоборот, может требовать ожидания. Разделите причины ошибок и ограничьте число попыток в клиенте.
Особенно осторожно повторяйте запрос после обрыва соединения: сервер мог уже выполнить часть работы. Идентификатор запроса и история расхода помогают разобраться, что произошло. Идемпотентность используйте только в тех режимах, где она явно поддержана вашим API.
С чего начать сегодня
Возьмите одну часто повторяющуюся задачу и измерьте её текущую стоимость. Затем измените только один фактор: объём истории, модель или схему кеширования. Сравните стоимость при одинаково приемлемом результате.
Калькулятор тарифов поможет отделить цену поставщика от объёма работы. Чтобы проверить своё подключение, откройте Клодыча в Telegram, нажмите «Запустить» и перейдите в API: там можно создать отдельный ключ и увидеть расход тестовых запросов.
API Клодыча
Ссылка откроет бота в Telegram. Нажмите «Старт», затем выберите нужный раздел.
Получить API-ключ →