¿Qué hace Salas de Chat de Agentes?
Genera N agentes (por defecto 3) en una conversación compartida simulada. Cada agente lee el historial completo del chat antes de responder, basándose en contribuciones anteriores, desafiándolas o refinándolas. Tú (el orquestador) actúas como PM: moderas las rondas, lees el debate y extraes el resultado final.
Por qué funciona: Los traspasos secuenciales pierden contexto: el segundo modelo no sabe POR QUÉ el primero tomó sus decisiones. Una conversación compartida preserva las cadenas de razonamiento y permite un debate genuino. Cuando el Agente A dice "esto necesita una cola" y el Agente B dice "un bucle simple está bien", ese desacuerdo es más valioso que la respuesta segura de cualquier agente por sí solo. Los agentes desafían suposiciones, detectan errores y sintetizan diversas rutas de razonamiento.
Ejecución
1. Analizar la solicitud
Extrae del mensaje del usuario:
- Problema/pregunta a debatir
- Número de agentes N — por defecto 3. El usuario puede sobrescribir ("que debatan 5 agentes")
- Número de rondas R — por defecto 3. El usuario puede sobrescribir ("debatir durante 5 rondas")
- Roles de los agentes (opcional) — el usuario puede especificar roles ("que debatan un arquitecto, un ingeniero de seguridad y un desarrollador frontend"). Si no se especifican, asigna roles diversos por defecto.
Si el problema es vago, pídele al usuario que lo precise antes de generar.
2. Asignar roles a los agentes
Cada agente obtiene una perspectiva distinta para maximizar el desacuerdo productivo. Si el usuario no especificó roles, elige entre estos valores predeterminados según el dominio del problema:
Ingeniería de software:
- Arquitecto — piensa en sistemas, interfaces, escalabilidad y mantenibilidad a largo plazo
- Pragmático — optimiza para lanzar rápido, complejidad mínima, soluciones "suficientemente buenas"
- Crítico — encuentra casos límite, modos de fallo, agujeros de seguridad y suposiciones no declaradas
Producto/diseño:
- Defensor del usuario — optimiza para UX, simplicidad, deleite del usuario
- Estratega de negocio — optimiza para ingresos, crecimiento, ventaja competitiva
- Ingeniero — fundamenta la discusión en viabilidad técnica y costos
Estrategia/decisiones:
- Optimista — ve oportunidades, potencial alcista, razones para actuar
- Escéptico — ve riesgos, desventajas, razones para esperar
- Sintetizador — encuentra el camino intermedio, integra ambas perspectivas
Para N > 3, agrega más roles que creen tensión productiva con los existentes.
3. Inicializar el archivo de chat
Crea active/chatroom/chat.json con la estructura inicial:
{
"problem": "{declaración del problema}",
"context": "{contexto relevante, código, restricciones}",
"agents": [
{"name": "Agente A", "role": "{rol}", "framing": "{descripción del rol}"},
{"name": "Agente B", "role": "{rol}", "framing": "{descripción del rol}"},
{"name": "Agente C", "role": "{rol}", "framing": "{descripción del rol}"}
],
"rounds": [],
"final_output": null
}
4. Ejecutar rondas de debate
Para cada ronda (de la 1 a R), genera todos los N agentes en paralelo. Cada agente lee el historial completo del chat y contribuye.
Configuración de generación del agente:
subagent_type: "general-purpose"model: "sonnet"(por defecto — el usuario puede sobrescribir a opus para razonamiento más profundo)mode: "bypassPermissions"
Procedimiento de ronda:
Ronda 1 — Posiciones iniciales: Cada agente expone su postura inicial sobre el problema.
Indicación para el agente:
Eres {rol}: {descripción_del_rol}
PROBLEMA:
{problem}
CONTEXTO:
{context}
Esta es la Ronda 1 de un debate multiagente. Expón tu posición inicial sobre este problema. Sé específico y concreto: propón soluciones reales, no principios vagos. Toma una postura clara.
Otros agentes desafiarán tu posición en rondas posteriores, así que explicita tu razonamiento.
Responde en este formato:
POSICIÓN: [Tu postura en una oración]
RAZONAMIENTO: [Tu argumento detallado — 3-5 puntos clave]
PROPUESTA: [Tu recomendación concreta]
INQUIETUDES: [Qué podría salir mal con tu enfoque]
Escribe tu respuesta directamente — no escribas en ningún archivo.
Rondas 2+ — Debate: Cada agente lee todas las respuestas anteriores y responde.
Indicación para el agente:
Eres {rol}: {descripción_del_rol}
PROBLEMA:
{problem}
DISCUSIÓN PREVIA:
{todas las entradas de rondas anteriores, formateadas como "Agente X (Rol): respuesta"}
Esta es la Ronda {N} de un debate multiagente. Lee la discusión anterior con atención.
Tu trabajo:
1. Responde al contraargumento más fuerte contra tu posición
2. Identifica en qué ESTÁS DE ACUERDO con otros agentes (concede puntos válidos)
3. Identifica en qué todavía ESTÁS EN DESACUERDO y por qué
4. Refina tu propuesta basándote en la discusión hasta ahora
NO te limites a repetir tu posición anterior. Involúcrate con lo que otros dijeron. Cambia de opinión si presentaron un mejor argumento.
Responde en este formato:
ACUERDOS: [En qué acertaron otros agentes]
DESACUERDOS: [Dónde todavía difieres y por qué]
PROPUESTA REFINADA: [Tu recomendación actualizada]
CONFIANZA: [1-10 qué tan seguro estás de tu posición refinada]
Escribe tu respuesta directamente — no escribas en ningún archivo.
Después de cada ronda:
- Recopila todas las respuestas de los agentes
- Añádelas al arreglo
roundsenchat.json:
{
"round": 1,
"entries": [
{"agent": "Agente A", "role": "Arquitecto", "response": "..."},
{"agent": "Agente B", "role": "Pragmático", "response": "..."},
{"agent": "Agente C", "role": "Crítico", "response": "..."}
]
}
- Comprueba si hay convergencia: si todos los agentes están de acuerdo (confianza 8+, propuestas alineadas), detente antes — no son necesarias más rondas.
5. Sintetizar el resultado final
Después de la última ronda, tú (el orquestador) lees el debate completo y produces una síntesis. NO generes otro agente para esto — lo haces tú mismo.
Analiza:
- ¿En qué convergieron los agentes? — estas son conclusiones de alta confianza
- ¿En qué se mantuvieron divididos? — estas son verdaderas compensaciones que el usuario debe decidir
- ¿Qué inquietudes se plantearon pero no se resolvieron? — estos son riesgos a monitorear
- ¿Algún agente cambió de opinión? — los cambios de opinión son señales fuertes
6. Escribir el informe final
Actualiza active/chatroom/chat.json con el final_output, y escribe un resumen legible para humanos en active/chatroom/chatroom_report.md:
# Informe de la Sala de Chat de Agentes
**Problema**: {problem}
**Agentes**: {N} | **Rondas**: {R}
**Fecha**: {date}
## Participantes
| Agente | Rol | Confianza Final |
|--------|-----|-----------------|
| Agente A | {rol} | {confianza}/10 |
| Agente B | {rol} | {confianza}/10 |
| Agente C | {rol} | {confianza}/10 |
## Consenso
{En lo que todos los agentes estuvieron de acuerdo al final de la última ronda}
## Desacuerdos clave
{Donde los agentes permanecieron divididos — presenta ambos lados de manera justa}
## Acción recomendada
{Tu síntesis como orquestador — el mejor camino a seguir considerando todas las perspectivas}
## Riesgos no resueltos
{Inquietudes planteadas durante el debate que no se abordaron completamente}
## Destacados del debate
{Los intercambios más interesantes — donde cambiaron de opinión o surgieron contraargumentos sólidos}
## Transcripción completa
{Enlace a chat.json o incluye los intercambios clave}
7. Entregar resultados
Preséntale al usuario:
- Síntesis de un párrafo del resultado del debate
- La acción recomendada (tu decisión como orquestador, informada por el debate)
- El desacuerdo más agudo (donde se necesita el criterio del usuario)
- Rutas de archivo al informe y chat.json
Configuración
| Parámetro | Predeterminado | Descripción |
|---|---|---|
| N | 3 | Número de agentes en la sala de chat |
| R | 3 | Número de rondas de debate |
| model | sonnet | Modelo para cada agente |
| roles | auto | Roles de los agentes (asignados automáticamente o especificados por el usuario) |
El usuario puede sobrescribir: "que debatan 5 agentes opus durante 4 rondas" o "debate entre un arquitecto y un desarrollador junior".
Consideraciones de costo
- 3 agentes sonnet x 3 rondas = 9 llamadas de agente (~$0.30-0.50)
- 3 agentes opus x 3 rondas = 9 llamadas de agente (~$3-5)
- 5 agentes x 5 rondas = 25 llamadas — se vuelve costoso con opus
- Por defecto, usa sonnet. Solo usa opus si el usuario lo solicita explícitamente o el problema requiere razonamiento técnico profundo.
- La convergencia temprana ahorra costos — detente si los agentes están de acuerdo antes de completar todas las rondas.
Casos límite
- N < 2: Advierte al usuario — una sala de chat necesita al menos 2 agentes. Mínimo 2.
- Agentes están todos de acuerdo inmediatamente: Detente después de la ronda 1. Informa consenso unánime. Este es un resultado válido (y económico).
- Agentes en punto muerto: Después de R rondas sin convergencia, informa honestamente del punto muerto. El hallazgo es que esta es una decisión genuina que requiere criterio, sin una respuesta dominante.
- Agente se desvía del tema: Excluye esa respuesta de la síntesis y anota el número efectivo de agentes.
- Archivos de sala de chat existentes: Verifica si hay archivos existentes en
active/chatroom/. Sobrescribe sin preguntar (son artefactos de debate efímeros, no datos persistentes). - El usuario especifica roles personalizados: Usa exactamente lo que especificaron. No agregues roles adicionales a menos que se solicite.
Archivos de salida
| Archivo | Descripción |
|---|---|
active/chatroom/chat.json | Transcripción completa del debate estructurada |
active/chatroom/chatroom_report.md | Informe de síntesis legible para humanos |
Los informes anteriores se sobrescriben — son herramientas de debate efímeras, no archivos.