ESPNNHL season preview: Rankings from 1-32 and what to know about every teamRTP DesportoPortugal-Noruega. Elogio de Jesus e Ronaldo titular na DinamarcaThe Jerusalem PostTwo states is not enough: Palestinians need sovereignty, Israelis need security - opinionDaily MaverickMADLANGA COMMISSION: Feroz Khan facing criminal charges for defying subpoena to appear at inquiryPunchMeet Danielle Adewusi, the doctor crowned Miss Universe Nigeria 2026Bollywood HungamaAnkur Rathee says Best Of The Best took him back to his college dancer days: “A version of myself I thought I had left behind”Sky TG24I titoli di Sky TG24 del 28 settembre, edizione delle 13SoompiSM Entertainment Announces Strict Legal Action Against Malicious Posts And Illegal AI-Generated Images Targeting Lim Yoona And aespa’s WinterIl Fatto QuotidianoRanucci-Rai, la destra contro la giudice: “È la stessa del caso Almasri”. I togati del Csm: “Tentativo di condizionamento”Egypt IndependentSisi moves to delegate certain Presidential powers to Defense Minister – here’s what that meansVilaWebEls treballadors de biblioteques de Barcelona critiquen la “tàctica de desgast” de l’Ajuntament després que anul·li la mesa de negociacióThe IndependentFive men arrested over RAF Fairford ‘bomb plot’ are British nationals, police say
The Daily Newsstand · Free, Always
Monday, September 28, 2026

Jev: модель, которая не пишет текст, а принимает решения

Translate

Последний год я слежу за LLM-шным хайпом, и каждый день появляется что-то новое. На этот раз хочу рассказать про Jev — модель TypeSafe System One, которую я изучал последние пару недель. Она сразу меня зацепила: это не очередная LLM, а штука с принципиально другой механикой. Сразу обозначу: не будет «это меняет мир» и «всё гениально просто». Будет сухой разбор от первого лица: что это, как работает и во сколько реально обходится.

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

Под катом — разбор трёх типов вопросов, живое демо браузерного агента на trip.com и честный расчёт стоимости.

Что вообще за модель и чем она не LLM

Для начала разберёмся, чем Jev отличается от привычного ChatGPT-подобного стека. Обычное приложение устроено так: пришёл текст → полетел в LLM → на выходе получился какой-то текст. Всё, никакой логики сверху.

Jev устроена иначе. Она физически не умеет возвращать свободный текст — только типизированные ответы. Есть три типа вопросов:

  • Choice — «выбери один вариант из N». На выходе — ключ опции, полное распределение вероятностей и confidence.

  • Noul — «какова вероятность того, что ответ — да». Одно число от 0 до 1, без отдельного confidence.

  • Score — «определи положение на шкале». Это позиция на упорядоченной шкале уровней (2–10), где уровни описаны словами и обозначают конкретные ситуации, а не просто числа.

Основная суть jev — type-safe by construction. Модель физически не может вернуть значение вне заданных тобой опций. Поэтому галлюцинаций вида «агент решил вызвать несуществующую функцию» не бывает в принципе. Но их, справедливости ради, давно не бывает со старшими моделями вроде GLM-5.3. Только в случае с LLM это решается тул-коллингом и это отдельный кейс использования, а тут такой формат использования является основным и единственным вариантом.

Мне понравилась аналогия из документации TypeSafe: обычный код — это рефлексы, LLM — дорогое размышление, а Jev — дешёвые рефлексы с пониманием смысла. 

Проблема, которую Jev закрывает

То есть Jev закрывает дыру между двумя крайностями. С одной стороны — «тупой код»: if/else, регулярки, десятки условий. Он бесплатный, но тупой: не понимает контекст и ломается от перестановки слов.

С другой стороны — LLM-агент. Умный, но тратит деньги на каждое движение. Даже простой промпт для сильной модели обходится в центы, а если внутри агента десяток шагов, это уже десятки центов за один пользовательский запрос. Плюс медленно: если используется reasoning-модель, один шаг может занимать от 5 до 50 секунд.

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

Я на своей практике много раз упирался в то же самое. Например, в роутинг заявок в технической поддержке нашего ИИ-провайдера (https://ai.wormsoft.ru). С LLM это решается за 1000/50 (input/output) токенов, но по деньгам и скорости становится разорительно, если заявок тысячи. А if/else в 2026 писать для чатов даже вучит смешно. А тут появляется слой посередине. И этот слой можно покрывать Jev-ом.

Архитектура: батарея вопросов и один HTTP-вызов

Главный архитектурный трюк Jev, вокруг которого я строил демо, — батарея вопросов. Вместо цепочки «вопрос → ответ → вопрос → ответ» ты задаёшь от двух до тринадцати вопросов параллельно, за один HTTP-вызов. Вопросы исполняются независимо и не видят ответы друг друга.

Один endpoint, stateless, без истории:

POST https://api.typesafe.ai/v1/systemone

{
  "state":   { "ticket": { "text": "..." } },
  "model":   "jev-latest",
  "questions": {
    "category":  { "type": "choice", "criteria": {...} },
    "is_urgent": { "type": "noul",   "instructions": "Срочно?" },
    "severity":  { "type": "score",  "criteria": [...] }
  }
}

Я строю архитектуру как граф состояний, где Jev работает роутером между инструментами. Вместо классического агента с циклом «LLM думает → вызывает tool → LLM думает снова» здесь код владеет циклом, а Jev принимает решения на каждом шаге.

На демо видно, как это выглядит на практике: слайд «Один HTTP-вызов», а потом мой реальный запрос с батареей из нескольких вопросов. Ответ прилетает почти мгновенно, после чего код просто выполняет if (p > 0.55) click().

Живое демо: браузерный агент на trip.com

Решил долго не мучать ни себя ни вас. Решил сразу пробовать решить какую-то задачу. Я поставил обоим агентам задачу: «Найти на ru.trip.com отель в Пекине до 10 000 ₽ с завтраком». agent-llm.js — классический агент на чистой LLM. agent-jev.js — моё комбо, где код владеет циклом, Jev принимает решения, а LLM подключается только если что-то пошло не так.

Всё это лежит в репозитории https://github.com/gmoreva/jev-scripts. Клонируете проект, заполняете .env, запускаете node agent-jev.js — и получаете такой же лог у себя. Для сравнения можно запустить node agent-llm.js.

Результаты меня реально удивили (цифры из моего REPORT.md):

Метрика

Чистая LLM

Комбо Jev + LLM

Шагов

8

5

Время

43 с

34 с

Вызовов LLM

8

0

Токенов LLM

28 169

0

Вызовов Jev

0

5

Токенов Jev

0

12 184

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

Но есть важный момент! Первые прогоны у обоих агентов падали по два-три раза, после чего пришлось тюнить пороги и формулировки. Я называю это «налогом на интеграцию Jev» — и это правда, просто не все про такое пишут. 

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

Три типа вопросов — три сценария

Раз уж я затронул Choice, Noul и Score, покажу, зачем каждый из них нужен на практике.

Choice — «выбери один вариант из набора». Он подходит для роутинга тикетов, классификации обращений, выбора элемента на странице и выбора функции из набора тулов. Можно добавить опцию-заглушку no_match, и «ничего не подходит» станет валидным ответом.

Noul — «какова вероятность того, что ответ — да». Это детекторы и триггеры: фишинг ли это, мешает ли попап, выполнена ли задача. В моём комбо-агенте именно Noul использовался для финальной верификации: «задача выполнена?» → 0.93 ≥ 0.9 → завершаем.

Score — «определи положение на шкале». Например, срочность, severity или frustration. Я строю шкалу из 2–10 уровней, и каждый уровень описывает конкретную ситуацию: «обычная», «срочно мешает», «работа стоит». Это не просто число от 1 до 5.

В сценариях LLM я использовал лёгкую модель GLM 5.3 Flash: один шаг агента там занимает около 4 000 токенов. На Jev — около 2 400 токенов, но токен Jev ощутимо дешевле токена LLM. В итоге получается ощутимая экономия.

Гонка: Service Desk на 100 тикетов

Второе крупное демо — Service Desk. Я собрал его как стенд: 100 тикетов, 7 категорий, два сортировщика бегут параллельно — один на Jev, второй на LLM. В интерфейсе видно время, точность и количество токенов.

Мои замеры: Jev стабильно решает тикет за 0,5–1,1 секунды с помощью батареи вопросов, LLM — за 2–8 секунд, а reasoning-модель может работать ещё дольше. Точность у Jev — 100%, у LLM — 90%.

В этом сравнении важны два практических результата: Jev работает быстрее и стоит дешевле. На одном и том же потоке тикетов это видно по времени обработки, точности и количеству токенов.

Элемент-пикер: голос → клик

Для проверки возможностей Jev сделал еще одно демо (тоже есть в репо) — элемент-пикер. Пишешь или говоришь вслух «нажми кнопку Поиск», а мой агент через DevTools находит нужный элемент на любой открытой вкладке Chrome и реально кликает по нему через Input.dispatchMouseEvent. Не через .click() в JavaScript: на SPA это часто не срабатывает.

Демо работы пикера

Механика такая. Слева в браузере открыто вэб-приложение, которое через chrome-dev-tools получает состояние текущей вкладки в браузере, передает в jev и просьбу пользователя. Jev сообщает, что надо нажать и дальше скрипт жмет.

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

Под капотом там Choice по 150 кандидатам на странице. В документации Jev говорится, что модель даёт вероятность 99–100% для нужного элемента за 0,7–2 секунды. Это заметно лучше, чем LLM на той же задаче: она у меня на практике часто «угадывает» элемент и кликает не туда. LLM может спокойно иногда задуматься на 5-7 секунд. А jev стабильно не больше 2х.

Гейты: вероятность vs confidence

Отдельно отмечу практический момент, который я показал в отчёте. У Jev есть два числа на выходе:

  •  probabilities[top] — вероятность выбранной опции;

  • confidence — концентрация распределения. 

Это не одно и то же, и путать их нельзя.

Для безвредных обратимых действий (клик, добавление тега) я использую гейт p(top) ≥ 0.55 — этого хватает. Для опасных действий (удаление, отправка денег) нужен гейт по confidence. 

В коде это выглядит так: noul ≥ 0.9 → авто, 0.4–0.6 → человеку, p(top) ≥ 0.55 и действие обратимо → выполнять, confidence < 0.5 для опасного действия → эскалация в LLM.

Какие расходы по деньгам?

На все тесты для видео-версии этого поста — 20 центов. Для сравнения: за такой же объём тестов классического LLM-агента я бы заплатил в десятки раз больше.

Итоги

  • Что это — модель TypeSafe System One для принятия решений с вероятностями. Три типа вопросов: Choice, Noul и Score. Она не пишет текст и не рассуждает.

  • Особенность — type-safe by construction: модель физически не может вернуть значение вне заданных опций.

  • Архитектурно — код владеет циклом, Jev принимает решения, LLM подключается для эскалации. Батарея вопросов — это один HTTP-вызов для множества решений.

  • Производительность — 100–500 мс на ответ. В браузерном агенте получилось 5 шагов вместо 8, 34 секунды вместо 43 и 0 токенов LLM вместо 28 169.

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

  • Когда незаменима LLM — в нестандартных ситуациях (капча, незнакомый попап), когда нужен произвольный текст или исследование нового сайта.

Мне Jev понравилась именно своей прагматичностью. Она не пытается заменить GPT и не претендует на роль «нового ChatGPT». Она делает одну вещь — типизированные решения, — и делает её дёшево и быстро. Если у тебя в проекте есть слой задач, где LLM убивает бюджет, а if/else не выдерживает, глянь: может, оно того стоит.

Из минусов тоже скажу честно: есть «налог на интеграцию». Пороги и формулировки вопросов приходится тюнить, а на первых прогонах агент может падать. В документации TypeSafe есть целый раздел про «jagged edges» текущей версии. Его стоит прочитать до того, как критиковать модель.

Ссылки:

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.