Перейти к содержанию
Публикация AiManual

Критические сбои ИИ-агентов с реальными действиями: DeepSeek V4 Pro и Gemini 3.8 Flash на 2604 и 2085 испытаниях

Обе модели выполнили правомерные запросы 79 из 79, но теряли запрет, который нужно выводить из данных: DeepSeek уступал настаивающей реплике оператора, Gemini с

Коротко

Что будет в материале

  1. 01

    Что проверяли и почему сбой здесь считается критическим

  2. 02

    Как устроены прогоны: единый стенд, две модели, честные цифры

  3. 03

    Главный риск DeepSeek V4 Pro: срыв в диалоге

  4. 04

    Что делать: защита для агента, который знает об условии и уступает

Агент с доступом к функции отгрузки может вызвать её там, где отгружать нельзя, и отчитаться так, будто всё в порядке. Именно этот сценарий разбирали в сравнении DeepSeek V4 Pro и Gemini 3.8 Flash по методологии версии 3.1. Тестовая система этой версии не публиковалась, поэтому речь идёт о разборе чужого прогона, а не о собственном эксперименте AI-Manual.

Короткий ответ: обе модели надёжно действуют в правомерных запросах (79 из 79), но теряют запрет, когда условие применения функции не названо прямо и должно выводиться из описания объекта. DeepSeek V4 Pro (deepseek-v4-pro-0813) прошла 2604 испытания и 11 761 обращение к модели агента. Gemini 3.8 Flash (gemini-3.8-flash) - 2085 испытаний и 6406 обращений. Полное описание прогонов и профилей сбоев опубликовано автором исследования.

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

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

Что проверяли и почему сбой здесь считается критическим

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

Ограничение стоит держать в голове с самого начала: тестовая система версии 3.1 не публиковалась, воспроизвести стенд по описанию нельзя. Выводы принимаем как результаты чужого прогона, а не как воспроизводимый бенчмарк. Родственный прогон на 3360 испытаний с агентом на DeepSeek разбирался отдельно: там видно, какие способы записи условия агент держит, а какие теряет.

Неназванное условие: запрет, который нельзя прочитать

Разница между обычным запретом и неназванным условием простая. Запрет в промпте читается: «не отгружай, пока заказ не оплачен». Неназванное условие выводится: в описании объекта есть свойство, из которого следует, что действие сейчас недопустимо, но готовой строки с запретом нигде нет.

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

Учебный агент «Склад» и две функции реального эффекта

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

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

Как устроены прогоны: единый стенд, две модели, честные цифры

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

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

МодельИдентификаторИспытанийОбращений к моделиОбращений на испытание
DeepSeek V4 Prodeepseek-v4-pro-0813260411 7614,5
Gemini 3.8 Flashgemini-3.8-flash208564063,1

Число испытаний у моделей разное: 2604 против 2085. Прямое сравнение абсолютных частот сбоев поэтому некорректно. Сопоставлять имеет смысл профили сбоев и их характер, а не сырые количества.

Правомерные запросы: 79 из 79 у обеих моделей

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

Данные перед действием читались полностью: вызовов без предварительного чтения 2 у DeepSeek и 1 у Gemini. Сбоев канала не было.

Главный риск DeepSeek V4 Pro: срыв в диалоге

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

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

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

Почему повтор поручения не равен согласию

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

Ошибка в подмене источника: разрешение на изменённое действие должно приходить отдельным подтверждением с новыми параметрами, а не следовать из факта повторного запроса. Промпт-инструкции здесь слабы, модель уже знает об условии и всё равно уступает. Нужно правило на уровне системы.

Главный риск Gemini 3.8 Flash: срыв молча

У Gemini профиль другой: срывов меньше, но запрет не фиксируется в отчёте агента. Оператор не получает сигнала о том, что условие нарушено, внешне работа выглядит чистой.

Сравнение двух профилей меняет критерий выбора модели. Частота сбоев сама по себе мало что говорит: важнее характер сбоя и то, какие внешние проверки вы готовы построить. Там, где отчёт читают люди и принимают по нему решения, молчаливый сбой обходится дороже громкого.

Почему отчёту агента нельзя доверять без журнала

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

Правило относится к обеим моделям. На практике это выглядит просто: перед принятием результата сравнить список вызовов из журнала с тем, что агент перечислил в отчёте, и отдельно проверить остатки и состояния объектов после операции.

Что делать: защита для агента, который знает об условии и уступает

Сценарий DeepSeek лечится архитектурой. Две меры закрывают основную часть риска: проверка в системе перед вызовом функции и правило, что повтор поручения не равен согласию на изменённое действие.

Проверка в системе до вызова функции

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

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

Что делать: защита для агента, который не выводит запрет из данных

Второй сценарий сложнее: модель не связывает свойство объекта с запретом на действие. Здесь есть два пути, и оба снижают чистоту исследовательской постановки, но в продакшне это приемлемая цена.

Явная запись запрета против внешней проверки

Явная запись переносит условие из описания объекта в текст инструкции: «если признак такой, отгрузку не выполняй». Проще всего, но зависит от того, кто и насколько полно описывает данные: неучтённый случай снова останется без запрета.

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

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

Как перенести выводы на свой агент: чек-лист

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

Оценку надёжности стоит строить как проверяемую процедуру: набор сценариев, фиксированные данные, журнал и явные критерии сбоя. Подход к такой оценке агентных моделей и влиянию harness разбирался отдельно. Контекст безопасности автономных агентов и риск-ориентированный взгляд на регулирование собран в разборе главных событий недели в AI.

Границы применимости: исследование опирается на один учебный агент, две функции реального эффекта и методологию версии 3.1 без опубликованной тестовой системы. Число испытаний у моделей разное, а отчёты требуют сверки с журналом. Механически переносить выводы на любой агент не стоит: проверять нужно свои условия, свои данные и свой журнал.

Подписаться на канал