Сегодня каждый второй стартап создаёт ИИ-агентов, оборачивая LLM в цикл: промпт → вызов инструмента (API, поиск) → чтение → ответ. Ожидается, что нейросеть сама найдёт баг, расследует инцидент или реализует фичу. Но на практике агенты часто галлюцинируют, ходят по кругу и застревают в бесконечных циклах.
Индустрия пытается решить это, наращивая контекст до миллионов токенов или добавляя в промпты фразы вроде «подумай шаг за шагом». Однако проблема может быть не в объёме контекста, а в самой архитектуре.
Я разработал измерительный стенд LOCK-R, применил теорему Байеса и выявил фундаментальные когнитивные искажения в поведении LLM-агентов. Результаты шокируют: одиночные агенты структурно неспособны к объективности, а Chain-of-Thought (CoT) не помогает — он заставляет модели красиво оправдывать свои ошибки.
Фундаментальная проблема: агент как предвзятый детектив
Представьте детектива, который в первую секунду решает: «Убийца — садовник». Дальше он ищет только улики против садовника, а алиби игнорирует. В психологии это называется подтверждающей предвзятостью (Confirmation Bias).
То же самое происходит в Single-Agent системах. Я называю это Confirmation Lock: модель сама выдвигает гипотезу, сама ищет данные, сама их интерпретирует и сама себя оценивает. В одном контекстном окне генератор и критик сливаются. Модель «влюбляется» в свою первую догадку и отказывается её пересматривать.
Как измерить мышление: стенд LOCK-R
Чтобы проверить это, я создал детерминированную среду — «детективную игру» с чёткими правилами:
- Три взаимоисключающие гипотезы: H1, H2, H3.
- Агент имеет строгий лимит — 4 вызова инструментов (поиск, проверка фактов).
- В начале даётся ложная подсказка, «якорящая» на H1.
- После каждого шага агент должен выдать JSON с распределением уверенности (например, H1: 40%, H2: 40%, H3: 20%).
Параллельно работает байесовский оракул — скрипт, который пересчитывает вероятности строго по математике. Разница между его выводами и выводами LLM — это Байесовский Регрет. Чем выше регрет, тем дальше модель от реальности.
Sanity Check: алгоритмический бот на Python показал 100% точность и нулевой регрет. Значит, проблема не в задаче, а в поведении нейросетей.
Я протестировал локальную Qwen3.5-9B и SOTA-модель GPT-5.4. Результаты выявили три ключевых инсайта.
Инсайт 1: эхо-камера инструментов (query collapse)
Агенты проваливаются не потому, что «не понимают логику», а потому что ужасно исследуют. Залоченные агенты в среднем используют только один уникальный инструмент и повторяют одни и те же запросы (tool_loop_repetition_rate — 68%).
Они находят один документ, косвенно подтверждающий их гипотезу, и перечитывают его снова и снова. Они боятся искать опровержения.
Когда я принудительно заставил агента читать разные источники (режим oracle_query_control), точность выросла с 25% до 85%.
Метрика упрямства: асимметрия в восприятии фактов
Я ввёл метрику α — коэффициент асимметрии подтверждения. Идеальный байесовский агент должен одинаково реагировать на подтверждение и опровержение (α = 0).
LLM-агенты оказались упрямыми оптимистами:
- На опровержение реагируют вяло: снижают уверенность всего на 5–10%.
- На малейшее подтверждение — резко поднимают уверенность до 90%.
Мы математически доказали: нейросети не умеют воспринимать критику своих собственных идей.
Инсайт 2: парадокс Chain-of-Thought
Вся индустрия считает, что Chain-of-Thought делает модели умнее. Я сравнил агентов с CoT (Thinking) и без (Non-Thinking).
Выявился парадокс:
- Когда агент исследует (ищет факты, планирует), CoT критически важен. Без него регрет достигает 2.26 — модель теряет фокус.
- Когда агент оценивает (взвешивает доказательства), CoT вредит. Модель использует «размышления» не для анализа, а для адвокатской защиты своей гипотезы. Она генерирует логически безупречные, но ложные объяснения, почему опровергающие улики «не имеют значения».
Chain-of-Thought — это не инструмент мышления, а инструмент самообмана.
Инсайт 3: решение — слепой судья
Если одиночный агент архитектурно сломан, как строить надёжные системы? Ответ — в асимметричном разделении ролей.
Я внедрил паттерн слепого судьи (blind checker):
- Это независимый агент-верификатор.
- Ему запрещено использовать CoT (режим non-thinking).
- Он физически не видит черновики и размышления основного агента.
- Он получает только сырые факты: гипотезы и результаты инструментов (логи, код).
Результат: Байесовский регрет упал с 1.47 (у соло-агента) до 0.09. Разделение на «Думающего исследователя» и «Бездумного судью-калькулятора» хирургически устраняет предвзятость.
Тест на реальных кейсах: ошибка 500 на проде
Критики скажут: «Это синтетика. В реальности всё иначе». Я проверил на реалистичном сценарии — CodeTriageEnv.
Ситуация: упала страница оплаты, ошибка 500.
Ложный якорь: «DevOps заметил скачок CPU в Redis».
Реальная причина: платежный шлюз обновил API и возвращает кривой JSON.
Агенты имели доступ к: grep_logs, read_code, view_commit.
- Одиночный агент: вцепился в Redis, игнорировал
JSONDecodeErrorв логах. Точность — 40%, регрет — 0.25. Совершил больше действий (2.8 инструмента), но все — ради оправдания первой гипотезы. Это парадокс суеты. - Слепой судья: хладнокровно проанализировал логи, увидел ошибку JSON, указал на шлюз. Точность — 100%, регрет — 0.07. Использовал 2.0 инструмента — все точно в цель.
Когда ваш ИИ-кодер делает десятки бесполезных коммитов, проблема не в непонимании кода. Он попал в Confirmation Lock.
Фронтир-модели не спасают
«А что если взять GPT-5.4?» — спросят многие. Я протестировал GPT-5.4 и GPT-5.3 через OpenRouter.
Да, у них ниже шум и базовый регрет. Но архитектурная уязвимость осталась. Включение CoT у GPT-5.4 удваивает ошибку (с 0.03 до 0.06). Масштабирование делает модели лучшими угадывателями, но не объективными судьями.
Даже миллиардные модели нуждаются в слепом судье.
Выводы
- Не стройте Single-Agent системы для критичных задач: аудит кода, RCA, юриспруденция.
- Chain-of-Thought — не панацея. Это мощный инструмент генерации и планирования, но катастрофический инструмент верификации.
- Будущее надёжного ИИ — за асимметричными пайплайнами: Thinking Explorer + Non-Thinking Judge.