Инженер-исследователь · автономные ИИ-агенты, R&D

Куда уходят токены ИИ-агентов: неделя замеров и четыре рычага

12 октября 2026Замер недели 28.09 - 05.1020 мин чтения · 3215 слов

Практическая статья для тех, кто гоняет агентов на подписке или платит за их токены. Я неделю считал сырые транскрипты своей системы: 55 754 вызова модели, куда ушёл каждый доллар и какие шаги его жрут. Внутри - четыре рычага с замерами до и после, раздел «что не сработало» и главный сюрприз: цена шага упала на треть, а счёт за день - только на 15%.

Всё ниже - на числах из моих транскриптов и на правках, которые я сделал по этим числам.


Цифра, по которой я смотрел на расход, врала. И врала в удобную сторону. Панель по своим проектам показывала 8,7 млн токенов за день. Под ней лежало 15 млрд токенов, прочитанных из кэша за неделю, и деньги были там. До замера я угадывал стоимость своих агентов по обрывку в 15% счёта.

Дальше я сделал то, что стоило сделать раньше: перестал смотреть на панель и полез в первоисточник. Транскрипты агентного рантайма лежат на диске сырыми: на каждый вызов модели записаны вход, выход, чтение кэша, запись кэша и модель. Это след, который пишется сам, без чужого счёта посередине. Оттуда всё и считается.

TL;DR

  1. Две трети денег - повторное чтение контекста. Чтение кэша - 60,4% расхода, запись кэша - 25%, вывод модели - 14,3%, свежий ввод - примерно ноль. Ты платишь за то, что модель заново перечитывает всё накопленное перед каждым шагом. Новой информации в этом счёте почти нет.
  2. Цена шага линейно зависит от длины сессии, а цена сессии растёт квадратично. Вызовы на контексте до 100 тыс. токенов дали 1,5% денег. Вызовы на контексте 300 тыс. - 1 млн дали больше половины.
  3. Половину прироста контекста модель пишет сама себе. Из 65 млн токенов прироста главных сессий 32 млн - вывод предыдущих шагов: рассуждение и текст с аргументами правок. Потом это читается на каждом следующем шаге.
  4. Одна настройка дала больше всех остальных вместе. Ранняя компакция: цена шага −33%, средний контекст −48%.
  5. Работа с дешёвой моделью экономит 25-40%. В разы не выходит. Платишь за контекст, в котором модель работает.
  6. И то, ради чего всё делалось, случилось наполовину. Цена шага упала на треть, счёт за день - на 15%, потому что шагов в день стало на 40% больше. Экономия ушла в объём работы.

1. Как это посчитать

Источник - сырые транскрипты агентного рантайма. За неделю (28.09 22:00 - 05.10 22:00) это 4 742 файла, главные сессии и субагенты, 55 754 вызова модели.

Что делает скрипт:

Почему доллар, хотя у меня подписка. Цены API - единственная линейка, на которой чтение кэша и вывод сравнимы между собой. Проверить её всё же надо: подписка считается не долларами, и нет гарантии, что она взвешивает токены так же.

Проверил прямым замером: на отдельном аккаунте, где больше ничего не работало, запускал пачки вызовов и после каждой снимал процент окна. Вышло ≈ $26 за 1% недельного лимита, что сошлось с независимой калибровкой моего штаба ($27,8 за 1%). Долларовый эквивалент оказался годной мерой лимита, и дальше я сравниваю всё в нём.

Что этот метод не видит - в §9, там же границы выводов.

2. Куда уходят деньги

2.1 По типам токенов

что токенов $ за неделю доля
чтение кэша 14,75 млрд 2 944 60,4%
запись кэша 1h (главные сессии) 96 млн 725 14,9%
запись кэша 5m (субагенты) 155 млн 506 10,4%
вывод (включая рассуждение) 36,5 млн 698 14,3%
свежий ввод 0,1 млн ~0 ~0%
Где уходят деньги за неделю: чтение кэша 60,4%, запись кэша 25,3% (14,9% часовой и 10,4% пятиминутный), вывод модели 14,3%, свежий ввод около нуля. То есть почти весь счёт - это повторное перечитывание накопленного контекста, а не новая информация, которую модель получила.

Здесь и лежит главный вывод статьи. Свежий ввод, тот текст, который модель получает впервые, стоит около нуля. Всё остальное уже было в контексте: сначала его записали в кэш (25%), потом перечитывают перед каждым шагом (60%).

Общая сумма за неделю - ≈ $4 870 по ценам API.

2.2 По ролям и моделям

кто $ доля вызовов
Opus, главная сессия 3 837 78,7% 30 848
Opus, субагенты 545 11,2% 12 155
Sonnet, субагенты 419 8,6% 10 311
Sonnet, главная сессия 59 1,2% 1 270
Haiku 12 0,2% 1 170

По усилию внутри главных Opus-сессий: xhigh - $2 915 (59,8%), high - $861 (17,7%). У 24 из 25 самых дорогих сессий недели преобладает xhigh.

Субагенты - 20% расхода, и они дешёвая часть. Основную массу денег делают длинные главные сессии на самой дорогой модели с максимальным усилием.

2.3 По проектам и сессиям

Один проект с визуальной доводкой - $3 036 (62%), мастерская агентов - $900 (18,5%), панель управления - $452 (9%), остальное мельче 1,5% каждый. Разброс объясняет характер работы: у визуального проекта каждый шаг тянет за собой скриншоты.

Половину денег дали 24 сессии из 637. Самая дорогая - $356: 2 303 вызова за 14 часов, 264 скриншота, контекст дважды доходил до ~965 тыс. токенов.

2.4 Субагенты

За неделю 2 137 запусков субагентов. Каждый стартует с ~32 тыс. токенов (медиана) и заново записывает их в кэш - отсюда $506 только на записи 5m.

агент запусков $ всего $ за запуск вызовов на запуск средний контекст
science-verifier 124 274 2,21 55 121k
lessons-curator 147 119 0,81 22 84k
менеджер процессов 448 100 0,22 5 69k
general-purpose 68 82 1,21 19 192k
консилиум ревьюеров 224 70 0,31 10 62k
разведчик базы уроков 235 54 0,23 5 57k
ревьюер визуала 9 47 5,26 58 151k

Частые дешёвые гейты ($0,22 за запуск) можно звать сколько угодно. Дорогие редкие - другое дело: ревьюер визуала стоит $5,26 за вызов, потому что внутри одного запуска 58 шагов и 151 тыс. токенов контекста. Причина в длине сессии, только теперь она внутри субагента.

2.5 Процессная обвязка

Отдельным разрезом я посчитал, сколько стоит сам процесс - гейты, снимки, проверки, коммиты. Шаг длинной сессии стоит ~$0,12 независимо от того, что в нём делается: почти вся его цена - перечитывание контекста. Поэтому проверочный шаг стоит ровно столько же, сколько рабочий.

шаги главных сессий шагов $ доля главных сессий
CLI-гейты всего 4 778 581 14,9%
вызовы гейт-субагентов 1 126 150 3,8%
осмотр git (status/log/diff) 1 004 122 3,1%
API панели 649 92 2,4%
поиск инструментов, скиллы, почта 491 67 1,7%
коммиты 428 50 1,3%

Вместе с работой самих гейт-субагентов это ≈ 30% недельного расхода. За каждую проверку платишь по цене шага в огромном контексте.

2.6 Стартовый балласт

Первые 100 тыс. токенов контекста - 24% всего, что прочитали главные сессии: ≈ $600 в неделю, около 12% всех денег. Что лежит внутри, до первой строки работы:

3. Почему так устроено

Цена шага и цена сессии. Каждый вызов инструмента - новый запрос, который перечитывает весь контекст. На контексте 500 тыс. токенов один шаг стоит ~$0,10 только за чтение. Шаг линейно зависит от длины контекста, а сессия - сумма шагов - растёт квадратично. Медианный вызов главной сессии читал 367 тыс. токенов, верхний дециль - 734 тыс.

Сессии почти не сжимались. Окно модели - 1 млн токенов, автоматическое сжатие стояло у предела окна. На 637 сессий за неделю пришлось 17 сжатий. Контекст рос до самого потолка, и каждый шаг на этом потолке оплачивался целиком.

Половина прироста - собственный вывод модели. Контекст главных сессий вырос за неделю на 65 млн токенов, из них 32 млн (50%) - вывод предыдущих шагов. Рассуждение модели остаётся в истории между шагами, поэтому за него платишь дважды: один раз при генерации по цене вывода, а потом при каждом следующем чтении. На xhigh модель выписывает 1 149 токенов на вызов, на high - 838.

Результаты инструментов. Больше всего приносит командный вывод: ~42 млн символов за неделю (≈ 19 млн токенов). Из них 8,3 млн - чтение файлов через sed -n в обход того инструмента, который для этого есть; 3,6 млн - grep. Дальше автомат скриншотов - 4,3 млн символов и 2 982 картинки, каждая 1,5-2,5 тыс. токенов, и каждая перечитывается, пока не случится сжатие.

Язык. Русская проза у токенизаторов дороже английской примерно в 1,5-2 раза на тот же смысл (верхняя оценка из моих данных - 2,5×; выборка небольшая). Но мои собственные сообщения - малая доля расхода. Дорогой русский - машинный текст, который перечитывается на каждом шаге: канон, тела агентов, описания в списке агентов. Это и есть настоящий рычаг языка, и он маленький: сами по себе язык и плотность текста дают ~2-3% общего расхода. Основная масса денег - длина сессии. Язык на неё почти не влияет.

4. Четыре рычага

По результатам замера я поправил четыре вещи.

4.1 Ранняя компакция

Порог автоматического сжатия настраивается. Я задал его в трёх проектах, дающих ~90% расхода: сначала 500 тыс. токенов (05.10), через два дня - 400 тыс. (07.10).

Почему не сразу 400. Расчёт по данным недели: порог 400 тыс. дал бы экономию 16,5% при 149 сжатиях за неделю, 500 тыс. - 13,7% при 89, 600 тыс. - 10,9% при 58 (факт - 17). Каждое сжатие не бесплатно: по внешнему наблюдению (LangWatch, разбор 287 тыс. вызовов API) доля сообщений с исправлением в следующих шагах после сжатия подскакивает с 17,7% до 41,9%, и эффект держится десятки шагов. Отдельная работа (arXiv 2606.22528) показывает механику: после одного сжатия нарушения явных запретов выросли с 0% до 30%, а если запрет переживал сводку - остались нулевыми. Поэтому меньше сжатий важнее последних трёх процентов экономии, и я взял 500 тыс., а когда увидел, что работает, спустил до 400 тыс.

Положительный контроль. Настройку недостаточно прописать - надо убедиться, что рантайм её взял. Я проверял пустым запуском с командой контекста: было / 1m, стало / 500k, потом / 400k. Сжатие реально шло: в одном проекте за неделю 182 сжатия вместо прежних 11.

Сессии, начатые раньше правки, работают со старым порогом до перезапуска - это отдельная ловушка.

4.2 Усилие по делу

xhigh - 60% расхода. Я поставил глобальным дефолтом high, оставив максимальное усилие для явных случаев: тяжёлый код и углублённая работа. Эффект двойной: high пишет короче (838 против 1 149 токенов вывода на вызов), а его вывод остаётся в контексте и перечитывается всеми последующими шагами.

Проверка была не по ощущению: доля денег на xhigh в замерах после правки - 0%, кроме двух сессий, где я сам выставил максимальное усилие руками.

4.3 Стартовый балласт

4.4 Склейка процессных шагов

Проверочные шаги стоят столько же, сколько рабочие, а их было почти 15% денег. Поэтому проверки я склеивал: один вызов на все файлы вместо вызова на файл, одна команда «перед коммитом» вместо четырёх отдельных ходов, пачка правок доски одной командой. Проверок столько же, ходов модели в 3-4 раза меньше.

Пятый, слабый и не сделанный

Гигиена командного вывода: читать файлы инструментом чтения с диапазоном вместо sed -n на сотни строк, длинные прогоны уводить в файл с хвостом. Оценка - 1-2%, и я её ещё не отработал: 8,3 млн символов командами чтения файлов за неделю остались на месте.

5. Что показали замеры

Первый замер после правок - через 2,7 дня, второй - через 1,6 дня после спуска порога до 400 тыс. Сравнивать надо цену шага и средний контекст: объём работы день ото дня гуляет, и он в этих числах не учтён.

до шаг 1 (500k) шаг 2 (400k)
$ за шаг главной сессии 0,121 0,092 0,081
$ за шаг всех вызовов 0,087 0,072 0,066
средний контекст главной ~420k ~260k ~220k
доля денег на контексте >500k 26-45% 0-2% 0-2%
доля денег на xhigh 43-72% 0% 0%
сжатий в день 1-7 9-16 24
шагов в день 8,4 тыс. 9,6 тыс. 11,8 тыс.
$ в день (полные дни) ~880 ~690 ~750

Итог по цене шага: −33%, по среднему контексту: −48%.

Через неделю после правок я прогнал тот же скрипт на окне 05.10 14:10 - 12.10 11:30, чтобы проверить, что эффект не разовый:

проект сессий шагов $ всего $ за шаг было средний контекст было сжатий
визуальный проект 129 36 361 3 088 0,085 0,130 235k 437k 182
мастерская агентов 33 6 587 532 0,081 0,122 232k 386k 26
панель управления 5 1 294 109 0,084 0,120 262k 419k 4
Цена шага и средний контекст до правок и через неделю после: в трёх проектах цена шага упала с 0,130-0,120 до 0,085-0,081 доллара, средний контекст главной сессии с 437-386 тысяч токенов до 235-232 тысяч. Эффект одинаковый во всех трёх проектах, значит дело в настройке, а не в смене состава работы.

6. Что не сработало

Этот раздел важнее предыдущего.

1. Счёт не упал так, как падала цена шага. Цена шага −33%, дневной расход −15%. Разница объясняется просто: шагов в день стало на 40% больше. Деньги, которые освободились, я тут же потратил на дополнительную работу. Так было задумано: система стала позволять себе больше за ту же цену. Но заявлять «я сократил расход на треть» было бы ложью. При прежнем объёме работы получилось бы ≈ $3 900 в неделю вместо ≈ $5 000; фактическая неделя вышла около $2 500-2 600 на аккаунт, то есть нагрузка так и лежит на двух подписках.

2. Дешёвая модель не даёт экономии в разы. Платишь за контекст, в котором модель думает. Перевод с дорогой модели на среднюю экономит 25-40% (и только если задача решается за то же число шагов). Ценник за токен подсказывает в 5 раз больше.

3. Повышение усилия не чинит суждение дешёвой модели. Отдельный замер на живой системе: дешёвая модель на повышенном усилии там, где проигрывала, не догнала дорогую ни у одного из десяти подопытных агентов. При этом на длинном обходе файлов она делает в 2-3 раза больше шагов, вылезает в дорогой тарифный пояс по длине промпта и стоит столько же. Дешёвая модель - другой класс работы.

4. Стартовый балласт почти не сдвинулся. Гипотеза была: снимем память, скиллы, сожмём описания агентов - и старт сессии полегчает заметно. Факт: медиана стартового контекста ушла с 99 тыс. до 95 тыс. токенов. Четыре тысячи из ста. Ожидание «здесь лежит большой лёгкий выигрыш» не подтвердилось, и причина видна из §2.6: описания и скиллы - десятки тысяч токенов на фоне сотен тысяч, которые набираются дальше по ходу сессии.

5. Качество проверено слабо. У меня нет метрики «стало хуже»: есть только грубый прокси - сообщения владельца (мои правки хода) на 100 шагов после сжатия против остального времени. После сжатия их 0,2 против 0,7 в остальное время, всплеска нет. Но 5 338 шагов после сжатия - мало для исследования, и я держу этот вывод догадкой. Внешние данные при этом говорят, что сжатие - не бесплатная операция: после него растёт число исправлений и нарушений явных запретов. При 182 сжатиях за неделю в одном проекте экономия покупается риском.

6. Максимальное усилие всё равно протекает руками. После глобальной правки две сессии всё равно шли на xhigh (≈ $260 вместе с субагентами), потому что я выставил его сам. Дефолт не мешает мне же его переопределить.

7. Компакция посчитана арифметикой. Экономия 10-19% при разных порогах - счёт на прошлых данных. Честная проверка - неделя с одним порогом на одном проекте и сравнение цены на сессию с числом переделок. Я сделал слабее: спускал порог ступенями и смотрел на живые замеры после каждой. Это защищает от грубой ошибки, но не заменяет контролируемого эксперимента.

7. Что сработало точно

Сводка того, за что я готов отвечать числами:

8. Что тут переносимо

Метод не привязан к моему рантайму; из четырёх рычагов переносится каждый.

  1. Считай цену шага. Четыре вида токенов надо свести в одну линейку, иначе вывод (дорогой) и чтение кэша (дешёвое, но массовое) смешиваются в бессмысленную сумму.
  2. Мерь контекст. «Дешёвая модель» экономит 25-40%, «короткий контекст» - вдвое. Второе и больше, и от качества модели не зависит.
  3. Ищи сжатие и длину сессии в первую очередь. Всё остальное - язык, описания инструментов, гигиена вывода - даёт проценты. Длина сессии - десятки процентов.
  4. Убеждайся, что настройка применилась. Легко прописать конфиг и не заметить, что рантайм его не читает, а старые сессии живут с прежним значением. Нужен положительный контроль: команда, которая напечатает взятое значение.
  5. Считай, чего экономия стоит в качестве. Сжатие бесплатно не бывает: цена экономии - сводка, которая теряет детали, и её нужно ловить обратной связью.

9. Границы и честные оговорки

Родственные идеи и источники

Заключение

Дорого в агентной системе не то, что кажется дорогим. Дорого время, которое контекст уже прожил - не новая информация, которой почти нет, и не умная модель. Модель заново перечитывает всё, что накопила, перед каждым шагом, и платит за это владелец - на каждом шаге, квадратично по длине сессии.

Лечится это двумя вещами: не давать контексту расти до потолка и не выставлять максимальное усилие там, где оно не нужно. У меня это дало −33% к цене шага и −48% к среднему контексту.

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