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

Соавтор: folkbench.com (Folkbench — проверяемая платформа оценки и выбора для API ИИ, модельных сервисов и связанных сайтов. Она опирается на опубликованные сведения о сервисе, цены, доступность, задержку и окна доказательств, чтобы помочь пользователям сравнить варианты и выбрать путь.)
Десять текстов в этой серии:
- JEV - Суставу не нужен мозг
- JEV - Смазка на узлах управления
- JEV - От BERT обратно к одному распределению
- JEV - Проектировать закрытый вопрос, не заклинание
- JEV - Анти-token книга не выпустит это первой
- JEV - Два demo, которые возвращают только распределение
- JEV - Выйти из цикла: уверенность пишется в код
- JEV - За чертой умнее уже не продукт
- JEV - Интуиция и разум: вопросы, которые ему не задают
- JEV - От экрана к голой вероятности
Первая половина работы над инструкциями была поэтикой. Чтобы устойчиво получить JSON, люди писали роль, угрозу, несколько примеров и немного XML. Это была блокада внутри бесконечной комбинации tokens. Jev отменяет блокаду. Пространство решений закрыто до вывода. Вы проектируете не лучшее заклинание. Вы проектируете состояние плюс несколько закрытых вопросов, которые не мешают друг другу. «Да или нет», выбор и уровень достаточны как язык, только если вы готовы разобрать дело на эти три формы.
От блокады к анкете
[ generative ]
prompt (role, examples, format restraints) → infinite tokens → text that can drift
[ Jev ]
state + closed questions (Noul / Choice / Score) → a finite set → one distribution
Три вопроса заканчивают то, что законно спрашивать:
- «Да или нет», Noul. Вам нужна вероятность «да», чтобы проверить порог. Код решает, пройден ли порог. Это не пустое значение.
- Одиночный выбор, Choice. Варианты заданы заранее, не больше 255. Каждый вариант говорит, что он значит. Используйте его для намерения и маршрутизации.
- Уровень, Score. От 2 до 10 ступеней, записанных от низкой к высокой как конкретные случаи. Используйте его для степени. Не используйте его, чтобы выдумать новый класс.
Инструкции, чья единственная работа была форматом, поэтому отпадают. Ремесло, которое остаётся, — как сжать состояние и как разнять один большой вопрос.
Состояние должно пересилить историю
Состояние не слушает историю. Правило: убрать украшение, сохранить порядок событий и сохранить факты.
Генеративный способ спросить, уйдёт ли пользователь, часто выглядит так:
Вы старший сотрудник поддержки. Прочитайте профиль и диалог, решите, хочет ли он отменить, объясните и выдайте JSON. Профиль: Zhang San, VIP3, зарегистрирован 2 года. Пользователь говорит, что функция снова упала и данные пропали. Поддержка говорит, что это чинят. Пользователь говорит, оставьте, и спрашивает, как получить возврат.
Проблема в ролевом предложении и в наполнителе. Модель тратит внимание на «вы эксперт», и вывод тащит за собой «оставьте».
Jev ест сжатое состояние:
{
"user_profile": {"tier": "VIP3", "tenure_months": 24},
"last_event": {"type": "system_error", "impact": "data_loss"},
"dialogue_history": [
{"role": "user", "intent": "complain", "content": "feature crashed, data lost"},
{"role": "agent", "intent": "apology", "content": "fix in progress"},
{"role": "user", "intent": "churn_explicit", "content": "asks for a refund and says they will stop"}
]
}
Одна строка исходного диалога может остаться, но намерение и воздействие сидят в своих полях. Модель читает дерево состояния, а не сочинение.
Разнять один деловой вопрос на три
«Выдавать ли купон на 50 юаней» — не один закрытый вопрос. Внутри сложены намерение, злость, мошенничество и стоимость. Один выстрел в Jev не удаётся. Разнимите его на три ортогональных вопроса, а политику купона оставьте в коде.
state ─┬─ Choice primary intent
├─ Score negative degree, rungs 1 to 5
└─ Noul does this look like farming coupons
Намерение
Choice. Пространство такое: технический вопрос, предложение по продукту, жалоба на сбой, злонамеренная претензия. Формулировка спрашивает только главное намерение этого хода. Она не спрашивает, надо ли платить.
[State]
{ ...compressed state... }
[Question]
From the dialogue, which class is the primary intent of this turn.
Степень
Score. Ступень 1 — вопрос или лёгкая жалоба. Ступень 3 — ясная жалоба, которая требует объяснения. Ступень 5 — крайняя эмоция, или возврат либо закрытие счёта уже на столе. Не давайте ему голое «1 до 5». Напишите каждую ступень как случай.
[State]
{ ...compressed state... }
[Question]
Score the negative degree on these rungs.
1: a question, or a mild complaint
3: a clear complaint that demands an explanation
5: extreme emotion, or a refund or closure already requested
Да или нет
Noul. Положите в состояние число претензий за последние 30 дней и спросите, похож ли этот ход на выбивание купонов. Обратно приходит вероятность. Порог пишется в коде.
[State]
{ ...state, plus claim count for 30 days... }
[Question]
Historical claims are greater than 3, and the impact of this incident is low. Does this turn match coupon farming.
Код принимает только распределение
Дальше по потоку больше не разбирают строку JSON, которая может сломаться. Каждый из трёх результатов — число или таблица. Деловые условия остаются в функции.
intent = jev.choice(
state=user_state,
options=["tech_support", "feedback", "complaint", "malicious"],
)
anger = jev.score(state=user_state, rungs=5)
fraud = jev.noul(state=user_state_with_history)
def handle_coupon(intent, anger, fraud):
if fraud.p_yes >= 0.9:
return "DENY_AND_HANDOFF"
if intent.top == "complaint" and anger.expected >= 4:
return "ISSUE_50_COUPON"
return "STANDARD_APOLOGY"
Когда модель заменяют, форма выхода всё ещё эти три. Обвал формата перестаёт быть типом отказа. Детерминизм не становится «модель никогда не ошибается». Детерминизм значит: ошибка всё равно падает в клетку, которую вы написали, и ветку всё ещё можно проверить.
Риторика уходит
| Измерение | Генеративная инструкция | Jev |
|---|---|---|
| Ремесло | Стиль, примеры, заклинания формата | Разобрать дело, сжать состояние, начертить дискретное пространство |
| Пространство решений | Открытое | Закрытое: Noul / Choice / Score |
| Устойчивость | Формулировка и температура | Структура; выход по природе есть распределение |
| Отладка | Править прилагательные, добавлять тон, добавлять примеры | Править поля состояния, разнимать вопрос, пока он не станет ортогональным |
«Да или нет», выбор и уровень достаточны как язык ровно тогда, когда «что нам делать дальше» можно разнять на три. Часть, которая не разнимается, — не провал языка. Ей не место в суставе. Оставьте её модели, которая умеет говорить, или человеку.
Серия
- Предыдущая: JEV - От BERT обратно к одному распределению
- Следующая: JEV - Анти-token книга не выпустит это первой