Перейти к содержимому

Управлять затратами

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

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

Цены берутся из каталога models.dev, который служит только для того, чтобы дополнить список моделей ценой и размером контекстного окна, — и никогда как источник идентификаторов моделей. Модель, для которой в каталоге нет цены, записывается как $0, а запуски с нулевой стоимостью исключаются из сводки Использование и стоимость. Поэтому локальная модель Ollama не показывает расходов вообще, хотя её счётчики токенов всё равно записываются. С тарифом с фиксированной платой (kimi-code, подписка Claude) дело обстоит так же, только если в каталоге нет цены для обслуживающей модели; если цена есть, стоимость запуска всё равно оценивается по этим расценкам. В цепочке резервных моделей стоимость запуска считается по модели, которая фактически его обслужила, а не по запрошенной.

Откройте её из нижней части боковой панели → Наблюдаемость. Сначала открывается вкладка Использование (итоги по токенам за всё время); переключитесь на Инсайты — вторую вкладку — чтобы попасть на основную поверхность затрат:

  • Выбор диапазона времени: последние 24 часа, последние 7 дней, последние 30 дней или за всё время
  • Фасетные фильтры по агенту, модели, статусу и роли в виде снимаемых чипов
  • Полоса KPI: всего запусков, общая стоимость, доля ошибок, доля кэша, токенов в секунду, средняя задержка и время до первого токена — у каждого показателя изменение относительно предыдущего периода (скрыто для «За всё время»)
  • Графики активности и стоимости, а также разбивка стоимость по ролям, распределяющая расходы между основным агентом, его субагентами и его Advisor
  • Таблица по агентам, отсортированная по стоимости: первые десять и переключатель «показать все». Нажатие на строку фильтрует все остальные поверхности по этому агенту
  • Подробный журнал запусков, который прикрепляет панель транскрипта для выбранного запуска

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

Настройки → Рабочее пространство → Агенты → выберите агента → Журнал перечисляет его запуски со статусом, длительностью, временем начала и завершения, PID и адаптером. Эта вкладка не показывает стоимость — для этого используйте таблицу по агентам в разделе Наблюдаемость → Инсайты.

Только у двух slash-команд, набранных в поле ввода пространства, есть потолок расходов:

/goal ship the auth refactor --budget 20
/loop keep the flaky tests green
  • Каждый сегмент запуска /goal или /loop останавливается, когда его оценённый расход достигает 500 центов ($5.00). На 80 % от этого порога цикл сначала направляет модель, чтобы она свернулась и оставила чистое состояние для передачи, — так он не умирает посреди задачи.
  • Вся долговечная цель ограничена 5000 центов ($50.00), если только вы не передадите --budget <dollars>. Супервизор прокидывает оставшийся бюджет цели в каждый сегмент, поэтому явный бюджет никогда не превышается на целый сегмент.
  • --days N добавляет срок по календарю, а --max N — потолок числа запусков. Оба включаются по желанию; без них цель ограничена только стоимостью.
  • Цель, упёршаяся в свою стену, останавливается в состоянии budgetExhausted, и продолжить её можно только повысив бюджет.

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

У сообщения в пространстве, @-упоминания или шага конвейера нет потолка расходов. Запуск заканчивается, когда останавливается модель, когда останавливаете его вы или когда его направляет ограничитель зацикливания.

Введите /compact в поле ввода пространства. Команда перехватывается на стороне клиента и никогда не попадает в транскрипт; сервер сворачивает старую историю в опорную сводку, и разговор продолжается на уплотнённом контексте.

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

Поле Усилие рассуждения агента (Настройки → Рабочее пространство → Агенты) предлагает те уровни, которые публикует выбранная модель. Более высокие уровни расходуют больше токенов рассуждений. Оставляйте верхние уровни для работы, которой они действительно нужны.

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

Искать запуски с непомерным числом токенов

Заголовок раздела «Искать запуски с непомерным числом токенов»

Откройте журнал запусков в разделе Инсайты (50 последних отфильтрованных запусков) и панель транскрипта для всего необычного. Частые причины — слишком длинный системный промпт или персона, контекст, который следовало уплотнить, и задача, которую стоило разбить на несколько меньших.

Что происходит, если бюджет задан в обход обычного пути

Заголовок раздела «Что происходит, если бюджет задан в обход обычного пути»

Для полноты картины: если monthlyBudgetCents или политика бюджета записаны напрямую в строку агента:

  • Бюджеты оцениваются после завершения запуска, а не перед диспетчеризацией. Слушатель завершения запуска сравнивает расход агента с начала месяца с его потолком.
  • Пересечение мягкого порога (по умолчанию 80 %) фиксирует инцидент-предупреждение и порождает событие BudgetThresholdCrossed, на которое можно повесить триггер конвейера.
  • Исчерпание бюджета фиксирует жёсткий инцидент, порождает то же событие и переводит статус жизненного цикла агента в paused.
  • Блок перед диспетчеризацией существует, но к нему обращаются только сборщик осиротевших запусков и согласователь застрявших тикетов при планировании восстановления — обычная диспетчеризация до него никогда не доходит, и ничто на пути диспетчеризации не проверяет статус paused. Единственный видимый сигнал — значок жизненного цикла на оргсхеме.