Prévention des conflits entre agents
Lorsque plusieurs agents IA implémentent différentes parties d’un système, ils peuvent prendre des décisions techniques contradictoires. La documentation d’architecture prévient cela en établissant des standards partagés.
Types de conflits courants
Section intitulée « Types de conflits courants »Conflits de style d’API
Section intitulée « Conflits de style d’API »Sans architecture :
- L’agent A utilise REST avec
/users/{id} - L’agent B utilise des mutations GraphQL
- Résultat : Patterns d’API incohérents, consommateurs confus
Avec architecture :
- L’ADR1 spécifie : « Utiliser GraphQL pour toute communication client-serveur »
- Tous les agents suivent le même pattern
Conflits de conception de base de données
Section intitulée « Conflits de conception de base de données »Sans architecture :
- L’agent A utilise des noms de colonnes en snake_case
- L’agent B utilise des noms de colonnes en camelCase
- Résultat : Schéma incohérent, requêtes illisibles
Avec architecture :
- Un document de standards spécifie les conventions de nommage
- Tous les agents suivent les mêmes patterns
Conflits de gestion d’état
Section intitulée « Conflits de gestion d’état »Sans architecture :
- L’agent A utilise Redux pour l’état global
- L’agent B utilise React Context
- Résultat : Multiples approches de gestion d’état, complexité
Avec architecture :
- L’ADR spécifie l’approche de gestion d’état
- Tous les agents implémentent de manière cohérente
Comment l’architecture prévient les conflits
Section intitulée « Comment l’architecture prévient les conflits »1. Décisions explicites via les ADR1
Section intitulée « 1. Décisions explicites via les ADR1 »Chaque choix technologique significatif est documenté avec :
- Contexte (pourquoi cette décision est importante)
- Options considérées (quelles alternatives existent)
- Décision (ce qui a été choisi)
- Justification (pourquoi cela a-t-il été choisi)
- Conséquences (compromis acceptés)
2. Guidance spécifique aux FR/NFR2
Section intitulée « 2. Guidance spécifique aux FR/NFR2 »L’architecture associe chaque exigence fonctionnelle à une approche technique :
- FR-001 : Gestion des utilisateurs → Mutations GraphQL
- FR-002 : Application mobile → Requêtes optimisées
3. Standards et conventions
Section intitulée « 3. Standards et conventions »Documentation explicite de :
- La structure des répertoires
- Les conventions de nommage
- L’organisation du code
- Les patterns de test
L’architecture comme contexte partagé
Section intitulée « L’architecture comme contexte partagé »Considérez l’architecture comme le contexte partagé que tous les agents lisent avant d’implémenter :
PRD : "Que construire" ↓Architecture : "Comment le construire" ↓L'agent A lit l'architecture → implémente l'Epic 1L'agent B lit l'architecture → implémente l'Epic 2L'agent C lit l'architecture → implémente l'Epic 3 ↓Résultat : Implémentation cohérenteSujets clés des ADR
Section intitulée « Sujets clés des ADR »Décisions courantes qui préviennent les conflits :
| Sujet | Exemple de décision |
|---|---|
| Style d’API | GraphQL vs REST vs gRPC |
| Base de données | PostgreSQL vs MongoDB |
| Authentification | JWT vs Sessions |
| Gestion d’état | Redux vs Context vs Zustand |
| Styling | CSS Modules vs Tailwind vs Styled Components |
| Tests | Jest + Playwright vs Vitest + Cypress |
Anti-patterns à éviter
Section intitulée « Anti-patterns à éviter »Glossaire
Section intitulée « Glossaire »Footnotes
Section intitulée « Footnotes »-
ADR (Architecture Decision Record) : document qui consigne une décision d’architecture, son contexte, les options envisagées, le choix retenu et ses conséquences, afin d’assurer la traçabilité et la compréhension des décisions techniques dans le temps. ↩ ↩2
-
FR / NFR (Functional / Non-Functional Requirement) : exigences décrivant respectivement ce que le système doit faire (fonctionnalités, comportements attendus) et comment il doit le faire (contraintes de performance, sécurité, fiabilité, ergonomie, etc.). ↩