Choisir entre un agent unique et un système multi-agents pour un flux de travail complexe.
→Privilégier un agent unique avec des outils. Ne diviser en plusieurs agents que lorsque les limites des tâches sont distinctes, que le contexte déborde, ou que différents niveaux de modèle conviennent à différentes sous-tâches.
Pourquoi: Chaque agent ajouté multiplie la latence, la surface d'erreur et le coût d'orchestration ; la plupart des charges de travail réussissent avec un agent unique bien équipé en outils.
L'orchestrateur doit distribuer des sous-tâches hétérogènes à des spécialistes.
→Utiliser un agent superviseur qui décompose l'objectif, achemine vers des agents travailleurs avec leurs propres invites et outils, et agrège les résultats.
Pourquoi: Le contrôle centralisé maintient l'état cohérent et rend la limite de décision vérifiable par rapport à un essaim libre.
Le flux de l'agent comporte des branches conditionnelles, des boucles et une dispersion parallèle.
→Modéliser le flux de travail comme un graphe explicite de nœuds et d'arêtes plutôt que comme une boucle libre, afin que le flux de contrôle soit déterministe et reprenable.
Pourquoi: Un graphe rend les branches testables et permet de créer des points de contrôle et de rejouer à partir de n'importe quel nœud après un échec.
Les requêtes entrantes varient considérablement en type et en coût.
→Placer en amont du système un agent routeur léger qui classe l'intention et la distribue à l'agent ou à l'outil aval le moins cher et le plus capable.
Pourquoi: Le routage évite de payer le coût du modèle de pointe pour des requêtes triviales et isole les préoccupations par chemin.
Plusieurs agents doivent lire et écrire un état de flux de travail commun.
→Externaliser l'état vers un magasin partagé (clé-valeur ou document) indexé par session, plutôt que de passer la transcription complète entre les agents.
Pourquoi: Un magasin partagé limite la croissance du contexte et empêche les copies divergentes d'état entre les agents.
Concevoir des agents pour une mise à l'échelle horizontale.
→Maintenir le calcul de l'agent sans état ; persister la conversation et la mémoire en externe afin que toute réplique puisse prendre en charge n'importe quelle requête.
Pourquoi: Les nœuds sans état s'auto-échelonnent proprement et survivent aux redémarrages de pods sans perdre le travail en cours.
Un sous-agent ou un outil échoue en cours de flux de travail.
→Concevoir des étapes idempotentes avec réessai/retrait, des actions compensatoires pour les effets secondaires, et un chemin de secours ou une escalade humaine lorsque les réessais sont épuisés.
Pourquoi: Les systèmes agentiques échouent partiellement ; la récupération doit être une préoccupation de conception de premier ordre, et non une réflexion après coup.
Les sous-agents sont développés par des équipes distinctes.
→Définir le contrat d'entrée/sortie de chaque agent comme un schéma typé et traiter les agents comme des services derrière des interfaces stables.
Pourquoi: Des contrats explicites permettent aux agents d'évoluer indépendamment et d'être testés unitairement de manière isolée.
La qualité de la sortie de l'agent est incohérente sur les tâches difficiles.
→Ajouter une étape de critique/réflexion qui examine le brouillon par rapport aux critères et déclenche un réessai limité avant de retourner le résultat.
Pourquoi: L'auto-critique détecte les erreurs à moindre coût, mais limitez les itérations pour éviter les boucles infinies et les coûts.