10 KiB
🗺️ ДОРОЖНАЯ КАРТА И АРХИТЕКТУРНЫЙ РОАДМАП ПРОЕКТА SCUD ORION AI
📌 Зафиксированные вехи и концептуальные архитектурные решения
Схема веток Gitea для ближайшего развития проекта:
main (100% стабильный релиз) │ ├──► feature/tool-registry-db ──────┐ (Создание таблицы tool_action_registry в SQLite) │ ▼ ├───────────────────────────────► merge to main │ ├──► feature/interactive-buttons ───┐ (Подключение Да/Нет чипсов на фронтенде) │ ▼ ├───────────────────────────────► merge to main │ └──► feature/ephemeral-context ─────┐ (Внедрение флагов is_ephemeral для очистки памяти LLM) ▼ merge to main
1. Архитектура скользящего контекста и отслеживания смены темы (Intent / Topic Drift Tracking)
- Проблема: При работе с длинными операциями (редактирование промптов, мастера табелей, снапшотов) оператор может отвлекаться на сторонние вопросы или уточнения. Жесткий сброс сессии уничтожает черновики, а вечное хранение засоряет память LLM.
- Решение (Сферическое / Фундаментальное):
- Семантическая оценка моделью: Модель через системный контекст определяет, относится ли вопрос оператора к активному черновику/инструменту или разговор ушел в сторону (
topic_shift = true). - Детерминированный счетчик в бэкенде: Бэкенд фиксирует шаги отвлечения (
idle_turns). ПокаN < 3, оператор может свободно общаться, не теряя висящий контекст. - Вежливый перехват и выбор (Guard): На 3-м шаге отвлечения система отвечает на текущий вопрос оператора и мягко напоминает о незавершенной транзакции кнопками
[Применить / Сохранить]или[Отменить и сбросить].
- Семантическая оценка моделью: Модель через системный контекст определяет, относится ли вопрос оператора к активному черновику/инструменту или разговор ушел в сторону (
🚀 Будущие модули и запланированный функционал (Backlog)
2. Интерактивный модуль планирования и дорожных карт (Checklist & Task Planner Engine)
- Концепция: Специализированный инструмент для LLM-агента, позволяющий вести динамические проектные чек-листы и планы с интерактивными чекбоксами прямо в диалоге и базе данных.
- Ключевые возможности:
- Составление многоуровневых планов с чекбоксами (
[ ]/[x]). - Фиксация промежуточных комментариев и статусов выполнения по каждому пункту.
- Синхронизация задач плана с SQLite-таблицей
tasks. - Экспорт планов в Markdown/Excel и отображение на дашборде.
- Составление многоуровневых планов с чекбоксами (
3. Изолированная среда выполнения и песочница кода (Code Execution Sandbox Engine)
- Концепция: Безопасный изолированный Docker-контейнер (или gVisor / Pyodide / nsjail окружение) для динамического выполнения кода, генерируемого моделью в процессе рассуждений и анализа данных.
- Ключевые возможности:
- Запуск сложных вычислений, агрегаций и статистического анализа данных СКУД на лету (Pandas / NumPy).
- Выполнение тестовых сценариев и валидация скриптов перед их сохранением/применением на проде.
- Полная изоляция от хост-системы: read-only доступ к копиям данных, ограничение памяти/CPU (cgroups), отсутствие доступа к чувствительным сетевым интерфейсам.
- Возврат результатов вычислений (stdout, stderr, артефакты, сгенерированные таблицы/графики) обратно в контекст модели.
1. Архитектура скользящего контекста и отслеживания смены темы (Intent / Topic Drift Tracking)
- Статус:
MVP Реализован и протестирован(на базе инструментов системного промпта:db_preview_prompt_merge,db_confirm_prompt_preview,db_cancel_prompt_preview). - Концептуальное решение:
- Двухфазное состояние сессии: Разделение жизненного цикла на фазу черновика (
PROMPT_PREVIEW) и фазу интерактивного подтверждения/диалога (PROMPT_FOLLOWUP). - Эфемерный буфер: Промежуточные экраны, подтверждения и тяжелые выводы помечаются
is_ephemeral = 1и не засоряют постоянную историю диалога. - Детерминированный счетчик (Topic Drift): Бэкенд инкрементирует
idle_turnsпри отвлечении на сторонние темы. На шагеN = 3срабатывает Context Guard с напоминанием и кнопками действий, а приN > 3происходит автоматический сброс сессии и вызовdb_purge_ephemeral_messages. - Fast-Path очистка: Прямой перехват команд завершения (
нет, спасибо,закончить настройку) моментально очищает эфемерный контекст.
- Двухфазное состояние сессии: Разделение жизненного цикла на фазу черновика (
1.1. План масштабирования механизма эфемерного контекста на все инструменты (Rollout Roadmap)
План:
[1. REST API (main.py)] ────► Добавляем POST, PATCH, DELETE для /api/v1/tasks │ [2. Agent (agent.py)] ────► При db_get_tasks отдаем payload {type: "TASK_INTERACTIVE_CARD", tasks: [...]} │ [3. UI (chat.js / CSS)] ────► Рендерим карточку с табами [Все] [В работе] [В планах] [Завершенные]
Этап 1. Модуль задач и бэклога (tasks)
- Целевые инструменты:
db_get_tasks,db_add_task,db_update_task_status,db_delete_task. - Задачи реализации:
- Перевод вывода объемных плоских списков задач в эфемерный режим (
is_ephemeral = 1), чтобы история диалога не забивалась длинными перечнями. - Реализация состояния сессии
TASKS_FOLLOWUPпосле создания/изменения/удаления задачи. - Интеграция с Context Guard: напоминание о завершении работы с задачами на 3-м шаге отвлечения.
- Автоочистка промежуточных диалоговых карточек задач при переключении на аналитику СКУД или общие вопросы.
- Перевод вывода объемных плоских списков задач в эфемерный режим (
Этап 2. Модуль срезов и архива СКУД (snapshots)
- Целевые инструменты:
db_get_snapshots,db_delete_snapshots. - Задачи реализации:
- Маркировка объемных таблиц срезов и логов как эфемерных сообщений.
- Внедрение интерактивного подтверждения при удалении снапшотов по ID или по дате (
SNAPSHOTS_PREVIEW/SNAPSHOTS_FOLLOWUP). - Полная автоочистка временных таблиц срезов из памяти диалога после получения пользователем нужной информации.
Этап 3. Модуль базы знаний, правил и аномалий (kb & anomalies)
- Целевые инструменты:
db_get_rules,db_get_anomalies,db_get_reference. - Задачи реализации:
- Вывод справочников команд, правил арбитража и списков аномалий исключительно во временный слой.
- Предотвращение «залипания» модели на старых правилах из истории: гарантия того, что LLM всегда запрашивает актуальные правила через Tool Call, а не читает их из контекста предыдущих сообщений.
Этап 4. Декларативная унификация в tool_action_registry
- Целевые изменения:
- Расширение схемы
tool_action_registryновыми декларативными полями:followup_state_type,auto_purge_on_exit,guard_question_template. - Устранение жестких проверок названий функций в
agent.py: перевод всей логики жизненного цикла сессий и очистки памяти на декларативные параметры из базы данных SQLite.
- Расширение схемы