Tvijo wiki
Каталог

Темы

Когда неизвестно, сколько стоил вызов модели: заморозка, затем сверка

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

🎯 Для Разработчик или оператор, который платит за вызовы моделей через API

📚 Вы узнаете
  • Почему неизвестную стоимость нельзя хранить как ноль
  • Как работают заморозка и сверка с именем человека
  • Какие сбои ничего не стоят, а какие остаются неопределёнными

❓ Проблема

Вы отправили запрос. Через тридцать секунд соединение оборвалось. Списали деньги или нет? Провайдер мог сгенерировать весь ответ, часть или ничего. Если в леджере ноль, ваши книги неверны в приятную сторону. Если догадка — неверны в неизвестную.

🧊 Правило: неизвестное остаётся неизвестным

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

С тремя видами сбоев поступают по-разному.

  • Отказ до генерации. Ошибка клиента, например отклонённый запрос или «нет денег на счёте», значит, что провайдер ничего не произвёл. Стоимость ноль, строка не неопределённая. Когда такой отказ записали как неопределённый, конвейер остановился на сутки без причины.
  • Таймаут или ошибка сервера. Провайдер мог выполнить работу. Строка остаётся неопределённой.
  • Списание выше резерва. Перед каждой задачей транспорт резервирует максимум. Если провайдер сообщает большую сумму, полоса замораживается до тех пор, пока человек не подтвердит разницу.

📋 Где мы сейчас

На 3 ноября 2026, 22:06 UTC в леджере было 10 150 строк. Открытых неопределённых строк без сверки: 0. Всего записано сверок: 2. Подтверждений превышения резерва: 1.

Подтверждение — хороший пример. Провайдер списал $0,08773 при резерве $0,08566, то есть превышение $0,00207, примерно пятая часть цента. Полоса оставалась замороженной, пока не проверили счёт и человек не записал решение. Сумма крошечная, а ценна здесь процедура: то же правило действует и тогда, когда сумма большая.

🛠️ Практика: добавьте заморозку в свою схему

  1. Храните стоимость числом или явным «неизвестно». Никогда не подставляйте ноль по умолчанию.
  2. Пишите по строке на каждую попытку, включая все повторы и переключения, с идентификатором запроса провайдера, если он есть.
  3. Классифицируйте сбои: отказ до генерации (ноль), таймаут или ошибка сервера (неизвестно), успех (стоимость по отчёту провайдера).
  4. Перед задачей резервируйте её максимальную стоимость. Отказывайте, если будет пройден дневной потолок.
  5. Когда строка неизвестна, блокируйте новые платные вызовы и пишите владельцу аккаунта.
  6. Сделайте короткую команду сверки: ей нужны id строки, фактическая сумма, причина и непустое имя. Логируйте её.

✅ Проверьте себя

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

🚧 Когда это не работает

  • У провайдера нет страницы активности. Если вы не видите, что списано, сверить нельзя. Считайте каждую неопределённую строку потраченной в размере резерва, пока не придёт счёт.
  • Отложенное выставление счёта. Часть списаний появляется на следующий день. Сверяйте после того, как выписка окончательна, а не при первом взгляде.
  • Общие аккаунты. Списания других пользователей на том же ключе выглядят как превышение. Используйте отдельные ключи на полосу.
  • Заморозка, которая блокирует слишком много. Заморозка всей системы из-за неопределённости на цент обходится дорого. Ограничивайте её полосой с неизвестным.
  • Человек как узкое место. Если сверить может один человек, полоса ждёт его. Назначьте заместителя.

📊 Доказательства

Что измерено Открытые неопределённые строки, сверки и подтверждения в леджере нашего измеряющего транспорта
Когда 3 ноября 2026, 22:06 UTC
Артефакт База данных леджера транспорта в нашем закрытом развёртывании: 10 150 строк, 0 открытых неопределённых, 2 сверки, 1 подтверждение
Ограничение Один леджер, одна команда. Суммы в примере малы и показаны ради процедуры

➡️ Дальше

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

Источники

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

100%
→ Связанные статьи← Ссылаются сюда⋯ Та же тема
Связи статей · клавиатура / текст

💬 Комментарии

Комментарии публичны и модерируются. Не публикуйте персональные данные.
  • Комментариев пока нет. Будьте первым!

Следующие шаги

ИИ-агенты и MCP простыми словами

Векторная база — это карта, а не источник: чему нас научил поиск

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

ИИ-агенты и MCP простыми словами

Как разбить большую задачу для дешёвой модели: урок 24 000 байт

Дешёвая модель хорошо справляется с одной небольшой чёткой задачей и плохо — с большой кучей. Мы ограничиваем задачу 24 000 байт и отклоняем большие до вызова любой модели. Режьте по единицам — один файл или одна страна на задачу — и проверяйте размер до запуска.

ИИ-агенты и MCP простыми словами

Навыки, MCP-инструменты и правила: три способа дать агенту возможности

Агенты получают способности по-разному. Правило ограничивает, что они делают, навык говорит, как делать работу, а MCP-инструмент позволяет вызывать функцию. У каждого свой риск, поэтому объявляйте все три в реестре и проверяйте тестом, что ничего не существует вне списка.

ИИ-агенты и MCP простыми словами

Восемь ошибок наших агентов в shell и git и правило на каждую

Агенты пишут команды shell быстро и уверенно, и часть сбоев повторяется. Вот восемь реальных ошибок октября 2026: что каждая сломала и какое одно правило мы написали после неё. Перенесите правила в инструкции своих агентов.