Скрытый налог AI coding agents: почему токены стали метрикой разработки
Вирусный замер Claude Code и OpenCode важен не как война инструментов, а как урок о прозрачности стоимости AI в разработке.
Самый полезный спор недели про AI coding оказался не о том, какой агент кажется умнее. Он оказался о том, что агент отправляет в модель ещё до того, как прочитал задачу.

12 июля Systima опубликовала замер Claude Code и OpenCode на границе API. Заголовочное число быстро разошлось: в простом запросе ответить ровно "OK" Claude Code, по измерениям Systima, отправлял около 32,800 first-turn tokens, а OpenCode — около 6,900. К 14 июля тред на Hacker News набрал примерно 687 points и 378 comments.
Реакция была не только фанатским спором инструментов. Пост попал в боль, которую многие команды уже чувствуют. AI coding agents стали достаточно полезными, чтобы входить в реальную разработку, но их стоимость и поведение всё ещё плохо видны. Prompt разработчика — лишь часть счёта. Harness добавляет system instructions, tool schemas, repository instructions, MCP server descriptions, reminders, subagent plans, cache writes и историю разговора.
Практический вопрос не в том, что "Claude Code плохой, OpenCode хороший". У Systima картина сложнее. Вопрос в том, видит ли команда, что её agent stack отправляет, зачем он это отправляет и окупается ли этот token load качеством.
Что измерила Systima
Systima пишет, что поставила logging proxy между coding harness и model endpoint, затем сравнила Claude Code 2.1.207 и OpenCode 1.17.18 на одной машине, задачах и model family. В исследовании были floor task, one-tool task и multi-step write-run-test-fix task.
Широко разошёлся floor task. Он просил агента ответить ровно "OK". В этой конфигурации Systima измерила примерно 33k tokens у Claude Code до содержательной работы и около 7k у OpenCode.
Причина, по payloads, была не в пользовательском prompt. Она была в wrapper. Systima утверждает, что baseline в основном раздували tool schemas: Claude Code показывал 27 tools и около 99,778 characters of tool schemas, а OpenCode — 10 tools и около 20,856 characters. Даже без tools system prompt Claude Code составлял около 26,891 characters, примерно 6.5k tokens, против 8,811 characters и примерно 2k tokens у OpenCode.
Это скрытый налог agent interfaces. В терминале всё выглядит как одна команда. Под капотом агент может отправлять модели небольшое руководство на каждом turn.
Меньше не всегда значит лучше
Lean baseline выглядит привлекательно. Он дешевле, меньше ест context window и обычно снижает latency. Но Systima нашла случай, где тяжёлый Claude Code не проиграл очевидно.
В multi-step task Claude Code batch-ил несколько tool calls в меньшее число model requests. OpenCode делал больше one-tool-per-turn calls. Так как baseline снова оплачивается на requests, меньшее число requests может компенсировать больший baseline. В конкретном Sonnet run Systima получила около 121k cumulative metered input tokens для Claude Code и около 132k для OpenCode.
Эта оговорка важна. Tool with heavy start может быть эффективным, если решает задачу за меньшее число turns. Lean tool может стать дорогим, если слишком всё сериализует. Token cost нужно мерить per useful task, а не только per first request.
Комментарии на Hacker News также критиковали методологию: Meridian gateway, pinned model version, влияние gateway envelope и то, проходили ли toggles вроде extended thinking через весь path. Systima часть caveats признала, а Fable reruns изменили часть картины.
Честный вывод уже вирусного заголовка: harness overhead может быть огромным и tool-specific. Но это не универсальный закон, что один агент всегда дешевле другого.
Почему команды внезапно считают token overhead
Для разработчика token overhead проявляется как быстрое сгорание subscription, медленная сессия или context, который заполняется раньше ожиданий. Для компании это уже budget problem.
Claude Code docs говорят прямо: Claude Code charges by API token consumption, а per-developer costs vary widely by model selection, codebase size and usage patterns such as multiple instances or automation. Docs рекомендуют pilot groups, usage tracking, spend limits, org analytics, OpenTelemetry and gateway-based metrics.
В документации Anthropic есть ориентиры: average enterprise cost around $13 per developer per active day and $150-250 per developer per month, with 90 percent of users below $30 per active day. Для многих организаций это может быть нормально. Но даже нормальные средние требуют измерения, потому что outliers прячутся внутри.
Forbes недавно описал token spend как новую management metric после ранней фазы "tokenmaxxing". В облачной инфраструктуре этот цикл знаком: сначала adoption enthusiasm, потом приходит счёт, потом догоняет governance.
AI coding agents сейчас как раз во второй фазе.
Откуда берётся скрытая стоимость
Видимый user prompt обычно не главная статья расходов. Дорогие части структурные.
Tool schemas — первая. Каждый exposed tool несёт name, description and parameter schema. Если harness показывает file operations, search, shell, browser, planning, task management and MCP tools, модель получает большое меню до реальной задачи. Это может повышать autonomy. Это также тратит context и деньги.
Project instructions — вторая. Большой AGENTS.md или CLAUDE.md полезен, когда содержит реальные repo rules. Но он легко превращается в свалку старых preferences, повторяющихся warnings и vague style advice. Systima измерила, что реальный 72KB instruction file добавлял чуть больше 20k tokens per request.
MCP servers добавляют свой tax. Каждый server приносит tool descriptions and schemas. Systima измерила примерно 1,000-1,400 tokens per small public MCP server, per request, и отдельно предупредила: production servers with rich APIs can be much larger.
Subagents умножают проблему. Если orchestrator запускает несколько agents, и каждый получает тот же тяжёлый набор repository instructions, tools and conversation setup, команда может оплатить baseline много раз до первого улучшения кода.
Наконец, растёт conversation history. Длинная сессия постепенно тратит всё больше context на scaffolding and old state. Cache discounts помогают billing, но не отменяют context window consumption.
Что измерять перед спором об инструментах
Практический rollout должен начинаться с boundary measurement. Если вы не видите payload size, cache writes, cache reads, output tokens and request count, вы в основном спорите по ощущениям.
Разделяйте model cost and harness cost. Premium model — одно решение. Heavy wrapper around the model — другое. Команда должна понимать, счёт пришёл от reasoning, tool schemas, repeated instruction files, MCP metadata, subagent fan-out или просто too many model turns.
Мерьте per task, не только per session. Refactor на 300k tokens может быть выгодным, если заменил два часа senior engineer work. Tiny rename за 80k tokens, потому что агент притащил все tools and instructions, скорее всего нет.
Смотрите by project and repository. Некоторым repos реально нужен heavy context. В других instructions разрослись, потому что их никто не чистил. Разница должна быть видна.
Смотрите by agent mode. Planning, implementation, test repair, code review, dependency updates and documentation work имеют разные token profiles. Отправлять каждую задачу в один expensive setup — это как запускать все cron jobs на самом большом cloud instance.
Prompt rules не заменяют инженерный процесс
В HN был практичный спор: если написать агенту в prompt "всегда запускай тесты", он может снова и снова тратить tokens на размышление о test policy и широкие проверки. Иногда это полезно. Часто это лучше вынести в hooks, CI or task-specific scripts.
То же касается style rules, security checks and release steps. Если правило deterministic, положите его туда, где software применит его дешево. Pre-commit hooks, pre-push hooks, CI jobs and repository scripts скучны, зато модели не нужно каждый turn помнить и интерпретировать ту же политику.
Instructions нужны для judgment. Automation нужна для repetition.
Так агент остаётся на задачах, где language and reasoning действительно полезны: понять change, выбрать approach, пройти по codebase, объяснить trade-offs и исправить failures, которые не выводятся из статического правила.
Как управлять стоимостью, не убивая adoption
Плохая реакция — запретить powerful agents, потому что один benchmark выглядит дорогим. Другая плохая реакция — дать всем unlimited access и надеяться, что invoice совпадёт с demo.
Более зрелый rollout похож на FinOps for AI development.
Начните с pilot group. Мерьте реальную работу, а не toy prompts. Включите small fixes, code review, test repair, migrations and multi-file changes. Сравнивайте token spend with outcomes: time saved, bugs caught, PR cycle time and developer satisfaction.
Ставьте budgets and alerts. Developer должен понимать, когда session сжигает context or subscription limits. Managers должны видеть per-project and per-team trends без превращения token tracking в surveillance theater.
Route tasks. Используйте best model там, где он нужен. Cheaper models or smaller harnesses подходят для routine edits, explanation, formatting and search-heavy chores. Если agent supports subagents, subagents должны уметь step down to cheaper models для узких задач.
Audit instruction files. Удаляйте stale rules. Делите giant instructions into smaller skills or task-specific guidance, если harness это поддерживает. Repository instructions должны быть concise and testable.
Audit MCP servers. Не подключайте every server to every session by default. Database schema tool, browser tool, ticket tracker and cloud admin tool полезны, но не каждый нужен в каждом coding prompt.
Watch cache behavior. Cache writes, cache reads and context window use — разные вещи. Discounted cache read всё равно может занять context и оставить меньше места для кода.
Почему это шире, чем coding
Coding agents просто первыми сделали проблему хорошо видимой. Та же схема появится в sales agents, legal research agents, support automation, data analysis agents and internal operations bots.
Каждый agent framework несёт overhead: role instructions, tool schemas, memory, policies, examples, retrieved context and conversation history. Часть этого overhead повышает reliability. Часть — cargo cult. Без observability команда не отличит одно от другого.
Рынок переходит от "give the model more context" к "prove the context is worth sending". Это хороший сдвиг. Он не делает agents менее полезными. Он делает их похожими на infrastructure.
Практический вывод
Пост Systima стал вирусным, потому что назвал стоимость, которую многие чувствовали, но не видели. 33k tokens before prompt — драматичный пример. Но урок шире: у AI agents есть bill of materials.
В него входят model, harness, tools, instruction files, servers, subagents and organizational habits. Если дорогой агент даёт лучший outcome, используйте его. Если он тратит tokens на scaffolding, которое никто не понимает, исправляйте scaffolding.
Следующий зрелый этап AI Practice — не меньше AI. Это measurable AI. Команды должны отвечать на простые вопросы: что агент отправил, сколько это стоило, что он сделал и какая часть stack реально дала результат?
Comments
Sign in to comment.
No comments yet.