Куда уходят токены агентов: неделя, 65 тысяч запросов и одна неприятная цифра
Если вы запускаете сразу несколько агентов Claude Code, Codex или OpenCode, вы, скорее всего, упирались в недельный лимит раньше, чем ждали. Мы захотели понять почему и посчитали. Эта статья не про деньги: мы работаем по подпискам, а вопрос в том, как размер контекста давит на ваши лимиты. (В документации Anthropic сказано, что длинная сессия продолжает расходовать лимит на весь разговор; сколько весит токен, там не сказано.) Вот что говорит о стоимости Claude Code и о том, почему кончаются лимиты, одна неделя записей агентов одного человека: 65 487 запросов, одна машина, никакой теории.
Главные цифры
- 65 487
- запросов и 20,8 миллиарда входных токенов за неделю
- 6 527 $
- по ценам API — вес токенов недели, около 932 $ в день
- 65%
- веса — перечитывание разговора из кэша (4 245 $); вывод модели — 12% (804 $)
- 99%
- входа обслуживается из кэша
- 3,4×
- тяжелее шаг при контексте 400–700 тыс. токенов, чем при контексте до 100 тыс.
В этой статье
- Как мы считали
- Лимиты Claude Code начинаются с одного факта: каждый шаг заново отправляет весь разговор
- Длина контекста задаёт вес шага: контекстное окно Claude Code в цифрах
- Что будит агента
- Простой, кэш и лимиты использования Claude Code
- Вывод инструментов и скриншоты остаются в контексте
- Модель важна меньше, чем кажется
- Что мы меняем у себя (гипотеза)
- Посчитайте сами
- Что вынести из этого
- Где здесь harnsy
Эта статья — для всех, кто по-настоящему работает с Claude Code. Большая её часть верна и для одного агента, и для десяти, а разделы про нескольких агентов сами об этом говорят. Ближе к концу мы описываем, что меняем в своей конфигурации, и где здесь harnsy — инструмент, который мы делаем. Эта часть короткая и обозначена отдельно.
Как мы считали
Мы прочитали записи, которые Claude Code ведёт для каждой сессии: по строке на запрос, у каждой есть число токенов. Каждый запрос мы оценили по опубликованному тарифу API для его модели и для каждого вида токенов (вход, запись в кэш, чтение из кэша, вывод). Затем сгруппировали запросы тремя способами: по статье веса, по размеру контекста на этом шаге и по тому, что начало ход. Ход — это одно пробуждение агента, состоящее из одного или нескольких запросов. Каждый запрос оценён по стандартному тарифу своей модели: Opus 5.5 — 6 147 $ (63 096 запросов), Opus 5 — 278 $ (23–24 сентября), Fable 5.1 — 82 $, Sonnet 5 — 19 $, Haiku 4.5 — 1 $, без скидки за пакетную обработку и без региональной надбавки. 464 из 65 487 запросов ушли к модели другого провайдера и не дают долларов в итоге. Для контекста: за два месяца в тех же записях 143 000 запросов, из которых 98,8% обслужено из кэша.
Лимиты Claude Code начинаются с одного факта: каждый шаг заново отправляет весь разговор
Шаг агента кажется мелочью: прочитать файл, запустить тест, написать строку. Но на каждом шаге модели заново отправляют весь разговор — от первого сообщения до последнего результата инструмента. Модель не помнит сессию так, как помните её вы. Она перечитывает её каждый раз.
Кэширование промпта смягчает это. Сервер какое-то время хранит начало разговора, и чтение его обратно стоит десятую часть обычной цены входа или меньше. На подписке кэш живёт один час (у субагентов — пять минут). Поэтому 99% наших входных токенов обслужено из кэша. И поэтому вес всё равно велик: лёгкое (по ценам API) чтение 318 000 токенов, повторённое десятки тысяч раз, складывается в большую сумму.
Так распределился вес токенов недели по ценам API (всего 6 527 $):
Куда ушёл вес недели
| Статья | По ценам API | Доля |
|---|---|---|
| Чтение из кэша | $4 245 | 65,0% |
| Запись в кэш, 1 час | $1 234 | 18,9% |
| Вывод модели | $804 | 12,3% |
| Запись в кэш, 5 минут | $244 | 3,7% |
| Вход без кэша | $1 | 0,0% |
Бросаются в глаза две вещи. Вывод модели — то, что мы считаем самой работой, — это 12% веса. Перечитывание разговора — 65%. А средний шаг нёс 318 000 токенов контекста — много, чтобы перечитывать его по сто раз до обеда.
Почему чтение из кэша — крупнейшая статья, если оно так легко за токен по ценам API? Из-за объёма. На Opus 5.5 чтение из кэша стоит 0,20 $ за миллион токенов против 4 $ за свежий вход. Но за неделю прочитано 20,8 миллиарда входных токенов, и 99% из них пришло из кэша. Крошечный вес одного чтения, умноженный на огромное число, всё равно даёт самую большую строку в подсчёте.
Длина контекста задаёт вес шага: контекстное окно Claude Code в цифрах
Раз каждый шаг перечитывает контекст, шаг тем тяжелее, чем длиннее разговор. Мы разложили все 65 487 запросов по размеру контекста на этом шаге:
Вес по размеру контекста на шаге
| Контекст на шаге | По ценам API | Запросов |
|---|---|---|
| до 100 тыс. | $486 | 10 835 |
| 100–200 тыс. | $780 | 14 347 |
| 200–400 тыс. | $1 669 | 17 966 |
| 400–700 тыс. | $3 042 | 19 599 |
| больше 700 тыс. | $550 | 2 740 |
55% веса недели — шаги выше 400 тыс.
Вес одного шага по размеру контекста
| Контекст на шаге | За шаг | К шагу до 100 тыс. |
|---|---|---|
| до 100 тыс. | $0,045 | |
| 100–200 тыс. | $0,054 | |
| 200–400 тыс. | $0,093 | |
| 400–700 тыс. | $0,155 | 3,4× |
| больше 700 тыс. | $0,201 |
Шаг при 400–700 тыс. токенов в 3,4 раза тяжелее шага до 100 тыс. Одна только полоса 400–700 тыс. — 3 042 $, 46,6% недели, а шаги выше 400 тыс. вместе дают 55% всего. При окне в миллион токенов есть куда расти.
Сессии ведут себя так же. Из 245 основных сессий 90 дошли до 400 000 токенов и больше, и эти 90 дали 82% веса. А контекст редко сжимается: за неделю всего 27 раз контекст агента уменьшился вдвое — сжатием или /clear. Большинство просто продолжало расти.
Вывод не в том, чтобы «брать окно поменьше». Окно — это потолок, а не цель. Важно, как долго идёт разговор, прежде чем его кто-то обрежет. Начинайте свежую сессию, когда меняется тема, сжимайте контекст, когда задача закончена, а не когда окно почти заполнено, и считайте разговор, выросший за несколько сотен тысяч токенов, тяжёлым на каждом шаге — потому что так и есть.
Что будит агента
В команде агентов большинство шагов начинаете не вы. Агента что-то будит: сообщение другого агента, ваш запрос, запущенный им субагент. Мы разделили ходы недели по тому, что их начало:
Что начинает ход
| Что начало ход | По ценам API | Доля |
|---|---|---|
| Сообщение другого агента или системное уведомление | $4 799 | 73,5% |
| Человек | $1 141 | 17,5% |
| Субагенты | $426 | 6,5% |
73,5% веса — ходы, начатые другим агентом.
Почти три четверти веса приходится на ходы, которые начал другой агент, причём проснувшийся агент нёс 415 000 токенов контекста. Короткие ответные ходы — от одного до трёх запросов вроде «ок, понял» — это 5 486 ходов и 1 146 $, 18% веса.
Здесь есть нижняя граница. Пробуждение агента с 415 000 токенов контекста весит не меньше 0,08 $ на Opus 5.5 по ценам API, даже если весь его ответ — одно слово. Один раз это ничто. Пять тысяч раз — много. Это про работу нескольких агентов: в одной сессии пробуждений гораздо меньше.
Что с этим делать? Просите агентов отвечать, только когда есть о чём сообщить: подтверждение, отправленное агенту с большим контекстом, — это шаг с полным весом. Присылайте несколько обновлений одним сообщением, а не многими. И находите быстрым вопросам более лёгкое место: субагент, у которого контекст в среднем 100 000 токенов, может ответить на небольшой вопрос, не будя агента с 415 000.
Простой, кэш и лимиты использования Claude Code
Кэш истекает. За неделю агент простаивал больше часа 166 раз. Каждый раз его кэш истекал, и следующему шагу приходилось заново записывать около 396 000 токенов: 475 $ всего, 7,3% веса, около 2,90 $ за случай.
Часовой кэш стоит своего лишнего веса по ценам API. Запись в него обошлась примерно на 454 $ дороже, чем обошёлся бы пятиминутный (измеренные токены по разнице цен). По нашей оценке, повторная запись контекста после 1 498 пауз от пяти минут до часа при пятиминутном кэше стоила бы около 2 960 $, примерно в 6,5 раза больше. Что часовая запись весит в вашем лимите в 1,6 раза больше пятиминутной — наше допущение; по ценам API это так. Поэтому практическое правило короткое: перед долгим простоем передайте работу или сделайте /compact, чтобы ждал короткий разговор, а не разговор на 400 000 токенов.
Ничто здесь не говорит, что простой — это плохо. Агенты ждут сборок, проверок, вас. Вес возникает от ожидания с большим контекстом и последующего возобновления. Короткий контекст легко записать заново, даже когда кэш уже истёк.
Как этот вес связан с недельным лимитом? Anthropic не публикует формулу, так что это лишь оценка: мы видели, как около 30 $ работы по ценам API сдвигали недельный лимит на 1% (два аккаунта, один Max, у второго тариф мы не записали; один день). Другая работа под тем же логином тоже двигает процент, так что настоящая цифра не меньше этой.
Вывод инструментов и скриншоты остаются в контексте
Инструменты легко запускать и тяжело держать. Мы насчитали 55 277 результатов инструментов, примерно 107 миллионов символов. 12,5% результатов длиннее 5 000 символов и дают 61% объёма. Агенты также приняли 2 349 изображений, в основном скриншотов.
Записать этот вывод почти ничего не стоит. Вес приходит позже: он остаётся в разговоре и перечитывается на каждом следующем шаге с тем весом, который к тому времени имеет контекст. Несколько привычек не пускают его туда:
- Пропускайте длинный вывод команд через
tailилиheadили просите одну итоговую строку. - Сначала
git show --stat, потом полный diff. - Читайте файл с
offsetиlimit, а не целиком. - Большие логи отдавайте субагенту и забирайте у него краткую сводку.
- Делайте скриншот, только когда текста не хватает, и небольшой.
Скриншотам стоит уделить отдельное слово. Агент, проверяющий свою работу над интерфейсом, может сделать много снимков и хранить их все, а каждый остаётся в разговоре так же, как текст. Если для проверки нужен один скриншот, сделайте один — такого размера, чтобы он отвечал на вопрос.
Модель важна меньше, чем кажется
Первым делом хочется взять модель полегче. В наших цифрах модель важна, но меньше, чем длина контекста.
Мы взяли 64 999 запросов, выполненных на Opus 5 с 14 августа по 24 сентября (около шести недель, не та неделя, что выше), и посчитали те же токены по опубликованным ценам Opus 5.5. 12 321 $ превратились в 6 166 $. Чтение из кэша на Opus 5.5 дешевле в 2,5 раза, а все остальные статьи — в 1,25 раза. Изменился только прайс-лист, а не токены. Anthropic пишет, что Opus 5.5 на среднем уровне усилий тратит около половины токенов на многошаговом коде, так что реальная экономия может быть больше.
Теперь Sonnet 5.5 против Opus 5.5 при одинаковых шагах. Вход и вывод вдвое дешевле (2 $ и 10 $ за миллион токенов против 4 $ и 20 $). Но итог падает в среднем лишь примерно на 16%, а для роли лида — примерно на 10%. Причина в том, что чтение из кэша — это 65% веса нашей недели (40–81% по ролям), а обе модели оценивают его одинаково, 0,20 $ за миллион токенов. 16% получены на примерно 3 000 запросов более раннего периода, все на Opus 5.5, при том же числе шагов: это арифметика по старым шагам, а не измерение. Пилот с моделями по ролям начался 29 сентября, часть ролей работает на Sonnet 5.5; результатов пока нет. Один задокументированный факт может значить больше, чем эти 16%: у Opus и Sonnet отдельные лимиты (по Anthropic, каждый действует только на запросы к своему семейству моделей; размеры не публикуются), так что роли на Sonnet не расходуют лимит Opus.
| Модель | Вход | Запись в кэш, 5 мин | Запись в кэш, 1 ч | Чтение из кэша | Вывод |
|---|---|---|---|---|---|
| Opus 5.5 | $4 | $5 | $8 | $0,20 | $20 |
| Opus 5 | $5 | $6,25 | $10 | $0,50 | $25 |
| Sonnet 5.5 | $2 | $2,50 | $4 | $0,20 | $10 |
| Fable 5.1 | $10 | $12,50 | $20 | $0,25 | $50 |
| Haiku 4.5 | $1 | $1,25 | $2 | $0,10 | $5 |
Opus 5 и Opus 5.5, одни и те же токены
| Цены | По ценам API |
|---|---|
| Цены Opus 5 | $12 321 |
| Цены Opus 5.5 | $6 166 |
Чтение из кэша в 2,5 раза дешевле, все остальные статьи — в 1,25 раза.
Так что же с выбором модели? Модель полегче помогает, но её экономия упирается в строку чтения из кэша, которая почти не двигается. Прайс-листы меняются (запланированное повышение цен на Sonnet 5 в сентябре 2026 года отменили). Надёжнее после каждого изменения — цены или модели — смотреть в свои записи, а не верить прайс-листу.
Что мы меняем у себя (гипотеза)
Если множитель — длина контекста, рычаг в том, чтобы держать её короткой. Наше изменение: передавать роль свежему агенту при 300–400 000 токенов (30–40% окна в 1 млн), а не доводить до 700 000 (70%).
Это гипотеза, а не результат. По модели на нашей неделе передача дел снимает около 30–35% веса (35% при 300 тыс., 30% при 400 тыс.), а при 700 тыс. — около 13%. Модель считает передачи по всем основным сессиям недели и предполагает, что преемник стартует с 60 тыс. Мы предполагаем, что реальная экономия примерно вдвое меньше модельной. У этого есть цена: передач становится больше — примерно 190 в неделю при 300 тыс. вместо около 45 при 700 тыс., — так что записка о передаче дел должна быть хорошей. На практике мы этого ещё не проверяли. Повторное измерение запланировано.
Почему не передавать дела ещё раньше? Передача не бесплатна. Свежий агент начинает с записки и должен заново прочитать то, что ему нужно, а передача, потерявшая решение, стоит дороже сэкономленных токенов. Это повод обращаться с этим рычагом осторожно и измерить его, прежде чем называть победой.
Посчитайте сами
Свои цифры можно проверить. Claude Code пишет каждый запрос в ~/.claude/projects/*/*.jsonl. В каждом сообщении ассистента есть объект message.usage с полями input tokens, cache creation input tokens, cache read input tokens и output tokens. Две ловушки: один запрос может встретиться в нескольких строках записи (потоковая передача), поэтому убирайте дубли по id сообщения, иначе сумма завышена; а cache creation input tokens смешивает пятиминутные и часовые записи, их разбивка — в cache creation.ephemeral 5m input tokens и ephemeral 1h input tokens. Субагенты пишут в */subagents/*.jsonl. Сложите токены по сессиям, умножьте каждый вид на опубликованную цену и отсортируйте сессии по наибольшему контексту. Длинные окажутся сверху.
Что вынести из этого
Если запомнить из статьи только пять строк:
- Смотрите сначала на длину контекста. Она умножает вес каждого шага.
- Режьте перед простоем: передайте работу или сделайте
/compactперед долгим ожиданием. - Держите вывод инструментов коротким, а большие логи отдавайте субагенту.
- Держите сообщения между агентами редкими и короткими.
- Сравнивайте модели по своим записям, а не по прайс-листу.
Где здесь harnsy
harnsy — локальное приложение, которое соединяет агентов Claude Code, Codex и OpenCode в одну команду с ролями. Само по себе оно ваши токены не уменьшает, но несколько его возможностей вытекают из цифр выше:
- Он сообщает лиду, что у агента контекст подходит к пределу. Порог задаётся для каждой роли; в v0.7.0 по умолчанию это 40% окна, а дашборд советует 300–400 тысяч токенов.
- Передача дел идёт по записке: агент пишет её, лид сажает свежего агента, новичок подтверждает. Работа переживает контекстное окно. Это не бесконечная память.
- С версии v0.7.0 у каждой роли свои харнес, модель и уровень рассуждения.
- Лид узнаёт, когда агент простаивает.
Как он ставится и что меняет на вашей машине — на странице установки.
Держите память агентов короткой
harnsy соединяет ваших агентов Claude Code, Codex и OpenCode в одну команду с ролями и передаёт работу дальше, пока контекст не разросся.
Установить harnsy