Одиннадцать боевых агентов: три оси учёта токенов, и только две из них — «главная модель»

Три оси расхода агента (счёт провайдера, средняя цена вызова, сумма на одну решённую задачу) дают разных «лидеров» по деньгам; в полевом разборе на одиннадцати боевых агентах при ранжировании по решённой задаче модель оказалась самым дорогим шагом лишь у двух. Для соло за одним шлюзом, совместимым с OpenAI API, без учёта по траектории оптимизация уровня completion-модели не заменит циклы, модель-фильтр и поиск по базе, иначе биллинг снова будет правдоподобным, но пустым.
Когда агрегированный LLM-счёт перестаёт быть опорой
@tokenlat описывает сдвиг от доверия к общему счёту провайдера к tracer, который помечает каждый call, tool и cache lookup идентификатором траектории, а не только «total tokens» от API. За инфраструктурой более 25 моделей за одним gateway; экономия в narrative связана с маршрутизацией шагов на меньшие модели (scrubber, cache-verify), а не только со сменой completion-tier.
Формула из замеров: step_cost_per_task = calls_per_task × cost_per_call. Дашборды по умолчанию сортируют mean cost per call; agentic шаги часто крутятся в loops (re-plan, per chunk), поэтому «дешёвый» вызов может обойти LLM по сумме на задачу.
Четыре типа шага, которые обгоняли LLM на траектории
При измерении на одну resolved task (trajectory-total), а не mean $/call, распределение лидеров расхода по одиннадцати агентам выглядит так:
| Драйвер #1 на trajectory | Доля агентов |
|---|---|
| Embedding / retrieval loop | 5 / 11 |
| PII / guardrail model | 3 / 11 |
| Model (LLM) | 2 / 11 |
| Cache-verify model | 1 / 11 |
В остальных 9 случаях накладные расходы в привычных дашбордах выглядели незначимыми, хотя на задачу именно они и доминировали. Контринтуитивно для тех, кто крутит только prompt и tier основной модели.
Три полевых кейса: embedding, кэш и guardrail
Три истории помечены как line items из тех же одиннадцати агентов, не гипотезы.
«Бесплатный» embedding
В finance label шаг мог числиться «free»; на hard tasks loop retrieval до 180 раз при $0.00002 за call даёт $0.0036 на task против $0.0028 за один LLM completion. Embedding обгоняет «главную» модель.
Cache hit дороже miss
При semantic cache на hit стек verification (reranker плюс 70B «still relevant?») стоит $0.0009, regenerate on miss на 8B обходится в $0.0006; при ~40% hit traffic «экономия» превращается в налог на попадания.
Guardrail съедает больше completion
Compliance-driven PII scrubber на 7B по 12 chunks ($0.00035 каждый) даёт $0.0042 на task на трёх агентах; downgrade маршрута на 0.5B снижает до $0.0003, что автор оценивает как 14× сокращение без деградации на их eval set (независимо это не проверялось).
У одного из агентов автор сравнивает mean и trajectory: по mean LLM на первом месте, по task-total guardrail, затем embedding loop, LLM третьим.
Минимальный контракт observability для agentic billing
Рекомендации сводятся к атрибуции каждого token к trajectory_id, ранжированию шагов по total, не mean, и SLO cost_per_resolved_task с алертом на trajectory. Скелет конфигурации:
unit: trajectory
trace_id: trajectory_id
rank_by: total_cost
alert:
metric: cost_per_resolved_task
threshold_usd: 0.02
Идея кода: суммировать уже размеченные по trajectory события по шагам (rank_steps_by_task), а не полагаться на агрегат провайдера. Конкретный vendor tracer (Langfuse, OpenTelemetry и т.п.) в primary не назван, только паттерн.
Для малой команды или соло-workflow с несколькими агентами практический вывод тот же: правила маршрутизации по типу шага (guardrail, verify, retrieval) рядом с выбором completion-модели; без trajectory-level учёта loops и «мелких» моделей счёт снова успокаивает, пока задача не станет дорогой.
Источники
- @tokenlat — We instrumented 11 production agents with real token accounting… — primary, дата доступа 2026-10-28 (UTC).
- Метрики карточки поста на Dev.to: 6 реакций, 2 комментария, reading time 4 min; опубликовано 2026-10-28T01:06:28Z — согласовано с API площадки на 2026-10-28.