Skill resolvers (backend.skillResolvers)
Реестр динамических skills — именованных фрагментов промпта, которые пользователь вызывает в чате как /<key>.
Контракт
Типы: @artiroute/extension-sdk/host → SkillResolver, SkillDescriptor, SkillResolveContext.
typescript
import { getExtensionRegistry } from '@artiroute/extension-sdk/host';
import type { SkillResolver } from '@artiroute/extension-sdk/host';
const resolver: SkillResolver = {
id: 'my-extension.example',
async listSkills(ctx) {
return [{ key: 'example', label: 'Example', source: 'my-extension' }];
},
async resolveSkill(key, ctx) {
if (key !== 'example') return null;
return 'Текст, который попадёт в промпт LLM.';
},
};
export function setup(api) {
getExtensionRegistry('backend.skillResolvers').register('my-extension.example', resolver);
}Runtime
- Backend агрегирует все резолверы:
listAllSkills,suggestSkills,resolveSkills. - REST:
GET /api/skills/suggestions,POST /api/skills/resolve(сессия пользователя или service token +userId). - Встроенный резолвер
userчитаетUserSkillиз БД (per-user CRUD в настройках). - Host-резолвер
host.templateGen— skill/templategen: возвращаетTemplate.systemPrompt, если у артефакта есть шаблон сaiGenerationEnabled. Не требует расширений. - AI agent service перед сборкой промпта разворачивает
/<key>inline (секция## Развёрнутые skills), не меняя текст в истории чата.
Host skill /templategen
- Появляется в autocomplete agent_edit, когда
artifactIdв контексте и шаблон артефакта с включённой AI-генерацией. - Кнопка «Сгенерировать с ИИ» при создании артефакта открывает редактор с query
?edit=1&agentSend=/templategen— новая agent-сессия и автоматическая отправка сообщения. - Расширения могут использовать тот же контракт query (
edit+agentSend) черезbuildArtifactEditorAgentLinkна фронте.
Extension skill /methodologygen
Расширение @artiroute/space-methodology — один skill для guided Space:
- Доступен, если артефакт привязан к пункту методологии с
generationEnabled. resolveSkillобъединяетgenerationMessageпункта иTemplate.systemPrompt(как/templategen).- Кнопка на вкладке «Методология» создаёт артефакт, проставляет entity fields, открывает редактор с
agentSend=/methodologygen.
Регистрация
Реестр синхронизируется при bootstrap/reload расширений (syncBackendSkillResolvers в extension host). После reload новые skills доступны в autocomplete и resolve без перезапуска backend.
Пример для AI-flow
См. AI-flow skills — skill ai-flow.generate (оркестратор — основной путь).