Агент сказал, что всё готово. База данных была против.

Источник: Hugging Face

Агент сказал, что всё готово. База данных была против.

Источник: Hugging Face
•Обновлено: 4 октября 2026 г.

Microsoft ThinkingBox оценивает ИИ-агентов по записям, которые они оставляют после себя, а не по генерируемым предложениям, а затем проверяет, смогут ли они сделать это двадцать раз подряд. Теперь инструмент доступен через Hugging Face.

Рисунок 1: ThinkingBox запускает агента в изолированных сеансах инструментов MCP, после чего оценивает состояние терминального бэкенда и побочные эффекты, оставленные им. Из нашей статьи о ThinkingBox.

Это совместный блог Microsoft и Hugging Face. Особая благодарность Томми Гаю (основатель Enderis AI, ранее Microsoft), Серхио Паниего из Hugging Face и нашим бывшим стажерам Чжочуню Ли (Питтсбургский университет), Али Керамате (Университет Калифорнии в Ирвайне), Янгмину Ко (Северо-Западный университет) за участие в написании и рецензировании.

Клиентка пишет в поддержку. Ее кухонный прибор стоимостью 745 долларов застрял в статусе «исключение» у курьерской службы в распределительном центре Нашвилла, уже через пятнадцать дней после предполагаемой даты доставки.

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

Затем он закрывает тикет как решенный и отвечает: «Поскольку ваш вопрос решен, могу ли я еще чем-нибудь вам помочь?»

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

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

Именно этот разрыв измеряет ThinkingBox. На примере 507 рабочих процессов с отслеживанием состояния, каждый из которых запущен 20 раз для различных моделей LLM, он оценивает агентов по состоянию терминального бэкенда и побочным эффектам. В этом посте рассказывается о том, что мы обнаружили, во сколько обходится стабильность и как запустить этот бенчмарк самостоятельно через OpenEnv.

Вы можете запустить его сами: приведенный выше пример взят из задачи бенчмарка sandbox_external_retail_group1.py:test_case_ST003_006, а исполняемая проверка, которая дает сбой, затрагивает всего одно поле — статус тикета имеет значение «решено», в то время как требуемое конечное состояние — «на удержание». Полная трассировка доступна в Appendix D.4, Case 3 of our paper.

Содержание

  • Вызов инструмента — это еще не результат
  • Один успешный результат — не показатель надежности
  • Можно ли полагаться на модель, лежащую в основе вашего агента?
  • Во сколько обходится стабильность
  • Характерные признаки сбоев
  • Как это работает
  • Запустите самостоятельно
  • Куда это движется дальше
Хотите попробовать до прочтения результатов? Перейдите к разделу «Запустите самостоятельно».

Хотите попробовать до прочтения результатов? Перейдите к разделу «Запустите самостоятельно».

Вызов инструмента — это еще не результат

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

Разрыв весьма существенен. В исследовании методом абляции на общем наборе данных, охватывающем 121 680 валидных запусков для 12 моделей LLM, 79 853 попытки не прошли исполняемые проверки. Из этих неудачных попыток 67,24% тем не менее завершились корректно, вызвали инструмент, изменяющий состояние, и не сообщили об ошибке финального инструмента. Тем не менее проверки состояния выявили неверные значения полей в 77,61% случаев, непредвиденные дополнительные эффекты в 43,30% и отсутствие необходимых эффектов в 25,36%. Эти результаты проверок состояния частично пересекаются.

Траектория — это утверждение. Состояние базы данных — это доказательство. Повторяемость — это проверка на доверие.

Траектория — это утверждение. Состояние базы данных — это доказательство. Повторяемость — это проверка на доверие.

Один успешный результат — не показатель надежности

Агент, который правильно обрабатывает возврат один раз и ошибается в следующих четырех случаях, не является работающим агентом по возвратам. Поэтому каждая задача запускается 20 раз независимо, каждый раз с идентичного чистого бэкенда, и мы фиксируем три разных показателя:

Таблица 1: Три показателя, которые мы публикуем, и вопрос, на который отвечает каждый из них.

В этом посте мы используем метрику 20/20 как буквальный подсчет того, сколько из 507 задач успешно прошли все 20 попыток из 20. Никаких оценщиков, никакого сглаживания.

Начнем с привычного представления. В таблице ниже приведен показатель pass@1 (оценка успешности с одной попытки), разбитый по доменам. Это цифра, которую публикуют большинство таблиц лидеров, и сама по себе она выглядит как обычный рейтинг возможностей.

Таблица 2: Pass@1 (%) ThinkingBox-Bench в разрезе доменов. Каждая модель оценивается по каждой задаче за 20 повторяющихся попыток. Жирным шрифтом отмечен лидер группы, подчеркиванием — занявший второе место. Стандартные ошибки для оценок результатов с одной попытки приведены в .

Claude Opus 5.5 лидирует в общем зачете с показателем 67,16%, опережая Claude Opus 5 на две трети пункта. Kimi-K3 является сильнейшей моделью с открытыми весами, отставая от GPT-6-Astra менее чем на пункт. Домен имеет не меньшее значение: Claude Opus 4.6 набирает 68,62% в ритейле, но всего 8,30% в автостраховании.

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

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

Рисунок 2: Какая часть показателя однократного запуска сохраняется у каждой модели после 20 повторов.

Лишь три модели удерживают большую часть своих результатов pass@1: GPT-6 Astra сохраняет 78% своего показателя с одной попытки, а Claude Opus 5.5 и Claude Opus 5 сохраняют по 71%. На другом конце спектра находятся GLM-5.1, Kimi-K2.6 и DeepSeek-V4-Pro, сохраняющие около 8%.

Разрыв между тем, что модель может сделать один раз, и тем, что она делает каждый раз — это и есть вся суть.

Можно ли полагаться на модель, лежащую в основе вашего агента?

Рисунок 3: Широта возможностей и стабильность расходятся. Показаны двенадцать из восемьдесят моделей; шесть моделей с показателем pass@1 ниже 33% опущены для читаемости.

Kimi-K3 обладает самым широким охватом среди всех протестированных нами моделей. Она решает 93,89% бенчмарка хотя бы один раз: 476 задач из 507. Лишь 31 задача оказывается ей совсем не по зубам — это наименьший показатель среди всех. В рабочих процессах ритейла она уверенно лидирует с показателем pass@1 на уровне 82,24%, опережая каждую проприетарную модель.

При этом Kimi-K3 входит в число наименее стабильных. Лишь 68 из 507 задач (13,41%) выполняются успешно во всех 20 попытках.

Claude Opus 5 демонстрирует противоположную картину. Она решает меньше задач хотя бы один раз (79,09%; 106 задач ей не поддаются вообще), но зато завершает 47,53% бенчмарка при каждой попытке.

Более новая модель не решает эту проблему. Claude Opus 5.5 набирает больше баллов, чем Claude Opus 5, в среднем по всем попыткам (67,16% против 66,50%) и решает больше задач хотя бы один раз. Она проходит ровно такое же количество задач во всех 20 попытках: 241. Половина процента прироста общей точности не принесла абсолютно никакой дополнительной надежности.

  • Kimi-K3 решает на 75 задач больше хотя бы один раз по сравнению с Opus 5.
  • Opus 5 решает на 173 задачи больше стабильно по сравнению с Kimi-K3.

Если вы выбираете модель для работы, затрагивающей реальные записи, pass@20 — это совсем не та колонка, на которую стоит смотреть.

Во сколько обходится стабильность

Сравнения возможностей обычно ограничиваются итоговым баллом. Для любого разработчика, внедряющего решение, важным вопросом является стоимость успешной единицы работы. Мы измеряем ее как стоимость одной успешной попытки выполнения задачи. Мы говорим «попытка выполнения задачи», потому что каждая задача бенчмарка запускается повторно, и затраты возникают на каждую попытку, поэтому pass@1 выступает в роли соответствующего знаменателя качества.

Мы взяли зафиксированные данные об использовании токенов для каждой модели из полной кампании из 507 × 20 запусков и оценили их по стандартным прайс-листам без скидок, доступным на OpenRouter, отменив промо-скидки и исключив эндпоинты, заявляющие квантование. Тарифы для входящих, исходящих токенов и кэша берутся из расчёта одного эндпоинта провайдера на модель.

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

Стоимость одной успешной попытки выполнения задачи = расчетная стоимость для 507 попыток, по одной на задачу ÷ (507 × pass@1)

Стоимость одной успешной попытки выполнения задачи = расчетная стоимость для 507 попыток, по одной на задачу ÷ (507 × pass@1)

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

Пример: GPT-5.4 стоит $43,49 за 507 попыток (по одной попытке на задачу) и имеет показатель pass@1 на уровне 65,36%, то есть $43,49 ÷ (507 × 0,6536) = $0,131 за одну успешную попытку выполнения задачи.

Граница затрат Парето

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

Рисунок 4: Стоимость одной успешной попытки выполнения задачи в зависимости от pass@1. Обведенные точки — это модели, находящиеся на границе затрат Парето.

Граница состоит из трех шагов. У GPT-5.6 Sol самая низкая стоимость одного успешного выполнения — $0,127; GPT-5.4 поднимает показатель pass@1 на 3,45 процентных пункта за дополнительные $0,004 за успешное выполнение; Claude Opus 5.5 добавляет еще 1,80 пункта при стоимости $0,276 за успешное выполнение. Каждая из этих трех моделей остается на линии границы затрат, поскольку ни одна более дешевая модель не соответствует ее уровню pass@1.

Claude Opus 5 — наиболее очевидный пример: при стоимости $0,475 за успешную попытку и показателе pass@1 66,50% она является одновременно более дорогой и менее точной, чем Claude Opus 5.5 со стоимостью $0,276 и показателем 67,16%.

Теперь оцениваем стабильность

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

Стоимость надежного выполнения задачи = расчетная стоимость 20 запусков по 507 попыток ÷ задач, успешно пройденных 20 из 20 раз

Стоимость надежного выполнения задачи = расчетная стоимость 20 запусков по 507 попыток ÷ задач, успешно пройденных 20 из 20 раз

Пример: GPT-6-Astra стоит 20 × $86,03 = $1 720,60 за всю кампанию и успешно выполняет 231 задачу в каждой попытке, то есть $1 720,60 ÷ 231 = $7,45 за надежно выполненную задачу.

Таблица 3: Девять самых низких показателей стоимости надежного выполнения задачи среди моделей, имеющих хотя бы одну успешно пройденную задачу (20/20), отсортированные по возрастанию. Расчетные долларовые суммы, а не реальные счета от облачных провайдеров.

Теперь ранжируем по стабильности. GPT-5.4 является самой дешевой со стоимостью $6,80, хотя этот порог преодолевают лишь 128 задач. GPT-6 Astra достигает 231 задачи при стоимости $7,45, а Claude Opus 5.5 показывает разделенный с лидером максимум в 241 задачу при стоимости $7,80.

Ни одна из трех моделей не доминирует над остальными: каждая дополнительная надежно решенная задача стоит дороже. Claude Opus 5 также справляется с 241 задачей, но обходится в $13,30, поэтому Opus 5.5 полностью превосходит ее. GPT-5.6 Sol, самая дешевая в расчете на отдельный успешный запуск ($0,127), стоит $9,76 в расчете на надежное выполнение задачи. Самый дешевый способ получить правильный ответ — не самый дешевый способ получить надежный результат.

Характеристики сбоев

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

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

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

Сложность также различается в зависимости от домена: среди моделей, перечисленных в Таблице 2 выше, в розничной торговле средний показатель pass@1 составляет 59,52%, тогда как в автостраховании — 33,83%.

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

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

Как это работает

ThinkingBox — это песочница для агентов, а ThinkingBox-Bench — датасет-бенчмарк для оценки агентов. На схеме в верхней части этой статьи показан цикл работы; вот что делает каждый его компонент.

Рисунок 5: Цикл песочницы из панели А на Рисунке 1 выше: изолированная сессия инструментов, состояние базы данных терминала, побочные эффекты, исполняемые оценщики.

Каждая задача определяет начальное состояние бэкенда, цель пользователя, доступные инструменты MCP, политику домена и исполняемые проверки терминального состояния. Смоделированный пользователь хранит конфиденциальный контекст (номер бронирования, предпочтение или дату рождения) и сообщает его только по запросу.

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

В конце компонент извлечения побочных эффектов определяет, что именно изменилось, а детерминированные оценщики сравнивают это с требуемым конечным состоянием, принимая любую траекторию, которая приводит к правильному результату, и отклоняя неверные, отсутствующие или лишние эффекты. Для требований без четкого значения в базе данных («сообщил ли агент, что это не гарантируется?») семантику обрабатывает узкий бинарный вопрос по рубрикатору. 477 задач из 507 оцениваются исключительно по состоянию; 30 задач добавляют рубрикаторы ответов.

Граница доверия: модель видит задачи, диалог и схемы инструментов. Идеальное состояние, утверждения, внутренние механизмы оценки и учетные данные остаются на стороне оценщика.

Запустите самостоятельно

ThinkingBox теперь доступен на Hugging Face, включая и обертку (harness), и датасет. ThinkingBox-Bench теперь работает через интерфейс OpenEnv, и каждый завершенный эпизод возвращает бинарную награду за успех/неудачу. Выпущенный адаптер предназначен для оценки; отдельные сценарии, не входящие в бенчмарк, могут использовать тот же интерфейс в процессах обучения.

Перед началом

Протестировано на Linux и WSL, с Python 3.11+, uv и Docker. Вам также потребуется клонированный репозиторий thinkingbox-data с зафиксированным релизом и эндпоинтами моделей для агента, смоделированного пользователя и судьи. Один эндпоинт может выполнять все три роли, что является самым простым способом начать. Образ OpenEnv запускает только API OpenEnv; все остальное вы запускаете самостоятельно.

Установка

Запустите Typesense

Во втором терминале запустите Typesense 30.1 и дождитесь успешного прохождения проверки работоспособности:

Запустите серверы MCP

В третьем терминале запустите прокси сессий и серверы MCP.

Запустите сервер OpenEnv

Вернувшись в первый терминал, запустите сервер OpenEnv с конфигурацией ThinkingBox в формате YAML, указав ваши три модели (руководство по конфигурации):

Проверка готовности

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

Оценить эпизод

Теперь оцените настоящий эпизод. example_usage.py только сбрасывает настройки и выводит список инструментов; для действий агента, эффектов и утверждений используйте упакованный оценщик:

Адаптер OpenEnv записывает операционные сбои в побочный файл ошибок (sidecar), чтобы их можно было перезапустить, а не смешивать молча с результатами модели. Канонический результат должен разрешать такие попытки или явно учитывать их; мы считали системные ошибки неуспешными испытаниями.

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

Куда это движется дальше

Полезная часть этой работы — не наша таблица лидеров pass@1. Это среда.

Если вы оцениваете агента, который работает с реальными записями:

  • Изучите сбой. Найдите запуск, который завершился корректно и все равно потерпел неудачу, и посмотрите, что именно изменилось в базе данных. Это меняет представление о том, что измеряют ваши собственные тесты.
  • Воспроизведите одну задачу через OpenEnv с вашей собственной моделью.
  • Сообщите метрику повторения и дайте ей определение. Какое бы $k$ ни оправдывал ваш сценарий использования; укажите, сообщаете ли вы best-of-k или every-of-k, и как вы это вычислили.

Дополнительную информацию можно найти по следующим ссылкам:

  • Окружение:
  • OpenEnv: https://huggingface.co/docs/openenv/environments/thinkingbox
  • Фреймворк: microsoft/thinkingbox · tutorial
  • Бенчмарк: · v1.0 release
  • Просмотр набора данных: microsoft/ThinkingBox-Bench
  • Статья: или HF
  • Обучение с подкреплением (скоро): microsoft/thinkingbox-training

Код ThinkingBox распространяется под лицензией MIT; данные бенчмарка — CDLA-Permissive-2.0; среда OpenEnv поставляется под лицензией BSD-3-Clause от OpenEnv.

Отказ от ответственности: каждая задача в общедоступном бенчмарке является синтетической реконструкцией. Рабочие процессы и политики смоделированы на основе реальных корпоративных паттернов ИИ-агентов; клиенты не являются реальными.

ThinkingBox и ThinkingBox-Bench созданы командой Microsoft Copilot Studio в партнерстве с Toloka при участии исследователей из Университета Питтсбурга, Северо-Западного университета, Колумбийского университета и Калифорнийского университета в Ирвайне, проходивших стажировку в Microsoft. Вопросы приветствуются в разделе комментариев ниже или на github

Срез стоимости OpenRouter сделан 20 сентября 2026 года; цены Opus 5.5 указаны согласно сайту Anthropic.

О чём эта статья

Что-то непонятно? Спросите по статье — объясню простыми словами.

Не хотите разбираться сами? Мы поможем.

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от Hugging Face