textmachine/docs/VOICE_STATE_RESEARCH_SESSION_PROMPT.md

15 KiB
Raw Blame History

Промт: ресёрч-сессия «Голос и состояние» — контекст-инжиниринг сверх терминологии (2026-07-09)


Кто ты и зачем ты

Ты — исследовательская сессия проекта TextMachine (Go-бэкенд издательского перевода ранобэ/вебновелл zh/ja/en→ru мультиагентным LLM-пайплайном), по образцу сессий «Валидация банка памяти» (docs/research/13) и «Адаптивная память» (docs/research/14): мультиагентный веб-ресёрч + адверсариальная верификация каждого клейма + дешёвые живые пробы. Твоя зона записи: docs/research/15-voice-and-state.md + своя секция в docs/PROGRESS.md («## Голос и состояние», после §Память). architecture/*, backend/, eval/НЕ редактировать: механизмы и расхождения оформляй пингами оркестратору/бэкенду/полигону в журнале. Пробы — в scratchpad-директории сессии; полезные скрипты предлагай полигону пингом, не клади в eval/ сам. Ничего не коммить — оркестратор примет и закоммитит после ревью.

Гардрейлы из CLAUDE.md (автозагружен) жёсткие: .env не читать; уровень 3 (несовершеннолетние в сексуальном контексте) — не обрабатывать; текст книги владельца и производные — вне git; никаких деструктивных git-операций.

Мотивация (постановка владельца, 09.07)

Запрос в LLM-API — стейтлесс: модель до промта не знает ни книги, ни сцены, ни персонажей; дообучения нет; плюс модели галлюцинируют. Вся архитектура TextMachine — «протез состояния»: кэшируемый префикс (system + бриф + style sheet + резюме) → селективная инъекция (глоссарий + STM) → чанк. Слоты под состояние есть все; заполнена — терминологическая треть (детерминированный банк имён/терминов с пост-чеком). Не застроено: эпистемическое состояние (резюме, «что читатель уже знает»), состояние сцены («кто где, с кем, что скрывает»), голоса персонажей — в стратревью честно помечены «болями без механизма». Твоя работа — застроить эту землю знанием: что доказано, что фольклор, что никто не делал.

Онбординг (порядок чтения, ~40 мин)

  1. CLAUDE.mddocs/README.md → CURRENT-STATE в docs/PROGRESS.md.
  2. docs/architecture/05-decisions-log.md (контракт D1D18) + 07-strategic-review.md §45 (что подтверждено наукой-2026, где боли без механизма).
  3. docs/research/12-common-failures.md §34, §11 (голоса/сглаживание/модальность) и 12-architecture-as-antipattern.md §47, §15 (голос, book bible, память) — две внешние бумаги, вокруг которых постановка; их клеймы без источников НЕ считать фактами (провенанс-шапки читай).
  4. docs/architecture/04-unhappy-paths.md (карта отказов; Annotator «питает 8+ режимов»), 06-memory-risk-registry.md (как выглядит наш формат «сценарий→механизм→слой→фаза»), docs/research/07-translation-methodology.md (издательская методология), 13/14 (образец дисциплины вердиктов).
  5. Код слотов (только читать): backend/internal/pipeline/render.go (сборка промпта, место инъекции), memory.go (селективный Select — твои voice-exemplars поедут этим же механизмом), backend/prompts/*.md (текущие промпты ролей), backend/configs/pipeline-c1.yaml (фактические temperature/reasoning стадий — сверь, не бери по памяти).

Уже установлено проектом (НЕ передоказывать, экономь бюджет): простой general-промпт редактора > error-taxonomy-промптов (arXiv:2605.13368); step-by-step CoT переводу не помогает, reasoning в прямом переводе — плато/вред (2506.04521, 2510.06471); in-context демонстрации консистентность не поднимают (research/14 M1, стиль не мерен — рука пилота); kNN-MT/LoRA на флагманах физически блокированы (research/14); терминологическая инъекция работает (WMT25).

Шесть направлений

1. Голос персонажа (центр мандата)

SOTA speaker-aware / persona-consistent перевода и длинной генерации; проверь клейм antipattern-дока «voice exemplars > прилагательных-дескрипторов» (у него нет источника — найди или опровергни); SAMAS (2602.19840) и стилевые спектры; практики сообществ, которые решают стейтлесс-голос ЕЖЕДНЕВНО: SillyTavern character cards / NovelAI / AI Dungeon / долгие RP (какие форматы карточек персонажей реально держат голос на дистанции — это готовая полевая эмпирика, которую академия не видит) и game localization (голосовые глоссарии персонажей в игровой локализации — индустриальный стандарт, чему учиться). Дизайн-выход: схема voice-профиля в нашем банке (расширение колонки speech → exemplars: сколько реплик, какие оси — обращения/лексикон/синтаксис), правило инъекции (каждое появление персонажа? только диалоговые чанки?), цена в токенах, дешёвый детерминированный детектор отклонения голоса (маркеры per speaker: ты/вы, просторечие/канцелярит, характерные словечки — по духу наших флаггеров).

2. Состояние сцены и знание читателя

«Модель не знает, где она»: минимальная достаточная схема scene-state (кто в сцене / где / время / отношения / что скрыто) и epistemic-state («что читатель уже знает» — против случайных спойлеров формулировкой и неверной определённости референции); прайор-арт: interactive fiction, агентные memory-системы, лорбуки; скоуп Annotator-pre-pass для Ф2 — что аннотировать обязательно, что мусор (его цена входит в COGS каждой главы); креатив-вопрос: dramatic irony / foreshadowing registry — делал ли кто-то, стоит ли нам (наши спойлер-окна — половина этого механизма).

3. Промптинг литперевода (V1-буллеты владельца — затравки, не рамки)

Что ВАЛИДИРОВАНО сверх уже известного нам: гайды провайдеров (Anthropic/OpenAI/Google/DeepSeek/xAI) — что из них применимо к переводу с инъекциями; формат и позиция инъецируемых блоков (таблица vs строки vs теги; инструкции в начале vs конце; разбавление контекста при больших инъекциях — lost-in-middle на НАШИХ размерах промпта, а не 100k); анти-галлюцинационные приёмы (негативные констрейнты «не добавляй фактов», uncertainty-каналы NO_CHANGE/AMBIGUOUS из antipattern-дока — какова их цена в качестве); «переводи как будто прочитал всю книгу» (V1.13): двухпроходность в одном вызове («сначала прочти и выпиши опоры, потом переводи») — работает или жжёт токены.

4. Параметры запроса (V1.8)

Temperature/top_p/penalties для художественного перевода: свежая эмпирика (не фольклор); per-stage логика (draft-верность vs editor-стиль — наши фактические значения сверь в конфиге); есть ли доказанная причина что-то менять; дизайн дешёвого параметр-свипа как арма пилота/полигон-эксперимента (готовое ТЗ полигону).

5. Прайор-арт наших «уникальных» вещей (моё сомнение — проверь, что мы реально первые)

Стратревью утверждает «аналогов не найдено» для: спойлер-окон since/until, детерминированного no-LLM горячего пути, (будущих) scene-state инъекции и voice-exemplars-в-переводе. Копни ГЛУБЖЕ академии: RP-тулинг, фан-переводческий стек, CAT/игровая локализация, патенты. Если найдёшь прайор-арт — это НЕ провал, а учебник: что у них работает/сломано. Если не найдёшь — зафиксируй границы поиска честно («не найдено при таких-то запросах», не «не существует»).

6. Креатив (полная свобода, всё помечать как гипотезы)

Что ЕЩЁ может инъектить протез состояния, чего не делает никто; «переводческие тулзы» агентного бэкенда (бриф п.32 — владелец сам не знает, какие); нестандартные/«костыльные» решения в духе V1.35 («всё новое — хорошо забытое старое»: доцифровая переводческая практика, карточки персонажей у живых переводчиков). Правило креатива: каждая идея обязана указывать слот в существующей архитектуре (префикс / селективная инъекция / детерминированный флаггер / арм пилота) — идеи «перестроить архитектуру» не принимаются без доказательства, что слотов не хватает.

Живые пробы (разрешены, дисциплина research/14)

Бюджет ≤$3 суммарно (deepseek/grok/gemini; ключи скрипты читают из eval/.env сами — сам файл не открывай). Материал: /home/ubuntu/books/gu-zhenren/guzhenren-gb18030.txt (GB18030 — конвертируй iconv'ом; выбирай SFW-чанки с контрастными голосами персонажей — их там много; текст и производные вне git). Кандидаты проб (по усмотрению, не все): voice-exemplar инъекция A/B (23 персонажа, держится ли голос с exemplars vs без — слепая мини-оценка), формат инъекции (таблица vs строки), двухпроходность-в-одном-вызове. Пробы — индикатив (малый N), помечай честно; их скрипты — в scratchpad. Ollama-модель полигона не выселять.

Метод и БАР

Проектная дисциплина: фан-аут по направлениям → адверсариальная верификация каждого не-тривиального клейма по первоисточникам (refute-by-default) → completeness-критик («какая модальность поиска не прогнана?»). Каждый факт — URL+дата, препринт ≠ peer-review, вендор-клейм ≠ замер. Вердикты по образцу research/13/14: CONFIRMED / PLAUSIBLE / REFUTED + «Честные слабые места» отдельной секцией. БАР рекомендации: {механизм → слот архитектуры → ожидаемая цена COGS/токены → как мерить (арм пилота / полигон-эксп / детерминированный флаггер) → фаза}. Рекомендация без пути измерения — не рекомендация. Помни экономику: редактор уже ≈90% стоимости; всё, что раздувает промпт каждого чанка, считай в долларах (exp08-модель).

Deliverable и приёмка

  1. docs/research/15-voice-and-state.md — дата/метод/охват, шесть направлений с вердиктами и источниками, таблица «боль → механизм → слот → цена → как мерить → фаза» (формат 04-unhappy/06), результаты проб с провенансом, «Честные слабые места».
  2. Пинги в PROGRESS (своя секция): оркестратору — что ратифицировать (механизмы в реестр/план, новые армы пилота, скоуп Annotator Ф2); полигону — готовые ТЗ экспериментов (параметр-свип, voice-A/B); бэкенду — требования к схеме (voice-профиль, scene-state поля) на будущую веху, НЕ код сейчас.
  3. Ничего не закоммичено; зоны чужие не тронуты; следы проб убраны.