El Ejército de Dumbledore y los Patrones de Coordinación Agéntica

Fan-Out, Fan-In, Sequential, Hierarchical — cuándo usar cada patrón y cómo no confundirlos en el examen.

En el video anterior vimos qué es un agente, cómo funciona el loop agéntico y cuál es la diferencia entre orchestrator y sub-agent. Si llegaste hasta acá sin haber visto M1V1, andá a leerlo primero — este artículo construye directamente sobre eso.

Bien. En este punto ya entendés que el orchestrator delega y los sub-agents ejecutan. Pero hay algo que todavía no vimos: ¿cómo delega exactamente el orchestrator? ¿Manda todas las tareas al mismo tiempo? ¿Una por una? ¿En qué orden? ¿Qué pasa si una tarea depende del resultado de otra?

Eso es lo que cubren los patrones de coordinación. Y el CCA-F los evalúa mucho — especialmente en escenarios donde te dan una arquitectura y te preguntan si el patrón elegido es el correcto para ese caso de uso.

Dumbledore no coordinaba la Orden del Fénix improvisando. Tenía una estrategia clara para cada misión: a veces mandaba a todos al mismo tiempo, a veces en secuencia, a veces con jerarquías intermedias. Cada patrón tenía su razón de ser.

Los tres patrones que necesitás dominar

Hay tres patrones principales de coordinación en arquitecturas agénticas. El examen los nombra directamente, así que necesitás saber no solo cómo funcionan sino también cuándo elegir cada uno.

Patrón 1 — Fan-Out / Fan-In: la Orden del Fénix en misión

Imaginá que Dumbledore necesita recolectar inteligencia de cinco zonas del mundo mágico al mismo tiempo: el Callejón Diagón, Azkaban, el Ministerio de Magia, Hogsmeade y la mansión Malfoy. No tiene tiempo para mandar a un miembro de la Orden a un lugar, esperar que vuelva, y recién entonces mandar al siguiente.

Entonces hace lo que haría cualquier buen orchestrator: manda a cinco miembros en paralelo, espera que todos vuelvan con su reporte, y consolida la inteligencia.

Eso es Fan-Out / Fan-In. El "Fan-Out" es el momento en que el orchestrator distribuye el trabajo. El "Fan-In" es el momento en que reúne los resultados.

Cuándo usarlo

●      Las tareas son independientes entre sí — el resultado de una no afecta a las demás

●      Querés minimizar el tiempo total de ejecución aprovechando el paralelismo

●      Tenés múltiples unidades de trabajo del mismo tipo (ej: analizar N documentos, procesar N registros)

Cuándo NO usarlo

●      Las tareas tienen dependencias — el resultado de la tarea A es el input de la tarea B

●      El orden de ejecución importa para la corrección del resultado

●      Los recursos son limitados y el paralelismo generaría contención (ej: muchas escrituras simultáneas a la misma BD)

 

Implementación en Python