Почему Jev не галлюцинирует — и где всё равно ошибается
TypeSafe утверждает, что Jev не может галлюцинировать. Это правда, но в узком смысле — модель соблюдает форму ответа, а не гарантирует его правильность. Разбираем, какие ошибки исключены, какие остались и как их ловить.
Что TypeSafe называет галлюцинацией
У LLM галлюцинацией называют разные сбои: выдуманные факты, несуществующие категории, сломанный JSON, вызов инструмента с неверными аргументами. В анонсе Jev TypeSafe связывает галлюцинации с типобезопасностью. Выдуманный вызов инструмента в агенте просто раздражает, но в системе с гарантиями задержки или глубоко в цепочке зависимостей такой сбой недопустим.
У Jev возможные ответы и их структура заданы заранее, поэтому модель, по словам компании, не ошибается в типах. На графиках TypeSafe у Jev стоит 0% таких ошибок. Компания сама оговаривает, что это число не измерено: совпадение со схемой гарантировано устройством API.
Для сравнения TypeSafe приводит данные по LLM, собранные через OpenRouter. По пересказу DataCamp, в тесте на структурированный вывод модели OpenAI Luna и Terra ошибались в 0,58% случаев, Claude Opus 5 — в 5,73%, Claude Haiku 4.5 — в 45,5%. В вызовах инструментов хуже всех оказалась GPT-5.6 Sol — 17%. Компания признаёт возможный перекос: через OpenRouter сложные запросы могли чаще уходить к более сильным моделям.
Как такие сбои выглядят на практике, видно в одном из cookbook’ов TypeSafe. Claude Haiku 4.5 вопреки инструкции вернуть только JSON почти каждый ответ оборачивала в markdown-блок, который строгий парсер отвергает. Авторам пришлось писать код, снимающий эту обёртку. С Jev этого класса проблем нет.
Что гарантирует схема
Контракт API исключает целый класс сбоев:
- ответ на Noul — число от 0 до 1, на Choice — один из ваших ключей, на Score — позиция на вашей шкале;
- варианта, которого нет в списке, не будет. Если вы задали
billing,technicalиsales, модель не вернётlegal; - не будет текста, объяснений, отказов и сломанного JSON;
- вероятности вариантов в сумме дают 1;
- ответ на каждый вопрос приходит под тем же ключом, под которым вы его задали.
Для разработчика это значит, что код разбора, валидации и повторных запросов из-за формата больше не нужен. Как устроены сами типы ответов, рассказываем в статье о примитивах Jev.
Чего схема не гарантирует
Главное — правильности. Jev может уверенно выбрать sales там, где нужен billing. Автор разбора на Хабре формулирует это так: типобезопасность гарантирует форму и множество допустимых ответов, но не фактическую верность. Энтони Майо говорит короче: Jev ограничивает форму вывода, но не суждение.
Отсюда ошибки, которые остаются:
- Нет правильного варианта. Если верного ответа нет в списке, вероятность всё равно распределится между оставшимися вариантами.
- Буквальное прочтение. Модель отвечает на то, что написано в инструкции, а не на то, что вы имели в виду.
- Слабые зоны версии. Для Jev 1.13 TypeSafe сама перечисляет арифметику, подсчёты, сравнение дат, многоступенчатые вопросы и большой state с лишними данными.
- Враждебный текст. State для модели — данные, но текст, написанный, чтобы подтолкнуть её к нужному ответу, может сдвинуть результат.
- Знания из весов. TypeSafe советует не полагаться на то, что модель «знает» сама, если актуальные сведения можно передать в state из вашей базы.
- Завышенная уверенность. Высокий
confidenceне означает верный ответ: это характеристика формы распределения. - Несогласованность между вопросами. Один и тот же вопрос в форме Noul и в форме Choice может получить разные числа — в документации к версии 1.13 это 0,22 и 0,01. Инварианты вроде «да + нет = 1» проверяйте в коде, а не ждите от модели.
Технический директор компании Earendil Армин Ронахер в интервью TechCrunch заметил, что Jev отчасти перекладывает проблему галлюцинаций на пользователя. Решать, что делать с ответом при вероятности 50% и при 95%, должен ваш код.
Ошибки видны и в тестах
Даже во внутренних тестах TypeSafe Jev не безошибочна. Компания проверяла модель на четырёх рабочих сценариях: реагирование на инциденты безопасности, наблюдаемость агентов, обработка счетов и поддержка клиентов. По пересказу Энтони Майо, ответы Jev в среднем совпали с эталоном в 67,8% случаев, у GPT-5.6 Sol — в 74,1%, у Claude Opus 5 — в 73,1%. Самый большой разрыв — на счетах: 61,8% у Jev против 79,1% у Sol.
Эталоном служили усреднённые ответы двух крупных моделей, а не проверенная людьми разметка. Независимые проверки тоже нашли задачи, где LLM точнее, — например, деловые письма и фишинг. Подробности — в сравнении Jev с ChatGPT, Claude и Gemini.
Пример: агент, который не может выдумать кнопку
Границы гарантий хорошо видны на браузерном агенте jev-ultrafast, который разбирает автор статьи на Хабре. Код агента делает снимок страницы и строит список разрешённых действий: клик, ввод текста, выбор из списка, прокрутка, ожидание, завершение. Jev не придумывает CSS-селектор, координаты или команду — она выбирает номер действия из готового списка. Перед исполнением код ещё раз проверяет элемент на странице.
Выдуманного действия в такой схеме быть не может. Но список обрезается до первых 250 элементов, и если нужной кнопки в снимке нет, Jev не выберет её даже при идеальной точности. Модель вернёт валидный ответ — просто не тот, который нужен. За полноту вариантов отвечает ваш код, а не модель.
Как проверять ответы Jev
- Размеченная выборка. Прогоните Jev и текущее решение на одних и тех же примерах. Сравните точность, задержку и стоимость всей цепочки, а не одного вызова.
- Теневой режим. Сначала логируйте ответы Jev рядом с текущей логикой и ничего не автоматизируйте. Так, например, планирует внедрять модель разработчик Флавио Копес.
- Выход для модели. Добавляйте «другое», «ничего не подходит» или «не указано» в каждый Choice, который может не покрыть все входы.
- Атомарные вопросы. Один вопрос — одно суждение. Составные условия собирайте в коде.
- Пороги по риску. Автоматически действуйте только при высокой уверенности, серую зону отдавайте человеку или LLM. Как подобрать пороги, рассказываем в статье об уверенности Jev.
- Проверки в коде. Модель предлагает действие, код решает, можно ли его выполнить: существует ли объект, разрешена ли операция, совпадают ли суммы.
- Враждебные тесты. Перед запуском подайте на вход тексты, которые пытаются склонить модель к выгодному их автору ответу.
- Версии вместе. Фиксируйте модель, вопросы, критерии и пороги как одно целое и прогоняйте контрольные примеры при любом изменении. Подробнее — в статье о Jev 1.13.
Пункты 3 и 5 в коде выглядят так:
from typesafe_sdk import Choice, TypeSafeClient
with TypeSafeClient() as client:
r = client.system_one(
state={"ticket": "Не приходит код подтверждения при входе"},
questions={
"team": Choice(
instructions="Какой команде передать обращение из `ticket`?",
criteria={
"billing": "Оплата, счета, возвраты",
"account": "Вход, пароль, доступ к аккаунту",
"delivery": "Доставка и статус заказа",
"other": "Ни один вариант не подходит",
},
)
},
)
team = r.choices["team"]
if team.choice == "other" or team.confidence < 0.7:
send_to_operator() # вариантов не хватило или модель не уверена
else:
route_to(team.choice)
Порог 0,7 условный: подберите свой на размеченных данных. Полный список известных слабых мест модели и её технических ограничений собран в статье «Ограничения и минусы Jev».
Частые вопросы
Может ли Jev выдумать ответ, которого нет в списке?
Нет. Ответ всегда один из вариантов, которые вы задали, или число в допустимом диапазоне. Это свойство контракта API, а не статистика.
Значит, Jev всегда отвечает правильно?
Нет. Модель может выбрать неверный вариант из допустимых. Даже во внутренних тестах TypeSafe ответы Jev совпали с эталоном примерно в двух третях случаев.
Как уменьшить число ошибок Jev?
Задавайте атомарные вопросы с чёткими критериями, добавляйте вариант «другое», передавайте в state только нужные данные, считайте арифметику в коде, а ответы с низкой уверенностью отправляйте на проверку.
Источники
- TypeSafe AI — Introducing System One Models & Jev
- TypeSafe Docs — Jev 1.13 jaggedness
- TypeSafe Docs — How to build with TypeSafe
- TypeSafe Docs — Self-consistency, nouls
- DataCamp — Jev, TypeSafe's System One Model Explained
- Хабр — Jev — как устроен его API решений и что на нём уже строят
- TechCrunch — A new kind of AI model from a ChatGPT inventor is thrilling developers
- Anthony Maio — Jev, The Language Model That Won't Talk
- Flavio Copes — A deep dive into Jev, TypeSafe's System One model