Skip to content

RiLiGar Orchestrator SDK - Framework for orchestration and coordination of multiple AI agents in distributed systems.

License

Notifications You must be signed in to change notification settings

riligar/orchestrator-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RiLiGar Orchestrator SDK

Framework para orquestração e coordenação de múltiplos agentes de IA em sistemas distribuídos.

🚀 Características

  • Orquestração Distribuída: Coordena agentes rodando em diferentes processos/servidores
  • Event Bus Nativo: Sistema de eventos para comunicação assíncrona
  • Registry Inteligente: Descoberta automática e health check de agentes
  • Workflows Declarativos: Configure fluxos complexos via eventos
  • Proxy Transparente: Comunicação uniforme com agentes locais e remotos
  • Zero Dependências: Funciona independente de infraestrutura externa

📦 Instalação

npm install @riligar/orchestrator-sdk @riligar/agents-sdk

🎯 Uso Básico

import { Orchestrator } from "@riligar/orchestrator-sdk";
import { Logger } from "@riligar/agents-sdk";

const logger = new Logger({ level: "verbose" });

// Criar orchestrator
const orchestrator = new Orchestrator({
  name: "my-orchestrator",
  logger,
});

// Registrar agentes remotos
await orchestrator.registerAgent("agent-1", "http://localhost:3001", [
  "capability.process",
  "capability.analyze",
]);

// Configurar workflow
orchestrator.setupWorkflow("data-processing", {
  "data.received": {
    targetCapability: "capability.process",
    task: "Processar dados recebidos",
    contextMapping: {
      dataId: "data.id",
      content: "data.content",
    },
    emitEvent: "data.processed",
  },
});

// Executar tarefa
const result = await orchestrator.executeByCapability(
  "capability.process",
  "Processar arquivo importante"
);

console.log("Resultado:", result);

🏗️ Arquitetura

Componentes Principais

  • Orchestrator: Coordenador central
  • AgentRegistry: Registro e descoberta de agentes
  • EventBus: Sistema de eventos assíncronos
  • AgentProxy: Abstração de comunicação
  • Workflow: Fluxos automatizados

Fluxo de Comunicação

[Orchestrator] ↔ [AgentRegistry] ↔ [AgentProxy] ↔ [Remote Agent]
       ↕                                ↕
   [EventBus] ↔ [Workflow]        [Local Agent]

📋 Exemplos

CRM Agêntico Distribuído

// Registrar agentes especializados
await crm.registerAgent("lead-capture", "http://lead-service:3001", [
  "lead.qualify",
  "lead.score",
]);

await crm.registerAgent("relationship", "http://relationship-service:3002", [
  "customer.engage",
  "conversation.manage",
]);

// Workflow automático
crm.setupWorkflow("lead-to-customer", {
  "lead.qualified": {
    targetCapability: "customer.engage",
    task: "Iniciar relacionamento com lead qualificado",
    contextMapping: {
      leadId: "data.leadId",
      score: "data.score",
    },
    emitEvent: "relationship.started",
  },
});

// Sistema funciona automaticamente!

Health Check e Monitoramento

// Health check automático
orchestrator.startHealthCheck(30000); // 30s

// Status completo
const status = orchestrator.getStatus();
console.log("Agentes ativos:", status.registry.activeAgents);
console.log("Workflows:", status.workflows.active);

// Estatísticas de performance
const stats = orchestrator.getProxyStats();
stats.forEach((stat) => {
  console.log(`${stat.agentId}: ${stat.successRate} sucesso`);
});

🛠️ API Completa

Orchestrator

  • registerAgent(id, url, capabilities) - Registra agente remoto
  • registerLocalAgent(id, instance, capabilities) - Registra agente local
  • executeOnAgent(id, task, context) - Executa em agente específico
  • executeByCapability(capability, task, context) - Executa por capacidade
  • setupWorkflow(name, mappings) - Configura workflow
  • emit(eventType, data) - Emite evento
  • getStatus() - Status completo

EventBus

  • publish(eventType, data, source) - Publica evento
  • subscribe(eventType, agentId, handler, filters) - Subscreve a evento
  • getStats() - Estatísticas de eventos

AgentRegistry

  • findAgentByCapability(capability) - Encontra agente por capacidade
  • getActiveAgents() - Lista agentes ativos
  • startHealthCheck(interval) - Inicia monitoramento

🔧 Desenvolvimento

# Instalar dependências
npm install

# Build
npm run build

# Exemplo
node examples/crm-orchestrated.js

📝 Licença

Apache-2.0

🤝 Contribuição

Contribuições são bem-vindas! Veja os issues para oportunidades.


Parte do ecossistema RiLiGar 🚀

About

RiLiGar Orchestrator SDK - Framework for orchestration and coordination of multiple AI agents in distributed systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors