AI-flow skills (legacy: workflow engine skills)
В v2 пресетные инструкции подмешивались в system prompt при генерации артефакта (Template.systemPrompt, FlowPresetVersion.outputs[].ai_config.systemPromptOverride).
В v3 core space agent_edit использует assembleSpacePrompts без пресетов. Пресеты для automatic pipeline живут в extension AI-flow.
Skill ai-flow.generate (ориентир)
Расширение ai-flow может зарегистрировать резолвер в backend.skillResolvers:
typescript
import { getExtensionRegistry } from '@artiroute/extension-sdk/host';
getExtensionRegistry('backend.skillResolvers').register('ai-flow.preset', {
id: 'ai-flow.preset',
async listSkills(ctx) {
// preset outputs, доступные в текущем run/artifact
return [];
},
async resolveSkill(key, ctx) {
if (key !== 'ai-flow.generate') return null;
// Портировать buildGenerationContext + блоки из v2 assemblePrompts:
// - Template.systemPrompt → «Инструкция шаблона»
// - preset systemPromptOverride → «Инструкция пресета» (выше приоритет)
return '...развёрнутый промпт пресета...';
},
});Пользователь в чате пишет /ai-flow.generate — в истории остаётся ключ, AI service разворачивает текст через POST /api/skills/resolve перед вызовом LLM.
Основной путь генерации в AI-flow — оркестратор (ai_flow_run), skills — для отладки и ручного перезапуска output.
См. также
- AI-flow — полная спецификация расширения
Artifact @mentions в skill-тексте
Skills могут возвращать текст с user-facing токенами @<DisplayName> (без artifactId). После expandMessageWithSkills AI service:
- парсит
@<…>в развёрнутом тексте; - резолвит имена по дереву space (
contextReadable); - заполняет
priorityArtifacts[]и добавляет preamble сreadArtifact.
Пример фрагмента skill:
text
Сначала прочитай @<Устав проекта>, затем сверь с @<Реестр рисков>.Wire-формат для skills совпадает с ChatComposer (encodeUserArtifactMention из @artiroute/extension-sdk).
См. также
- Skill resolvers
- Исходная migration note в репозитории:
architecture-v3/migration-notes/workflow-engine-skills.md