Стоимость контекста AI-агента: как измерить повторные инструкции и tool calls

Практическое руководство по измерению и оптимизации стоимости контекста в многошаговых AI-агентах: декомпозиция tool schemas, замер baseline и контроль качества.

При разработке автономных AI-агентов (Claude Code, Cline, Roo Code или собственных multi-step пайплайнов) инженеры часто сталкиваются с лавинообразным ростом расходов на API. Причина кроется в механике передачи контекста: на каждом шаге цикла рассуждений модель заново считывает системный промпт, схемы всех доступных инструментов (tool schemas), полную историю переписки и сырые результаты вызовов функций (tool outputs).

Чтобы контролировать бюджет без потери функциональности, необходимо снять baseline на фиксированной задаче, локализовать главный источник лишних токенов и оптимизировать агентную среду по одной переменной.

Анатомия контекста AI-агента: за что списываются токены на каждом шаге

Контекстное окно агента на каждом шаге состоит из четырех изолированных компонентов:

  1. Системные инструкции и правила (System Prompt): Базовые требования к стилю, ограничения безопасности и контекст репозитория.
  2. Схемы инструментов (Tool Schemas): JSON-описания всех подключенных функций, параметров и типов данных. Если агенту передано 20 инструментов, описание их JSON Schema отправляется на каждом шаге и может занимать от 3 000 до 15 000 токенов.
  3. История сообщений (Message History): Предыдущие реплики пользователя и ответы агента, накапливающиеся по мере выполнения задачи.
  4. Результаты работы инструментов (Tool Outputs): Содержимое прочитанных файлов, логи выполнения терминальных команд и дампы API.

При 10 шагах выполнения задачи базовый контекст из 15 000 токенов будет оплачен 10 раз как input tokens, если не используется кэширование префикса (prompt caching).

Сравнительная таблица источников контекста и их оптимизации

Компонент контекстаДоля в общем объемеОсновной риск перерасходаМетод оптимизации
Tool Schemas20–40%Десятки неиспользуемых инструментов в общем спискеФильтрация тулов под конкретную подзадачу (subagents)
Tool Outputs30–60%Чтение файлов целиком вместо точечных срезовЛимит строк (slice), фильтрация grep и обрезка логов
История шагов15–30%Накопление устаревших промежуточных попытокСуммаризация контекста и очистка отработанных шагов
System Prompt5–15%Избыточные повторы инструкций внутри цепочкиСтатичный неизменяемый префикс для prompt caching

Пошаговое руководство: как измерить baseline и сократить расходы

Для объективной оптимизации используйте методику замера по одной переменной:

Шаг 1. Зафиксировать тестовую контрольную задачу

Выберите воспроизводимый инженерный сценарий (например: «найти функцию валидации в репозитории, добавить обработку крайнего случая и запустить unit-тесты»). Задача должна иметь четкий критерий завершения (код возврата 0 в pytest или bun test).

Шаг 2. Замерить Baseline (Input, Output, Cache)

Запустите задачу в стандартной конфигурации агента. Зафиксируйте в логах или в панели мониторинга:

  • Количество выполненных шагов (например, 10 итераций);
  • Объем входящих токенов (input tokens, около 150 000 токенов суммарно);
  • Объем сгенерированных токенов (output tokens, около 2 500 токенов);
  • Объем кэшированных токенов (cached tokens);
  • Финансовые затраты по актуальным тарифам.

Например, при тарифе 3.00за1Mвходныхтокеновиотсутствиикэшированиязадачаиз10шаговсконтекстом15000токеноврасходует150000inputtokensиобходитсяпримернов3.00 за 1M входных токенов и отсутствии кэширования задача из 10 шагов с контекстом 15 000 токенов расходует 150 000 input tokens и обходится примерно в 0.45 за один запуск.

По состоянию на 2026-08-22 актуальные ставки за 1M токенов для ведущих моделей можно сверить на официальной странице цен BetterToken. В BetterToken Dashboard детальная статистика вызовов отображает точное распределение токенов по каждому шагу агента.

Шаг 3. Изменить одну переменную контекста

Проведите изолированные тесты, меняя строго один параметр за итерацию:

  • Эксперимент A (Tool Filtering): Оставьте агенту только 3 инструмента (read_file, replace_content, run_test) вместо 15 общих тулов (экономия до 8 000 токенов на каждом шаге).
  • Эксперимент B (Output Truncation): Ограничьте размер вывода терминала первыми 50 строками ошибки вместо полного 2000-строчного дампа.
  • Эксперимент C (Prefix Caching): Зафиксируйте неизменяемый порядок системного промпта и схем инструментов в начале контекстного окна, снижая стоимость повторного чтения до $0.30 за 1M кэшированных токенов.

Шаг 4. Оценить экономику и качество решения

Сравните итоговые метрики с исходным baseline. Если время выполнения и корректность тестов не ухудшились, а суммарный объем input tokens снизился на 40–60%, изменение можно зафиксировать в рабочей конфигурации.

Рекомендации по настройке агентных окружений

  1. Изолируйте специализированные субагенты: Не передавайте главному координатору инструменты редактирования и терминала. Создайте легковесного агента-исследователя с доступом только на чтение.
  2. Фиксируйте префиксы промптов: Располагайте статичные правила в самом начале запроса, чтобы провайдер мог автоматически применить prompt caching (скидка до 90% на чтение контекста).
  3. Контролируйте максимальный лимит шагов (max iterations): Задавайте жесткий лимит на количество итераций (например, 15 шагов), чтобы предотвратить зацикливание агента при возникновении тупиковых ошибок.

Граничные случаи и частые ошибки

  • Ошибка: Отключение критических схем валидации. Если урезать описание схемы инструмента слишком сильно, модель начнет передавать невалидный JSON, что вызовет череду повторных запросов.
  • Ошибка: Слепое доверие заявлениям об экономии из соцсетей. Эффект оптимизации контекста зависит от структуры вашего репозитория и среднего размера файлов.
  • Ошибка: Отсутствие прозрачной телеметрии. При работе без раздельной статистики по input/cache токенам невозможно определить, срабатывает ли кэширование на стороне шлюза. Руководствуйтесь документацией BetterToken для корректной передачи заголовков и мониторинга вызовов.

Готовы оптимизировать LLM workflow?

Подключите единый API, управляйте ключами и контролируйте расходы на AI-модели в BetterToken.