Skip to content

Skill resolvers (backend.skillResolvers)

Реестр динамических skills — именованных фрагментов промпта, которые пользователь вызывает в чате как /<key>.

Контракт

Типы: @artiroute/extension-sdk/hostSkillResolver, 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 (оркестратор — основной путь).

AI workspace для командных материалов и знаний