Экономика LLM-агента: 32 дня телеметрии, две конфигурации, один баг в SQL
TL;DR
- За 32 дня детальной телеметрии (~4300 прогонов) расход агента упал с $61 до $18 в день: main-цикл переехал с claude-fable-5-1 на glm-5.3-flash, сильная модель осталась консультантом.
- Контрфакт на тех же объёмах токенов: GLM-эпоха на Fable 5.1 стоила бы $1521 против $109 фактически (−93%), на Opus 5.5 — $748 (−85%).
- Счёт делают не объёмы, а редкие события: 94% prompt-токенов — кэш-чтение по центам, а 53% счёта Fable — кэш-запись по $12.50/MTok.
- Консультант обошёлся в 152 вызова, 13.6 млн prompt-токенов и $146 — 10% бюджета периода.
- Первый расчёт завышал стоимость Claude-эпохи на 37% из-за двойного счёта cache_write; разбор ошибки — в отдельной секции.
Конфигурация
Atlas — десктопный агент: Go-сервис с локальной SQLite, агентский цикл «модель + инструменты». Он читает и правит файлы, исполняет команды, работает с git, ходит в LSP и базы данных, делегирует задачи субагентам. Агент работает в моём ежедневном цикле давно; телеметрия расходов тоже давняя — каждый завершённый LLM-прогон пишет строку в локальную БД с моделью и четырьмя счётчиками токенов. 20 сентября счётчики построчного учёта появились у субагентов, 28.09 — у всех ролей, и строки обрели источник расхода. С этого дня учёт построчный по ролям:
| Source | Роль | Модель |
|---|---|---|
main | основной цикл | выбор пользователя: fable-5.1 → glm-5.3-flash |
subagent | делегированные задачи | glm-5.3-flash |
review | ревью коммитов | glm-5.3-flash |
consultant | сильная модель по запросу | fable-5.1 / opus-5 (в телеметрии — help) |
За окно телеметрии агент прошёл две конфигурации, отличающиеся одним решением: кто выполняет основной цикл.
Первая, до 15 октября: main на claude-fable-5-1 / claude-opus-5-5, субагенты и ревью на glm-5.3-flash. Любой ход основного цикла — ход флагмана, включая тривиальные. (В первую неделю, до полного учёта, субагенты гоняли ещё и на claude-sonnet-5, claude-opus-5 и GLM-5.3 — пока не переехали на flash.)
Вторая, с 16 октября: main на glm-5.3-flash. Fable 5.1 и Opus 5 вызываются только как consultant в трёх случаях: основной агент дважды отверг собственную гипотезу; один и тот же чек падает после правок; впереди дизайн-решение — схема БД, публичный API, декомпозиция плана. Консультант видит только сформулированный вопрос и приложенные доказательства: ошибку, дифф, схему.
Это разделение ролей, а не смена тарифа. Объём работы остался на модели за $0.15/MTok входа; интеллект сильной модели покупается порциями по ~90 тысяч токенов на вызов и только там, где дешёвая модель исчерпала самостоятельность. Дальше — цифры обеих конфигураций.
Данные и формула
Каждая строка usage_events содержит источник, модель и счётчики: prompt, completion, cache_read, cache_write. Стоимость строки:
(p − cr − cw)·цена_входа + cr·цена_кэш_чтения + cw·цена_кэш_записи + c·цена_выхода
где p — prompt_tokens, c — completion, cr — cache_read, cw — cache_write, всё делится на 1e6. Существенно: prompt_tokens у провайдера — агрегат, в который cache_read и cache_write уже входят, поэтому они вычитаются. В секции про постмортем — что происходит, когда этого не сделать.
Тарифы списочные, $ за 1 млн токенов:
| Модель | Вход | Выход | Кэш-чтение | Кэш-запись |
|---|---|---|---|---|
| claude-fable-5-1 | 10 | 50 | 0.25 | 12.50 |
| claude-opus-5-5 | 4 | 20 | 0.20 | 5.00 |
| claude-opus-5 | 5 | 25 | 0.50 | 6.25 |
| claude-sonnet-5 | 2 | 10 | 0.20 | 2.50 |
| GLM-5.3 | 1.40 | 4.40 | 0.26 | нет отдельной |
| glm-5.3-flash | 0.15 | 0.50 | 0.03 | нет отдельной |
Ключевая строка — первая: кэш-запись флагмана Anthropic стоит $12.50/MTok, это 125% его входного тарифа и в 417 раз дороже кэш-чтения glm-5.3-flash. Практически вся разница в экономике двух конфигураций выводится из этой строки.
Период наблюдения — 20.09–21.10. Первую неделю (20–27.09) main и review нигде не записывались; расход субагентов восстановлен миграцией из таблицы subagents: 218 прогонов, 642 млн prompt-токенов, $325. Полный построчный учёт — с 28.09. За период: ~4300 прогонов, $1529.
Две конфигурации
| Claude (28.09–15.10, 18 дней) | GLM (16.10–21.10, 6 дней) | |
|---|---|---|
| main | fable-5.1 / opus-5.5 | glm-5.3-flash |
| Консультант | fable-5.1 / opus-5 | fable-5.1 / opus-5 |
Prompt-токены (по usage_events, с 28.09) | 5.04 млрд | 1.47 млрд |
| Расход | $1095 | $109 |
| Цена за MTok prompt | $0.217 | $0.074 |
| Темп | ≈$61/день (≈$1830/мес) | ≈$18/день (≈$550/мес) |
Расход по дням, доллары:
| 20.09: 12.7 | 21.09: 65.8 | 22.09: 18.7 | 23.09: 109.3 | 24.09: 15.3 | 25.09: 39.8 | 26.09: 3.1 | 27.09: 60.6 |
| 28.09: 136.6 | 29.09: 53.6 | 30.09: 64.4 | 01.10: 103.2 | 02.10: 118.6 | 03.10: 37.9 | 04.10: 9.0 | 05.10: 49.4 |
| 06.10: 87.8 | 07.10: 57.3 | 08.10: 66.6 | 09.10: 24.6 | 10.10: 21.1 | 11.10: 44.9 | 12.10: 80.9 | 13.10: 68.3 |
| 14.10: 44.2 | 15.10: 26.5 | 16.10: 23.7 | 17.10: 22.0 | 18.10: 18.4 | 19.10: 14.9 | 20.10: 14.6 | 21.10: 15.7 |
До 15 октября расход колеблется от $9 до $137 в день, после — держится в $15–24. Смена default_model_id зафиксирована в настройках 17 октября; перелом ряда наступает 16-го.
Сравнение конфигураций по абсолютным цифрам слабое: периоды разные, нагрузка менялась. Основные выводы опираются на контрфакт с фиксированными объёмами токенов.
Контрфакт
Фактические объёмы токенов каждого прогона прогоняются по тарифам одной модели, как если бы весь трафик шёл через неё:
| Сценарий | 20.09–21.10 | Экономия |
|---|---|---|
| Факт (смешанный стек) | $1529 | — |
| Всё на Fable 5.1 (свежий вход по входному тарифу) | $6916 | −78% |
| Всё на Fable 5.1 (свежий вход как кэш-запись, 1.25×) | $7691 | −80% |
| Всё на Opus 5.5 | $3298 | −54% |
Самые надёжные числа — по GLM-конфигурации, где объёмы зафиксированы при неизменной схеме: та же нагрузка на Fable 5.1 стоила бы $1521 против $109 фактически — минус 93%. На Opus 5.5 — $748, минус 85%. Эти цифры не зависят от того, как менялась нагрузка между конфигурациями.
Контрфакт предполагает неизменность объёмов токенов; на другой модели сессии могут вести себя иначе — другая длина контекста, другое число ходов. Порядок эффекта этим не объясняется: glm-5.3-flash в роли main потребляет тот же порядок токенов, что субагенты Claude-конфигурации.
Структура счёта
Интуиция «платишь за объём» данные не подтверждают. 94% prompt-токенов периода — кэш-чтение. glm-5.3-flash за период прогнала 6.4 млрд prompt-токенов (включая бэкфилл первой недели), из них 6.1 млрд — кэш-чтение по $0.03/MTok, и весь её счёт — $245.
Счёт Fable 5.1 за период по компонентам тарифа:
| Компонент | Токены | Деньги | Доля |
|---|---|---|---|
| Кэш-запись ($12.50/MTok) | 33 млн | $417.6 | 53% |
| Выход ($50/MTok) | 2.8 млн | $137.5 | 17% |
| Свежий вход ($10/MTok) | 17 млн | $165.2 | 21% |
| Кэш-чтение ($0.25/MTok) | 284 млн | $71.0 | 9% |
| Итого | $791.3 |
53% счёта флагмана — кэш-запись, дороже всех остальных компонентов вместе. Механика: каждый «холодный» контекст, который агент собирает заново, тарифицируется по 1.25× входного тарифа. Переход main на glm-5.3-flash убрал этот компонент целиком: у Z.AI отдельной кэш-записи нет, с 16 октября она в телеметрии нулевая.
По моделям за период:
| Модель | Расход | Роль |
|---|---|---|
| claude-fable-5-1 | $791 | main Claude-конфигурации + консультант |
| glm-5.3-flash | $245 | субагенты, review, main с 16.10 |
| claude-opus-5 | $211 | консультант + субагенты первой недели |
| claude-opus-5-5 | $150 | main Claude-конфигурации |
| claude-sonnet-5 | $86 | субагенты первой недели |
| GLM-5.3 | $46 | субагенты до переезда на flash |
В Claude-окне (28.09–15.10) на Anthropic приходилось 11% prompt-токенов и 81% денег.
Консультант
Рутину выполняет glm-5.3-flash: файлы, поиск, правки, тесты, ревью диффов. Сильная модель подключается по трём триггерам: агент дважды отверг собственную гипотезу; один и тот же чек падает после правок; впереди дизайн-решение — схема БД, публичный API, декомпозиция плана. Консультант получает только вопрос и доказательства: ошибку, дифф, схему.
За период: 152 вызова, 13.6 млн prompt-токенов, $146 — около 10% бюджета. В GLM-конфигурации консультант стоит $7.4 в день из $18.2 общего расхода — 41%, сопоставимо со всей остальной работой агента вместе взятой. Полный перевод той же работы на Fable стоил бы $1521 против $109 — в 14 раз дороже.
Метрики качества решений нет, поэтому «ценность» консультаций в деньгах не оценивается. Измеримый факт: 10% бюджета на сильную модель. Наблюдаемое следствие для рабочей практики: делегирование задач субагентам перестало быть решением об управляемых затратах, сильная модель перестала быть узким местом основного цикла.
Постмортем: ошибка в формуле
Первый расчёт дал эпохе Claude $1502 и дню 28.09 — $190.27. Обе цифры ушли в черновик завышенными: эпоха на 37% (1502 против 1095), день на 39% (190.27 против 136.59).
prompt_tokens у провайдера — агрегат, включающий cache_read и cache_write. Корректная формула вычитает оба:
(p − cr − cw)·вход + cr·кэш_чтение + cw·кэш_запись + c·выход
В первом расчёте вычиталось только cache_read: (p − cr)·вход + ... + cw·кэш_запись. Токены кэш-записи тарифицировались дважды — по $10 как свежий вход и по $12.50 как кэш-запись. На GLM-конфигурации ошибка не проявилась: у Z.AI нет отдельной кэш-записи, слагаемое нулевое. Ошибка жила в одной ветке данных, и её не было видно по «новым» цифрам.
Локализация. Итог эпохи ($1502) не сходился с суммой дневных по правильной формуле ($1095) и сходился с суммой по неверной ($1501 — расхождение с черновым $1502 в пределах округления дневных). Решающая проверка на границе источников: день 23.09, посчитанный из бэкфилла subagents, совпадал с правильной формулой до цента (109.28); день 28.09 из usage_events совпадал только с неверной (190.27). Асимметрия указала на ветку данных, а не на тарифы. По правильной формуле: 28.09 — $136.59, эпоха — $1095, период — $1529.
Той же проверкой нашлась вторая ошибка: объёмы токенов считались с повторным прибавлением cache_read к prompt_tokens — 9.89 млрд вместо 5.04 на эпоху. Любая «цена за MTok» из таких объёмов занижена вдвое.
Для любого построчного учёта из этого следуют два правила: хранить компоненты (fresh input, cache_read, cache_write, output) раздельно, а не один агрегат провайдера; сверять агрегатный итог с суммой по дням перед публикацией. Обе проверки в этом случае локализовали ошибку за минуты.
Ограничения
- Тарифы списочные. Трафик через агрегатор (OpenRouter и подобные) добавит наценку. Промо-тарифы Z.AI (действовали до 09.09) не применялись.
- Контрфакт держится на неизменности объёмов токенов — сказано выше.
- До 20.09 построчного учёта по источникам не было; 20–27.09 main и review не записывались, а таблицы
usage_eventsещё не существовало — прогоны субагентов той недели лежат построчно с полными счётчиками в таблицеsubagents, откуда перенесены миграцией. Выводы сделаны по периоду полного учёта. - Кэш-запись Z.AI, возможно, тарифицируется внутри входного тарифа — тогда реальный расход GLM выше расчётного. Соотношение $0.15 и $12.50 за MTok порядок эффекта не меняет.
- Сравнение конфигураций — не контролируемый эксперимент: нагрузка менялась вместе со схемой.
- У Anthropic кэш-запись бывает 5-минутной и часовой (тариф ×2); телеметрия разделения не содержит, поэтому $417.6 за кэш-запись — нижняя граница.
- ~205 субагентских прогонов после 28.09 записаны в
subagents, но отсутствуют вusage_events; недоучёт составляет несколько долларов и смещает факт и контрфакт примерно одинаково.
Выводы
- Построчный учёт даёт то, что не даёт счётчик провайдера: таблица на 4300 строк разложила счёт по компонентам и ролям и локализовала ошибку в собственной формуле.
- Кэш — отдельная экономика, а не «дешёвая часть счёта». Кэш-чтение на 94% объёма почти бесплатно; кэш-запись у флагманов — крупнейшая статья. Архитектура агента должна сокращать холодные контексты: переиспользовать системный промпт, не пересобирать контекст, держать длинные сессии на одной модели.
- Роутинг по сложности — следующий шаг эволюции агента и крупнейший рычаг экономики: дешёвой модели отдаётся объём, сильная вызывается по триггерам. Минус 85–93% на той же работе — результат смены схемы, а не выбора тарифа.
- Консультант дёшев, потому что его контекст мал: 13.6 млн токенов на 152 вызова — по ~90 тысяч. Стоимость сильной модели пропорциональна контексту; узкий контекст делает интеллект дешёвым.
- Схема масштабируется вниз по ценам: пока рутина остаётся на дешёвой модели, запас после перехода позволяет экспериментировать с роутингом — другой субагент, другой провайдер — не пересчитывая экономику каждый раз.
Телеметрия продолжается. К середине января накопится три месяца чистой GLM-схемы — срок, на котором видно: тренд расходов на разных типах задач, сопоставление с прошлыми месяцами, поведение качества на дистанции. Об этом допишу отдельно.