textmachine/eval/dovodka/PROMPT-PROBE-4AXES.md

21 KiB
Raw Permalink Blame History

Промт: полигон-сессия «Контролируемая проба редактора по четырём осям»

Составлен полигон-сессией фазы Д 02.09 по слову владельца. Исполнитель — ОТДЕЛЬНАЯ сессия, онбординг у неё СВОЙ. Форма — по docs/ORCHESTRATOR_SESSION_PROMPT.md §«Пишешь промт сессии?» (12 обязательных блоков).

1. Какая проблема и что решит твой результат

Проект переводит художественные книги zh→ru мультиагентным LLM-конвейером. Самая дорогая стадия — редактор, и платим мы там в основном не за выданный текст, а за «размышление» модели перед ответом: у этого поставщика оно тарифицируется внутри выходных токенов и составляет большую часть счёта.

Проблема: мы не знаем, чем управляется эта цена. На книге в 2283 главы редактор стоит порядка полусотни долларов, и мы не можем сказать, платим ли за то, что модель много думает, или за то, что она много пишет.

Что решит твой результат: контролируемая проба разделит рычаги. Если снижение усилия режет расход и текст не портится — книга дешевеет вдвое по самой дорогой статье. Если не режет — мы перестаём искать там, где нет.

Повод, который ты обязана не повторить. Предыдущая сессия за четверо суток одиннадцать раз утверждала или предлагала то, что уже сделано либо опровергнуто в репозитории. Класс один: показания инструмента, собственной памяти или своей ветки принимались за факт о мире. Реестр — §8 плана и §Д52.5 отчёта фазы.

2. Зона записи и git

Зона: eval/ + docs/experiments/ + секция «Полигон» в docs/PROGRESS.md. Ветка polygon. Артефакты прогона — в ~/books/gu-zhenren/probe-4axes/ (это ОТДЕЛЬНЫЙ git-репозиторий books/, видимый обоим рабочим деревьям).

Ты НЕ коммитишь ничего, КРОМЕ пре-рег-фриза — это единственное исключение канона, и он объявляется владельцу вслух ДО коммита. Форма коммита — только с явным списком путей (git commit -- <путь>); git add -A, git add ., git commit -a запрещены. Никогда не читать .env. Никаких reset --hard, перезаписи истории, checkout поверх грязного дерева: рядом работают параллельные сессии.

3. Карта чтения (≤5 позиций; дальше — только по её ссылкам)

  1. CLAUDE.md — канон: цели, роли, зоны, гардрейлы, дисциплина чтения.
  2. eval/dovodka/PLAN-01-09.mdЗАКОН этой сессии. Читать целиком; §9 «ПРОЦЕДУРА» — первым, там команды, коды выхода и три места, где домысливание стоит денег.
  3. eval/dovodka/SESSION-30-08.md §0-ЧЕТЫРЕ — состояние фазы и реестр ошибок. Остальное в файле исторично; §5 «КОМАНДЫ» — команды АВГУСТОВСКОГО РИГА, не твои, там есть помеченная «не запускать никогда».
  4. ~/books/gu-zhenren/coldrun-v16/ — образец стенда: book.yaml, pipeline.yaml, pairs/zh-ru.yaml, и REPORT.md §14 «Форма следующего замера» (⚠ в файле ДВА раздела «## 14», нужен второй). Каталог — образец, а не рабочее место.
  5. docs/experiments/00-provider-quirks.md — провайдерские ловушки. Канон требует читать ПЕРЕД правкой вызовов; здесь особо записи про ручку размышления и эхо-мину.

4. Жёсткий контур — делай РОВНО так, отступление = пинг владельцу

  1. Санкция владельца: вариант A — 17 глав, потолок $9.5 в ПИКОВЫХ терминах (01.09 дано $9.5; 02.09 поднято до $9.5, когда в дизайн вошла референсная клетка glm-5). Потолок сессией не поднимается. Срабатывание гарда = стоп и вопрос владельцу; добор после просмотра чисел запрещён. К владельцу за этим решением ходить не надо — оно принято.
  2. Замер ратифицирован (D39.184 п.5 — ⚠ нота есть только в ветке main, в polygon реестр обрывается на D39.170). Дизайн менять нельзя: четыре оси с РАЗНЫМИ ролями — трудность чанка блокировать, длину входа контролировать, промпт брать по SHA, усилие off против low.
  3. Пре-рег фризится коммитом ДО первой платной клетки. Фриз объявляется владельцу вслух.
  4. Правило решения записано в §4 плана и НЕ пересматривается после просмотра чисел.
  5. Стенд смотрит в /home/ubuntu/projects/textmachine-main/ для models, langpack_root, prompts_root: в polygon нет backend/configs/langpacks/ru, а загрузчик молча подставляет умолчания — русский слой читателя потеряется тихо.

4-БИС. МОДЕЛИ — ФИКСИРОВАНЫ, МЕНЯТЬ НЕЛЬЗЯ

Предыдущая редакция этого промта и план не называли моделей ВООБЩЕ (ноль упоминаний, поймано владельцем 02.09). Ниже — состав, снятый с реально отработавшего конфига coldrun-v16 и с его леджера; это часть жёсткого контура: смена модели убивает сопоставимость с холодным прогоном, на котором стоит вся смета.

стадия / роль модель усилие размышления зачем
редактор (стадия edit) deepseek-v4-pro ЭТО И ЕСТЬ ПРЕДМЕТ ЗАМЕРА: off против low боевой редактор, ратифицированный интерим-жилец
черновик (стадия draft) deepseek-v4-flash low боевой черновик; в пробе — константа
хоп эскалации черновика deepseek-v4-pro наследует эффорт стадии (low) ловит эхо-чанки; в базовом прогоне обязателен
терминолог (gates.terminology) deepseek-v4-flash low консолидация банка; в пробе — константа
классификатор типов deepseek-v4-flash low подфаза терминолога
референс (пятая клетка) glm-5 off = thinking ВЫКЛЮЧЕН, few_shot: false ценовой контроль «тот же день, те же юниты»; не фактор креста
судья НЕ НУЖЕН И НЕ ВЫЗЫВАЕТСЯ качество при сниженном усилии ВНЕ скоупа (§12)

Цепочка эскалации базового прогона — как в образце: default: [deepseek-v4-pro, glm-5.1, gemini-3.1-pro-preview]. ⚠ В ЧЕТЫРЁХ РУКАХ escalation.budget_usd: 0 (эскалации нет), в базовом прогоне он обязан быть > 0, иначе эхо-черновики останутся флагнутыми.

Ключ ZAI_API_KEY обязателен — без него проверка ключей упадёт громко на старте (референс идёт к другому поставщику).

Единственная модель, чей расход в пробе НЕИЗВЕСТЕН, — редактор на low: таких вызовов у движка не делали ни разу. Смета стоит на предположении; проверяет пред-полёт (§5.3).

Модели для ТВОИХ субагентов самопроверки — это другое и на счёт замера не влияет: рекомендация канона claude-fable-5, ⚠ норма владельца 01.09 — один fable на самое тяжёлое, остальные дешевле; модель агенту задавать ЯВНО.

5. Что делать

5.1 Собрать стенд. Делай РОВНО так — §9.1 плана.

Резалка исходника — eval/dovodka/narezka.py (её не существовало до 02.09; формат GB18030 + CRLF + первая строка обязана быть заголовком). Вариант A = главы книги 2642. ⚠ Мина нумерации: движок не умеет смещение глав — срез пронумеруется как 117. Соответствие держится ТОЛЬКО записью в пре-реге.

5.2 Написать недостающее. Реши сам и аргументируй — форма твоя, требования ниже.

Не существует и нужно тебе:

  • chetyre.py — скрипт эндпойнта. Требования: ключ юнита (в request_log нет колонки attempt, она в checkpoints — реконструкцию назови явно) · операциональное определение «доставлено» · восстановление размышления по формуле §3 плана · правило цензуры §4 (обе стороны) · Вилкоксон с zero_method='pratt' · ⚠ медиану и доверительный интервал Ходжеса–Лемана писать руками: scipy 1.18.0 установлен и pratt поддерживает, но интервала у wilcoxon не отдаёт (проверено). Гейт против зелени на пустоте обязателен: нулевой знаменатель ⇒ прибор ОТКАЗЫВАЕТ кодом 2, а не печатает «в пределах».
  • poryadok.py — порядок рук от сида (сид объявлен в плане: 20260902).
  • ⚠ Ковариатная модель §4 требует statsmodels, которого в eval/.venv нет. Решить: ставить или объявить эту проверку неисполненной. Молча пропустить нельзя.

5.3 Пред-полёт. Делай РОВНО так — §5.1 плана.

Один юнит × ПЯТЬ клеток (четыре руки креста + референс glm-5, ~$0.27): сигнатура разницы входных токенов СНИМАЕТСЯ и пинится коммитом · пять разных отпечатков снапшота (иначе ось промпта схлопнулась — см. §9.0 п.2) · кириллица ≥0.99 · эхо 0. Только после этого — пачка.

Клетка с low — предположение, а не замер: движковых редакторских вызовов на low не существует вовсе, и смета стоит на нём. Если пред-полёт даст цену заметно выше ожидания — стоп и пересчёт с владельцем ДО основной покупки, не после.

5.4 Пачка и счёт. Делай РОВНО так по §9.3, аргументируй сам только форму отчёта.

6. Оси ревью твоей работы (приёмка пойдёт по ним; вправе заменить с аргументом)

  1. Деньги — сошёлся ли расход с агрегатом §9.5, не пробит ли потолок, объявлен ли фриз до покупки.
  2. Дизайн — не схлопнулась ли ось промпта, одинаков ли потолок вывода во всех руках, воспроизвелась ли сигнатура.
  3. Интерпретируемость — можно ли из твоих чисел вынести вывод при ЛЮБОМ исходе, включая «ниже разрешения замера».

7. Мандат самопроверки ИСПОЛНЕНИЕМ (обязателен; самоотчёт не принимается)

Самоотчёт «проверено» в этом проекте регулярно оказывался ложным и стоил денег.

  1. Ревью собственного кода и собственных запросов к моделям — до первой платной клетки: прочитай вслух тело запроса каждой руки и убедись, что оно отличается ровно тем, чем должно.
  2. Ревью полученных результатов — числа пересними командой, не глазами.
  3. Адверсариальный проход по СВОЕЙ ГОТОВОЙ работе. Субагенты разрешены явно — иначе дефолт-запрет харнесса тихо победит. Модель агенту задавай ЯВНО и знай, сколько их работает (норма CLAUDE.md; рекомендация — claude-fable-5, ⚠ норма владельца 01.09: один fable на самое тяжёлое, остальные дешевле). Направление: (а) не схлопнулась ли ось; (б) не подогнан ли порог под результат; (в) верна ли арифметика денег; (г) что в отчёте утверждается без улики.
  4. Тест на вырожденность: если букву пункта удовлетворяет пустое исполнение («перечитал сам») — пункт не выполнен. Нужен артефакт: вывод команды, вердикт агента, лог.
  5. Каждую пойманную собой ошибку запиши в отчёт с классом.

8. Записка-план и комплектность

После эхо (§10) выложи ≤15 строк: что собираешь, что пишешь, когда фризишь, когда покупаешь. И сверь план с §9 процедуры МЕХАНИЧЕСКИ — таблицей «шаг §9 → делаю/не делаю → почему». Непокрытый шаг либо планируется, либо его пропуск подписывается словом.

8-БИС. Отчёт: обязательные секции

Отчёт сдаётся секцией в docs/experiments/23-editor-tier.md (зона полигона). Обязательны:

  1. Результат по эндпойнтамс командами получения каждого числа.
  2. «ЧТО НЕ УДАЛОСЬ И ЧТО НЕ ПРОВЕРЕНО» — обязательная секция, не косметика. Сюда: что не успела, что не смогла снять, какие проверки объявлены неисполненными и почему (например, ковариатная модель без statsmodels). Пустая пробы не бывает; отсутствие этой секции читается как непроверенная работа.
  3. «ЧТО Я НАПУТАЛА» — результат §7, с классом каждой ошибки.
  4. Деньги — фактический расход против потолка, агрегатом по §9.5 плана.

9. Заявление = команда

Любое число в отчёте несёт команду, которой читатель его получит. Приёмка пере-снимет выборочно. Не верь заголовкам: вывод грунтуется file:line, выводом команды или замером — либо помечается «мнение». Отрицательный результат предъявляется с ПОЛОЖИТЕЛЬНЫМ КОНТРОЛЕМ (покажи, что команда вообще что-то находит) — это лекарство от одиннадцати ошибок предыдущей сессии.

10. Эхо-протокол старта (первое действие, ДО работы)

Выложи ≤10 строк: скоуп · инварианты (§4 своими словами) · не-делать (§12).

11. Канал вопросов и право возразить

Конфликт промта с кодом или доками ⇒ пинг владельцу, НЕ интерпретация. Считаешь, что задача поставлена неверно или её не надо делать — скажи с аргументом, это ожидаемое поведение. Отдельно: увидела требование --resnapshot — СТОП, флаг не давать: он перекупит все уже оплаченные клетки. Предупреждение планировщика о будущем --resnapshot — не требование, оно печатается на каждом ограниченном прогоне и ожидаемо.

12. Чего НЕ делать

  • Не менять дизайн, правило решения и потолок.
  • Не поднимать потолки и не добирать юниты после просмотра чисел.
  • Не править models.yaml, capabilities, Go, боевой pipeline-c1.yaml.
  • Не судить качество: качество при сниженном усилии вне скоупа, только $0-гейты и ось безопасности.
  • Не калибровать ставку платформы — гейчено отдельно.
  • Не коммитить ничего, кроме пре-рег-фриза.

13. Прямой канал между сессиями

Механизм — CLAUDE.md §«Связь между сессиями». От тебя: впиши свой блок в /tmp/textmachine-channel первым делом (role= session= ref= written= note=; имя — из ListAgents), дописывая в конец и не трогая чужие блоки. Эхо (§10) отправь первым действием по адресу оркестратора, если он в файле есть.

Адрес из файла — НЕ доказательство, что сессия жива: файл переживает смерть сессии, а ListAgents — нет. И дословно: нужной роли в файле нет, файла нет или имя не отвечает ⇒ КАНАЛА НЕТ, и это НОРМАЛЬНЫЙ случай — НЕ опрашивай сессии подряд. Вопрос тогда — секцией в отчёт.