Skip to content

Sistema de plugins

El sistema de plugins de Commander expone 19 puntos de hook para observar, modificar o bloquear la ejecución en cualquier etapa.

Puntos de hook

HookCuándo se dispara
beforeLLMCall / afterLLMCallAntes/después de cada request LLM
beforeToolCall / afterToolCallAntes/después de cada tool
onAgentStart / onAgentCompleteInicio/fin de agente
onSubtaskCreate / onSubtaskCompleteSubtareas
onCheckpointCheckpoint de estado
onError / onRetryError no fatal / reintento
beforeVerification / afterVerificationPuertas de calidad
onTokenUsagePresupuesto de tokens
onMetricsEmitMétricas
beforeRun / afterRunInicio/fin del run
onHandoffHandoff entre agentes
onStreamEventEvento SSE

Crear un plugin

typescript
import { CommanderPlugin } from '@commander/core';

class LoggingPlugin implements CommanderPlugin {
  name = 'logging';
  hooks = {
    beforeLLMCall: async (params) => {
      console.log(`[LLM] ${params.provider}`);
      return params; // o throw para bloquear
    },
    afterToolCall: async (result) => {
      console.log(`[Tool] ${result.tool} ${result.durationMs}ms`);
      return result;
    },
    onError: async (error) => {
      console.error(error.message);
    },
  };
}

Registrar

typescript
import { getHookManager } from '@commander/core';
getHookManager().register(new LoggingPlugin());

Seguridad de plugins

Los plugins de terceros reciben un contexto de carga sandboxed: sus permisos no pueden superar los del sistema principal.

bash
npx tsx packages/core/src/cliEntry.ts plugin enable rag
npx tsx packages/core/src/cliEntry.ts plugin disable rag

Relacionado

MIT — Hecho para orquestación multi-agente.