Darkwood Blog Blog
  • Articles
fr
  • de
  • en
Connexion
  • Blog
  • Articles

⚙️ Hermes X Paperclip - Construire une architecture multi-agent gouvernée avec Symfony AI, Flow et Navi

le 30 avril 2026

Les systèmes multi-agents sont partout :

  • orchestrés via Docker : https://blog.darkwood.com/fr/article/ai-tinkerers-paris-agentic-workflows-avec-docker-vers-des-systemes-autonomes-securises-et-orchestres
  • 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
  • Integrateur

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
  • landing-page.md
  • article-draft.md
  • seo-geo.md
  • media-brief.yaml
  • delivery-report.md
  • 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 :

  1. définir des contrats
  2. isoler les dépendances
  3. centraliser la gouvernance
  4. rendre le système testable
  5. 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/
@reim.matthias Wenn Freundschaft keinen Sinn mehr macht… Wer fühlt den Song? #miajulia #matthiasreim #keinefreundebleben ♬ Keine Freunde bleiben (feat. Mia Julia) - Matthias Reim
  • « Comme ça je mange plus ! » 😂 #nico #byilhanntwitch : https://vm.tiktok.com/ZNRg5Rsh1/
@leclippeurrapide « Comme ça je mange plus ! » 😂 #nico #byilhanntwitch ♬ son original - Le Clippeur Rapide

📖 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

Site

  • Plan du Site
  • Contact
  • Mentions légales

Network

  • Hello
  • Blog
  • Apps
  • Photos

Social

Darkwood 2026, tous droits réservés