210 lines
21 KiB
Markdown
210 lines
21 KiB
Markdown
# Промт: полигон-сессия «Контролируемая проба редактора по четырём осям»
|
||
|
||
> Составлен полигон-сессией фазы Д 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 = главы книги **26–42**.
|
||
⚠ **Мина нумерации:** движок не умеет смещение глав — срез пронумеруется как 1–17. Соответствие
|
||
держится ТОЛЬКО записью в пре-реге.
|
||
|
||
### 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` — нет. И дословно: **нужной роли в файле нет, файла нет или имя не отвечает ⇒ КАНАЛА
|
||
НЕТ, и это НОРМАЛЬНЫЙ случай — НЕ опрашивай сессии подряд.** Вопрос тогда — секцией в отчёт.
|