L’équipe @Atlas
Comment @Atlas et les cinq spécialistes sont définis, routés et bornés dans l’application.
@Atlas orchestre cinq spécialistes. Chacun est défini deux fois dans l’app, et les deux définitions sont tenues ensemble par un test :
| Définition | Fichier | Contenu |
|---|---|---|
| Identité (ce que l’utilisateur voit) | src/features/ai/agents/identity-registry.ts | prénom, titre, mission, forces, limites, KPI, permissions, outils, autonomie de départ |
| Runtime (ce que le modèle reçoit) | src/features/ai/agents/agents/specialists.ts | identifiant ag-spec-*, prompt système, jeu d’outils |
| Accord des deux | src/features/ai/agents/identity-registry-tools.test.ts | chaque outil annoncé par une identité est un outil réellement enregistré |
Tout ce qui affiche un agent (avatar, carte, page de profil, popover du chat) lit l’identité, jamais la définition runtime.
L’équipe
| Agent | Identifiant | Domaine | Autonomie de départ | Page |
|---|---|---|---|---|
| @Atlas | atlas | Orchestration | 2, Approved | @Atlas |
| @Maya | ag-spec-marketing | Marketing | 1, Propose | @Maya |
| @Marco | ag-spec-merchandising | Merchandising | 1, Propose | @Marco |
| @Otis | ag-spec-operations | Opérations | 1, Propose | @Otis |
| @Faye | ag-spec-finance | Intelligence | 2, Approved | @Faye |
| @Sam | ag-spec-support | Support | 1, Propose | @Sam |
L’identifiant de @Faye, ag-spec-finance, est historique : il est gardé pour ne pas migrer les faits déjà rattachés à cet identifiant ; partout ailleurs, son rôle s’appelle Intelligence.
Routage et délégation
- Le mode équipe est un drapeau de la boutique (
multiAgentEnabled), lu parsrc/features/ai/orchestrator/team/team-context.ts. - Quand il est actif,
src/features/ai/orchestrator/runtime/handler-team-mode.tsajoute au prompt la section équipe et les cinq outilsdelegateTo_*. src/features/ai/agents/agents/atlas-router.tspropose un spécialiste par mots-clés. C’est une indication : @Atlas décide en appelant, ou non, l’outil de délégation ; sans correspondance, il répond lui-même.src/features/ai/orchestrator/team/delegate-tool.tsexécute le spécialiste choisi sur son jeu d’outils restreint, puis @Atlas synthétise la réponse.
Chaque spécialiste doit, avant de recommander quoi que ce soit dans son domaine, lire l’enregistrement canonique de la boutique filtré à son affinité (searchStoreIntelligence avec son prénom) ; sans enregistrement, il le dit en une phrase au lieu de deviner, et il ne présente jamais une estimation comme un fait.
Autonomie
Trois niveaux, réglés par organisation et par agent (src/features/ai/agents/autonomy.ts) : 1 Propose, 2 Approved, 3 Auto. Le réglage de départ est celui du tableau ci-dessus ; l’Admin permet de le surcharger par organisation (/admin/ai/agent-autonomy). La décision d’exécuter, de demander l’approbation ou de refuser un appel d’outil passe par src/features/ai/agents/wrap-tools-with-autonomy.ts et la matrice src/features/ai/agents/tool-permission-matrix.ts.
AGENTS.md de l’app annonce quatre niveaux : le quatrième (« entreprise autonome ») est une cible de la feuille de route, pas un réglage proposé.
Règles de surface
- Les personas portent toujours le
@en surface utilisateur. - Un profil s’adresse par prénom (
/agents/maya) ; son JSON-LD est unSoftwareApplication, jamais unPerson. - Les prompts des spécialistes sont importés côté serveur seulement (
server-only).