- Главная
- Искусственный интелект
- Сколько потрачено: стоимость API-вызовов
Сколько потрачено: стоимость API-вызовов
Мы уже знаем, что модель ничего не помнит, а всю «память» агента составляет контекст, который пересылается в каждом запросе. Но у пересылки контекста есть цена в прямом смысле слова: каждый токен на входе стоит денег. В этом уроке разберём, из чего складывается стоимость API-вызовов, как её отслеживать, как считать расходы по логам recorder и как держать бюджет под контролем.
Из чего складывается цена запроса
Вход и выход тарифицируются по-разному: выход обычно дороже входа в 3-4 раза. Логика проста: сгенерировать токен для модели «дороже», чем просто прочитать уже готовый. Но на практике решающую роль играет именно вход: у агента входные токены — это весь накопленный контекст, и его объём растёт с каждым шагом сессии.
стоимость запроса = входные_токены × цена_входа + выходные_токены × цена_выхода
Цены указываются, как правило, за миллион токенов. Например, «5 $ за миллион входных токенов» означает 0,000005 $ за один токен. Кажется, что это ничтожная сумма — и для одного запроса так и есть.
Но агент за сессию делает десятки и сотни запросов, и каждый следующий несёт весь накопленный контекст, поэтому из «копеек» быстро набегает ощутимая сумма.
Почему контекст удваивает расходы
Вспомним механику из предыдущих уроков этого курса: каждый шаг агента пересылает весь предыдущий контекст заново. Это значит, что один и тот же текст попадает в платный вход многократно. История на 50 000 токенов при тридцати шагах сессии — это не 50 000 платных токенов, а примерно 1,5 миллиона за всю сессию, потому что контекст пересылается на каждом шаге.
Эту особенность легко недооценить. Интуиция подсказывает: «я один раз показал агенту файл — он один раз и оплачен». На деле файл оплачивается столько раз, сколько шагов было после его чтения. Длинная сессия с «тяжёлым» контекстом стоит дороже, чем много коротких сессий с лёгким — именно поэтому управление контекстом напрямую управляет бюджетом.
| Сценарий | Входные токены за сессию | Относительная стоимость |
|---|---|---|
| 1 шаг, контекст 2 000 токенов | 2 000 | 1× |
| 10 шагов, контекст 10 000 токенов | ≈ 100 000 | ≈ 50× |
| 30 шагов, контекст 50 000 токенов | ≈ 1 500 000 | ≈ 750× |
Вывод из таблицы: стоимость сессии растёт примерно как произведение длины сессии на средний размер контекста. Сокращать можно любую из двух величин — и тем, и другим вы режете расходы.
Скрытые источники расхода
- Описания инструментов. Схемы доступных агенту инструментов отправляются в каждом запросе и занимают тысячи токенов. Чем больше инструментов подключено, тем дороже каждый шаг — даже если агент ими не пользуется.
- Системный промпт и инструкции проекта. Файлы вроде AGENTS.md, загружаемые при старте, присутствуют во всех запросах сессии. Разросшийся системный промпт — это постоянная надбавка к каждому шагу.
- Выводы команд и файлы. Результат теста на 500 строк или прочитанный файл на 2 000 строк остаются в истории и оплачиваются в каждом следующем запросе.
- Повторные попытки. Если агент совершил ошибку и повторяет операцию, вы платите за оба варианта: и за неудачный, и за успешный.
- Длинные ответы модели. Выходные токены дороже входных, поэтому болтливая модель с многословными ответами заметно увеличивает счёт.
Почти все эти источники — управляемые. Инструменты можно отключать, инструкции — сжимать, выводы — обрезать, а многословие модели — ограничивать настройками. Осознанность в этих мелочах даёт экономию, которую не даст никакая скидка провайдера.
Раз в неделю открывайте логи recorder и смотрите, какие записи занимают больше всего токенов. Обычно «рекордсмены» — это один-два огромных файла или вывода команды, которые агент прочитал по ходу дела. Удалите их из истории вручную или не давайте читать в следующий раз — и средний размер контекста заметно упадёт.
Как узнать цену модели
Цены различаются на порядки. Скромная модель может стоить доли цента за миллион токенов, а флагманская с длинным контекстом — в десятки раз дороже. При выборе модели для задачи цена играет роль, но не меньшую роль играет то, как модель расходует контекст: «дорогая, но аккуратная» модель, которая решает задачу за 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 $ за миллион это означает: короткий вопрос — доли цента, правка файла — меньше доллара, исследование — несколько долларов, крупная фича — десяток-другой долларов. Для ежедневной работы суммы небольшие, но в масштабе месяца и множества задач они складываются — и становятся управляемой, но заметной статьёй расходов.
Важное наблюдение: самая дорогая часть — не сам код, который агент пишет, а исследовательские шаги с большим контекстом. Именно поэтому в курсе так много внимания уделяется тому, чтобы не тянуть лишнее в контекст и не «исследовать» то, что уже известно.
Как контролировать бюджет
- Ставьте лимиты в настройках. Многие harness-ы и аккаунты провайдеров позволяют задать дневной или месячный лимит расхода. Выставите его заранее — это страховка от случайного «зависшего» агента, который крутит цикл и жжёт токены.
- Следите за статусной строкой. Если harness показывает расход контекста в реальном времени, держите эту цифру на виду — рост стоимости почти всегда следует за ростом контекста.
- Считайте стоимость после каждой сессии. Одна команда из раздела выше после завершения задачи — и вы всегда знаете цену. Накопите статистику по типам задач и сравнивайте.
- Начинайте новую сессию вовремя. Длинная сессия с раздутым контекстом — главный пожиратель бюджета. Своевременный переход в новую сессию с выжимкой (Handoff) экономит больше, чем любая другая привычка.
- Отключайте неиспользуемые инструменты. Каждый инструмент в схеме — это токены в каждом запросе. Оставляйте только то, что нужно текущей задаче.
- Используйте дешёвые модели для простых шагов. Черновики, перефразирование, извлечение данных — задачи, где флагманская модель не нужна, а цена отличается в разы.
Главный принцип: бюджетом управляет не «экономия на всём», а осознанность. Вы должны знать цену каждого типа действия и выбирать дешёвый путь там, где дорогой не даёт выигрыша в качестве.
Разумная экономия и ложная экономия
Когда начинаешь следить за деньгами, легко впасть в крайности. Разберём, где экономия оправдана, а где она бьёт по качеству и итоговой цене.
- Экономия на контексте — оправдана. Не давать агенту читать лишние файлы, обрезать выводы команд, чистить историю — это снижает и стоимость, и качество одновременно. Экономьте здесь смело.
- Экономия на модели — осторожно. Дешёвая модель, которая ошибается и делает лишние шаги, часто дороже дорогой, которая решает с первого раза. Сравнивайте не цену за токен, а цену за решённую задачу.
- Экономия на инструкциях — вредна. Урезать AGENTS.md или системный промпт до неузнаваемости, чтобы «сэкономить токены», — это ложная экономия: агент начинает хуже следовать правилам, ошибается, и правки ошибок съедают сэкономленное.
- Экономия на выжимках — вредна. Пропустить короткую запись итогов текущей сессии перед новой, чтобы «не тратить токены», оборачивается тем, что агент заново исследует уже изученное — и тратит в разы больше.
Правило простое: деньги экономят решения, которые уменьшают количество шагов и объём контекста без потери качества. Всё, что экономит токены ценой ясности, в итоге стоит дороже.
Типичные ошибки
- Считать, что «пара тысяч токенов» — это дёшево, и не замечать, что контекст пересылается на каждом шаге — реальный расход в десятки раз больше кажущегося.
- Оценивать стоимость по одному запросу вместо всей сессии — самый дорогой запрос в конце сессии несёт весь накопленный контекст.
- Не смотреть в логи recorder после задач — без цифр невозможно понять, что именно раздуло счёт.
- Экономить на инструкциях и выжимках, но спокойно позволять агенту бесконечно исследовать кодовую базу — главный источник невидимых расходов.
- Держать подключёнными все инструменты harness, даже те, что не нужны текущей задаче, — каждое описание инструмента оплачивается в каждом запросе.
- Не следить за лимитами бюджета, пока счёт не придёт, — один «зависший» агент за ночь может сжечь недельный лимит.
Ведите простую таблицу расходов: дата, тип задачи, модель, число шагов, потраченные токены и деньги. Уже через пару недель по ней видно, какие виды работ съедают бюджет, — и можно осознанно перенаправлять их на дешёвые модели или более короткие сессии. Таблица из десяти строк полезнее, чем любой тарифный калькулятор.
Итоги
Считать деньги нужно по логам recorder — это одна команда после каждой сессии, — а контролировать бюджет помогает комбинация лимитов, коротких сессий, аккуратного контекста и правильного выбора модели под задачу. Экономия должна идти через уменьшение шагов и контекста, а не через урезание ясности инструкций.
В следующем уроке перейдём к ещё одной причине, по которой управление контекстом критично: разберём, что такое галлюцинации, почему модели их порождают и как хороший контекст снижает их частоту.
Глоссарий
- API-вызов — один запрос к модели через API провайдера.
- Prompt tokens — токены на входе запроса: системный промпт, история, файлы, выводы команд.
- Completion tokens — токены, сгенерированные моделью в ответе.
- Тариф — цена модели за миллион входных и выходных токенов.
- Расход контекста — объём токенов, пересылаемых в запросах сессии.
- Recorder — инструмент записи запросов между агентом и моделью, источник данных о расходе токенов.
- jq — утилита командной строки для обработки JSON, удобная для подсчёта расходов по логам.
- Лимит бюджета — ограничение расхода, выставляемое в настройках harness или аккаунта провайдера.
- Handoff — сжатая передача состояния задачи в новую сессию, экономящая токены на повторном исследовании.
- Стоимость задачи — итоговая цена всех API-вызовов, потраченных на выполнение задачи.
- Ложная экономия — сокращение расходов ценой качества, приводящее к удорожанию задачи в итоге.