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.