Материал23 сентября 2026 г.

Jev: ИИ, который не пишет ответы, а принимает решения

Что за новая модель TypeSafe, где она полезнее чат-бота, как подключить её к коду и проверить на своих данных — без обещаний, что типизированный ответ автоматически окажется правильным.

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

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

Это не новый чат-бот и не универсальная замена ChatGPT. Jev — первая модель класса System One от TypeSafe AI, публично представленная 15 сентября 2026 года. Её идея — выполнять ограниченные смысловые задачи внутри программ: классифицировать, выбирать, оценивать и проверять. Ниже разберём, что за этим стоит, как попробовать модель и как не перепутать «ответ правильного типа» с «правильным ответом».

На пальцах: умный if, которому можно задать вопрос

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

Чат-модель умеет понять текст, но её привычный результат — свободная строка. Чтобы программа использовала ответ, его нужно ограничить схемой, проверить, а потом отдельно обработать ошибки. Jev изначально отвечает в заранее заданных типах. Упрощённо поток выглядит так:

текст обращения + вопрос + допустимые ответы
                       ↓
                   ответ Jev
                       ↓
     правила и действия вашего приложения

Вы задаёте границы вопроса и допустимые результаты. Модель интерпретирует контекст, но не отправляет письмо, не меняет заказ и не вызывает инструмент сама. Это делает её похожей на смысловой блок внутри программы — вроде if, только для случаев, где правило зависит от понимания текста.

Название System One отсылает к «быстрому мышлению» из книги Даниэля Канемана. Важно не переносить метафору слишком далеко: System One — термин TypeSafe для своего класса моделей и интерфейса, а не научная гарантия безошибочной интуиции.

Три основных типа ответа

В официальных интеграциях Jev встречаются три вида вопросов. В разных SDK названия отдельных полей могут различаться, поэтому при смене библиотеки сверяйтесь с её документацией.

ТипЧто возвращаетПример
ChoiceОдин вариант из списка и распределение вероятностей по вариантамКуда направить обращение: billing, technical, other?
ScoreОценку по заданной шкале с описанными уровнямиНасколько срочно нужно ответить по шкале от «обычно» до «критично»?
Noul / BooleanВероятность того, что конкретное утверждение верноПросит ли человек вернуть деньги?

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

Score полезен только вместе с понятной рубрикой. «Оцени важность от 1 до 10» оставляет слишком много пространства для разночтений. Лучше объяснить, что означает каждый край шкалы: например, «обычно — работа доступна, есть обходной путь» и «критично — пользователи не могут завершить оплату, обходного пути нет».

Noul — название TypeSafe для ответа о вероятности утверждения «да». Это не синоним уверенности в любом смысле. Вероятность утверждения, выбранный вариант и отдельная метрика confidence — разные сигналы. Не подставляйте один вместо другого, особенно при переносе кода между SDK.

Где модель может пригодиться

Распределение входящих обращений. Выбрать очередь поддержки, определить тему заявки или отделить вопрос по оплате от технической проблемы. Если решение влияет только на внутреннюю маршрутизацию, человек обычно может исправить ошибку.

Первичная оценка срочности. Отнести сообщение к заранее описанным уровням приоритета, чтобы помочь оператору разобрать очередь. Это подсказка для процесса, а не основание автоматически отказать клиенту.

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

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

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

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

Чем это отличается от JSON-ответа чат-модели

Современную языковую модель тоже можно попросить вернуть объект вроде { "team": "billing" }, задать Structured Outputs и валидировать поля. Это полезный подход, но сам по себе JSON не говорит, что выбран правильный отдел. Он гарантирует форму результата — при соблюдении контракта, — а качество решения нужно измерять отдельно.

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

В собственном анонсе TypeSafe приводит цифры цены и скорости и результаты своих сравнений. Компания также раскрывает ограничения тестов: один демонстрационный запрос был упрощённым, а в другом спорный пример дал неоднозначный ответ; workflow-оценки используют ответы крупных внешних моделей как ориентир, а отдельные сценарии подготовили сотрудники команды. Это полезные данные производителя, но не независимое доказательство, что Jev окажется точнее или быстрее на вашем наборе задач.

Интеграционные примеры Vercel показывают практическое разделение: Jev выбирает типизированный ответ, а приложение связывает его с очередью или следующим шагом. Материал LangChain о LangSmith Evals описывает собственный эксперимент на одной агентной задаче. Это интересный пилот, но его цифры тоже нельзя автоматически переносить на ваш продукт.

Как сейчас получить доступ

По состоянию на 23 сентября 2026 года официальный анонс TypeSafe от 15 сентября говорит о раннем доступе и постепенном приглашении людей из списка ожидания. Это не подтверждает, что прямые API-ключи TypeSafe уже выдаются всем без очереди. Начать проверку прямого доступа можно с консоли TypeSafe и официальной документации; доступность ключа и регистрации проверяйте там, она может измениться.

Есть и другие маршруты:

  1. Vercel AI Gateway. Интеграция использует модель typesafe-ai/jev. Vercel объявил, что Jev бесплатен через AI Gateway до 25 сентября 2026 года. Это временная акция на момент публикации: перед тестом посмотрите текущие условия и тарификацию в аккаунте.
  2. Cloudflare Workers AI. В официальном руководстве Vercel указан идентификатор typesafe/jev; для запуска нужны подходящий аккаунт и учётные данные Cloudflare.
  3. Python / JavaScript SDK TypeSafe. Удобно, если ключ уже получен: официальный Python-клиент устанавливается как typesafe-sdk, JavaScript/TypeScript — @typesafe-ai/sdk.
  4. Существующий стек. Для LangChain есть TypeSafeClassifier; для приложений на AI SDK, TanStack AI и агентном фреймворке eve есть отдельные способы интеграции.

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

Минимальный пример на Python

Ниже — короткий пример из официального Python SDK. Он принимает тестовый текст и просит выбрать очередь. Установите пакет, создайте API-ключ в доступной вам консоли и передайте его приложению через переменную окружения TYPESAFE_API_KEY — сам секрет не вставляйте в исходный код или браузер.

uv add typesafe-sdk
export TYPESAFE_API_KEY="ваш_ключ"
from typesafe_sdk import Choice, TypeSafeClient

ticket = {
    "message": "После обновления не открывается страница оплаты."
}

with TypeSafeClient() as client:
    result = client.system_one(
        state=ticket,
        questions={
            "team": Choice(
                instructions="К какой команде направить обращение?",
                criteria={
                    "billing": "Вопросы о списании или сумме платежа",
                    "technical": "Ошибка сайта или невозможность выполнить действие",
                    "other": "Недостаточно данных или другая тема",
                },
            ),
        },
    )

print(result.choices["team"].choice)

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

У TypeSafe есть также HTTP API POST https://api.typesafe.ai/v1/systemone, а для AI Gateway и некоторых интеграций используются собственные форматы и названия полей. Сверяйте API с официальным OpenAPI описанием, а Python-пример — с репозиторием официального SDK. Вызов API всегда выполняйте на сервере; ключ в клиентский JavaScript выкладывать нельзя.

Как проверить Jev на своей задаче

Самый полезный первый эксперимент — не просить модель написать демо для презентации, а взять маленький реальный процесс с известными правильными ответами.

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

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

3. Соберите примеры с известной разметкой. Начните хотя бы с сотни обезличенных случаев, если такой объём доступен. Уберите имена, телефоны, адреса и платёжные данные. Включите обычные, пограничные и неполные сообщения. Оставьте часть примеров отдельно для финальной проверки — не настраивайте критерии по всем и не оценивайте на тех же примерах.

4. Сравните с текущим способом. Прогоните на одних и тех же случаях существующие правила, текущую модель и Jev. Посчитайте точность по каждой категории, долю случаев, отправленных на ручную проверку, время и стоимость всего процесса. Средняя точность может скрыть критические промахи: отдельно смотрите на те классы ошибок, цена которых высока.

5. Изучите вероятности и пороги на своей выборке. Высокая вероятность — сигнал для проверки, а не магический сертификат. Посмотрите, как часто ответы с условной вероятностью 0,8 действительно верны в вашем потоке; сравните пороги и посчитайте, сколько ошибочных автоматических решений они допускают. Отделяйте вероятность конкретного варианта от общей confidence-оценки и от Score.

6. Запустите shadow mode. В реальном потоке Jev пока только записывает свои предложения, ничего не меняя. Оператор продолжает работать по-старому. Через некоторое время разберите расхождения и проверьте, не стали ли новые сообщения отличаться от тестовой выборки.

7. Включайте действия постепенно. Начните с обратимого действия — например, предложить очередь сотруднику. Для блокировок, возвратов, списаний и внешних отправок оставьте независимые проверки в коде и подтверждение человека. Не давайте предсказанию Jev самому расширять права доступа.

Для русскоязычного продукта включите русские, разговорные и смешанные сообщения в тестовый набор. Не выводите качество на русском из англоязычной демонстрации или самого факта, что API принял русский текст. Проверяйте именно свои формулировки, жаргон, ошибки и типичные пропуски.

Где проходит граница возможностей

  • Jev не пишет связные ответы. Если клиенту нужно объяснить решение, это делает отдельная генеративная модель или человек.
  • Jev не выполняет действия приложения. Для отправки письма, выдачи доступа или вызова инструмента нужны ваш код, серверные права и проверки.
  • Ограниченный формат не означает безошибочный смысл. Модель может выбрать один из разрешённых пунктов, но неверно понять ситуацию.
  • Не закладывайтесь на работу с медиаданными напрямую. Документированные интеграции описывают текстовый state. Для изображения, аудио или видео сначала извлеките текст подходящим инструментом и отдельно проверьте качество этого шага.
  • Не отправляйте реальные персональные или чувствительные данные в пробный API без проверки условий. Уточните правила хранения, обработки, удаления и доступные договорные гарантии у поставщика и вашего шлюза; до этого используйте синтетические или обезличенные примеры.
  • Проверяйте независимость вопросов. Если ответ на второй вопрос зависит от решения первого, разделите это на два шага приложения. Пара вопросов в одном вызове не является цепочкой рассуждений.

Так стоит ли пробовать?

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

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

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


Источники и материалы для продолжения:

Доступ, тарифы, имена моделей и SDK быстро меняются. Сведения в статье проверены 23 сентября 2026 года; актуальные условия смотрите в документации и кабинете выбранного провайдера.

Источник: TypeSafe AI
  • Jev
  • TypeSafe
  • ИИ
  • LLM
  • API
  • автоматизация