feat(llm): двухфазный жизненный цикл сессий, двусторонний Diff, Topic Drift Guard и актуализация документации
This commit is contained in:
@@ -1,33 +1,72 @@
|
||||
# План реализации
|
||||
|
||||
## 1. Очистка от регулярок и костылей (`tool_injector.py`)
|
||||
- [ ] Полностью удалить принудительные перехваты текста регулярными выражениями для команд добавления, редактирования и удаления пунктов.
|
||||
- [ ] Оставить в модуле только базовую санитарную очистку сырых тегов (`<tool_call>`).
|
||||
- [x] Полностью удалить принудительные перехваты текста регулярными выражениями для команд добавления, редактирования и удаления пунктов[cite: 4].
|
||||
- [x] Оставить в модуле только базовую санитарную очистку сырых тегов (`<tool_call>`)[cite: 4].
|
||||
|
||||
---
|
||||
|
||||
## 2. Настройка контекста и инструкций сессии (`agent.py`)
|
||||
- [ ] Передать управление диалогом языковой модели через системный блок `role: "system"`.
|
||||
- [ ] При активном состоянии `PROMPT_PREVIEW` передавать модели инструкцию:
|
||||
- **Подтверждение / отмена / корректировка:** продолжать работу с превью и вызывать соответствующие инструменты.
|
||||
- **Смена темы:** вежливо напомнить об открытом изменении и запросить решение.
|
||||
- [ ] Обеспечить видимость эфемерных сообщений (`is_ephemeral = 1`) для модели во время активной работы с превью.
|
||||
- [x] Передать управление диалогом языковой модели через системный блок `role: "system"`[cite: 4].
|
||||
- [x] При активном состоянии `PROMPT_PREVIEW` передавать модели инструкцию:
|
||||
- **Подтверждение / отмена / корректировка:** продолжать работу с превью и вызывать соответствующие инструменты[cite: 4].
|
||||
- **Смена темы:** вежливо напомнить об открытом изменении и запросить решение[cite: 4].
|
||||
- [x] Обеспечить видимость эфемерных сообщений (`is_ephemeral = 1`) для модели во время активной работы с превью[cite: 4].
|
||||
- [x] Внедрить семантический Topic Drift Guard (`idle_turns` = 3) с вопросами и кнопками из `tool_action_registry`.
|
||||
- [x] Реализовать детерминированный мгновенный сброс сессии и зачистку эфемерного контекста при вызове сторонних инструментов.
|
||||
|
||||
---
|
||||
|
||||
## 3. Очистка эфемерных сообщений при завершении (`fast_path.py`)
|
||||
- [ ] Настроить удаление временных сообщений превью (`db_purge_ephemeral_messages`) строго в момент нажатия кнопок **«Подтвердить»** или **«Отменить»**.
|
||||
- [ ] Сбрасывать состояние сессии в базе данных после фиксации решения.
|
||||
- [x] Настроить удаление временных сообщений превью (`db_purge_ephemeral_messages`) строго в момент нажатия кнопок **«Подтвердить»** или **«Отменить»**[cite: 4].
|
||||
- [x] Сбрасывать состояние сессии в базе данных после фиксации решения[cite: 4].
|
||||
- [x] Внедрить прямое точечное применение изменений через `db_apply_prompt_node_action`[cite: 4].
|
||||
- [x] Добавить обработку фазы `PROMPT_FOLLOWUP` с кнопками завершения и очистки контекста.
|
||||
|
||||
---
|
||||
|
||||
## 4. Инлайн-редактор в окне диалога (`core.js`)
|
||||
- [ ] Проверить работу блока ручного редактирования (`inline-prompt-editor-container`) с кнопками **«Сохранить правки»** и **«Свернуть»**.
|
||||
- [ ] Обеспечить сохранение черновика через API (`/api/v1/chat/draft`) и отображение обновленного текста перед подтверждением.
|
||||
- [x] Проверить работу блока ручного редактирования (`inline-prompt-editor-container`) с кнопками **«Сохранить правки»** и **«Свернуть»**[cite: 4].
|
||||
- [x] Обеспечить сохранение черновика через API (`/api/v1/chat/draft`) и отображение обновленного текста перед подтверждением[cite: 4].
|
||||
- [x] Реализовать двусторонний клиентский Diff-рендерер (одновременная подсветка добавленных строк и зачеркивание удаленных `[УДАЛЕНИЕ]`).
|
||||
- [x] Добавить авто-форматирование и отступы подпунктов (`X.Y.`) при ручном сохранении черновика.
|
||||
|
||||
---
|
||||
|
||||
## 5. Тестирование и валидация
|
||||
- [ ] **Нативные вызовы:** проверить добавление, редактирование и удаление пунктов через нативные вызовы модели.
|
||||
- [ ] **Контекстные сценарии:** проверить поведение модели при смене темы диалога оператором.
|
||||
- [ ] **UI и очистка:** проверить ручное редактирование через кнопку в окне чата и последующую очистку контекста.
|
||||
## 5. Тестирование и валидация системного промпта
|
||||
- [x] **Нативные вызовы:** проверить добавление, редактирование и удаление пунктов через нативные вызовы модели (`db_prompt_node_edit`)[cite: 4].
|
||||
- [x] **Контекстные сценарии:** проверить поведение модели при смене темы диалога оператором (Guardrail)[cite: 4].
|
||||
- [x] **UI и очистка:** проверить ручное редактирование через кнопку в окне чата и последующую очистку контекста (`db_purge_ephemeral_messages`)[cite: 4].
|
||||
|
||||
---
|
||||
|
||||
## 6. Распространение архитектурного паттерна на модуль задач (`tasks`)
|
||||
- [ ] **Масштабирование UI задач:**
|
||||
- Увеличить размер окна/виджета просмотра и управления задачами (`TASK_INTERACTIVE_CARD`) по аналогии с окном редактирования системного промпта для удобного управления большим списком.
|
||||
- [ ] **Интерактивное управление и превью:**
|
||||
- Карточка предпросмотра параметров создаваемой задачи (`db_add_task`) с кнопками `[Подтвердить]`, `[Отменить]`, `[✏️ Редактировать]`.
|
||||
- Подтверждение опасных операций (удаление задачи `db_delete_task`) с кнопками валидации.
|
||||
- Follow-up фаза с выводом актуализированного списка задач из `tool_action_registry`.
|
||||
- [ ] **Доменная консолидация:**
|
||||
- Объединить `db_add_task`, `db_update_task_status`, `db_delete_task` в единый диспетчер `db_tasks_edit(action: ["ADD", "UPDATE", "DELETE"], ...)`[cite: 4].
|
||||
- Обновить `TOOLS_SCHEMA` в `schemas.py`[cite: 4].
|
||||
|
||||
---
|
||||
|
||||
## 7. Распространение на модуль снапшотов (`snapshots`) и правил (`rules`)
|
||||
- [ ] **Консолидация модуля `snapshots`:**
|
||||
- Интерактивное подтверждение массового удаления снапшотов за дату (`db_delete_snapshots`).
|
||||
- Объединить операции удаления и управления срезами в единый `db_snapshots_edit(action: ["DELETE"], ...)`[cite: 4].
|
||||
- Авто-зачистка тяжелых таблиц снапшотов из контекста при переходе к другим темам.
|
||||
- [ ] **Модуль правил арбитража (`rules`):**
|
||||
- Редактирование правил базы знаний через единый паттерн узлов с подсветкой diff.
|
||||
|
||||
---
|
||||
|
||||
## 8. Изолированная песочница кода (Code Execution Sandbox Engine)
|
||||
- [ ] **Docker/gVisor контур:**
|
||||
- Создание изолированного контейнера без доступа к внешней сети (network: none) с ограниченными лимитами по памяти и CPU (cgroups).
|
||||
- Настройка безопасного монтирования только необходимых CSV/Parquet-файлов данных в режиме Read-Only.
|
||||
- [ ] **Динамические Python/Pandas вычисления:**
|
||||
- Инструмент генерации и безопасного выполнения скриптов агрегации и аналитики данных СКУД / 1С на лету.
|
||||
- Перехват stdout/stderr, сбор результатов расчетов и графиков с передачей в UI-чата.
|
||||
Reference in New Issue
Block a user