⚙️ Construire une architecture multi-agent gouvernée avec Symfony AI, Flow et Navi
Les systèmes multi-agents sont partout :
-
simulés via des frameworks comme Paperclip + Hermes : https://www.youtube.com/watch?v=j7cKjTMjNLE
-
ou intégrés directement dans des produits : https://docs.langchain.com/oss/python/langchain/multi-agent
Mais dans la majorité des cas, ils restent :
❌ des collections de prompts
❌ sans gouvernance
❌ sans traçabilité
❌ sans responsabilité claire
Dans cet article, on va construire une alternative, pas comme une startup fictive, mais comme un exemple concret :
NoLife Agency - une agence digitale entièrement pilotée par une architecture multi-agent gouvernée.
une agence digitale qui produit des sites clients avec des rôles spécialisés.
🏢 NoLife Agency - une organisation complète
Contrairement aux démos simplistes, NoLife Agency reproduit une vraie organisation :
Direction
-
CEO
-
CTO
-
Gouvernance Director Manager
Client & Delivery
-
Directeur de clientèle
-
Product Owner
-
Delivery Manager
Production
-
Architecte
-
Developer
-
UX Designer
-
UI Designer
-
Graphiste
-
Motion Designer
Growth
-
SEO / GEO
-
Marketing
-
Sales
-
Web Analytics
Support & fiabilité
-
QA
-
DevOps
-
Security Officer
-
Data Analyst
Organisation interne
-
Experience Officer
-
Office Manager
-
Happiness Chief Officer
-
Nolife Ressource
👉 Ici, chaque rôle peut être incarné par un agent.
⚠️ Le piège des architectures multi-agent
Ce que beaucoup construisent :
Prompt → LLM → résultat
Ce que ça donne :
-
aucune garantie
-
aucun contrôle
-
aucune auditabilité
-
pas de contrat
-
pas de gouvernance
-
pas de trace
-
pas de reprise
-
pas de responsabilité claire
✅ Le modèle NoLife Agency
On introduit une séparation stricte :
-
organisation (Paperclip) → qui fait quoi
-
spécialisation (Hermes) → comment réfléchir
-
orchestration (Flow) → quand exécuter
-
traçabilité (Navi) → observer et auditer
-
intelligence (Symfony AI) → produire du contenu
🧱 Architecture technique
L’application repose sur une architecture ports & adapters.
Ports principaux
NoLife Agency utilise des ports et des adaptateurs pour que l'orchestration et la gouvernance restent découplées des spécificités du fournisseur/du runtime.
-
AI → AiAgentClient
-
Workflow → FlowWorkflowClient
-
Trace → NaviTraceClient
-
Media → MediaGenerationClient
👉 Chaque dépendance externe est isolée.
AgentRunner est la limite unique d'exécution et de gouvernance. Les adaptateurs fournissent des fonctionnalités, mais ils n'appliquent pas la stratégie.
flowchart LR demoCommand[DemoClientWebsiteCommand] --> workflowLoader[WorkflowDefinitionLoader] workflowLoader --> workflowValidator[WorkflowDefinitionValidator] workflowValidator --> flowPort[FlowWorkflowClient] flowPort --> agentRunner[AgentRunner] agentRunner --> aiPort[AiAgentClient] agentRunner --> naviPort[NaviTraceClient] agentRunner --> mediaPort[MediaGenerationClient] agentRunner --> auditJsonl[Audit JSONL] agentRunner --> runArtifacts[Run Artifacts]
Symfony AI ↓ Agent Contracts + Registry ↓ AgentRunner + Governance ↓ Flow Workflow Runner ↓ Navi Trace Client ↓ Operational Reports
🧠 Principe clé
Les agents ne dépendent pas des outils. Ils dépendent de contrats.
Résultat :
-
testabilité
-
interchangeabilité
-
robustesse
⚙️ Le cœur du système : AgentRunner
AgentRunner est le point central :
-
exécution
-
gouvernance
-
audit
-
trace
👉 Aucun agent ne peut contourner ce point.
Principales garanties :
-
vérifications de la politique pre-flight et post-flight
-
application de l'approbation pour les états à haut risque/livraison finale
-
contrôles de sécurité de l'état du flux de travail
-
confinement du chemin de l'artefact dans le répertoire d'exécution
-
tracer la corrélation du cycle de vie avec les événements d'audit
🔐 Gouvernance IT intégrée
Chaque action est :
-
validée
-
tracée
-
auditée
Avec :
-
logs JSONL
-
trace par run
-
règles de validation
-
approbation obligatoire
👉 Ce n’est pas un système autonome aveugle.
👉 C’est un système contrôlé.
AgentRunner est le point d'application unique pour :
-
vérifications de politique
-
tracer le cycle de vie
-
émission d'événements d'audit
-
exigences d'approbation
Points clés :
-
séparation des responsabilités
-
auditabilité
-
validation humaine
-
limitation des actions risquées
-
interfaces typées
-
tests de policy
🔌 Phase 3 - Ports typés
Les dépendances deviennent des ports :
-
Symfony AI → intelligence
-
Flow → orchestration
-
Navi → traçabilité
-
media-bundle → génération média
Avec un point critique :
les adapters sont interchangeables via configuration
Variables d'environnement mis à disposition sur le projet:
-
NOLIFE_AI_ADAPTER (null|symfony_ai)
-
NOLIFE_FLOW_ADAPTER (null|darkwood_flow)
-
NOLIFE_NAVI_ADAPTER (null|darkwood_navi)
-
NOLIFE_MEDIA_ADAPTER (null|media_bundle)
-
NOLIFE_FLOW_ROOT
-
NOLIFE_NAVI_ROOT
-
NOLIFE_MEDIA_BUNDLE_ROOT
🧪 Cas d’usage - création d’un site client
Cas d’usage :
Client: Acme SaaS Contact: John Do Need: landing page + blog + SEO + short launch video
Commande :
php bin/console nolife:demo:client-website acme-saas
Workflow :
-
lead_qualified
-
brief_created
-
architecture_defined
-
ux_ready
-
content_generated
-
development_ready
-
seo_optimized
-
qa_validated
-
media_brief_created
-
delivery_reviewed
-
human_approval_required
-
published
👉 On s’arrête volontairement avant publication.
Paperclip est modélisé comme un concept organisationnel.
Hermès est modélisé comme un concept de spécialisation.
Ni l’un ni l’autre n’est couplé en tant que service d’exécution.
📂 Outputs générés
var/nolife-agency/runs/{run_id}/
-
brief.json
-
media-brief.yaml
-
trace.json
-
audit.jsonl
État final attendu : human_approval_required.
🔁 Multi-agent à tous les niveaux
1. Infrastructure
-
Docker / services isolés
2. Organisation
-
Paperclip → structure des rôles
3. Intelligence
-
Hermes → spécialisation des agents
4. Application
-
Symfony → orchestration concrète
👉 NoLife Agency est un point de convergence.
⚠️ Problème réel rencontré
Aujourd’hui :
AI adapter: null Using Null AI adapter
👉 Le système est correct… mais pas encore branché.
C’est normal.
Parce que :
-
les ports sont en place
-
mais les implémentations réelles ne sont pas activées
🧠 Ce que ça révèle
Construire une architecture multi-agent, ce n’est pas appeler un LLM.
C’est :
-
définir des contrats
-
isoler les dépendances
-
centraliser la gouvernance
-
rendre le système testable
-
activer progressivement les intégrations
🚀 Prochaine étape
Activer :
-
Symfony AI (intelligence réelle)
-
Flow (workflow réel)
-
Navi (trace réelle)
👉 Sans casser :
-
les tests
-
la gouvernance
-
les ports
🎯 Conclusion
Les architectures multi-agents ne sont pas :
des systèmes autonomes magiques
Ce sont :
des organisations logicielles gouvernées, orchestrées et traçables
💡 Positionnement Darkwood
NoLife Agency montre une direction claire :
L’avenir des systèmes IA n’est pas seulement autonome.
Il est gouverné.
🕵 Code source du projet
-
nolife-agency : https://github.com/matyo91/nolife-agency
🔗 Ressources
-
Multi-Agent Architectures : https://speakerdeck.com/chr_hertel/symfony-ai-in-action-symfonylive-berlin-2026?slide=46
-
Qu’est-ce qu’un système multi-agent ? https://www.ibm.com/fr-fr/think/topics/multiagent-system
-
Multi-Agent Orchestration: How to Build Agent Teams That Actually Work : https://www.mindstudio.ai/blog/multi-agent-orchestration-patterns
-
Building AI Teams: How Docker Sandboxes and Docker Agent Transform Development : https://www.docker.com/blog/building-ai-teams-docker-sandboxes-agent/
-
How To Build a Multi-Agent AI System with Docker Agent : https://www.digitalocean.com/community/tutorials/how-to-build-multi-agent-ai-system-docker-agent-digitalocean
-
Langchain Multi-agent : https://docs.langchain.com/oss/python/langchain/multi-agent
-
Github NousResearch/hermes-paperclip-adapter : https://github.com/NousResearch/hermes-paperclip-adapter
-
Hermes Agent, comment profiter de l'OpenClaw killer : https://www.youtube.com/watch?v=j7cKjTMjNLE
-
The A-Team - AI Agents for SaaS Development : https://github.com/gmoigneu/the-a-team
-
New Tech Role Emerging: Product Managers might evolve to “Product CEOs” (Paul Teyssier | Front) : https://www.youtube.com/watch?v=J3vCkWbSYI0
-
Openai/symphony : https://github.com/openai/symphony
🎶 Music credit
-
Keine Freunde bleiben (feat. Mia Julia) - Matthias Reim : https://vm.tiktok.com/ZNRgyxKkE/
-
« Comme ça je mange plus ! » 😂 #nico #byilhanntwitch : https://vm.tiktok.com/ZNRg5Rsh1/
📖 Selection de la semaine
-
DeepSeek-R1 evolving a Game of Life pattern really feels like a breakthrough : https://www.reddit.com/r/LocalLLaMA/comments/1icqzcz/deepseekr1_evolving_a_game_of_life_pattern_really/
-
Unbounded: A Generative Infinite Game of Character Life Simulation : https://arxiv.org/html/2410.18975v1
-
LLM Interactive Story Game Architecture : https://montreal.aitinkerers.org/talks/rsvp_c82tFBRQJ9A
-
Can an LLM Make a Video Game? https://www.codemag.com/Article/2411061/Can-an-LLM-Make-a-Video-Game
-
Harness design for long-running application development : https://www.anthropic.com/engineering/harness-design-long-running-apps
-
Elon Musk explains his 5-step algorithm for running companies : https://youtu.be/tdf3luOCNks?is=L6MRoXTHzvFVIUR8
-
when you have vibe coder in your office : https://x.com/javinpaul/status/2048425733694124211/video/1?s=46
-
la science du dimanche matin : https://x.com/Soph_astro/status/2048333972615111050/video/1?s=46
-
React Native chez Cdiscount avec Ludwig Vantours : https://www.youtube.com/watch?v=C3toh628KJE&list=PLmewDYeBL3XIx7Lnga-jO3eRjOsKQ-HW0&index=31
-
Getgaal - docs(mcp): re-sync with agents/global registry resolution : https://github.com/getgaal/docs/pull/16
-
Arize Phoenix : https://arize.com/docs/phoenix
-
Dessinez un nouvel avenir professionnel grâce au no-code et à l’IA : https://www.youtube.com/watch?v=p-sHtOut884
-
Le bullshit des modèles d'IA open sources : https://www.youtube.com/watch?v=jpg9lvtqrF8
-
Un ex-espion utilise l'IA pour tout savoir sur vous (démonstration claude code) : https://www.youtube.com/watch?v=eQXMEvGRld4
-
Automatiser sa veille informationnelle gratuitement et simplement : https://www.youtube.com/watch?v=6n_xwJ6YAj0
-
A man spends 50 years teaching at MIT. The most important hour you'll watch this week. https://x.com/suryanshti777/status/2049187998936482069?s=46
-
The Fastest AI Infrastructure : https://www.cerebras.ai
-
Diablo® IV: Lord of Hatred : https://eu.shop.battle.net/fr-fr/product/diablo-iv-lord-of-hatred
🚀 Levée de fonds vs Bootstrap : deux chemins pour construire une boîte
🚀 J’ai reconstruit un LLM… avec des pixels.
🔊 DJ Matyo Live - Soundcloud set
🤖 Symfony AI in Action - Construire des systèmes IA réels avec Symfony
🐳 Agentic Workflows avec Docker - vers des systèmes autonomes, sécurisés et orchestrés
👨💻 Évaluation comparative de petits modèles de langage dans le monde réel
🚀 Sundays Lab #3 - Quand l’IA devient un terrain de jeu collectif
⚙️ Message-oriented vs Data-oriented orchestration - de la donnée à la connaissance
🤩 Relâcher les connecteurs - Des outils au langage
💡 J’ai créé une app IA RGPD en 1h avec Symfony
🗂️ Hellcats Over The Pacific - ouverture des archives
🧠 Ne rien dévoiler. Tout montrer – Bâtir des systèmes publics sur des fondations privées
🎬 La vidéo la plus chère de ma chaîne YouTube 💰
🎨 Darkwood v1.0.4 - Présentation du design V4
👾 Darkwood : Créer un jeu tactique axé sur les API
🚀 Création d'une application PHP MCP pour publier des articles Darkwood
🚀 Je construis un moteur de dictée en PHP (Flow + Symfony + Whisper.cpp)
⚔️ Découverte de l'extension cataclysme Hearthstone
🤖 Développement parallèle d'IA avec Cursor et Git Worktrees
🤖 Comment rendre Darkwood prêt pour les agents