Uso de la orquestación de chat en grupo

Completado

La orquestación de chat grupal modela una conversación colaborativa entre varios agentes de IA y, opcionalmente, un participante humano. Un administrador de chat central controla el flujo, decidiendo qué agente responde a continuación y cuándo solicitar la entrada humana. Este patrón es útil para simular reuniones, debates o resolver problemas colaborativos.

Diagrama que muestra la orquestación de chat en grupo donde varios agentes participan en una conversación administrada. Un administrador de chat central coordina el flujo de discusión.

El patrón de chat en grupo funciona bien en escenarios en los que la discusión en grupo o la colaboración iterativa es clave para tomar decisiones. Admite diferentes estilos de interacción, desde la ideación de flujo libre a flujos de trabajo formales con roles definidos y pasos de aprobación. La orquestación de chats grupales también es excelente para las configuraciones humanas en bucle en las que un humano puede guiar o intervenir en la conversación. Normalmente, los agentes de este patrón no cambian directamente los sistemas en ejecución, sino que contribuyen principalmente a la conversación.

Cuándo usar la orquestación de chat en grupo

Considere la posibilidad de usar la orquestación de chat en grupo cuando el escenario implique lo siguiente:

  • Colaboración espontánea o guiada entre agentes (y posiblemente humanos)
  • Bucles iterativos maker-checker donde los agentes toman turnos para crear y revisar
  • Participación o supervisión humana en tiempo real
  • Conversaciones transparentes y auditables, ya que todas las salidas se recopilan en un único subproceso

Entre los escenarios comunes se incluyen:

  • Lluvia de ideas creativas donde los agentes se basan en las ideas de los demás
  • Toma de decisiones que se beneficia del debate y el consenso
  • Problemas complejos que requieren diálogo transversal
  • Control de calidad y validación que requieren varias perspectivas de expertos
  • Flujos de trabajo de contenido con una separación clara entre la creación y la revisión

Cuándo evitar la orquestación de chat en grupo

Evite este patrón cuando:

  • Suficiente delegación de tareas simple o canalizaciones lineales sencillas
  • Los requisitos de velocidad en tiempo real hacen que la sobrecarga de discusión no sea práctico
  • Se necesitan flujos de trabajo jerárquicos o deterministas sin discusión
  • El administrador de chat no puede determinar claramente cuándo se ha completado la tarea
  • La administración del flujo de conversación se vuelve demasiado compleja, especialmente con muchos agentes (límite a tres o menos para un control más sencillo)

Bucles maker-checker

Un caso especial común es el bucle maker-checker. Aquí, un agente (el creador) propone contenido o soluciones, y otro agente (el comprobador) revisa y los critica. El comprobador puede enviar comentarios al creador y este ciclo se repite hasta que el resultado sea satisfactorio. Este proceso requiere una secuencia basada en turnos administrada por el administrador de chat.

Implementación de la orquestación de chat en grupo

Implemente el patrón de orquestación de chat en grupo con el SDK de Microsoft Agent Framework:

  1. Creación del cliente de chat
    Configure un cliente de chat (por ejemplo, AzureOpenAIChatClient) con las credenciales adecuadas para conectarse al proveedor de servicios de IA.

  2. Definición de los agentes
    Cree instancias de agente mediante el método create_agent del cliente de chat. Cada agente debe tener instrucciones específicas y un nombre que defina su rol y su área de experiencia.

  3. Compilación del flujo de trabajo de chat en grupo
    Use la GroupChatBuilder clase para crear un flujo de trabajo que pueda ejecutar varios agentes en paralelo. Agregue las instancias del agente como participantes mediante el método participants(), y llame a build() para crear el flujo de trabajo.

  4. Ejecución del flujo de trabajo
    Llame al método run del flujo de trabajo con la tarea o la entrada en la que desea que los agentes trabajen. El flujo de trabajo ejecuta todos los agentes simultáneamente y devuelve eventos que contienen los resultados.

  5. Procesar los resultados
    Extraiga las salidas de los eventos de flujo de trabajo mediante get_outputs(). Los resultados contienen las conversaciones combinadas de todos los agentes, con la respuesta de cada agente incluida en la salida final.

  6. Control de las respuestas agregadas
    Procese los mensajes agregados de todos los agentes. Cada mensaje incluye el nombre del autor y el contenido, lo que le permite identificar qué agente proporcionó cada respuesta.

Personalización del administrador de chat en grupo

Puede crear un administrador de chat de grupo personalizado ampliando la clase base GroupChatManager . Este enfoque le permite controlar:

  • Cómo se filtran o resumen los resultados de la conversación
  • Cómo se selecciona el siguiente agente
  • Cuándo solicitar la entrada del usuario
  • Cuándo finalizar la conversación

Los administradores personalizados le permiten implementar una lógica especializada adaptada a su caso de uso.

Orden de llamadas del administrador de chat de grupo

Durante cada ronda de la conversación, el administrador de chat llama a los métodos en este orden:

  1. should_request_user_input - Comprueba si se necesita la entrada humana antes de que responda el siguiente agente.
  2. should_terminate : determina si la conversación debe finalizar (por ejemplo, se alcanzó el número máximo de rondas).
  3. filter_results - Si finaliza, resume o procesa la conversación final.
  4. select_next_agent - Si continúa, elige el siguiente agente para hablar.

Esto garantiza que las condiciones de entrada y finalización del usuario se controlen antes de avanzar la conversación. Invalide estos métodos en el administrador personalizado para cambiar el comportamiento.

La orquestación de chats grupales permite que varios agentes de inteligencia artificial (y, opcionalmente, humanos) colaboren a través de conversaciones guiadas y comentarios iterativos. Es ideal para tareas complejas que se benefician de diversos conocimientos e interacción dinámica. Aunque requiere una administración cuidadosa, este patrón ofrece transparencia y flexibilidad en los flujos de trabajo creativos y de toma de decisiones. El SDK de Microsoft Agent Framework facilita la implementación y personalización de la orquestación de chat en grupo para sus necesidades.