AgentHub — Colaboración Multiagente
Genera N agentes de IA paralelos que compiten en la misma tarea. Cada agente trabaja en un git worktree aislado. El coordinador evalúa los resultados y fusiona el ganador.
Comandos Slash
| Comando | Descripción |
|---|---|
/hub:init | Crear una nueva sesión de colaboración — tarea, número de agentes, criterios de evaluación |
/hub:spawn | Lanzar N subagentes paralelos en worktrees aislados |
/hub:status | Mostrar el estado del DAG, progreso de los agentes, estado de las ramas |
/hub:eval | Clasificar resultados de agentes por métrica o juez LLM |
/hub:merge | Fusionar la rama ganadora, archivar las perdedoras |
/hub:board | Leer/escribir el tablero de mensajes de los agentes |
/hub:run | Ciclo de vida completo: init → baseline → spawn → eval → merge |
Plantillas de Agente
Al lanzar con --template, los agentes siguen un patrón de iteración predefinido:
| Plantilla | Patrón | Caso de Uso |
|---|---|---|
optimizer | Editar → evaluar → mantener/descartar → repetir x10 | Rendimiento, latencia, tamaño |
refactorer | Reestructurar → probar → iterar hasta que pase | Calidad de código, deuda técnica |
test-writer | Escribir pruebas → medir cobertura → repetir | Brechas de cobertura de pruebas |
bug-fixer | Reproducir → diagnosticar → corregir → verificar | Enfoques de corrección de bugs |
Las plantillas se definen en references/agent-templates.md.
Cuándo se Activa Esta Habilidad
Frases de activación:
- "probar múltiples enfoques"
- "hacer competir a los agentes"
- "optimización paralela"
- "lanzar N agentes"
- "comparar diferentes soluciones"
- "fan-out" o "torneo"
- "generar variaciones de contenido"
- "comparar diferentes borradores"
- "prueba A/B de copia"
- "explorar múltiples estrategias"
Protocolo del Coordinador
La sesión principal de Claude Code es el coordinador. Sigue este ciclo de vida:
INIT → DISPATCH → MONITOR → EVALUATE → MERGE
1. Init
Ejecuta /hub:init para crear una sesión. Esto genera:
.agenthub/sessions/{session-id}/config.yaml— configuración de la tarea.agenthub/sessions/{session-id}/state.json— máquina de estados.agenthub/board/— canales del tablero de mensajes
2. Dispatch
Ejecuta /hub:spawn para lanzar agentes. Para cada agente 1..N:
- Publica la asignación de la tarea en
.agenthub/board/dispatch/ - Lanza mediante la herramienta Agent con
isolation: "worktree" - Todos los agentes se lanzan en un solo mensaje (en paralelo)
3. Monitor
Ejecuta /hub:status para verificar el progreso:
dag_analyzer.py --status --session {id}muestra el estado de las ramas- El canal
progress/del tablero tiene actualizaciones de los agentes
4. Evaluate
Ejecuta /hub:eval para clasificar los resultados:
- Modo métrica: ejecutar el comando de evaluación en cada worktree, analizar el resultado numérico
- Modo juez: leer los diffs, el coordinador clasifica por calidad
- Híbrido: métrica primero, juez LLM para desempates
5. Merge
Ejecuta /hub:merge para finalizar:
git merge --no-ffdel ganador en la rama base- Etiquetar perdedores:
git tag hub/archive/{session}/agent-{i} - Limpiar worktrees
- Publicar resumen de la fusión en el tablero
Protocolo del Agente
Cada subagente recibe este patrón de prompt:
Eres el agente-{i} en la sesión hub {session-id}.
Tu tarea: {descripción de la tarea}
Instrucciones:
1. Lee tu asignación en .agenthub/board/dispatch/{seq}-agent-{i}.md
2. Trabaja en tu worktree — haz cambios, ejecuta pruebas, itera
3. Confirma todos los cambios con mensajes descriptivos
4. Escribe tu resumen de resultados en .agenthub/board/results/agent-{i}-result.md
5. Sal cuando termines
Los agentes NO ven el trabajo de los demás. NO se comunican entre sí. Solo escriben en el tablero para que el coordinador lo lea.
Modelo DAG
Nomenclatura de Ramas
hub/{session-id}/agent-{N}/attempt-{M}
- ID de sesión: basado en timestamp (
YYYYMMDD-HHMMSS) - Agente N: secuencial (1 a número-de-agentes)
- Intento M: se incrementa en reintentos (generalmente 1)
Detección de Frontera
Frontera = puntas de rama sin ramas hijas. Equivalente a la consulta "leaves" de AgentHub.
python scripts/dag_analyzer.py --frontier --session {id}
Inmutabilidad
El DAG es de solo añadidura:
- Nunca hagas rebase o force-push en las ramas de los agentes
- Nunca elimines commits (solo referencias de rama después del archivado)
- Cada enfoque se preserva mediante etiquetas git
Tablero de Mensajes
Ubicación: .agenthub/board/
Canales
| Canal | Escritor | Lector | Propósito |
|---|---|---|---|
dispatch/ | Coordinador | Agentes | Asignaciones de tareas |
progress/ | Agentes | Coordinador | Actualizaciones de estado |
results/ | Agentes + Coordinador | Todos | Resultados finales + resumen de fusión |
Formato de Publicación
---
author: agent-1
timestamp: 2026-03-17T14:30:22Z
channel: results
parent: null
---
## Resumen de Resultados
- **Enfoque**: Reemplazó ordenación O(n²) con mapa hash
- **Archivos modificados**: 3
- **Métrica**: 142ms (línea base: 180ms, delta: -38ms)
- **Confianza**: Alta — todas las pruebas pasan
Reglas del Tablero
- Solo añadidura: nunca edites ni elimines publicaciones
- Nombres de archivo únicos:
{seq:03d}-{author}-{timestamp}.md - Se requiere frontmatter YAML en todas las publicaciones
Modos de Evaluación
Basado en Métrica
Mejor para: benchmarks, tasas de aprobación de pruebas, tamaños de archivo, tiempos de respuesta.
python scripts/result_ranker.py --session {id} \
--eval-cmd "pytest bench.py --json" \
--metric p50_ms --direction lower
El clasificador ejecuta el comando de evaluación en el directorio del worktree de cada agente y analiza la métrica de la salida estándar.
Juez LLM
Mejor para: calidad de código, legibilidad, decisiones de arquitectura.
El coordinador lee el diff de cada agente (git diff base...agent-branch) y clasifica según:
- Corrección (¿resuelve la tarea?)
- Simplicidad (se prefieren menos líneas cambiadas)
- Calidad (ejecución limpia, buena estructura)
Híbrido
Ejecutar métrica primero. Si los mejores agentes están dentro del 10% entre sí, usar juez LLM para desempatar.
Ciclo de Vida de la Sesión
init → running → evaluating → merged
→ archived (si no hay ganador)
Transiciones de estado gestionadas por session_manager.py:
| Desde | Hasta | Disparador |
|---|---|---|
init | running | /hub:spawn se completa |
running | evaluating | Todos los agentes regresan |
evaluating | merged | /hub:merge se completa |
evaluating | archived | Sin ganador / todos fallaron |
Disparadores Proactivos
El coordinador debe actuar cuando:
| Señal | Acción |
|---|---|
| Todos los agentes fallaron | Publicar resumen de fallo, sugerir reintento con restricciones diferentes |
| Sin mejora sobre la línea base | Archivar sesión, sugerir enfoques diferentes |
| Worktrees huérfanos detectados | Ejecutar session_manager.py --cleanup {id} |
Sesión atascada en running | Verificar el tablero en busca de progreso, considerar tiempo de espera |
Instalación
# Copiar al directorio de habilidades de Claude Code
cp -r engineering/agenthub ~/.claude/skills/agenthub
# O instalar via ClawHub
clawhub install agenthub
Scripts
| Script | Propósito |
|---|---|
hub_init.py | Inicializar la estructura .agenthub/ y la sesión |
dag_analyzer.py | Detección de frontera, grafo DAG, estado de ramas |
board_manager.py | CRUD del tablero de mensajes (canales, publicaciones, hilos) |
result_ranker.py | Clasificar agentes por métrica o calidad del diff |
session_manager.py | Máquina de estados de la sesión y limpieza |
Habilidades Relacionadas
- autoresearch-agent — Bucle de optimización de un solo agente (usa AgentHub cuando quieras N agentes compitiendo)
- self-improving-agent — Agente auto-modificable (usa AgentHub cuando quieras competencia externa)
- git-worktree-manager — Utilidades de git worktree (AgentHub usa worktrees internamente)