Darkwood Blog Blog
  • Articles
en
  • de
  • fr
Login
  • Blog
  • Articles

⚙️ Hermes X Paperclip - Building a Governed Multi-Agent Architecture with Symfony AI, Flow, and Navi

on April 30, 2026

Multi-agent systems are everywhere:

  • orchestrated via Docker: https://blog.darkwood.com/fr/article/ai-tinkerers-paris-agentic-workflows-avec-docker-vers-des-systemes-autonomes-securises-et-orchestres
  • Simulated using frameworks like Paperclip + Hermes: https://www.youtube.com/watch?v=j7cKjTMjNLE
  • or integrated directly into products: https://docs.langchain.com/oss/python/langchain/multi-agent

But in most cases, they remain:

❌ collections of prompts
❌ without governance
❌ without traceability
❌ without clear responsibility

In this article, we will build an alternative, not as a fictional startup, but as a concrete example:

NoLife Agency - a digital agency entirely driven by a governed multi-agent architecture.
a digital agency that produces client websites with specialized roles.

🏢 NoLife Agency - a complete organization

Unlike simplistic demos, NoLife Agency replicates a real organization:

Direction

  • CEO
  • CTO
  • Governance Director Manager

Client & Delivery

  • Account Manager
  • Product Owner
  • Delivery Manager

Production

  • Architect
  • Developer
  • UX Designer
  • UI Designer Graphic Designer
  • Motion Designer
  • Integrator

Growth

  • SEO / GEO
  • Marketing
  • Sales
  • Web Analytics

Support & Reliability

  • QA
  • DevOps
  • Security Officer
  • Data Analyst

Internal Organization

  • Experience Officer
  • Office Manager
  • Happiness Chief Officer
  • Nolife Resource

👉 Here, each role can be played by an agent.

⚠️ The trap of multi-agent architectures

What many are building:

Prompt → LLM → résultat

The result is:

*no guarantee

  • no control
  • no auditability
  • no contract
  • no governance
  • no trace
  • no trade-in
  • no clear responsibility

✅ The NoLife Agency Model

We introduce a strict separation:

  • organization (Paperclip) → who does what
  • specialization (Hermes) → how to think
  • orchestration (Flow) → when to execute
  • traceability (Navi) → observe and audit
  • intelligence (Symfony AI) → produce content

🧱 Technical architecture

The application is based on a ports & adapters architecture.

Main Ports

NoLife Agency uses ports and adapters to ensure that orchestration and governance remain decoupled from vendor/runtime specifics.

  • AI → AiAgentClient
  • Workflow → FlowWorkflowClient
  • Trace → NaviTraceClient
  • Media → MediaGenerationClient

👉 Each external dependency is isolated.

AgentRunner is the single boundary for execution and governance. Adapters provide functionality, but they do not enforce policy.

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

🧠 Key principle

Agents are not dependent on tools. They are dependent on contracts.

Result :

  • testability
  • interchangeability
  • robustness

⚙️ The heart of the system: AgentRunner

AgentRunner is the central point:

  • execution
  • governance
  • audit
  • trace

👉 No agent can circumvent this point.

Main guarantees:

  • checks of the pre-flight and post-flight policy
  • Application of approval for high-risk states/final delivery
  • Workflow status security checks
  • confining the artifact path to the execution directory
  • Trace the correlation between the lifecycle and audit events

🔐 Integrated IT Governance

Each action is:

  • validated
  • traced
  • audited

With :

  • JSONL logs
  • trace per run
  • validation rules
  • mandatory approval

👉 This is not a blind, autonomous system.
👉 It's a controlled system.

AgentRunner is the single point of application for:

  • policy checks
  • trace the life cycle
  • Issuance of audit events
  • approval requirements

Key points:

  • separation of responsibilities
  • auditability
  • human validation
  • limitation of risky actions
  • typed interfaces
  • policy tests

🔌 Phase 3 - Typed Ports

The dependencies become ports:

  • Symfony AI → intelligence
  • Flow → orchestration
  • Navi → traceability
  • media-bundle → media generation

With one critical point:

The adapters are interchangeable via configuration

Environment variables made available on the project:

  • 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

🧪 Use Case - Creating a Client Website

Use case:

Client: Acme SaaS
Contact: John Do
Need: landing page + blog + SEO + short launch video

Order :

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

👉 We are intentionally stopping before publication.

Paperclip is modeled as an organizational concept.
Hermès is modeled as a concept of specialization.
Neither is coupled as an execution service.

📂 Generated Outputs

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

Expected final state: human_approval_required.

🔁 Multi-agent at all levels

1. Infrastructure

  • Docker / isolated services

2. Organization

  • Paperclip → role structure

3. Intelligence

  • Hermes → agent specialization

4. Application

  • Symfony → concrete orchestration

👉 NoLife Agency is a point of convergence.

⚠️ Real problem encountered

Today :

AI adapter: null
Using Null AI adapter

👉 The system is correct… but not yet connected.

That's normal.

Because :

  • The ports are in place
  • but the actual implementations are not enabled

🧠 What this reveals

Building a multi-agent architecture is not the same as calling an LLM.

It is :

  1. Define contracts
  2. Isolate the dependencies
  3. Centralize governance
  4. Make the system testable
  5. Gradually activate the integrations

🚀 Next step

Enable :

  • Symfony AI (real intelligence)
  • Flow (actual workflow)
  • Navi (actual track)

👉 Without breaking anything:

  • the tests
  • governance
  • the ports

🎯 Conclusion

Multi-agent architectures are not:

magical autonomous systems

These are :

governed, orchestrated, and traceable software organizations

💡 Darkwood Positioning

NoLife Agency is showing a clear direction:

The future of AI systems is not only autonomous.

It is governed.

🕵 Project source code

  • nolife-agency: https://github.com/matyo91/nolife-agency

🔗 Resources

  • Multi-Agent Architectures: https://speakerdeck.com/chr_hertel/symfony-ai-in-action-symfonylive-berlin-2026?slide=46
  • What is a multi-agent system? 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, how to take advantage of the 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
  • "That way I eat more!" 😂 #nico #byilhanntwitch: https://vm.tiktok.com/ZNRg5Rsh1/
@leclippeurrapide "That way I eat more!" 😂 #nico #byilhanntwitch ♬ original sound - Le Clippeur Rapide

📖 Selection of the week

  • 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
  • Sunday morning science: https://x.com/Soph_astro/status/2048333972615111050/video/1?s=46
  • React Native at Cdiscount with 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
  • Design a new professional future with no-code and AI: https://www.youtube.com/watch?v=p-sHtOut884
  • The bullshit of open-source AI models: https://www.youtube.com/watch?v=jpg9lvtqrF8
  • A former spy uses AI to learn everything about you (Claude Code demonstration): https://www.youtube.com/watch?v=eQXMEvGRld4
  • Automate your information monitoring for free and easily: https://www.youtube.com/watch?v=6n_xwJ6YAj0
  • A man spent 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

  • Sitemap
  • Contact
  • Legal mentions

Network

  • Hello
  • Blog
  • Apps
  • Photos

Social

Darkwood 2026, all rights reserved