Что эта схема меняет в расходовании лимитов
Идея — начинать с достаточного уровня модели, проверять результат инструментами и усиливать модель при конкретной причине. В видео я описываю это как способ экономнее расходовать лимиты. Это не изменение тарифа: лимиты аккаунта и стоимость внешних API сохраняются.
Перед запуском сверяйте доступные модели в своём окружении. Обозначения Luna low, medium, high и Sol high в промпте — выбранные роли. Интеграция должна уметь сопоставить их реальным доступным моделям и применить маршрут.
Как устроена схема: три разных слоя
Работу здесь удобно разделить на три слоя. Luna пишет код и берет большинство задач. Sol подключается, когда задача или повторные неудачи требуют более глубокого рассуждения. Jev получает короткое описание ситуации и выбирает одно из заранее заданных действий. Компилятор, тесты, типы, линтер и diff дают проверяемые факты.
Это схема для реализации, а не встроенная функция Codex. Название модели в промпте само по себе не переключает сеанс. Чтобы маршрут работал автоматически, нужен код, который вызывает Jev, читает ответ и запускает следующий шаг в подходящей модели. Без такой интеграции эти правила можно применять вручную.
Полный маршрут одной задачи
ЗапросВаша задача
Первое решениеJev определяет сложность
SMALLLuna Low
MEDIUMLuna Medium
HIGHLuna High
ESCALATESol High
РеализацияВыбранная модель меняет код
Проверка фактовDiff · тесты · сборка · типы · линтер
Оставшаяся неопределенностьJev выбирает следующий шаг
COMPLETEПодтвердить результат
RETRY / VERIFYИсправить или проверить
ESCALATEПередать Sol High
В Codex такой маршрут заработает автоматически только после отдельного подключения Jev и механизма выбора модели.
Как Jev принимает решение
Интеграция отправляет Jev состояние задачи: что попросили сделать, какие файлы изменились, что показали проверки и сколько попыток уже было. Вместе с состоянием она передает вопрос и допустимые варианты ответа. Для маршрутизации подходит тип Choice. В ответ Jev возвращает выбранный вариант и вероятности по каждому варианту.
Пример: после правки тест упал. Программа уже знает этот факт из test runner и не спрашивает у Jev, прошел ли тест. Она может спросить, что делать дальше: RETRY, VERIFY или ESCALATE. Затем код интеграции применяет выбранное действие. Порог уверенности задаете вы: например, ответ COMPLETE с невысокой уверенностью можно отправить на дополнительную проверку. Вероятность из ответа Jev не заменяет реальные проверки.
Один запрос к модели решений
- входState
Задача, текущая правка, результаты тестов и предыдущие попытки.
- вопросChoice
Выбрать один вариант: CONTINUE, RETRY, VERIFY, ESCALATE или COMPLETE.
- выходОтвет Jev
Выбранное действие и вероятность каждого доступного варианта.
Набор вариантов и правила их применения задает ваша интеграция. У Jev также есть типы Score и Noul, но для этой схемы достаточно Choice.
Рабочий цикл на конкретной задаче
Допустим, нужно добавить проверку поля формы. Маршрут MEDIUM отправляет работу Luna со средним уровнем рассуждения. После правки агент смотрит diff и запускает нужные тесты. Если тесты прошли и поведение соответствует запросу, он завершает задачу. Если тест упал, сначала читает ошибку и исправляет конкретную причину.
Когда после проверки остается несколько разумных действий, интеграция может спросить Jev: продолжать с Luna, запросить еще одну проверку или передать Sol. Повторные неудачи и архитектурная неопределенность служат поводом для эскалации. Финальное COMPLETE допускается только при выполненной задаче и пройденных проверках.
От задачи до подтвержденного результата
- задачаВыбор уровня
SMALL → Luna low; MEDIUM → Luna medium; HIGH → Luna high; ESCALATE → Sol high.
- правкаКодовая модель
Меняет файлы и объясняет, что именно сделала.
- проверкаФакты из инструментов
Diff, тесты, сборка, проверка типов и линтер по ситуации.
- развилкаСледующий шаг
Если нужен выбор, Jev предлагает действие; интеграция исполняет его.
COMPLETEЗапрос выполнен, проверки пройдены.
RETRY / VERIFYИсправить причину или собрать недостающий факт.
ESCALATEПередать сложный случай Sol.
Где получить ключ Jev
Официальный путь: проверьте доступ в консоли TypeSafe и создайте API-ключ. Сохраните его на стороне интеграции как TYPESAFE_API_KEY. Согласно Quick Start TypeSafe, запрос с состоянием и вопросами отправляется на api.typesafe.ai/v1/systemone с моделью jev-latest.
Если ключ TypeSafe пока недоступен, можно использовать OpenRouter: зарегистрируйтесь, откройте Settings → Keys и создайте ключ. Сохраните его как OPENROUTER_API_KEY. Jev вызывается через openrouter.ai/api/alpha/decisions с моделью typesafe/jev-1.13. Это отдельный способ доступа и отдельный биллинг.
Промпт выше использует TYPESAFE_API_KEY. Для OpenRouter интеграционный код должен читать другую переменную, отправлять запрос по другому адресу и указывать другую модель. Просто вставить ключ OpenRouter в TYPESAFE_API_KEY недостаточно. Не публикуйте ключ в промпте, репозитории или логах.
Два пути к одной модели решений
- официальныйTypeSafe
console.typesafe.ai/keys → TYPESAFE_API_KEY → /v1/systemone → jev-latest
- альтернативаOpenRouter
openrouter.ai/settings/keys → OPENROUTER_API_KEY → /api/alpha/decisions → typesafe/jev-1.13
Выберите один путь в своем интеграционном коде. Ключи и адреса API этих площадок не взаимозаменяемы.
Как проверить, что маршрутизация действительно работает
Возьмите три задачи: небольшую текстовую правку, изменение с проверкой и случай, где первая попытка не прошла тест. Для каждой запишите фактическую модель, уровень размышлений, число повторов и результат. Так можно отличить исполняемую схему от рассказа агента о переключении.
Попросите показать подтверждение вызова Jev без ключей и полного содержимого запроса: достаточно успешного статуса и выбранного действия. Если такого вызова нет, схема пока остаётся инструкцией. Решение Jev не заменяет тесты, проверку diff и разрешения на внешние действия.
Если API недоступен, интеграция должна явно сообщить об этом и сохранить прежний безопасный маршрут, а не выдать фиктивный ответ Jev. Экономию сравнивайте на сопоставимых задачах по фактическому расходу и качеству, не по числу названий моделей в промпте.
После настройки можно попробовать прикладную задачу с понятным выходным файлом — например, исправление SRT из проекта CapCut. Структуру файла проверит программа, а синхронизацию вы подтвердите просмотром видео.