Встроенный AI Assistant
Assistant связывает контекст Capture, Selector, CV, Screph Code, Automation Runtime и настроек в одном workspace. Это экспериментальный помощник с явными границами: он выключен по умолчанию, работает только через зарегистрированные actions и не получает право на изменение проекта только потому, что сформировал ответ.
1. Подготовка и запуск
- В
Настройки LLMсоздайте или проверьте профиль и назначьте модели ролямassistantи, если нужны соответствующие контекстные flows,cv,codegenиsemantic_selection. Для локальной работы можно использовать Ollama или LM Studio. - Откройте
AI АССИСТЕНТ → AI ассистенти включите ассистента. Базовый режим запуска —Только кнопка; проактивные подсказки включаются отдельно. - В Selector тот же флаг доступен как переключатель
AIв шапке. Открывайте помощника кнопкой AI, сочетаниемCtrl+Shift+Spaceили из контекстной точки входа выбранного объекта. - В окне настроек кнопка Assistant находится в строке состояния. Голосовая кнопка Selector передаёт распознанный текст как задачу и требует заранее настроенного speech provider.
2. Что находится в workspace
| Вкладка | Назначение |
|---|---|
| Чат | Задача, ответ модели и selector общей LLM-роли assistant. Контекстные CV/codegen/voice flows могут использовать другие назначения из «Настройки LLM». |
| Подсказки | Проактивные кандидаты: принять, перенести в чат или скрыть. |
| Actions | Карточки preview/apply с типом действия, target, policy state и кнопками «Редактировать», «Отклонить», «Подтвердить/Применить» или «Откатить». |
| Sessions / Timeline | Поиск сессий и хронология turns, подсказок, решений и action results. |
| Контекст | Активная поверхность, компетенция, объект и путь проекта — то, на что опирается текущий turn. |
| Артефакты | Ссылки на созданные модулями результаты; тяжёлые bodies остаются у модулей-владельцев и не загружаются автоматически. |
| Настройки | Те же параметры запуска, контекста, компетенций, policy и истории без выхода из workspace. |
3. Компетенции и маршрутизация
Контекстная точка входа выбирает компетенцию, а не даёт модели неограниченный доступ. Доступны Canvas/области, CV, Screph Code, голосовые задачи, Capture/timeline, Tree modules/exports, Automation Runtime, настройки/зависимости, account/crash support и i18n/docs. На вкладке есть переключатели компетенций, но текущий router их не читает: считать их runtime-запретом пока нельзя.
Внутренняя assistant-role определяет инструкции и action scope: assistant, canvas, cv, codegen, semantic_selection, capture, tree_modules, automation, settings_dependencies, support или i18n_docs. При выборе LLM-профиля роли cv, codegen и semantic_selection используют одноимённые назначения; остальные компетенции идут через LLM-роль assistant.
4. Preview, policy и подтверждение
- Ответ модели может предложить только action с зарегистрированным стабильным идентификатором. Неизвестный action завершается явной ошибкой.
- Router проверяет обязательные входы и policy gate до обращения к adapter.
- Actions среднего, высокого и destructive-риска, а также actions с отдельным permission flag, блокируются с
requires_confirmationдо явного подтверждения. - Карточка сохраняет preview и решение пользователя. Если adapter предоставляет revert token, результат можно откатить из workspace.
5. Контекст, вложения и privacy
- Базовый payload —
Только текст; изображения и артефакты запрещены по умолчанию. - Для артефактов по умолчанию требуется согласие на каждый turn. Без согласия в handoff передаются только разрешённые данные, а заблокированные references отражаются в отчёте.
- Базовая retention policy вложений —
Только metadata. Режим thumbnail создаёт локальные миниатюры, а full-project-artifacts копирует разрешаемые файлы в session storage. Понижение режима не удаляет уже созданные копии и thumbnails. - Перед LLM handoff контекст проходит redaction; workspace может показать краткий redaction report.
6. Что реально применяют настройки
| Группа | Текущая граница |
|---|---|
| Запуск и проактивность | enabled, кнопка, workspace gate и proactive priority/cooldown/snooze/repeat имеют consumers и перечитываются соответствующими UI/runtime paths. |
| Контекст и action policy | Работают, но часть значений кэшируется при создании runtime. Изменение во встроенной вкладке workspace обновляет текущий runtime; после изменения на отдельной странице Settings безопасная граница — перезапуск Screph. |
| Представление workspace | Default view, long-task routing, timeline/context-chips/cost toggles сейчас только сохраняются. Workspace восстанавливает последний tab из local state и продолжает создавать эти panes. |
| Competencies и Assistant LLM routing | Видимые controls сохраняются, но не меняют текущий router. Модель назначайте через общие LLM roles. |
| История и CV extras | Action-history retention, mirroring и auto-save turn docs считываются при создании runtime. CV auto-save/export-preview controls consumer не имеют. Отдельные ограничения session pruning и project mirror описаны ниже. |
7. История и диагностика
Workspace хранит prompts/responses, сессии, turns, action records, context/timeline metadata и разрешённые attachments в ScrephData/runtime/ai_assistant. history.jsonl применяет сохранённый retention при добавлении событий, но session-directory cleanup сейчас не получает это поле из typed runtime settings и фактически использует 180 дней при создании workspace. Активная сессия и сессии с unresolved confirmation-required actions не удаляются этим проходом.
Project mirror находится в <project>/.screph_ai_assistant и не очищается global 180-day pruning. В текущей реализации переключатель mirroring влияет на action-history store, но generic workspace создаёт свой store с mirroring по умолчанию: этот control нельзя считать способом остановить все новые messages.mirror.jsonl, timeline.mirror.jsonl и actions.mirror.jsonl. Уже созданные записи он также не удаляет.
Retention, исключения и полная очистка →
Если Assistant не запускается, последовательно проверьте: флаг Включить ассистента, Включить workspace, назначение нужной общей LLM-роли, доступность профиля и policy gate действия. Competence toggle сейчас причиной блокировки быть не может, потому что router его не читает. Screph показывает runtime-ошибки явно и не переключает provider или action автоматически.