Почему Jev, который не умеет общаться, подходит Agent
Agent часто не хватает суждения, которое сразу входит в ветку, а не ещё одного длинного текста. Здесь три типа вопросов, что именно сравнивает workflow eval и почему горячий путь не может ждать чат.
Соавтор: folkbench.com (Folkbench — платформа проверяемой оценки и выбора для AI API, модельных сервисов и связанных сайтов. Она опирается на опубликованные сведения об услугах, цены, доступность, задержку и окна доказательств, чтобы помочь сравнить пути и выбрать один.)
Десять текстов в этой серии:
- JEV - Суставу не нужен мозг
- JEV - Почему Jev, который не умеет общаться, подходит Agent
- JEV - Как далеко на самом деле заходит «не может галлюцинировать»
- JEV - Хватает ли «да или нет», выбора и уровня на язык?
- JEV - Лаборатория могла бы это собрать. Почему всё равно может не выпустить.
- JEV - Два demo, которые я прогнал
- JEV - Люди отходят от середины цикла к краю
- JEV - За этой чертой я уже не различаю, кто умнее
- JEV - Некоторые вопросы ему не принадлежат
- JEV - Предельно простая модель, комплект и одна, которая не говорит
Agent часто не хватает не ещё одного куска длинного текста. Ему не хватает суждения, которое может войти в поток управления напрямую. Обычные такие: остаётся ли эта тревога закрытой, оплачивается ли этот счёт, нужен ли этой trace человек и надо ли эскалировать следующую фразу поддержки. Эти узлы не для того, чтобы модель писала разбор. Коду нужно значение, которое можно сравнить и на котором можно ветвиться. Это и делает Jev.
Формулировка TypeSafe значит вызов функции передового интеллекта. Входит state. Выходит типизированное вероятностное решение. Он не генерирует строки. Фраза для человека и суждение для программы — не один и тот же выход.
Сначала зафиксируйте выход
Выход нынешних больших моделей — строка. Программе, которой надо идти дальше, всё равно придётся её разобрать, проверить и удержать от сноса. Появляется лишнее поле. Абзац выглядит целым, а перечисление не совпадает. Человек в окне чата замечает и спрашивает снова. Код не замечает и идёт дальше с ошибкой. Зарытая на несколько вызовов вглубь, более умная модель её уже не вернёт.
Jev заранее фиксирует пространство выхода. Вы говорите, что ему разрешено вернуть, и он раскладывает вероятность только внутри этого пространства. Ошибка типа математически невозможна. Он не может вернуть форму, которую вы не определили. Это не то же самое, что суждение верно. Вероятность может склониться не туда, и вариант может быть не тем. Типовая безопасность закрывает форму, а не правоту и неправоту. Когда форма зафиксирована, ветки после неё можно писать. Вам не нужно сначала вылавливать значение из абзаца.
Вопросов только три.
Noul — это «да или нет». Модель даёт вероятность от 0 до 1. Близко к 1 — да. Близко к 0 — нет. Близко к 0.5 — не уверен. Отдельной уверенности он не прикладывает. Сигнал — сама вероятность. Choice — одиночный выбор. Варианты вы перечисляете заранее, потолок — 255. Обратно приходит выбранный вариант, распределение по каждому варианту и уверенность. Код по этому распределению решает, действовать самому или отдать случай человеку. Score — уровни. Уровни идут от 2 до 10, и вы пишете, что значит каждый. Обратно приходят оценка, распределение по уровням и уверенность. Оценка может лечь между двумя уровнями, как положение на шкале.
«Да или нет» пишется как условие. Одиночный выбор и уровни — разное: первый смотрит, на какой вариант он сел, второй ставит порог на оценку. Хороший вопрос всё равно узкий. Суждение, которое человек, знающий область, делает за секунду после чтения материала, — вот что ему отдавать. Спрашивает ли клиент возврат — такой вопрос. Прочитать всё письмо и потом решить лучшее действие — не такой. Вторая фраза хочет медленного рассуждения. Разбейте, потом спрашивайте. Разбитые вопросы смотрят на один и тот же state, независимы друг от друга и возвращаются вместе в одном запросе. Веса остаются в коде. Когда политика меняется, вы меняете числа. Целый prompt вы не переписываете.
Людей останавливает развилка
Людей на самом деле часто останавливает узел такой формы. Тревога приходит с записями, которые у машины уже есть, и вывод — закрыть, отдать аналитику или изолировать сейчас. Счёт висит на заказе и записи о доставке, и кто-то должен решить: оплатить, придержать или отправить назад. Agent поддержки закончил, вызовы инструментов все в trace, и кто-то должен решить, смотрят ли эту trace и как скоро. Клиент пишет снова, и нить, и состояние счёта уже на месте. Как должна продолжиться следующая фраза и надо ли эскалировать — вопрос той же формы.
То, что правила могут заморозить, — код. Ломкое — исключения, которые нельзя дописать. Чек сходится, причина туманная, и один шаг в trace выглядит странно. Рукописная логика на этом рассыпается. Вы запихиваете всю политику в один prompt и даёте модели продумать один раз, и условий пишете меньше. Выход снова становится куском текста. Чтобы текст вошёл в поток управления, вы пишете ещё один слой разбора. Этот слой может ошибиться сам.
Workflow eval у TypeSafe мерит именно такой способ соединения. Оценка режет задачу на много узких вопросов. Что может решить код, решает код. Модель отвечает только на те суждения, которые код не закрывает. Четыре публичных потока: инцидент безопасности, наблюдаемость trace Agent, обработка счетов и поддержка. На одном и том же потоке модель на workflow точнее, чем если запихнуть всю политику в один prompt, и стоит меньше, и занимает меньше времени. В среднем по четырём задачам проверяемые модели идут в эту сторону.
Действия после этого идут за вероятностью, а не за ярлыком, который захлопнули. Результат, который покидает систему, всё равно одно дискретное действие. Инженерию посередине каждый раз надо делать одинаково.
Оценка мерит близость
Эта оценка не спорит с вами о том, сам ли поток написан неверно. Она предполагает, что harness верный. Эталонный ответ — не золотая метка, проставленная рукой, вопрос за вопросом. GPT-6 Astra и Claude Fable 5.1 отвечают на каждый вопрос при high thinking, и два ответа усредняются. Другие модели используют рассуждение по умолчанию от поставщика. Сравнивать их можно только после того, как поток зафиксирован. Оценка сравнивает, насколько модель близка к суждениям этих двух больших моделей, плюс скорость и цену.
Так что график не доказывает, что Jev понимает бизнес лучше, чем Astra. Astra и Fable здесь линейка. Jev должен приблизиться к их суждениям и ещё раздвинуть зазор по задержке и цене. Если вопросы разбиты неверно, более близкая линейка не помогает. Разбивать вопросы — работа того, кто пишет поток.
Jev сидит далеко на границе «быстро и дёшево». Более высокие кратности на официальном сайте, примерно в 193.6 раза быстрее и в 444.6 раза дешевле, — это верхний край этой оценки. Такая кратность — не каждый вызов. Вызовы здесь ближе к той автоматической нагрузке, которую вы реально выпустили бы.
К чему он приближается — это вероятность на тех узких вопросах после разбиения, а не письмо длинного разбора. Этот длинный разбор Jev не пишет.
Горячий путь ждать не может
Задержка для Agent жёсткая. Человек ещё может подождать три секунды. Когда слои оборачивают слои, уже нет. В той же цепи ещё поиск, запись в базу и следующий вызов, и каждый прыжок тратит одно и то же время. Внутри 70–500 миллисекунд суждение может сидеть на горячем пути. Вне этого диапазона стек вызовов считает его блокирующим.
Разговор с человеком у нынешних передовых моделей обычно занимает от 3 секунд до более чем 300 секунд от конца до конца. Такая скорость понятна для copilot или для Agent, который пишет код, пока на него смотрит человек. Как условие на горячем пути эта скорость не годится. Jev не выдаёт фразу token за token. Вероятности, которые должны вернуться, приходят вместе. Скорость отсюда.
TypeSafe ещё использует Jev для проверки. Prompt, следы рассуждения и выходы других моделей Jev оценивает, а ещё служит ограничителем и ищет jailbreak. Генерация остаётся у чат-модели. Пройден ли этот порог, решает модель, которая не генерирует строки. Это сустав в Agent, а не чат. Если кивок и проверка всё ещё сидят на длинном тексте, вам придётся искать другую программу, чтобы его прочитать. Jev сводит результат к вероятностям и уровням, и проверку можно записать как код.
Фраза, написанная для пользователя, всё ещё работа чат-модели. Эту фразу Jev не берёт. Он берёт маршрутизацию впереди и проверку позади. Agent здесь не хватает не ещё одного, более длинного объяснения. Ему не хватает суждения, чей тип уже зафиксирован, чтобы код мог с ним идти.
Источники
- https://typesafe.ai/blog/introducing-system-one-models-and-jev
- https://evals.typesafe.ai/
- https://docs.typesafe.ai/primitives
Серия
- Предыдущая: JEV - Суставу не нужен мозг
- Следующая: JEV - Как далеко на самом деле заходит «не может галлюцинировать»