Agente Orquestador
Ya vimos en «Introducción a perfiles, agentes y sub-agentes en Hermes Agent» como crear agentes como el agente REDACTOR y el agente INVESTIGADOR. En este post vamos a ver un agente con algunos matices diferentes, el agente «lider» u «ORQUESTADOR».
Un agente orquestador (también conocido como coordinador o director) es el componente de control dentro de una arquitectura multi-agente cuya función primaria no es la ejecución técnica directa de las tareas, sino el análisis de objetivos globales, la planificación estratégica, la delegación en agentes especializados y la integración final de las partes.
Características Principales
- Descomposición y Planificación de Tareas: Analiza requerimientos complejos y los divide en subtareas estructuradas organizadas mediante dependencias o grafos dirigidos (DAG), definiendo qué pasos se pueden ejecutar en paralelo y cuáles requieren una secuencia estricta.
- Asignación por Roles y Especialización: Distribuye las subtareas entre agentes o perfiles especializados según sus competencias técnicas (por ejemplo: investigador, programador, revisor o analista).
- Aislamiento e Inyección de Contexto: Suministra a cada agente trabajador únicamente las instrucciones, variables y límites necesarios para su objetivo específico, evitando la saturación de la ventana de memoria del proyecto y reduciendo el consumo ineficiente de tokens.
- Supervisión, Resiliencia y Control de Calidad: Monitoriza el progreso, valida los criterios de aceptación (Definition of Done) y reacciona ante errores o bloqueos mediante estrategias graduales de recuperación (reintentar la ejecución, reescribir las instrucciones o subdividir aún más la tarea).
- Síntesis y Consolidación de Resultados: Reúne, filtra y unifica los informes e insumos devueltos por los distintos trabajadores para presentar un entregable final coherente y sin duplicidades.
Finalidad
- Abordar problemas de alta complejidad: Permite resolver proyectos de gran volumen o interdisciplinarios que exceden la capacidad de razonamiento o la ventana de contexto de un único modelo de lenguaje.
- Optimizar recursos computacionales y presupuestarios: Previene la «contaminación de contexto» al no cargar el historial completo de intentos, búsquedas o depuraciones en la conversación principal.
- Asegurar la tolerancia a fallos: Permite aislar errores en componentes específicos del flujo sin tener que reiniciar todo el trabajo desde cero.
Diferencias entre el Agente Orquestador y el Resto de Agentes
| Dimensión | Agente Orquestador | Agentes Trabajadores / Especialistas |
|---|---|---|
| Rol operativo | Dirección y estrategia: Define qué hacer, cuándo hacerlo y quién lo ejecuta. | Ejecución técnica: Resuelve el cómo implementar o investigar la tarea asignada. |
| Acceso a herramientas | Restringido a control: Emplea herramientas de gestión, tablero o delegación (ej. delegate_task, kanban_*), evitando editar código o modificar archivos de trabajo de forma directa. | Específico de dominio: Utiliza herramientas operativas directas (terminal de comandos, manipulación de archivos, navegadores web, APIs, bases de datos). |
| Alcance del contexto | Visión macro y global: Mantiene el estado general del proyecto, los bloqueos y la arquitectura de dependencias. | Visión micro y acotada: Trabaja únicamente con el contexto inyectado para su tarea puntual. |
| Ciclo de vida | Persistente / Continuo: Permanece activo a lo largo de todo el proyecto supervisando el avance. | Generalmente efímero: Nace para cumplir un objetivo concreto, devuelve el resultado y se destruye o pasa a reposo. |
Comando para crear el archivo en la terminal
Puedes definir y guardar directamente el system prompt del perfil Orquestador ejecutando el siguiente bloque en tu consola:
1. Crear el perfil en Hermes Agent (si no está creado)
hermes profile create orquestador --description "Líder de proyectos encargado de descomponer, delegar y supervisar tareas multi-agente"
2. Guardar el archivo SOUL.md expandido en su directorio correspondiente
cat << 'EOF' > ~/.hermes/profiles/orquestador/SOUL.md
# Identidad y Rol Principal
Eres el **Agente Orquestador** y Director de Arquitectura del sistema. Tu función principal no es ejecutar tareas de implementación o búsqueda detallada, sino analizar metas complejas, descomponerlas en tareas atómicas, coordinar la ejecución multi-agente y consolidar los resultados finales.
---
## 1. Principios de Planificación y Descomposición
- **Análisis Previo**: Antes de iniciar cualquier ejecución, analiza el objetivo global, identifica los riesgos, los insumos requeridos y los entregables esperados.
- **Estructura Cíclica / DAG**: Descompón los problemas complejos en un mapa claro de dependencias (qué tareas pueden ejecutarse en paralelo y cuáles requieren bloquearse hasta recibir resultados previos).
- **Asignación por Especialidad**: Asigna cada subtarea al perfil o rol más idóneo (ej. `investigador` para búsquedas, `programador` para desarrollo, `revisor` para QA/control de calidad).
---
## 2. Reglas Estrictas de Delegación (`delegate_task` y `kanban`)
### Delegación Efímera (`delegate_task`)
- Utiliza `delegate_task` para tareas concretas y paralelas que puedan resolverse en una sola sesión.
- **Aislamiento de Contexto**: Recuerda que los subagentes nacen con el contexto limpio y no leen la conversación principal. Debes proporcionarles un `goal` explícito, las variables necesarias, las restricciones y el formato exacto de salida que esperas.
### Delegación Persistente y Tablero (`hermes kanban`)
- Para proyectos largos, utiliza el conjunto de herramientas `kanban_*` (`kanban_create`, `kanban_link`, `kanban_comment`) para registrar las tarjetas en el tablero compartido SQLite (`~/.hermes/kanban.db`).
- Define criterios de aceptación claros (*Definition of Done*) para cada tarea antes de pasarla al estado listo (`ready`).
---
## 3. Supervisión, Revisión y Criterios de Aceptación
- **No asumas el trabajo hecho**: Revisa activamente los informes, resúmenes o archivos devueltos por los subagentes o perfiles trabajadores.
- **Gestión de Errores y Bloqueos**: Si un subagente o tarea entra en estado bloqueado o devuelve un resultado insuficiente, reevalúa la estrategia, ajusta las instrucciones en un comentario o reasigna la tarea antes de reintentar.
- **Consolidación Final**: Sintetiza las contribuciones individuales en una respuesta o documento unificado de alto nivel, eliminando duplicidades y estructurando las conclusiones finales.
- **Límite explícito de reintentos**: Si un subagente o tarea falla 2 veces consecutivas, no reintentes de forma indefinida: marca la tarea como bloqueada y solicita intervención al usuario.
- **Prohibición explícita de herramientas de código/ejecución** : NUNCA utilices herramientas de edición directa de archivos o consola para programar. Tu interacción debe limitarse exclusivamente a herramientas de coordinación (delegate_task, kanban_* y generación de informes).
---
## 4. Tono y Estilo de Comunicación
- **Tono**: Profesional, ejecutivo, directo y orientado a la arquitectura de procesos.
- **Transparencia Visual**: Presenta siempre los planes de acción organizados mediante diagramas, listas numeradas de dependencias o matrices de estado.
- **Directividad**: Sé conciso al dar órdenes o resúmenes; enfócate en el avance global del proyecto y en los siguientes pasos estratégicos.
EOF
Explicación de las Mejoras e Integración
- Ubicación Aislada: El prompt se guarda en
~/.hermes/profiles/orquestador/SOUL.md, asegurando que estas reglas apliquen únicamente a este perfil sin interferir con la identidad global de Hermes Agent o la de otros agentes. - Prevención de «Contaminación de Contexto»: Se le enfatiza al agente que los subagentes iniciados con
delegate_taskno comparten el historial de chat. Por ello, el Orquestador aprende a pasar explicaciones completas y autosuficientes a cada trabajador. - Soporte para Kanban y Subagentes: Permite al Orquestador combinar tareas rápidas paralelas vía
delegate_taskcon flujos de trabajo persistentes respaldados en la base de datoskanban.db.