Project

General

Profile

Actions

Задача #27

closed
HU

Эпик #23: Переключение модели и режимов поведения AI в чате

Backend: борьба с преждевременным завершением сессии AI

Задача #27: Backend: борьба с преждевременным завершением сессии AI

Added by Hardelele User about 5 hours ago. Updated 22 minutes ago.

Status:
Закрыта
Priority:
Нормальный
Assignee:
-
Start date:
02/16/2026
Due date:
% Done:

100%

Estimated time:

Description

Описание

AI слишком быстро завершает работу — делает 2-3 действия и даёт финальный ответ, не доделав задачу.

Проявления

  1. Пользователь просит "напиши сцену с 3 персонажами" → AI пишет 1 блок и завершает
  2. Пользователь просит "проверь всю главу" → AI читает 2 блока из 8 и завершает
  3. Пользователь просит "обнови лор" → AI обновляет 1 запись из 5 упомянутых

Решение

1. Completion check nudge

После финального ответа AI (перед завершением) — инжектировать системное сообщение:
"Проверь: выполнил ли ты ВСЁ что просил пользователь? Перечисли что сделано и что осталось. Если осталось — продолжай."

2. Task decomposition enforcement

Перед началом работы AI обязан перечислить шаги (RULE #0 Phase 2). После завершения — сверить список.

3. Minimum actions для write-запросов

Если пользователь просит прозу и AI вызвал write_story_block < N раз, nudge: "Вы написали только 1 блок. Обычно сцена требует 2-3 блока."

4. Read-before-finish nudge

Если AI ни разу не вызвал read_chapter для проверки результата — nudge: "Перечитай написанное для проверки связности."

Файлы

  • backend/src/narrator/narrator.runner.ts — nudge-логика
  • backend/src/narrator/narrator.prompts.ts — промпт-модификаторы
  • backend/src/narrator/narrator.presets.ts — настройки по режимам

HU Updated by Hardelele User about 3 hours ago Actions #1

  • Status changed from Новая to В работе

Большая часть реализована: auto-expand nudge (<500 слов), event nudge (обязательное создание событий), dynamic MAX_ITERATIONS (10-25 по сложности). НЕ реализовано: completion check nudge (проверка что AI выполнил ВСЁ перед завершением), read-before-finish nudge. ~70% готово.

HU Updated by Hardelele User about 3 hours ago Actions #2

Начата реализация: completion check nudges в AgentRunner — счётчики proseBlocksWritten/readChapterCalled + nudge при преждевременном завершении.

HU Updated by Hardelele User about 3 hours ago Actions #3

  • Status changed from В работе to Решена
  • % Done changed from 0 to 100

Реализовано в narrator.runner.ts:

  1. Счётчики: proseBlocksWritten, readChapterCalled, completionCheckDone — трекают что AI сделал за сессию

  2. Completion check nudge в блоке chunk.type === 'done' (срабатывает ОДИН раз):

    • Prose minimum nudge: если написан 1 блок при requestType continue/edit → AI получает напоминание что сцена обычно требует 2-3 блока
    • Read-before-finish nudge: если написал прозу но не вызвал read_chapter → напоминание проверить результат
    • General completion check: для review/edit/complex запросов → напоминание проверить все ли шаги выполнены
  3. Защита от зацикливания: completionCheckDone = true после первого nudge, повторный nudge невозможен

HU Updated by Hardelele User about 3 hours ago Actions #4

Implemented Accountability Loop — 4-layer solution to prevent premature session termination:

Layer 1: Scene Plan ParsingparseExpectedBlocks() method scans AI's thinking text for "Block N" / "Блок N" patterns, extracts expected block count from the AI's own scene plan.

Layer 2: Progress Notes — After each successful write_story_block, injects [PROGRESS] Block 1/3 written. 2 remaining. into tool results. Gives AI explicit feedback on completion status.

Layer 3: Completion Gate — Replaced heuristic with plan-aware gate:

  • Primary: if AI planned N blocks but wrote fewer → accountability nudge with specific count
  • Fallback: original heuristic for complex requests when no plan detected
  • Satisfied: written >= expected → AI finishes normally

Layer 4: Prompt Phase 2c — Added "PROGRESS TRACKING" section instructing AI to check [PROGRESS] notes and not finish until all planned blocks are written.

Files changed:

  • narrator.runner.ts — expectedProseBlocks tracking, parseExpectedBlocks(), progress nudges, new completion gate
  • narrator.prompts.ts — Phase 2c: PROGRESS TRACKING section

HU Updated by Hardelele User 22 minutes ago Actions #5

  • Status changed from Решена to Закрыта

Закрытие: задача решена ранее.

Actions

Also available in: PDF Atom