Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Судьи (TL_JUDGE_CMD) — референсные обёртки

Судья — внешняя команда: читает промпт со stdin, печатает только JSON {"cls": "SUPPORTED|CONTRADICTED|INSUFFICIENT", "span": "<дословная цитата>"} в stdout.

Главное правило — декорреляция: судья из ДРУГОГО семейства моделей, чем то, что пишет вики. Вики пишет Claude → судья OpenAI/Gemini/локальная модель, не Claude.

Рабочие обёртки

  • judge-codex.sh — OpenAI codex CLI. Проверена в бою. Грабли: без --output-last-message (-o) codex эхает промпт в stdout, и жадный regex-парсер notary.py ловит {скобки} из промпта вместо ответа.

Подключение

export TL_JUDGE_CMD=/полный/путь/к/scripts/judges/judge-codex.sh
export TL_JUDGE_K=5        # голосов на утверждение (дефолт 5; 3 — быстрее и дешевле)
python notary.py verify-all

Проверка, что судья жив

echo 'Фрагмент: "дважды два - четыре". Утверждение: "2*2=4". Ответь JSON {"cls":...,"span":...}' | $TL_JUDGE_CMD

Пустой вывод или не-JSON = судья мёртв (квота провайдера, слетевший логин, сломанная обёртка). verify-all сам делает такой смоук-тест перед прогоном и откажется стартовать с мёртвым судьёй — иначе весь прогон уходит в бессмысленный INSUFFICIENT.

Своя обёртка

Контракт минимальный: stdin → stdout-JSON, ничего лишнего в stdout. Всё остальное (таймауты, ретраи, модель) — внутри обёртки. Сбойный голос (таймаут, мусор) notary.py не кэширует: временный сбой сети не застынет как вердикт.