judging-with-typesafe
September 17, 2026 · View on GitHub
Скилл для агентов Letta: суждения по критериям через TypeSafe System One (Jev) — быстрый и дешёвый внешний судья для текстов и решений.
Обычная языковая модель отвечает текстом, который надо интерпретировать. Jev отвечает числом и распределением на типизированный вопрос о переданном состоянии. Это делает его пригодным там, где нужен воспроизводимый вердикт по критерию.
Что даёт
| Jev | обычная LLM | |
|---|---|---|
| возвращает | число, распределение, уверенность | текст для интерпретации |
| воспроизводимость | разброс 0.004–0.014 на 8 прогонах | выше, зависит от формулировки промпта |
| стоимость | ~306 токенов вход, 20 выход | тысячи токенов |
| скорость | ~2 с на запрос | десятки секунд |
| признаёт незнание | «0.5» вместо уверенного текста | склонна звучать уверенно |
| проверка фактов | не умеет (выдуманный источник получал 0.80 против 0.87 у настоящего) | тоже не умеет |
Что внутри
scripts/typesafe.py— обёртка над API:noul(вероятность «да»),choice(выбор из списка),score(позиция на шкале),batch(много вопросов на одном состоянии).scripts/scan_text.py— скан документа по абзацам: размечает, где утверждение с основаниями, а где перечисление, постановка вопроса или признание открытости.
Установка
letta install https://github.com/carlsonchik/judging-with-typesafe/tree/main/skills/judging-with-typesafe
Нужен ключ TypeSafe в переменной TYPESAFE_API_KEY (создаётся на console.typesafe.ai/keys).
Пример
python3 scripts/typesafe.py noul "В корзине 12 яблок и 5 груш." "Яблок больше, чем груш?"
# 0.99
python3 scripts/scan_text.py статья.md --mode argument --min-len 300
# карта по абзацам + JSON рядом с файлом
Главное в скилле — не вызовы API, а правила интерпретации
- «Не знаю» — это результат, а не провал. Значения 0.30–0.70 означают
uncertain→ человеческая проверка. Попытка выжать из этой зоны вердикт — главная ошибка при работе с инструментом. - Рубрика, а не один вопрос. Мы проверяли одиночные вопросы и получили отрицательный разрыв: наукообразный абсурд набирал 0.74–0.82 там, где учебник получал 0.48. Один вопрос смещает оценку. Работающий набор — четыре вопроса (см. ниже).
- Порог калибруется под материал. Обязательный шаг: прогнать контрастную пару (строгий текст против наукообразно-пустого) и проверить, что вопрос даёт разрыв. Без этого числа выглядят точными, оставаясь случайными.
Проверенные границы
| Текст | Среднее | «Проверяемо» | «Нужен человек» | «Общие слова» |
|---|---|---|---|---|
| Наукообразный абсурд (5 абз.) | 0.362 | 0 | 4 | 1 |
| Учебник по анализу (116 абз.) | 0.690 | 52 | 64 | 0 |
Чего инструмент НЕ делает: не различает «строгое знание» и «наукообразную пустоту» — для этого нужна сверка с миром, которой у модели нет. На выдуманном источнике она даёт 0.80 против 0.87 у настоящего. Не перекладывайте на неё проверку фактов, ссылок и подотчётности.
Измерено (можно ссылаться)
- Калибровка на 8 случаях с известным ответом: 6 из 8 в пределах 0.15; на симметричных парах 0.99 против 0.01 и 0.98 против 0.02.
- Повторяемость: 8 прогонов одного запроса, разброс 0.004–0.014.
- Вес формулировки: замена «принципиально отличается» на более слабую формулировку подняла оценку следования вывода с 0.504 до 0.546 при разбросе внутри случая 0.009–0.014 (разница значима).
- Скан двух статей одного автора: 0.710 (13 из 70 абзацев ниже порога) против 0.791 (0 из 44).
MIT. Скилл подготовлен агентом; TypeSafe AI к нему отношения не имеет.