Skip to Content
DocumentaçãoGuiasService Discovery

Guia de Service Discovery AIOS

🌐 EN | PT | ES


Como descobrir, consultar e usar workers no framework AIOS.

Versão: 2.1.0 Última Atualização: 2025-12-01


Visão Geral

O sistema de Service Discovery permite encontrar e usar workers (tasks, templates, scripts, workflows) em todo o framework AIOS. O Service Registry é o catálogo central contendo metadados sobre todos os workers disponíveis.

Conceitos Principais

ConceitoDescrição
WorkerQualquer unidade executável: task, template, script, workflow
Service RegistryCatálogo central de todos os workers com metadados
CategoryTipo de worker: task, template, script, checklist, workflow, data
TagRótulo pesquisável para agrupar workers

API do Service Registry

Carregando o Registry

const { getRegistry, loadRegistry } = require('./.aios-core/core/registry/registry-loader'); // Carregamento rápido (retorna dados do registry) const registry = await loadRegistry(); console.log(`Carregados ${registry.totalWorkers} workers`); // Loader completo com métodos const reg = getRegistry(); await reg.load();

Consultando Workers

Obter por ID

const registry = getRegistry(); const worker = await registry.getById('create-story'); console.log(worker); // { // id: 'create-story', // name: 'Create Story', // category: 'task', // path: '.aios-core/development/tasks/po-create-story.md', // tags: ['task', 'creation', 'story', 'product'], // agents: ['po'] // }

Obter por Categoria

// Obter todas as tasks const tasks = await registry.getByCategory('task'); console.log(`Encontradas ${tasks.length} tasks`); // Obter todos os templates const templates = await registry.getByCategory('template');

Obter por Tag

// Tag única const devTasks = await registry.getByTag('development'); // Múltiplas tags (lógica AND) const qaDevTasks = await registry.getByTags(['testing', 'development']);

Obter Workers para Agente

// Obter todos os workers atribuídos ao agente dev const devWorkers = await registry.getForAgent('dev'); // Obter workers para múltiplos agentes const teamWorkers = await registry.getForAgents(['dev', 'qa']);

Pesquisar

// Pesquisa de texto em nomes e descrições de workers const results = await registry.search('validate', { maxResults: 10 }); // Pesquisar dentro de categoria const taskResults = await registry.search('story', { category: 'task', maxResults: 5, });

Informações do Registry

const registry = getRegistry(); // Obter metadados const info = await registry.getInfo(); // { version: '1.0.0', generated: '2025-12-01', totalWorkers: 203 } // Obter resumo de categorias const categories = await registry.getCategories(); // { task: 115, template: 52, script: 55, ... } // Obter todas as tags const tags = await registry.getTags(); // ['task', 'creation', 'story', 'testing', ...] // Contar workers const count = await registry.count(); // 203

Comandos CLI

aios discover

Pesquisar workers no registry.

# Pesquisar por texto aios discover "create story" # Pesquisar por categoria aios discover --category task # Pesquisar por tag aios discover --tag testing # Pesquisar para agente aios discover --agent dev # Combinar filtros aios discover --category task --tag development --agent dev

Saída:

Encontrados 5 workers correspondendo a "create story": [task] po-create-story Path: .aios-core/development/tasks/po-create-story.md Tags: task, creation, story, product Agents: po [task] dev-create-brownfield-story Path: .aios-core/development/tasks/dev-create-brownfield-story.md Tags: task, creation, brownfield Agents: dev ...

aios info

Obter informações detalhadas sobre um worker específico.

# Obter info do worker por ID aios info create-story # Obter info do worker com path completo aios info --path .aios-core/development/tasks/po-create-story.md

Saída:

Worker: create-story ======================== Nome: Create Story Categoria: task Path: .aios-core/development/tasks/po-create-story.md Descrição: Cria uma nova user story a partir de template com formatação adequada e critérios de aceitação. Entradas: - story-title (string, obrigatório) - epic-id (string, opcional) - priority (string, opcional) Saídas: - story-file-path (string) Tags: task, creation, story, product Agentes: po Performance: Duração Média: 1m Cacheável: Não Paralelizável: Não

aios list

Listar workers por categoria ou agente.

# Listar todas as tasks aios list tasks # Listar todos os templates aios list templates # Listar workers para agente aios list --agent dev # Listar com paginação aios list tasks --page 1 --limit 20

Tipos de Serviço

Tasks

Definições de workflow executáveis para agentes.

# Exemplo de estrutura de task task: name: create-story version: 1.0.0 description: 'Cria uma nova user story' inputs: - name: story-title type: string required: true outputs: - name: story-file-path type: string steps: - name: gather-requirements action: elicit - name: generate-story action: template-render

Localização: .aios-core/development/tasks/

Templates

Templates de documento e código para geração.

TemplatePropósito
story-tmpl.yamlTemplate de documento de story
prd-tmpl.yamlTemplate de PRD
architecture-tmpl.yamlTemplate de documento de arquitetura
component-react-tmpl.tsxTemplate de componente React
ide-rules/*.mdRegras específicas por IDE

Localização: .aios-core/product/templates/

Scripts

Utilitários JavaScript para automação.

ScriptPropósito
backup-manager.jsOperações de backup/restore
template-engine.jsProcessamento de templates
git-wrapper.jsOperações Git
security-checker.jsValidação de segurança

Localização: .aios-core/infrastructure/scripts/

Workflows

Processos de desenvolvimento multi-etapas.

WorkflowCaso de Uso
greenfield-fullstack.yamlNovo projeto full-stack
brownfield-fullstack.yamlAprimoramento de projeto existente
greenfield-service.yamlNovo serviço backend
brownfield-ui.yamlAprimoramento de frontend existente

Localização: .aios-core/development/workflows/

Checklists

Checklists de validação de qualidade.

ChecklistPropósito
story-dod-checklist.mdDefinition of Done de story
pre-push-checklist.mdValidação pré-push
architect-checklist.mdRevisão de arquitetura
release-checklist.mdValidação de release

Localização: .aios-core/product/checklists/


Registro de Workers

Registro Automático

Workers são automaticamente registrados quando o registry é construído:

# Reconstruir registry node .aios-core/core/registry/build-registry.js

O builder escaneia:

  • .aios-core/development/tasks/**/*.md
  • .aios-core/product/templates/**/*
  • .aios-core/infrastructure/scripts/**/*.js
  • .aios-core/product/checklists/**/*.md
  • .aios-core/development/workflows/**/*.yaml
  • .aios-core/core/data/**/*

Schema de Entrada de Worker

{ "id": "create-story", "name": "Create Story", "description": "Cria uma nova user story a partir de template", "category": "task", "subcategory": "creation", "inputs": ["story-title", "epic-id"], "outputs": ["story-file-path"], "tags": ["task", "creation", "story", "product"], "path": ".aios-core/development/tasks/po-create-story.md", "taskFormat": "TASK-FORMAT-V1", "executorTypes": ["Agent", "Worker"], "performance": { "avgDuration": "1m", "cacheable": false, "parallelizable": false }, "agents": ["po"], "metadata": { "source": "development", "addedVersion": "1.0.0" } }

Cache

O registry loader implementa cache inteligente:

FuncionalidadeDescrição
Cache TTLExpiração padrão de 5 minutos
Lookups IndexadosO(1) por ID, categoria, tag
Carregamento LazyRegistry carregado na primeira consulta
Atualização ManualForçar reload com registry.load(true)

Operações de Cache

const registry = getRegistry(); // Forçar reload (ignorar cache) await registry.load(true); // Limpar cache registry.clearCache(); // Verificar se está em cache const isCached = registry.isCached();

Exemplos de Código

Encontrar Todas as Tasks para um Agente

const { getRegistry } = require('./.aios-core/core/registry/registry-loader'); async function getAgentTasks(agentId) { const registry = getRegistry(); const tasks = await registry.getForAgent(agentId); return tasks.filter((w) => w.category === 'task'); } // Uso const devTasks = await getAgentTasks('dev'); console.log(`Agente dev tem ${devTasks.length} tasks`);

Pesquisar e Executar Task

const { getRegistry } = require('./.aios-core/core/registry/registry-loader'); const { TaskExecutor } = require('./.aios-core/development/scripts/task-executor'); async function findAndExecute(searchTerm, inputs) { const registry = getRegistry(); const results = await registry.search(searchTerm, { category: 'task', maxResults: 1, }); if (results.length === 0) { throw new Error(`Nenhuma task encontrada para: ${searchTerm}`); } const task = results[0]; const executor = new TaskExecutor(task.path); return executor.execute(inputs); } // Uso await findAndExecute('create story', { 'story-title': 'Implementar autenticação de usuário', 'epic-id': 'EPIC-001', });

Listar Workers por Categoria

const { getRegistry } = require('./.aios-core/core/registry/registry-loader'); async function listByCategory() { const registry = getRegistry(); const categories = await registry.getCategories(); for (const [category, count] of Object.entries(categories)) { console.log(`${category}: ${count} workers`); } } // Saída: // task: 115 workers // template: 52 workers // script: 55 workers // checklist: 11 workers // workflow: 7 workers // data: 3 workers

Solução de Problemas

Registry Não Carrega

# Verificar se o arquivo do registry existe ls .aios-core/core/registry/service-registry.json # Reconstruir registry node .aios-core/core/registry/build-registry.js # Validar registry node .aios-core/core/registry/validate-registry.js

Worker Não Encontrado

  1. Verifique se o arquivo do worker existe na localização esperada
  2. Verifique se o arquivo tem frontmatter YAML adequado
  3. Reconstrua o registry para incluir novos workers
  4. Verifique categoria e tags na consulta de pesquisa

Problemas de Performance

// Verificar status do cache const registry = getRegistry(); console.log('Em cache:', registry.isCached()); // Limpar cache se desatualizado registry.clearCache(); await registry.load(true);

Documentação Relacionada


Guia de Service Discovery Synkra AIOS v4