Appearance
Управление ответами AI
Поведение модели задаётся не одним системным промптом, а слоями: что выбрано в композере на этот ход, какой режим и пайплайн, какие скиллы/агент и какой system_prompt у RAG-скоупа. Ниже — как менять тон, инструменты и форму итогового документа.
Поверхности чата — AI-чат. Каталог режимов — Режимы AI-чата. Бэкенд — AI Router.
Слои управления
| Слой | Кто меняет | Где | На что влияет |
|---|---|---|---|
| Композер хода | любой пользователь | нижняя панель AI-чата | провайдер, режим, агент, scopes, tools, форма запроса |
| Структурированный запрос | любой пользователь | кнопка формы в композере | поля «контекст / задача / цель / формат результата» уходят в сообщение |
Режим (mode) | пользователь | селектор режима | пайплайн, набор tools, шаблон артефакта |
| Агент | пользователь / админ | композер / Settings → Agents | tools, skills, scopes, MCP, свой system_prompt |
| Скилл | админ | Settings → AI Router → Skills | инструкция + tools, подмешивается в system хода |
| Пайплайн | админ | Настройки → AI Router → Процесс | скиллы режима, MaxSteps, промпт цикла (шаблон spec/plan) |
| RAG-скоуп | админ | Settings → AI Router → Scopes | system_prompt базы знаний (anti-hallucination, тон ответов по документам) |
| Guard | платформа | автоматически | маскирование PII/секретов до LLM |
Порядок на ходе: Guard → сборка system (режим + скиллы + агент + scope) → planner/loop → ответ.
На ходе (композер)
В нижней панели чата:
- Провайдер / модель — какая LLM отвечает (OpenAI, Anthropic, Google, Ollama, OpenAI-compatible).
- Режим — в UI: Агент / Планирование / Постановка (
spec) / Наблюдаемость (obs, только при space-scope). Значениеagentна бэкенде — оркестраторmulti-agent. - Агент — готовый пресет. Если выбран, tools/scopes/skills хода берутся с агента, ручной набор tools не мержится.
- Scopes — какие RAG-базы видит
search_knowledge_base. Чат пространства фиксируетspace-{id}. - Tools — ручной набор, если агент не выбран и режим не фиксирует runtime сам (
plan/obs/spec— tools только с бэкенда).
Режимы plan / obs / spec сбрасывают выбранного агента: поведение задаёт пайплайн режима, а не карточка агента.
Структурированный запрос
Иконка формы в композере собирает сообщение из четырёх полей (пустые пропускаются):
- Контекст — исходные данные, ссылки, ограничения.
- Задача — что сделать.
- Цель — какой результат считать успехом.
- Формат результата — как ответить. Пресеты: кратко, маркированный список, шаги, код, таблица, чеклист, черновик.
Это самый прямой способ задать вид ответа на один ход, без правки пайплайна. Поля склеиваются в текст сообщения и уходят в LLM как обычный user-prompt.
Текстовые вложения (.txt, .md, .json, .csv) дополняют запрос, но не меняют RAG-индекс.
Шаблоны артефактов (plan / spec)
Форма «каким документом вернуть план или постановку» не выбирается в композере. Она задаётся промптом цикла в Настройки → AI Router → Процесс. Отдельного файла в каталоге Templates (PPTX/draw.io) для spec/plan нет.
Постановка (mode=spec)
Канон шаблона — DefaultSpecChatPrompt. Скилл(ы) подмешиваются из skill_slugs пайплайна spec (сид system-analyst). Итог — markdown с frontmatter:
markdown
---
kind: unishift-spec
status: draft
---
# <Название>
## Контекст и цель
## Функциональные требования
FR-1. Система должна ...
## Нефункциональные требования
NFR-1. ...
## Архитектурные возможности
## Границы
## Критерии приёмки
- [ ] ...
## Источники (обязательно)
## Предположения (явно)
## Открытые вопросыСохранение: в space — create_note / update_note; вне space — create_file (.md). Полный текст дублируется в чат. create_task в spec выключен: задачу в трекере создаёт человек после ревью.
Как поменять шаблон постановки
Настройки → AI Router → Процесс→ режим Постановка → Скиллы режима (сидsystem-analyst) и Шаблон постановки (system prompt цикла). Пустое поле промпта возвращает эталон.- Body скилла правится в
Settings → AI Router → Skills. Slug должен совпадать с тем, что выбран в пайплайне.
План (mode=plan)
Аналогично, шаблон в prompt Chat Loop режима plan:
markdown
---
kind: unishift-plan
status: draft
---
# Title
## Goal
## Context
## Constraints
## Steps
### 1. Title
- goal: ...
- tools: ...
- acceptance: ...
## Out of scopeФайл пишется через create_file. Правки — тот же шаблон целиком, не патч. Слайды: в плане появляются блоки <!-- SLIDE: --> / ## Слайд N, затем create_pptx.
Скиллы и агенты
Skills (Settings → AI Router → Skills) — пакеты инструкций (markdown). На ход в system попадает каталог кандидатов; полный body — только у выбранных (embed/keyword, picker = always-keep).
invocation: auto— скилл может подхватиться сам.invocation: explicit— только picker или toolread_skill.- Поле
toolsу скилла расширяет набор инструментов хода.
Import/export: SKILL.md или zip. Origin-чат в редакторе скилла — draft-only.
Agents (Settings → Agents) — именованный runtime: system_prompt + tools + skill_slugs + scopes + mcp_slugs. Пользователь выбирает агента в композере. Для спейса можно показать space-агента.
Spec-режим игнорирует выбранного агента. Скиллы хода берутся из графа пайплайна (skill_slugs), не из композера.
Пайплайны (админ)
Настройки → AI Router → Процесс (/settings/ai-router/pipeline; при узкой панели — Ещё). Карточка на режим (chat, multi-agent/agent, plan, obs, spec).
Скиллы режима (graph.skill_slugs): явная привязка instruction packs. Сид spec — system-analyst. Пустой список отвязывает скиллы. Frozen-режимы (plan / obs / spec) не берут скиллы из композера.
Промпт цикла — инструкция модели на шаге chat loop (шаблон unishift-spec / unishift-plan). Пустое поле → дефолт из кода. У Agent/Chat дополнительно промпт планировщика; у Agent/Plan/Spec — промпт уточнений. MaxSteps — лимит итераций tool-loop.
После правки сохраните. Прогон на той же странице гоняет режим без UI-чата.
Техническое описание режимов и дефолтных промптов: AI Router — режимы.
Скоуп базы знаний
Settings → AI Router → Scopes → system_prompt скоупа. Текст добавляется, когда чат ищет по этой базе (search_knowledge_base). Типичное: «отвечай только по документам», «цитируй Source», корпоративный тон.
Скоуп space-{uuid} привязан к workspace и ACL. Общие базы шарятся через shared_user_ids.
Безопасность ответа
- Guard маскирует PII/секреты до вызова LLM, в чате — баннер DLP.
confirm_toolsв настройках пользователя: опасные tools (команды, мутации) ждут подтверждения в UI.- В Monitoring — чаты, токены и prompt traces (если включён сбор трейса).