đ€ Symfony AI in Action - Construire des systĂšmes IA rĂ©els avec Symfony
le 24 avril 2026
Pendant deux jours, les 23 et 24 avril 2026, la confĂ©rence SymfonyLive Berlin a rassemblĂ© la communautĂ© autour des Ă©volutions majeures de lâĂ©cosystĂšme Symfony.
Parmi les talks, un en particulier marque un tournant :
đ Symfony AI in Action, prĂ©sentĂ© par Christopher Hertel.
- đ„ Slides : https://speakerdeck.com/chr_hertel/symfony-ai-in-action-symfonylive-berlin-2026
- đ§ Symfony AI : https://ai.symfony.com
- đ ïž Support utilisĂ© pour cet article : https://slidewire.dev
Cet article ne résume pas la conférence. Il propose une lecture Darkwood de ce qui est en train de se passer.
Le vrai sujet : arrĂȘter de penser âchatbotâ
Aujourdâhui, beaucoup dâintĂ©grations IA se limitent à ça :
Ă©crire un prompt â appeler un modĂšle â afficher une rĂ©ponse
Câest insuffisant.
Le problÚme réel, en production, est ailleurs :
- orchestrer plusieurs modĂšles
- gérer le contexte et la mémoire
- exposer des actions (tools)
- contrÎler les coûts et les logs
- intégrer le tout dans une architecture métier
đ Symfony AI ne propose pas un chatbot. đ Symfony AI propose une stack complĂšte.
Symfony AI : une stack, pas une feature
Lâobjectif est clair :
âEnable AI features, not only LLMs.â
Symfony AI introduit plusieurs briques fondamentales :
- Platform â abstraction des modĂšles
- Agent â boucle LLM + tools
- Store â embeddings & RAG
- AI Bundle â intĂ©gration Symfony
- MCP Bundle / SDK â exposition de tools
đ On passe dâun appel API⊠à une architecture IA complĂšte.
Platform : abstraction des modĂšles
Premier problĂšme classique :
OpenAI, Claude, Gemini, Mistral â APIs diffĂ©rentes
Symfony AI introduit une abstraction unique.
$platform->invoke('gpt-5-mini', $input);
MĂȘme code, diffĂ©rents providers.
Pourquoi câest clĂ©
- changer de modĂšle sans refactor
- optimiser les coûts
- fallback multi-provider
- intégrer local + remote
đ Symfony devient une couche dâorchestration des modĂšles.
Streaming & multimodal
Symfony AI va plus loin que le simple texte :
- streaming de tokens en temps réel
- audio, image, PDF
- output binaire
Exemples :
- analyser un PDF
- décrire une image
- traiter un audio
- générer des fichiers
đ LâIA devient une brique applicative multimodale.
Structured Output : reprendre le contrĂŽle
ProblĂšme classique :
les LLM retournent du texte⊠pas des données fiables
Symfony AI introduit des réponses typées :
$response_format => MyDTO::class
Résultat :
- objets PHP exploitables
- validation stricte
- intégration directe au métier
đ On passe de âtexte gĂ©nĂ©rĂ©â Ă donnĂ©es contrĂŽlĂ©es.
Agent : connecter le LLM Ă ton application
Un agent, câest :
un modĂšle qui peut appeler ton code
Avec Symfony AI :
#[AsTool('create_recipe')]
Tu exposes ton métier comme un tool.
Ce que ça change
Avant :
- LLM isolé
AprĂšs :
- LLM + accĂšs Ă ton systĂšme
đ LâIA devient exĂ©cutable.
Human in the loop : sécurité
Point critique souvent oublié :
une IA ne doit pas tout faire automatiquement
Symfony AI permet de :
- intercepter un tool call
- demander validation
- bloquer ou autoriser
Exemple :
- publier un article
- déclencher une action critique
đ Tu gardes le contrĂŽle.
Memory : contextualiser
Les agents ne fonctionnent pas sans contexte.
Symfony AI permet de :
- injecter des données utilisateur
- gérer des profils
- stocker de lâhistorique
- contrĂŽler les permissions
đ LâIA devient contextuelle et personnalisĂ©e.
Store & RAG : connecter tes données
Pipeline :
- loading
- filtering
- transforming
- vectorizing
đ Tu construis une base vectorielle.
Ensuite :
- requĂȘte utilisateur
- recherche dans le store
- enrichissement du prompt
đ Câest le RAG (Retrieval Augmented Generation).
Impact réel
- FAQ intelligente
- moteur de recherche métier
- copilote interne
- assistant documenté
đ Tu branches lâIA sur ta connaissance mĂ©tier.
Multi-agents : spécialisation
Architecture avancée :
- agent principal
- sub-agents spécialisés
- orchestration
- partage ou isolation de contexte
Exemple :
- agent support
- agent technique
- agent billing
đ Chaque agent a un rĂŽle.
MCP : exposer ton systĂšme
Symfony AI sâinscrit dans un mouvement plus large :
đ le protocole MCP
Objectif :
- exposer tes tools
- rendre ton systĂšme interrogeable
- standardiser les interactions IA
đ Ton application devient un serveur dâintelligence.
Le vrai tournant : lâorchestration
Le point le plus important nâest pas :
- les modĂšles
- les prompts
- les agents
đ Le vrai sujet est lâorchestration.
Questions clés :
- qui appelle quoi ?
- avec quel contexte ?
- sous quelles permissions ?
- avec quelle traçabilité ?
- comment reprendre la main ?
Lâapproche Darkwood
Chez Darkwood, la réponse est claire :
Stack proposée
- Symfony AI â briques IA
- MCP â exposition des tools
- Flow â orchestration
- Navi â exĂ©cution + tracing
- Uniflow â interface
Pourquoi cette stack
Symfony AI donne :
- les modĂšles
- les agents
- les tools
- le RAG
Mais il manque :
- orchestration métier
- contrĂŽle global
- visibilité complÚte
đ Câest lĂ quâinterviennent Flow et Navi.
Ce que ça change concrÚtement
Avant :
- scripts IA isolés
- prompts fragiles
- peu de contrĂŽle
AprĂšs :
- systÚme orchestré
- exécution traçable
- logique métier intégrée
đ On passe de âjouer avec lâIAâ Ă construire des systĂšmes fiables.
Conclusion
Symfony AI marque une évolution majeure :
tu ne construis plus un chatbot tu construis une feature IA complĂšte
Aujourdâhui, tu as :
- une abstraction des modĂšles
- des agents connectés à ton code
- un systÚme de mémoire
- du RAG intégré
- une base pour orchestrer
đ Tu nâas plus dâexcuse.
Pour aller plus loin
- Symfony AI : https://ai.symfony.com
- Slides de Christopher Hertel : https://speakerdeck.com/chr_hertel/symfony-ai-in-action-symfonylive-berlin-2026
- Le support technique qui m'a permis de générer les slides - Slidewire : https://slidewire.dev
Darkwood
đ Articles Ă venir pour implĂ©mentations concrĂštes.