Skip to content

Router inteligente de modelos

Documentación en español de Router inteligente de modelos, alineada con el monorepo y la guía inglesa.

Entrada rápida

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

const router = new SmartModelRouter({
  mode: 'cascade',  // auto | manual | cascade
  modelPool: [
    {
      id: 'gpt-4o',
      provider: 'openai',
      capabilities: ['code', 'reasoning', 'function_calling', 'streaming'],
      costPer1MInput: 2.5,
      costPer1MOutput: 10,
      contextWindow: 128000,
      tier: 'power',
    },
    {
      id: 'claude-sonnet-4-20250514',
      provider: 'anthropic',
      capabilities: ['code', 'reasoning', 'long_context', 'function_calling'],
      costPer1MInput: 3,
      costPer1MOutput: 15,
      contextWindow: 200000,
      tier: 'power',
    },
    {
      id: 'deepseek-chat',
      provider: 'deepseek',
      capabilities: ['code', 'reasoning', 'low_cost'],
      costPer1MInput: 0.14,
      costPer1MOutput: 0.28,
      contextWindow: 64000,
      tier: 'eco',
    },
  ],
  routingRules: [
    {
      taskType: 'code_review',
      requiredCapabilities: ['code', 'reasoning'],
      preferredTier: 'power',
      maxCostPer1K: 0.05,
    },
    {
      taskType: 'simple_query',
      requiredCapabilities: ['reasoning'],
      preferredTier: 'eco',
      maxCostPer1K: 0.001,
    },
  ],
  budget: {
    maxCostPerTask: 1.0,
    dailyBudget: 10.0,
  },
});
Task → Analyze requirements → Match capabilities → Filter by budget

                    ┌────────────────────────────────────┘

            Select model by tier preference

                    ┌────────────────────────────────────┐
                    ▼                                    ▼
            Primary model                          Fallback chain
            (best match)                           (next tier)
typescript
// Get routing decision for a task
const decision = router.route({
  taskType: 'code_generation',
  requiredCapabilities: ['code', 'function_calling'],
  estimatedTokens: 5000,
});

console.log(`Selected: ${decision.modelId}`);
console.log(`Tier: ${decision.tier}`);
console.log(`Estimated cost: $${decision.estimatedCost}`);

// List available models for a capability set
const models = router.listModels({
  capabilities: ['code', 'reasoning'],
  tier: 'power',
});

// Check budget status
const budget = router.getBudgetStatus();
console.log(`Daily spend: $${budget.spent} / $${budget.limit}`);
CapabilityDescription
codeCode generation and understanding
reasoningLogical reasoning and chain-of-thought
analysisData analysis and interpretation
creativeCreative writing and brainstorming
mathMathematical computation
multimodalMultiple input modalities
visionImage understanding
image_generationImage creation
long_contextLarge context window support
low_costCost-efficient inference
fastLow-latency inference
high_qualityHighest quality output
function_callingTool use support
json_modeStructured JSON output
streamingStreaming response support
translationMulti-language translation
summarizationText summarization
extractionInformation extraction
ModeBehavior
autoRouter selects best model based on task requirements and budget
manualUse only the defaultModel — no automatic selection
cascadeTry models in tier order (eco → standard → power), failover on error

Notas

  • CLI monorepo: cliEntry.ts · tras build: commander
  • Métricas: 25 proveedores · 5 topologías · 18 tools · 6700+ tests
  • Firmas API exactas: monorepo / API overview

Relacionado

MIT — Hecho para orquestación multi-agente.