Cursos/Agentes y automatización/Multi-agentes locales

Multi-agentes locales, memoria y control de loops

Varios agentes en paralelo no multiplican automáticamente la inteligencia. También multiplican VRAM, RAM, CPU, logs, estados inconsistentes y posibilidades de loop. Diseña límites antes de diseñar subagentes.

Objetivos de aprendizaje
  • Decidir cuándo merece la pena usar subagentes locales.
  • Crear memoria persistente sin convertirla en un cajón caótico.
  • Aplicar límites de pasos, herramientas, tiempo y compute.
En cristiano: multi-agente. Es un sistema donde varias unidades con rol propio colaboran: planner, investigador, ejecutor, verificador. Si no comparten estado y límites, se pisan entre sí.

Empieza por roles estrechos

  • Planner: decide plan y criterio de éxito, no edita.
  • Retriever: busca contexto en archivos, RAG o documentación.
  • Executor: aplica cambios acotados.
  • Verifier: corre pruebas, revisa diff y detecta regresiones.
Idea clave. Si un solo agente con buen prompt puede resolver la tarea, no metas cuatro. Multi-agente es útil cuando hay separación real de responsabilidades.
Terminal
task:
  goal: "Añadir una validación sin romper API pública"
  max_total_steps: 16
  max_parallel_agents: 2
  memory_file: ".agent/state.md"

agents:
  planner:
    can_edit: false
    max_steps: 3
  executor:
    can_edit: true
    allowed_paths: ["src/", "tests/"]
    max_steps: 6
  verifier:
    can_edit: false
    commands: ["npm run lint", "npm test"]
    max_steps: 4
Cuidado. En local, el cuello de botella no es solo tokens. También compiten navegador, IDE, Docker, Qdrant, n8n, Ollama y los propios agentes. Dos agentes lentos pueden ser mejor que seis agentes bloqueando la máquina.

Memoria persistente mínima

La memoria debe guardar decisiones y estado, no todo el chat. Si guardas ruido, el agente recuperará ruido.

Terminal
# .agent/state.md
## Objetivo actual
Corregir validación de email sin cambiar contratos públicos.

## Decisiones
- No tocar base de datos.
- Mantener nombres de funciones exportadas.

## Evidencia
- npm run lint: pendiente
- npm test: pendiente

## Bloqueos
- Falta confirmar comportamiento con emails internacionales.

Cortes contra runaway loops

Terminal
loop_guards:
  repeated_tool_call:
    same_tool_same_args: 2
    action: stop_and_summarize
  no_state_change:
    steps_without_new_evidence: 3
    action: ask_human
  compute_budget:
    max_runtime_minutes: 20
    max_gpu_memory_percent: 90
    action: pause
  failed_command:
    same_error: 2
    action: change_strategy_or_stop
Comprueba que funciona. Haz un ensayo con una tarea pequeña y una tool falsa que falla. El sistema debe parar, explicar el bloqueo y no repetir la misma llamada hasta agotar recursos.
Guardar y reabrir el proyecto.
El mejor multi-agente local es pequeño, observable y aburrido: roles estrechos, memoria breve, límites duros y una salida clara cuando no sabe avanzar.