Salles de débat d'agents
Créez N agents (3 par défaut) dans une conversation partagée simulée. Chaque agent lit tout l'historique de la conversation avant de répondre, en s'appuyant sur les contributions précédentes, en les remettant en question ou en les affinant. Vous (l'orchestrateur) agissez comme chef de projet — vous modérez les tours, lisez le débat et extrayez le résultat final.
Pourquoi cela fonctionne : Les transferts séquentiels perdent le contexte — le deuxième modèle ne sait PAS POURQUOI le premier a pris ses décisions. Une conversation partagée préserve les chaînes de raisonnement et permet un véritable débat. Quand l'Agent A dit "il faut une file d'attente" et que l'Agent B dit "une simple boucle suffit", ce désaccord est plus précieux que la réponse solitaire et confiante de l'un ou l'autre agent. Les agents remettent en question les hypothèses, détectent les erreurs et synthétisent des chemins de raisonnement diversifiés.
Exécution
1. Analyser la demande
Extrayez du message de l'utilisateur :
- Problème/question à débattre
- Nombre d'agents N — 3 par défaut. L'utilisateur peut modifier ("fais débattre 5 agents")
- Nombre de tours R — 3 par défaut. L'utilisateur peut modifier ("débattez pendant 5 tours")
- Rôles des agents (facultatif) — l'utilisateur peut spécifier des rôles ("fais débattre un architecte, un ingénieur sécurité et un développeur front-end"). Si non spécifié, attribuez des rôles par défaut diversifiés.
Si le problème est vague, demandez à l'utilisateur de le préciser avant de lancer.
2. Attribuer les rôles aux agents
Chaque agent reçoit une perspective distincte pour maximiser le désaccord productif. Si l'utilisateur n'a pas spécifié de rôles, choisissez parmi ces rôles par défaut en fonction du domaine du problème :
Génie logiciel :
- Architecte — pense en systèmes, interfaces, évolutivité et maintenabilité à long terme
- Pragmatique — optimise pour livrer vite, complexité minimale, solutions "assez bonnes"
- Critique — trouve les cas limites, les modes de défaillance, les failles de sécurité et les hypothèses non formulées
Produit/design :
- Défenseur de l'utilisateur — optimise pour l'UX, la simplicité, le plaisir de l'utilisateur
- Stratège d'entreprise — optimise pour le chiffre d'affaires, la croissance, l'avantage concurrentiel
- Ingénieur — ancre la discussion dans la faisabilité technique et le coût
Stratégie/décisions :
- Optimiste — voit les opportunités, le potentiel, les raisons d'agir
- Sceptique — voit les risques, les inconvénients, les raisons d'attendre
- Synthétiseur — trouve la voie du milieu, intègre les deux perspectives
Pour N > 3, ajoutez d'autres rôles qui créent une tension productive avec les rôles existants.
3. Initialiser le fichier de chat
Créez active/chatroom/chat.json avec la structure initiale :
{
"problem": "{énoncé du problème}",
"context": "{tout contexte, code, contraintes pertinents}",
"agents": [
{"name": "Agent A", "role": "{rôle}", "framing": "{description du rôle}"},
{"name": "Agent B", "role": "{rôle}", "framing": "{description du rôle}"},
{"name": "Agent C", "role": "{rôle}", "framing": "{description du rôle}"}
],
"rounds": [],
"final_output": null
}
4. Lancer les tours de débat
Pour chaque tour (de 1 à R), créez tous les N agents en parallèle. Chaque agent lit tout l'historique de la conversation et contribue.
Configuration de création d'agent :
subagent_type: "general-purpose"model: "sonnet"(par défaut — l'utilisateur peut passer à opus pour un raisonnement plus profond)mode: "bypassPermissions"
Procédure du tour :
Tour 1 — Positions d'ouverture : Chaque agent énonce sa position initiale sur le problème.
Invite de l'agent :
Vous êtes {rôle} : {description_du_rôle}
PROBLÈME :
{problème}
CONTEXTE :
{contexte}
Ceci est le Tour 1 d'un débat multi-agents. Énoncez votre position initiale sur ce problème. Soyez spécifique et concret — proposez des solutions réelles, pas des principes vagues. Prenez une position claire.
Les autres agents remettront en question votre position lors des tours suivants, alors rendez votre raisonnement explicite.
Répondez dans ce format :
POSITION : [Votre position en une phrase]
RAISONNEMENT : [Votre argument détaillé — 3 à 5 points clés]
PROPOSITION : [Votre recommandation concrète]
PRÉOCCUPATIONS : [Ce qui pourrait mal tourner avec votre approche]
Écrivez votre réponse directement — n'écrivez dans aucun fichier.
Tours 2+ — Débat : Chaque agent lit toutes les réponses précédentes et répond.
Invite de l'agent :
Vous êtes {rôle} : {description_du_rôle}
PROBLÈME :
{problème}
DISCUSSION PRÉCÉDENTE :
{toutes les entrées du tour précédent, formatées par "Agent X (Rôle) : réponse"}
Ceci est le Tour {N} d'un débat multi-agents. Lisez attentivement la discussion précédente.
Votre travail :
1. Répondez au contre-argument le plus fort contre votre position
2. Identifiez où vous êtes D'ACCORD avec les autres agents (concédez les bons points)
3. Identifiez où vous êtes EN DÉSACCORD et pourquoi
4. Affinez votre proposition en fonction de la discussion jusqu'à présent
Ne vous contentez PAS de répéter votre position précédente. Engagez-vous avec ce que les autres ont dit. Changez d'avis s'ils ont avancé un meilleur argument.
Répondez dans ce format :
ACCORDS : [Ce que les autres agents ont bien compris]
DÉSACCORDS : [Où vous différez encore et pourquoi]
PROPOSITION AFFINÉE : [Votre recommandation mise à jour]
CONFIANCE : [1-10 à quel point vous êtes confiant dans votre position affinée]
Écrivez votre réponse directement — n'écrivez dans aucun fichier.
Après chaque tour :
- Collectez toutes les réponses des agents
- Ajoutez au tableau
roundsdanschat.json:
{
"round": 1,
"entries": [
{"agent": "Agent A", "role": "Architecte", "response": "..."},
{"agent": "Agent B", "role": "Pragmatique", "response": "..."},
{"agent": "Agent C", "role": "Critique", "response": "..."}
]
}
- Vérifiez la convergence : si tous les agents sont d'accord (confiance 8+, propositions alignées), arrêtez-vous tôt — pas besoin de plus de tours.
5. Synthétiser le résultat final
Après le dernier tour, vous (l'orchestrateur) lisez l'intégralité du débat et produisez une synthèse. Ne créez PAS un autre agent pour cela — faites-le vous-même.
Analysez :
- Où les agents ont-ils convergé ? — ce sont des conclusions de haute confiance
- Où sont-ils restés divisés ? — ce sont de véritables compromis que l'utilisateur doit décider
- Quelles préoccupations ont été soulevées mais non résolues ? — ce sont des risques à surveiller
- Un agent a-t-il changé d'avis ? — les changements d'avis sont des signaux forts
6. Rédiger le rapport final
Mettez à jour active/chatroom/chat.json avec le final_output, et écrivez un résumé lisible par l'humain dans active/chatroom/chatroom_report.md :
# Rapport de la salle de débat d'agents
**Problème** : {problème}
**Agents** : {N} | **Tours** : {R}
**Date** : {date}
## Participants
| Agent | Rôle | Confiance finale |
|-------|------|-----------------|
| Agent A | {rôle} | {confiance}/10 |
| Agent B | {rôle} | {confiance}/10 |
| Agent C | {rôle} | {confiance}/10 |
## Consensus
{Ce sur quoi tous les agents étaient d'accord au dernier tour}
## Désaccords clés
{Là où les agents sont restés divisés — présentez les deux côtés équitablement}
## Action recommandée
{Votre synthèse en tant qu'orchestrateur — la meilleure voie à suivre en tenant compte de toutes les perspectives}
## Risques non résolus
{Les préoccupations soulevées pendant le débat qui n'ont pas été entièrement traitées}
## Points forts du débat
{Les échanges les plus intéressants — là où les avis ont changé ou de forts contre-arguments ont émergé}
## Transcription complète
{Lien vers chat.json ou intégration des échanges clés}
7. Fournir les résultats
Présentez à l'utilisateur :
- Synthèse en un paragraphe du résultat du débat
- L'action recommandée (votre décision en tant qu'orchestrateur, éclairée par le débat)
- Le désaccord le plus fort (là où le jugement de l'utilisateur est nécessaire)
- Les chemins des fichiers du rapport et de chat.json
Configuration
| Paramètre | Défaut | Description |
|---|---|---|
| N | 3 | Nombre d'agents dans la salle de débat |
| R | 3 | Nombre de tours de débat |
| model | sonnet | Modèle pour chaque agent |
| roles | auto | Rôles des agents (attribution automatique ou spécifiée par l'utilisateur) |
L'utilisateur peut modifier : "fais débattre 5 agents opus pendant 4 tours" ou "débat entre un architecte et un développeur junior".
Considérations de coût
- 3 agents sonnet x 3 tours = 9 appels d'agent (~0,30-0,50 €)
- 3 agents opus x 3 tours = 9 appels d'agent (~3-5 €)
- 5 agents x 5 tours = 25 appels — devient coûteux avec opus
- Par défaut, utilisez sonnet. N'utilisez opus que si l'utilisateur le demande explicitement ou si le problème nécessite un raisonnement technique approfondi.
- La convergence précoce économise de l'argent — arrêtez-vous si les agents sont d'accord avant que tous les tours ne soient terminés.
Cas limites
- N < 2 : Avertissez l'utilisateur — une salle de débat nécessite au moins 2 agents. Minimum 2.
- Les agents sont tous d'accord immédiatement : Arrêtez-vous après le tour 1. Signalez le consensus unanime. C'est un résultat valide (et peu coûteux).
- Les agents sont dans une impasse : Après R tours sans convergence, signalez honnêtement l'impasse. La conclusion est qu'il s'agit d'une véritable décision subjective sans réponse dominante.
- Un agent s'écarte du sujet : Excluez cette réponse de la synthèse et notez le nombre effectif d'agents.
- Fichiers de salle de débat existants : Vérifiez
active/chatroom/pour les fichiers existants. Écrasez sans demander (ce sont des artéfacts de débat éphémères, pas des données persistantes). - L'utilisateur spécifie des rôles personnalisés : Utilisez exactement ce qu'il spécifie. N'ajoutez pas de rôles supplémentaires sauf si demandé.
Fichiers de sortie
| Fichier | Description |
|---|---|
active/chatroom/chat.json | Transcription complète et structurée du débat |
active/chatroom/chatroom_report.md | Rapport de synthèse lisible par l'humain |
Les rapports précédents sont écrasés — ce sont des outils de débat éphémères, pas des archives.