Cache reads — главная статья расходов в агентском кодинге

March 9, 2026

При анализе стоимости агентских сессий в Cursor закономерно выделяется одна статья расходов — cache reads. Ниже разбирается её природа, механизм накопления и практические следствия.

Как работает агентский цикл

Агент не делает один запрос на всю задачу. Каждый вызов инструмента (чтение файла, поиск, запуск команды в терминале) — это отдельный API-запрос: модель решает, какой инструмент вызвать, Cursor выполняет его и дописывает результат в контекст, после чего отправляется следующий запрос — уже с этим результатом внутри. На задачу средней сложности таких итераций набирается 15–25, и каждая из них передаёт полный контекст с начала сессии.

Что такое cache reads

Чтобы не платить за повторную обработку одного и того же контекста, Anthropic поддерживает Prompt Caching: если в запросе есть длинный префикс, который API уже обрабатывал недавно, он не обрабатывается повторно — берётся из кэша. Стоимость такого обращения значительно ниже обычного input.

Актуальные цены для Claude Sonnet 4.6:

Тип токеновЦена за 1M токенов
Cache write$3.75
Cache read$0.30
Обычный input$3.00
Output$15.00

Cache read в 10 раз дешевле обычного input — это существенная экономия. Именно поэтому Cursor агрессивно кэширует контекст: без этого агентский кодинг был бы экономически неприемлемым. Однако из-за структуры агентского цикла объём cache read токенов всё равно накапливается быстро.

Почему cache reads доминируют в счёте

Рассмотрим типичную сессию: задача с 20 итерациями, контекст включает системный промпт, правила из .cursor/rules, несколько открытых файлов и накопленную историю переписки. Средний контекст на итерацию — 80 000 токенов; output на каждом шаге относительно мал, поскольку агент преимущественно вызывает инструменты, — примем 500 токенов.

Расчёт:

СтатьяОбъёмСтоимость
Cache reads20 × 80 000 = 1.6M$0.48
Cache writes~80 000$0.30
Output20 × 500 = 10 000$0.15
Итого~$0.93

Cache reads составляют более половины счёта — и это при умеренном сценарии с небольшим контекстом.

Влияние накопленного контекста на последующие задачи

Рассмотрим второй сценарий: в сессии уже накоплено 80 000 токенов контекста, и на его фоне выполняется запрос средней сложности — ещё 15 итераций.

Накопленные 80 000 токенов присутствуют как cache read в каждой из 15 новых итераций.

СтатьяОбъёмСтоимость
Cache reads (старый контекст)15 × 80 000 = 1.2M$0.36
Cache reads (новый контекст)15 × ~8 000 = 120k$0.04
Cache writes~15 000$0.06
Output15 × 500 = 7 500$0.11
Итого~$0.57

Та же задача в чистой сессии обошлась бы ~$0.19 — разница в три раза, обусловленная исключительно накопленным контекстом. Каждый токен предыдущей истории умножается на все оставшиеся итерации новой задачи.

Ключевая особенность — рост стоимости нелинейный. В начале сессии контекст невелик: системный промпт и несколько сообщений. Но с каждой итерацией в него добавляются результаты инструментов, ответы модели, последующие запросы. К двадцатой итерации объём диалоговой истории и набор прочитанных файлов значительно возрастают — и каждый дополнительный токен контекста умножается на все оставшиеся итерации. Длинная сессия обходится непропорционально дороже короткой.

Для сравнения: без кэширования те же 1.6M токенов на input стоили бы 4.80вместо4.80 вместо 0.48. Кэширование существенно снижает стоимость, но не устраняет проблему объёма — оно уменьшает цену за токен, не их количество.

Практические выводы

Крупные задачи целесообразно разбивать на короткие сессии. Одна сессия на 40 итераций обходится значительно дороже четырёх сессий по 10 — в конце длинной сессии контекст велик и дорого обходится на каждой итерации. Оптимальная стратегия — начинать новый чат после завершения каждой подзадачи.

При выборе модели для агентского кодинга цена cache read имеет приоритетное значение. Output-токенов у агента относительно мало, входящий контекст записывается в кэш единожды — тогда как cache reads накапливаются сотнями тысяч за каждую сессию. Разница в цене cache read между моделями влияет на итоговый счёт сильнее, чем разница в цене обычного input или output.