Агенты сжигают бюджет на выборе «да или нет». Jev от TypeSafe решает такие вопросы за доли цента

Парадокс Джевонса гласит, что рост эффективности использования ресурса приводит к росту его потребления. С языковыми моделями и агентами происходит ровно это: вызовы дешевеют, агентов запускают всё больше, и счёт за токены растёт. Автор codila собрал в X подробный гайд по модели Jev от TypeSafe AI, которая берёт на себя мелкие решения внутри агентов. Ниже пересказ с главными деталями.

Что такое Jev

TypeSafe называет Jev моделью System One. Вы передаёте ей состояние задачи и заранее описанные вопросы, она возвращает типизированный ответ с вероятностями. Писать тексты, генерировать код или рассуждать прозой она не умеет. Её задача в том, чтобы быстро выбирать между вариантами. Подробности в анонсе TypeSafe.

Самый громкий пример показали в Browser Use: агент с Jev внутри нашёл авиабилеты за 7 секунд и потратил на это $0.0039.

Где в агенте прячутся лишние вызовы LLM

Возьмём типичную задачу: «Найди три новых инструмента для ИИ-агентов и подготовь черновик брифинга к утру». Внутри сидит куча мелких развилок. Хватает ли источников? Какой воркер действует следующим? Готов ли черновик к проверке? Обычно каждую такую развилку решает большая модель, и каждая стоит отдельного вызова ещё до начала полезной работы.

Автор предлагает разделить слои. Сбор источников, написание текста и сохранение файлов остаются за инструментами и генеративными моделями. Жёсткие правила вроде «остановиться после десяти действий» живут в коде. Мелкие суждения между шагами уходят в Jev, где их можно отдельно проверить, посчитать и поменять.

С чего начать

Первый шаг делается в Playground. В качестве состояния подайте цель, уже сделанную работу, список доступных воркеров и ограничение «сохранить черновик, ничего не публиковать». Добавьте вопрос типа Choice «Кто действует следующим?» с тремя вариантами: research, если не хватает данных, write, если данных достаточно, и review для неясных запросов или готовой работы. Потом замените «источники ещё не собраны» на реальные заметки и посмотрите, как меняется решение. Это базовый сценарий из официального Quickstart.

Для работы через API нужен аккаунт с API-ключом и Python 3.12 или новее. Установка Python SDK на macOS и Linux:

mkdir jev-starter cd jev-starter python3 -m venv .venv .venv/bin/python -m pip install --upgrade typesafe-sdk

Если пользуетесь кодинг-агентом, можно подключить официальный скилл командой npx skills add typesafe-ai/skills --skill typesafe-ai.

Дальше автор пишет скрипт chief.py. Он принимает запрос, спрашивает Jev, куда его направить, и кладёт JSON с задачей в локальную очередь queue/research, queue/write или queue/review. Порог уверенности для ручной проверки стоит на 0.85, его лучше подстроить под собственные размеченные примеры. Confidence при этом нельзя читать как процент точности, об этом есть отдельная заметка. Вызов API и обработка ошибок описаны в руководстве по SDK.

Три типа вопросов

Choice выбирает один вариант из списка (до 255 опций) и возвращает распределение вероятностей. Score оценивает объект по вашей шкале, например релевантность источника от 0 до 2 с дробными значениями. Noul отвечает на вопрос «да или нет» вероятностью от 0 до 1, и значение около 0.5 означает сомнение.

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

Идея Browser Use, которую стоит забрать себе

В браузере набор доступных действий меняется после каждого клика. Browser Use каждый раз заново собирает список видимых элементов и даёт Jev выбрать из него, а маленькая LLM подключается, только когда нужно заполнить поле. Это видно в коде. В своём оркестраторе стоит делать так же: собирать варианты из воркеров, которые доступны прямо сейчас, и обновлять список после каждого изменения состояния. Иначе модель выбирает из вчерашнего меню. Для длинных списков сначала отсейте явные промахи кодом, затем прогоните Score по остатку и сделайте финальный Choice по шорт-листу.

Параллельные вопросы и лишние вызовы

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

Browser Use нашли ещё одно узкое место. Оптимизированная версия их рантайма сократила медианное число вызовов браузерного протокола с 1092 до 101, медианное время задачи упало на 25%, модели остались те же. Подробности в отчёте о производительности. Прежде чем платить за более быструю модель, проверьте повторяющиеся вызовы инструментов.

Где агенту остановиться

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

Если стартовый скрипт падает, ошибка сама подсказывает решение. 401 значит, что нужен другой ключ. 422 указывает на поле запроса, которое расходится с кодом. 429 и 529 говорят о лимитах или перегрузке, тут поможет пауза. Коды расписаны в справочнике API.

Сколько это стоит

Jev 1.13 стоит $0.042 за миллион входных токенов, выходные токены не тарифицируются. При 1000 токенов на решение 10 000 решений обойдутся в $0.42 (тарифы). Те самые $0.0039 за поиск билетов складываются из 90 558 входных токенов Jev и стоимости вспомогательной текстовой модели. Браузерные расходы сюда не входят, семь секунд отсчитываются после первого снимка страницы, а билеты агент находит без покупки.

Команда Vercel в своём бенчмарке насчитала ускорение классификации безопасности в 5-18 раз относительно GPT-5.6-luna вместе с ростом точности. Цифра относится к классификатору, на полный прогон агента её переносить нельзя. Считайте стоимость завершённой задачи целиком: дешёвое решение, отправившее воркера не в ту ветку, может обойтись дороже самого решения.

Кто уже пробует

Browser Use управляют браузером через Jev, код открыт, для запуска нужны ключи TypeSafe и OpenRouter. Hassan классифицировал 1018 научных статей по ИИ за $0.08 с медианной задержкой 256 мс на статью. Riley Brown показал сортировку входящей почты. LangChain используют Jev, чтобы выбирать между дешёвой и мощной моделью под конкретную задачу. Ещё примеры есть у altryne и tamarajtran.

Как собрать это у себя

Схема получается простой. LLM исследует, планирует и пишет. Jev маршрутизирует, оценивает, одобряет или эскалирует. Код исполняет решение. Начните с одного повторяющегося решения в своём агенте, измерьте результат и только потом переходите к следующему. Оригинал гайда лежит в X, у автора есть Substack.