Хотите заказать веб-сайт? Связаться с нами

Сколько потрачено: стоимость API-вызовов

Мы уже знаем, что модель ничего не помнит, а всю «память» агента составляет контекст, который пересылается в каждом запросе. Но у пересылки контекста есть цена в прямом смысле слова: каждый токен на входе стоит денег. В этом уроке разберём, из чего складывается стоимость API-вызовов, как её отслеживать, как считать расходы по логам recorder и как держать бюджет под контролем.

Сколько потрачено: стоимость API-вызовов

Из чего складывается цена запроса

Провайдеры моделей продают доступ к LLM не «за штуку», а за токены. Цена каждого запроса складывается из двух частей: токены на входе (prompt tokens) и токены на выходе (completion tokens). Вход — это весь контекст, который вы отправили: системный промпт, история сессии, содержимое файлов, выводы команд. Выход — это то, что модель сгенерировала в ответе.

Вход и выход тарифицируются по-разному: выход обычно дороже входа в 3-4 раза. Логика проста: сгенерировать токен для модели «дороже», чем просто прочитать уже готовый. Но на практике решающую роль играет именно вход: у агента входные токены — это весь накопленный контекст, и его объём растёт с каждым шагом сессии.

стоимость запроса = входные_токены × цена_входа + выходные_токены × цена_выхода

Цены указываются, как правило, за миллион токенов. Например, «5 $ за миллион входных токенов» означает 0,000005 $ за один токен. Кажется, что это ничтожная сумма — и для одного запроса так и есть.

Но агент за сессию делает десятки и сотни запросов, и каждый следующий несёт весь накопленный контекст, поэтому из «копеек» быстро набегает ощутимая сумма.

Почему контекст удваивает расходы

Вспомним механику из предыдущих уроков этого курса: каждый шаг агента пересылает весь предыдущий контекст заново. Это значит, что один и тот же текст попадает в платный вход многократно. История на 50 000 токенов при тридцати шагах сессии — это не 50 000 платных токенов, а примерно 1,5 миллиона за всю сессию, потому что контекст пересылается на каждом шаге.

Эту особенность легко недооценить. Интуиция подсказывает: «я один раз показал агенту файл — он один раз и оплачен». На деле файл оплачивается столько раз, сколько шагов было после его чтения. Длинная сессия с «тяжёлым» контекстом стоит дороже, чем много коротких сессий с лёгким — именно поэтому управление контекстом напрямую управляет бюджетом.

Сценарий Входные токены за сессию Относительная стоимость
1 шаг, контекст 2 000 токенов 2 000
10 шагов, контекст 10 000 токенов ≈ 100 000 ≈ 50×
30 шагов, контекст 50 000 токенов ≈ 1 500 000 ≈ 750×

Вывод из таблицы: стоимость сессии растёт примерно как произведение длины сессии на средний размер контекста. Сокращать можно любую из двух величин — и тем, и другим вы режете расходы.

Скрытые источники расхода

Кроме очевидной цены токенов, есть расходы, которые новички замечают не сразу. Они не видны в прайсе, но именно они раздувают счёт.
  1. Описания инструментов. Схемы доступных агенту инструментов отправляются в каждом запросе и занимают тысячи токенов. Чем больше инструментов подключено, тем дороже каждый шаг — даже если агент ими не пользуется.
  2. Системный промпт и инструкции проекта. Файлы вроде AGENTS.md, загружаемые при старте, присутствуют во всех запросах сессии. Разросшийся системный промпт — это постоянная надбавка к каждому шагу.
  3. Выводы команд и файлы. Результат теста на 500 строк или прочитанный файл на 2 000 строк остаются в истории и оплачиваются в каждом следующем запросе.
  4. Повторные попытки. Если агент совершил ошибку и повторяет операцию, вы платите за оба варианта: и за неудачный, и за успешный.
  5. Длинные ответы модели. Выходные токены дороже входных, поэтому болтливая модель с многословными ответами заметно увеличивает счёт.

Почти все эти источники — управляемые. Инструменты можно отключать, инструкции — сжимать, выводы — обрезать, а многословие модели — ограничивать настройками. Осознанность в этих мелочах даёт экономию, которую не даст никакая скидка провайдера.

Раз в неделю открывайте логи recorder и смотрите, какие записи занимают больше всего токенов. Обычно «рекордсмены» — это один-два огромных файла или вывода команды, которые агент прочитал по ходу дела. Удалите их из истории вручную или не давайте читать в следующий раз — и средний размер контекста заметно упадёт.

Как узнать цену модели

Прежде чем считать расходы, нужно знать, сколько стоит конкретная модель. Откуда берутся цифры? Из официальных страниц тарифов провайдеров: у каждого сервиса есть раздел pricing, где указаны цены за миллион входных и выходных токенов для каждой модели.

Цены различаются на порядки. Скромная модель может стоить доли цента за миллион токенов, а флагманская с длинным контекстом — в десятки раз дороже. При выборе модели для задачи цена играет роль, но не меньшую роль играет то, как модель расходует контекст: «дорогая, но аккуратная» модель, которая решает задачу за 5 шагов, может оказаться дешевле «дешёвой», которой нужно 30 шагов.

Храните цены своих моделей в одном месте — например, в таблице или в заметке. Это пригодится и для ручного расчёта, и для настройки автоматического подсчёта, о котором речь дальше.

Считаем расходы по логам recorder

Проще всего считать деньги не вручную, а по записям recorder. Напомним: каждая строка журнала — это один запрос с полем usage, где лежат числа токенов. Остаётся умножить их на цены модели и сложить по всем строкам.

Сделаем это утилитой jq. Предположим, входные токены стоят 3 $ за миллион, а выходные — 15 $ за миллион. Тогда стоимость каждого запроса в долларах считается так:

jq -r "[.timestamp, .model,
  (.usage.prompt_tokens/1000000*3 +
   .usage.completion_tokens/1000000*15)] | @tsv" requests.log

А полная стоимость всей сессии — суммированием по всем строкам:

jq -s "map(.usage.prompt_tokens/1000000*3 +
            .usage.completion_tokens/1000000*15) | add" requests.log

Многие recorder-ы считают стоимость автоматически и кладут её в поле cost — тогда расчёт сводится к одному суммированию. Но даже при ручном подходе формула выше занимает одну команду, поэтому считать расходы после каждого упражнения — вопрос пары секунд.

Не считайте стоимость вручную каждый раз — сделайте мини-скрипт или bash-алиас, который принимает файл журнала и выводит итог по токенам и деньгам. Одна команда после сессии — и вы всегда знаете, во что обошлась задача. Со временем соберёте собственную таблицу тип задачи → средняя стоимость, которая станет основой для прогноза бюджета.

Сколько стоит типичная задача

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

Тип задачи Шагов Средний контекст Расход токенов
Короткий вопрос агенту 2-3 5 000 ≈ 15 000
Правка одного файла 8-15 20 000 ≈ 250 000
Исследование кодовой базы 20-40 50 000 ≈ 1,5 млн
Крупная фича с тестами 50-100 60 000 ≈ 4-6 млн

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

Важное наблюдение: самая дорогая часть — не сам код, который агент пишет, а исследовательские шаги с большим контекстом. Именно поэтому в курсе так много внимания уделяется тому, чтобы не тянуть лишнее в контекст и не «исследовать» то, что уже известно.

Как контролировать бюджет

Знать, сколько потрачено, — половина дела. Вторая половина — не дать расходам выйти из-под контроля. Вот практические приёмы, которые работают независимо от провайдера.
  1. Ставьте лимиты в настройках. Многие harness-ы и аккаунты провайдеров позволяют задать дневной или месячный лимит расхода. Выставите его заранее — это страховка от случайного «зависшего» агента, который крутит цикл и жжёт токены.
  2. Следите за статусной строкой. Если harness показывает расход контекста в реальном времени, держите эту цифру на виду — рост стоимости почти всегда следует за ростом контекста.
  3. Считайте стоимость после каждой сессии. Одна команда из раздела выше после завершения задачи — и вы всегда знаете цену. Накопите статистику по типам задач и сравнивайте.
  4. Начинайте новую сессию вовремя. Длинная сессия с раздутым контекстом — главный пожиратель бюджета. Своевременный переход в новую сессию с выжимкой (Handoff) экономит больше, чем любая другая привычка.
  5. Отключайте неиспользуемые инструменты. Каждый инструмент в схеме — это токены в каждом запросе. Оставляйте только то, что нужно текущей задаче.
  6. Используйте дешёвые модели для простых шагов. Черновики, перефразирование, извлечение данных — задачи, где флагманская модель не нужна, а цена отличается в разы.

Главный принцип: бюджетом управляет не «экономия на всём», а осознанность. Вы должны знать цену каждого типа действия и выбирать дешёвый путь там, где дорогой не даёт выигрыша в качестве.

Разумная экономия и ложная экономия

Когда начинаешь следить за деньгами, легко впасть в крайности. Разберём, где экономия оправдана, а где она бьёт по качеству и итоговой цене.

  1. Экономия на контексте — оправдана. Не давать агенту читать лишние файлы, обрезать выводы команд, чистить историю — это снижает и стоимость, и качество одновременно. Экономьте здесь смело.
  2. Экономия на модели — осторожно. Дешёвая модель, которая ошибается и делает лишние шаги, часто дороже дорогой, которая решает с первого раза. Сравнивайте не цену за токен, а цену за решённую задачу.
  3. Экономия на инструкциях — вредна. Урезать AGENTS.md или системный промпт до неузнаваемости, чтобы «сэкономить токены», — это ложная экономия: агент начинает хуже следовать правилам, ошибается, и правки ошибок съедают сэкономленное.
  4. Экономия на выжимках — вредна. Пропустить короткую запись итогов текущей сессии перед новой, чтобы «не тратить токены», оборачивается тем, что агент заново исследует уже изученное — и тратит в разы больше.

Правило простое: деньги экономят решения, которые уменьшают количество шагов и объём контекста без потери качества. Всё, что экономит токены ценой ясности, в итоге стоит дороже.

Типичные ошибки

  1. Считать, что «пара тысяч токенов» — это дёшево, и не замечать, что контекст пересылается на каждом шаге — реальный расход в десятки раз больше кажущегося.
  2. Оценивать стоимость по одному запросу вместо всей сессии — самый дорогой запрос в конце сессии несёт весь накопленный контекст.
  3. Не смотреть в логи recorder после задач — без цифр невозможно понять, что именно раздуло счёт.
  4. Экономить на инструкциях и выжимках, но спокойно позволять агенту бесконечно исследовать кодовую базу — главный источник невидимых расходов.
  5. Держать подключёнными все инструменты harness, даже те, что не нужны текущей задаче, — каждое описание инструмента оплачивается в каждом запросе.
  6. Не следить за лимитами бюджета, пока счёт не придёт, — один «зависший» агент за ночь может сжечь недельный лимит.

Ведите простую таблицу расходов: дата, тип задачи, модель, число шагов, потраченные токены и деньги. Уже через пару недель по ней видно, какие виды работ съедают бюджет, — и можно осознанно перенаправлять их на дешёвые модели или более короткие сессии. Таблица из десяти строк полезнее, чем любой тарифный калькулятор.

Итоги

Стоимость работы ИИ-агента складывается из цены за токены: вход оплачивается за весь пересылаемый контекст, выход — за сгенерированный ответ, а поскольку контекст пересылается на каждом шаге, реальный расход в разы превышает «разовый» размер истории.

Считать деньги нужно по логам recorder — это одна команда после каждой сессии, — а контролировать бюджет помогает комбинация лимитов, коротких сессий, аккуратного контекста и правильного выбора модели под задачу. Экономия должна идти через уменьшение шагов и контекста, а не через урезание ясности инструкций.

В следующем уроке перейдём к ещё одной причине, по которой управление контекстом критично: разберём, что такое галлюцинации, почему модели их порождают и как хороший контекст снижает их частоту.

Глоссарий

  1. API-вызов — один запрос к модели через API провайдера.
  2. Prompt tokens — токены на входе запроса: системный промпт, история, файлы, выводы команд.
  3. Completion tokens — токены, сгенерированные моделью в ответе.
  4. Тариф — цена модели за миллион входных и выходных токенов.
  5. Расход контекста — объём токенов, пересылаемых в запросах сессии.
  6. Recorder — инструмент записи запросов между агентом и моделью, источник данных о расходе токенов.
  7. jq — утилита командной строки для обработки JSON, удобная для подсчёта расходов по логам.
  8. Лимит бюджета — ограничение расхода, выставляемое в настройках harness или аккаунта провайдера.
  9. Handoff — сжатая передача состояния задачи в новую сессию, экономящая токены на повторном исследовании.
  10. Стоимость задачи — итоговая цена всех API-вызовов, потраченных на выполнение задачи.
  11. Ложная экономия — сокращение расходов ценой качества, приводящее к удорожанию задачи в итоге.

Теги: