Skip to content

AI target

Entry: src/ai/index.tsdist/ai/index.js.

AI-agent-service загружает расширения и регистрирует два реестра для каждого типа артефакта с генерацией:

RegistryНазначение
ai.artifactTypesМетаданные генерации для LLM (schema, prompts, parse)
ai.artifactDriversRuntime: session, tools, validate, finalize
ai.fileExtractorsИзвлечение текста из файлов проекта для RAG
ai.fileExecutorsДействия над файлами (транскрибация, …)

Подробнее про файлы: File extractors, File actions.

Keys должны совпадать с app.artifactTypes (например notes-doc).

ai/index.ts

ts
import { defineExtension, getExtensionRegistry } from '@artiroute/extension-sdk/extension';
import { notesTextDriver } from './text-driver';

export default defineExtension(() => {
  getExtensionRegistry('ai.artifactTypes').register('notes-doc', notesDocType);
  getExtensionRegistry('ai.artifactDrivers').register('notes-doc', notesTextDriver);
});

ai.artifactTypes

Объект с методами:

  • describeGeneration, describeTemplateDefinition, describeContentFields
  • getOutputSchema — zod-like parse
  • parseGenerationResult, extractDraftText, applyDraftText
  • validateDraft, extractIndexText

Определяет контракт контента для LLM и UI preview.

ai.artifactDrivers

Driver управляет сессией редактирования во время AI-генерации:

МетодНазначение
buildSessionContentНачальный content сессии из draft text
getInstructionsSystem hints для агента
getInfoMetadata для UI
validateПроверка перед finalize
finalizeMerge draft → artifact content
createToolsAI SDK tools (readText, replaceText, …)

Подробнее: Artifact drivers.

Manifest

js
extendsRegistries: [
  { registryId: 'ai.artifactTypes', keys: ['notes-doc'] },
  { registryId: 'ai.artifactDrivers', keys: ['notes-doc'] },
],
targets: { ai: {} },

Plain-text fallback

Если driver реализует buildSessionContent{ text }, но createTools() пустой, ai-agent-service автоматически добавляет host plain-text tools (readText, replaceText, …).

См. registry-test minimal driver vs project-notes explicit tools.

Сборка и deploy

bash
pnpm build:extensions
pnpm install:extensions
pnpm ai:dev   # или ai:start

AI service импортирует ai/index.js из data/extensions/ аналогично frontend.

Примеры

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