Встроенный AI Assistant

Assistant связывает контекст Capture, Selector, CV, Screph Code, Automation Runtime и настроек в одном workspace. Это экспериментальный помощник с явными границами: он выключен по умолчанию, работает только через зарегистрированные actions и не получает право на изменение проекта только потому, что сформировал ответ.

1. Подготовка и запуск

  1. В Настройки LLM создайте или проверьте профиль и назначьте модели ролям assistant и, если нужны соответствующие контекстные flows, cv, codegen и semantic_selection. Для локальной работы можно использовать Ollama или LM Studio.
  2. Откройте AI АССИСТЕНТ → AI ассистент и включите ассистента. Базовый режим запуска — Только кнопка; проактивные подсказки включаются отдельно.
  3. В Selector тот же флаг доступен как переключатель AI в шапке. Открывайте помощника кнопкой AI, сочетанием Ctrl+Shift+Space или из контекстной точки входа выбранного объекта.
  4. В окне настроек кнопка Assistant находится в строке состояния. Голосовая кнопка Selector передаёт распознанный текст как задачу и требует заранее настроенного speech provider.

Настроить LLM и распознавание речи →

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 и подтверждение

  1. Ответ модели может предложить только action с зарегистрированным стабильным идентификатором. Неизвестный action завершается явной ошибкой.
  2. Router проверяет обязательные входы и policy gate до обращения к adapter.
  3. Actions среднего, высокого и destructive-риска, а также actions с отдельным permission flag, блокируются с requires_confirmation до явного подтверждения.
  4. Карточка сохраняет 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.
Представление workspaceDefault view, long-task routing, timeline/context-chips/cost toggles сейчас только сохраняются. Workspace восстанавливает последний tab из local state и продолжает создавать эти panes.
Competencies и Assistant LLM routingВидимые controls сохраняются, но не меняют текущий router. Модель назначайте через общие LLM roles.
История и CV extrasAction-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 автоматически.