Essence du pattern
Supervisor Agent est un pattern dans lequel un agent separe controle l'execution : il verifie les actions proposees, applique des regles et decide si on peut continuer.
Quand l'utiliser : quand des actions critiques doivent etre approuvees separement par policy avant de continuer.
Au lieu de faire confiance au worker sans condition, Supervisor :
- verifie chaque action critique
- la compare aux policies
- renvoie une decision :
approve,revise,blockouescalate - enregistre la raison de la decision dans les logs

Probleme
Imagine qu'un worker agent execute une tache en production et ait acces aux outils.
Il propose une action techniquement valide qui viole une policy :
- email a la mauvaise audience
- SQL query avec risque de modification des donnees
- depense au-dessus du budget
- acces a des donnees sensibles sans access scope requis
Une etape techniquement possible n'est pas toujours autorisee ni sure pour le business.
Sans controle separe, cela peut passer directement en execution.
Consequences :
- incidents en production
- violations de securite et de compliance
- pertes financieres imprevues
- audit faible et postmortem difficile
Voila le probleme : un worker peut proposer une action qui "fonctionne techniquement", mais qui est inacceptable selon policy.
Solution
Supervisor ajoute une policy-control layer entre proposition d'action et execution.
Analogie : c'est comme une revue technique avant un lancement en production. Le worker propose une etape, et le supervisor verifie si elle est sure et autorisee. Seulement apres cela, l'action peut etre executee.
Principe cle : d'abord verification et decision du supervisor, ensuite execution.
Le worker propose une action, et supervisor-policy renvoie :
approvereviseblockescalate
Processus pilote :
- Observe : recevoir la proposition d'action du worker
- Evaluate : verifier avec policy + execution runtime state
- Decide :
approve/revise/block/escalate - Enforce : executer, renvoyer pour revision, ou arreter
- Log : enregistrer decision et raison
Cela apporte :
- moins de risque d'actions dangereuses avant execution
- impossibilite de contourner policy
- escalade controlee vers un humain
- audit transparent des decisions
Cela fonctionne bien si :
- worker n'a pas de bypass direct de la execution layer
- policy verifie intent + runtime context
- les decisions du supervisor sont vraiment appliquees
- les actions high-risk ne sont pas auto-approuvees
Le modele peut "vouloir" executer tout de suite, mais c'est supervisor-policy qui decide si l'action est autorisee.
Comment ca fonctionne
Supervisor n'execute pas la tache metier lui-meme.
Il controle si l'etape suivante peut etre executee en verifiant :
- securite
- budget
- permissions
- compliance
- stop conditions
Description du flow complet : Observe → Evaluate → Decide → Enforce
Observe
Supervisor recoit un plan ou une action du Worker Agent.
Evaluate
Compare action avec policies et etat courant : limite de depense, type d'outil, niveau de risque, sensibilite des donnees.
Decide
Renvoie une decision : approve, revise, block ou escalate.
Enforce
Le systeme applique la decision : executer l'action, la renvoyer en revision, arreter l'execution, ou envoyer en human approval.
En code, cela ressemble a ceci
proposal = worker.next_action(context)
decision = supervisor.review(
action=proposal,
budget_state=budget_state,
policy=policy,
)
if decision.type == "approve":
result = execute(proposal)
context.append(result)
elif decision.type == "revise":
context.append(f"Supervisor feedback: {decision.reason}")
elif decision.type == "escalate":
wait_for_human_approval(proposal)
else:
stop(reason=decision.reason)
Supervisor ne remplace pas Worker Agent. Il ajoute une verification entre planification et execution.
A quoi cela ressemble pendant l'execution
Goal: traiter un remboursement client
Worker proposal:
- refund 5000 USD
- send confirmation email
Supervisor:
- policy check: auto-refund autorise seulement jusqu'a 1000 USD
- decision: escalate, confirmation humaine necessaire
Human approval (approve with changes):
- approved_refund_amount: 800 USD
- comment: "J'approuve le remboursement seulement dans la limite de 800 USD"
Execution:
- refund 800 USD (montant issu de la decision humaine)
- send confirmation email
Status: termine
Exemple complet d'agent Supervisor
Quand c'est adapte - et quand ca ne l'est pas
Adapte
| Situation | Pourquoi Supervisor est adapte | |
|---|---|---|
| ✅ | Il existe des actions riskees ou couteuses | Supervisor verifie l'etape avant execution et reduit le risque d'erreurs couteuses. |
| ✅ | Un controle des policies de securite et compliance est necessaire | Le pattern applique des regles d'admission et bloque les actions qui violent policy. |
| ✅ | Les limites budget, acces et outils sont importantes | Supervisor garde les contraintes de facon centralisee et evite le bypass en execution. |
| ✅ | Un audit trail des decisions et raisons est necessaire | Chaque decision approve, block ou escalate peut etre enregistree pour audit. |
Non adapte
| Situation | Pourquoi Supervisor n'est pas adapte | |
|---|---|---|
| ❌ | Tache read-only sans etapes a risque | Le controle supplementaire change peu le risque, mais complique le flux. |
| ❌ | Latence critique ou un gate supplementaire est inacceptable | Une verification avant chaque action peut ajouter une latence inacceptable. |
| ❌ | Toute la securite est deja strictement forcee au niveau infrastructure | Supervisor duplique des controles deja appliques techniquement et apporte peu de valeur additionnelle. |
Parce que Supervisor ajoute une etape de verification supplementaire et peut ralentir l'execution.
Difference Avec Guarded-Policy
| Guarded-Policy | Supervisor | |
|---|---|---|
| Role principal | Filtre automatiquement les actions avec des regles strictes | Evalue la situation et decide s'il est sur de continuer |
| Quand il s'applique | Avant chaque action potentiellement risquee | Aux points de controle : avant les etapes importantes ou le resultat final |
| Type de decisions | allow / deny / rewrite / escalate | approve / revise / block / escalate |
| Point fort | Regles stables et identiques pour toutes les demandes | Controle flexible la ou le contexte et la logique humaine sont necessaires |
En bref : Supervisor est une couche de supervision pour les decisions complexes.
Guarded-Policy est une barriere automatique basee sur des regles.
Quand Utiliser Supervisor (vs Autres Patterns)
Utilisez Supervisor quand une supervision et un policy-check sont necessaires avant resultat final ou action risquee.
Test rapide :
- si vous devez "verifier policies, compliance et risques" -> Supervisor
- si vous devez "seulement gerer l'ordre des etapes" -> Orchestrator Agent
- si vous devez "bloquer/reecrire automatiquement les actions avant execution" -> Guarded-Policy Agent
Comparaison avec d'autres patterns et exemples
Aide-memoire rapide :
| Si la tache ressemble a ca... | Utilisez |
|---|---|
| Il faut choisir un unique meilleur executant | Routing Agent |
| Il y a une sequence d'etapes et l'ordre est important | Orchestrator Agent |
| Un policy-check est necessaire avant resultat | Supervisor Agent |
| Plusieurs agents doivent converger vers une conclusion | Multi-Agent Collaboration |
Exemples :
Routing : "Le client demande un remboursement - envoyer a Billing, pas a Sales".
Orchestrator : "Prepare un release : d'abord changelog, puis QA, puis deploy".
Supervisor : "Avant d'envoyer un email, verifier policies, compliance et promesses interdites".
Multi-Agent Collaboration : "Marketing, Legal et Product doivent valider un texte final unique pour une promo".
Comment combiner avec d'autres patterns
- Supervisor + ReAct: Supervisor verifie chaque etape Act avant appel d'outil.
- Supervisor + Routing: on controle non seulement l'action, mais aussi vers qui la tache a ete routee.
- Supervisor + Orchestrator: policies et limites s'appliquent a chaque branche parallele, pas seulement au resultat final.
En bref
Supervisor Agent:
- verifie les actions avant execution
- applique policies et limites
- bloque ou escalate les etapes a risque
- reduit le risque d'incidents en production
Avantages et Inconvenients
Avantages
controle les actions des autres agents
stoppe les etapes a risque avant execution
aligne priorites et ressources
ameliore la controlabilite du systeme
Inconvenients
ajoute de la latence pour les verifications
des regles d'escalade claires sont necessaires
peut devenir un goulot d'etranglement
FAQ
Q : Supervisor remplace-t-il les permissions d'infrastructure (RBAC, ACL) ?
A: Non. C'est un controle logique supplementaire. Les restrictions techniques de base doivent rester dans l'infrastructure.
Q : Que faire si Supervisor bloque trop souvent des actions utiles ?
A: Affiner les policies : ajouter exceptions, niveaux de risque et regles de human approval pour scenarios gris.
Q : Supervisor peut-il devenir un single point of failure ?
A: Oui, si aucun fallback n'est prevu. Donc on ajoute en general timeout, safe default policy et mode graceful degradation.
Et ensuite
Supervisor controle que les agents individuels restent dans les limites des policies.
Mais que faire quand plusieurs agents doivent collaborer sur une tache commune ?