На бенчмарке AppWorld агент ReAct на базе GPT-4.1 показывает среднюю точность 77,4% по пяти запускам. Но если считать долю задач, где агент успешен во всех пяти повторах, результат падает до 53,0%. Разница в 24,4 процентного пункта — это не случайный шум, а системный разрыв между средней производительностью и повторяемостью. На сложных задачах он достигает 30 пунктов.
Стандартные бенчмарки почти всегда сообщают Mean@k: запускают задание k раз и усредняют долю успехов. Обычно k=3, иногда 1. Эта метрика отвечает на вопрос «насколько хорош агент в среднем», но не на вопрос «сработает ли он снова, если я повторю тот же запрос». Для второго нужна Pass^k — доля задач, где агент успешен во всех k запусках. Важно не путать её с Pass@k: последняя оптимистична и проверяет, успешен ли хотя бы один запуск из k, что уместно, когда результат можно проверить и повторить. Pass^k — пессимистичное зеркало: каждый запуск должен быть успешным. Всегда выполняется неравенство Pass^k ≤ Mean@k ≤ Pass@k.
| Метрика | Значение | Что измеряет |
|---|---|---|
| Mean@5 | 77,4% | Средняя доля успешных запусков по пяти попыткам |
| Pass^5 | 53,0% | Доля задач, успешных во всех пяти запусках |
| Разрыв согласованности | 24,4 п.п. | Разница между Mean@5 и Pass^5 |
| Разрыв после правил | 12,0 п.п. | Разрыв после применения consistency guidelines |
Причина нестабильности — форма распределения вероятностей на каждом шаге принятия решения. Когда агент выбирает API, аргумент или необходимость повтора, модель опирается на распределение следующего токена. «Острое» распределение концентрирует массу на одном варианте, и небольшой шум не меняет выбор. «Плоское» распределение размазывает вероятность между несколькими почти равными вариантами, и тогда даже незначительное возмущение — неассоциативность операций с плавающей запятой на GPU, батчинг запросов — может переставить лидеров. Поскольку траектория состоит из десятков таких решений, небольшой шанс переворота на каждом шаге накапливается в заметную вероятность, что весь запуск пойдёт иначе. Именно так возникает разрыв в 24 пункта.
Метрика Pass^k считает долю задач, где агент успешен во всех k запусках; на AppWorld она даёт 53% против 77,4% у Mean@5.

Проблема не решается настройками декодирования. Жадное декодирование и фиксированный seed управляют только тем, как распределение превращается в токен, но не самим распределением. На хостинговом эндпоинте вероятности слегка меняются от запуска к запуску, поэтому один и тот же промпт при temperature 0 может разрешить почти равный выбор по-разному сегодня и завтра. В описанной конфигурации агент ReAct работает при temperature 0.0, так что наблюдаемый разброс не связан с обычной сэмплировкой.
Чтобы находить такие уязвимые шаги, Hugging Face построил Consistency Analyzer. Инструмент пересэмплирует одну записанную траекторию агента, а не перезапускает задачу целиком. На каждом шаге он делает один вызов, запрашивая k вариантов завершения (по умолчанию k=5), и ищет точки, где модель была в одном сэмпле от другого решения. Для этого не нужен эталонный ответ — достаточно одной трассы.
Диагноз превращается в рекомендации: новый тип правил consistency guidelines в системе altk-evolve, которая ранее уже использовалась для извлечения переиспользуемых инструкций из прошлых траекторий агента. Правила, нацеленные на найденные точки, сокращают разрыв с 24,4 до 12,0 пункта. При этом Pass^5 для тех же задач растёт на 16,0 пункта, для похожих задач — на 13,0 пункта, а средняя точность не падает. Полная методология и оценки приведены в техническом отчёте на arXiv.
Для практики это означает смену вопроса. Если агент используется для сверки финансовой транзакции или проверки договора на обязательство, средняя точность не даёт гарантий: успех в одном запуске не означает успеха в следующем. Метрика Pass^k и диагностика почти равных решений позволяют оценивать и повышать именно повторяемость, не подменяя её усреднённым показателем.



