Symfony Mate: Wie Johannes Wachter die Idee im Zug gebaut hat

Von Roland Golla
0 Kommentar
Goldene Wüste, KI Roboter auf Elefant blickt in Glaswürfel, Schild Symfony Mate

Symfony Mate gibt Coding Agents einen echten Blick in eine laufende Symfony Anwendung: Container, Services, Logs und Profiler. Wie das Tool entstanden ist, hat Johannes Wachter jetzt aufgeschrieben. Johannes ist Core Developer bei Sulu, Mitglied im Symfony AI Core Team und ein guter Freund von Never Code Alone. Er war schon oft bei uns im YouTube Stream zu Gast und hat Mate dort auch vorgestellt. Seine Geschichte ist zu gut, um sie nur zu teilen. Also erzählen wir sie nach und ordnen sie ein.

Symfony und KI im Team lernen

Mate zeigt, wie viel besser Agents mit dem richtigen Kontext arbeiten. Genau das üben wir mit eurem Team, direkt am eigenen Code und gemeinsam an der NCA Funktastatur:

  • Agents mit Kontext: Mate, MCP und Skills sauber im Symfony Projekt einrichten
  • Symfony AI verstehen: Platform, Agent, Tool Calling und Structured Output
  • Sulu im Griff: Templates, Bundles und Tests im Symfony CMS
  • Für Teams: remote oder inhouse, aktuelle Termine auf Anfrage

Am Anfang stand ein Stich

Bevor es Symfony AI gab, hatte Johannes schon seine eigene Bibliothek: Modelflow AI. Sie konnte verschiedene KI Provider hinter einer sauberen Schicht verstecken und bewegte sich Richtung Routing und Tools. Er hatte sie sogar schon auf einer Konferenz in Wien vorgestellt.

Dann wurde Symfony AI angekündigt. Ein großes Projekt, das vieles abdeckte, was er selbst gebaut hatte. Johannes schreibt offen, dass ihn das zuerst getroffen hat. Er fühlte sich übergangen, obwohl ihm niemand etwas weggenommen hatte. Diese Ehrlichkeit macht seinen Text so lesenswert. Viele Entwickler kennen das Gefühl, wenn ein großes Projekt plötzlich im eigenen Revier auftaucht.

SymfonyCon Amsterdam dreht die Frage um

Mit diesem Gefühl fuhr Johannes zur SymfonyCon nach Amsterdam. Zurück kam er mit einer ganz anderen Frage: Was bauen wir gemeinsam?

Den Anstoß gab die Keynote von Fabien Potencier. Sein Punkt war einfach. Das Symfony Framework weiß sehr viel über sich selbst. Container Tags, Routen, Konsolen Ausgaben und Profiler Daten sind für Menschen mühsam zu lesen. Für ein Sprachmodell sind sie Gold wert.

Fabien machte auch klar: Symfony AI ist ein Community Projekt von Christopher Hertel und Oskar Stark. Danach führte Johannes zwei Gespräche, die alles kippten. Eins mit Chris über Modelflow AI. Und eins mit Tobias Nyholm über eine Idee, die noch keinen Namen hatte: ein MCP Server für die Entwicklung. Ab da ergab es keinen Sinn mehr, zwei konkurrierende Bibliotheken zu verteidigen.

Code statt Konzeptpapier

Was Johannes dann gemacht hat, gefällt uns besonders. Er schrieb kein Proposal. Er baute am zweiten Konferenztag einfach einen Pull Request, der Prompt Templates in die Message API von Symfony AI brachte. Das war etwas, das Modelflow AI schon konnte und das Fabien gerade als fehlend benannt hatte.

Heute lassen sich Prompts in Symfony AI mit Twig rendern. Für Symfony Entwickler ist das ein riesiger Vorteil, denn Twig kennt jeder. Wir sehen das gleiche Prinzip bei den Experten in Sulu AI, die wir mit Johannes im Sulu AI Live Check angepasst haben.

„show up with something that already works, don’t wait for permission to start“

Johannes Wachter, The Mate Journey

Auf Deutsch: Komm mit etwas, das schon läuft, und warte nicht auf Erlaubnis. Diesen Satz würden wir sofort in jedes Team Handbuch schreiben.

Ein Prototyp im Zug ohne Internet

Mate selbst entstand parallel. Die erste Version war ein dünner Wrapper um das MCP PHP SDK mit einem kleinen Extension System. Begonnen zwischen Konferenz und Flughafen, weitergebaut auf dem Heimweg.

Dann kam der Teil, den wir am liebsten mögen. In einem Zug durch die Schweiz gab es kein Internet. Johannes testete den Prototyp trotzdem: mit OpenCode als Agent und einem lokalen Modell. Es lief.

Das ist für uns mehr als eine Anekdote. OpenCode mit lokalen Modellen über Ollama ist genau das Setup, mit dem wir selbst täglich arbeiten. Es zeigt, wie unabhängig gute Werkzeuge sein können. Kein Cloud Account, keine Verbindung, trotzdem ein funktionierender Test. Mehr dazu, wie das in Symfony aussieht, steht in unserem Eintrag Ollama lokal in Symfony anbinden.

Die erste echte Version zeigte dem Agent zwei Dinge: die Service Definitionen von Symfony und die Logs über Monolog. Der Profiler kam ein paar Wochen später dazu. Schon das reichte, damit ein Agent eine Anwendung versteht, statt sie aus dem Quellcode zu erraten. Später landete Mate als eigene Komponente in symfony/ai.

Wenn ein Tool nicht mehr dir gehört

Gebaut hat Johannes den Prototyp für sich und eine Handvoll Leute im Slack. Heute zählt Packagist laut seinem Artikel mehr als eine halbe Million Installationen. Er sagt selbst, dass das nicht gleich Nutzer sind, weil CI und Updates mitzählen. Ein großer Teil kam aber in den letzten Wochen dazu.

Mit der Verbreitung änderte sich sein Blick. Er schreibt vorsichtiger und überlegt genauer, bevor er etwas ändert, auf dem andere schon aufbauen. Das ist der Moment, in dem aus einem Side Project ein Werkzeug für viele wird.

Den stärksten Beweis lieferte die SymfonyLive Berlin. Dort zeigte Johannes live, wie Mate über den Profiler ein N+1 Problem findet. Danach erklärte er Nicolas Grekas, warum Mate ein eigenes, entkoppeltes Tool ist und kein weiteres Bundle im Profiler.

Vom MCP Server zur CLI und zu Skills

Zwei Entscheidungen aus dieser Zeit beschreibt Johannes in eigenen Artikeln. Mate zog vom MCP Server zu einer nativen CLI um. Und Skills landeten im Dateisystem, bevor gängige Agents sie über MCP lesen konnten. Wie Mate heute aufgebaut ist, mit Extensions, Skills und den wichtigsten Befehlen, erklärt unser Glossar Eintrag zu Symfony AI Mate.

Das Extension System ist offen für alle. Neben den offiziellen Erweiterungen für Symfony und Monolog gibt es auf Packagist inzwischen Community Extensions, unter anderem für PHPStan, PHPUnit und für Sulu. Wer einen eigenen Server für Agent Werkzeuge bauen will, startet mit dem Symfony MCP Bundle. Wie Agents PHP Methoden aufrufen, zeigt Tool Calling in Symfony AI.

Open Source ist Teamsport

Das ist für uns die eigentliche Botschaft. Modelflow AI war keine verschwendete Arbeit. Die Teile, die den Kontakt mit fremdem Code überstanden haben, sind heute nützlicher als die alte Bibliothek allein. Prompt Templating ist ein Beispiel. Mate ist ein anderes.

Die Geschichte hat auch ein schönes Ende, das keins ist. Johannes wurde in das Symfony AI Core Team geholt. Und Mate entwickelt sich weiter. Never Code Alone steht seit Jahren für genau diese Haltung: gemeinsam coden, Wissen teilen, Ego zurückstellen. Darum freut es uns sehr, dass ein Freund der Community diesen Weg so offen beschreibt. Lest den ganzen Text im Original auf johanneswachter.dev. Die ganze Serie zu Mate findet ihr auf seiner Mate Übersicht.

Mehr zu Symfony, Sulu und KI

Wie Mate Agents im Alltag hilft, lest ihr in unserem Beitrag Symfony AI Mate und der richtige Runtime Kontext. Johannes arbeitet im Core Team von Sulu, dem CMS, auf dem auch unsere Website läuft. Grundlagen und Bundles erklärt das Glossar für Sulu CMS. Was Sulu an KI Funktionen mitbringt, zeigt die Seite Sulu.ai, das KI Layer von Sulu CMS, den Vergleich mit anderen Systemen das Glossar KI in CMS. Wenn euer Projekt noch auf einem alten Stand hängt, hilft ein PHP Update, bevor ihr Agents mit Mate darauf loslasst.

Symfony AI und Mate für euer Team

Ein Agent ist nur so gut wie der Kontext, den er bekommt. Wir richten mit eurem Team Mate, Skills und Guardrails im eigenen Symfony oder Sulu Projekt ein. Mit Tests, die KI Code absichern, und Modellen, die ihr austauschen könnt. Direkt an eurem Code, gemeinsam an der Funktastatur.

Remote oder inhouse, aktuelle Termine auf Anfrage. Das Vorgespräch ist kostenlos.

Häufige Fragen zu Symfony Mate

Was ist Symfony Mate 2026?

Symfony Mate ist eine Komponente aus dem symfony/ai Ökosystem. Sie gibt Coding Agents einen strukturierten Blick in eine laufende Symfony Anwendung, etwa auf Container, Services, Logs und Profiler Daten. So muss der Agent die Anwendung nicht mehr aus dem Quellcode erraten und findet Fehler schneller.

Wer hat Symfony Mate 2026 entwickelt?

Die erste Version hat Johannes Wachter gebaut, Core Developer bei Sulu und Mitglied im Symfony AI Core Team. Den Anstoß gaben Gespräche auf der SymfonyCon Amsterdam mit Christopher Hertel und Tobias Nyholm. Später wurde Mate als eigene Komponente in symfony/ai aufgenommen und von der Community weiterentwickelt.

Was hat Modelflow AI mit Symfony Mate 2026 zu tun?

Modelflow AI war die eigene KI Bibliothek von Johannes Wachter, bevor es Symfony AI gab. Statt sie gegen Symfony AI zu verteidigen, brachte er Ideen daraus in das größere Projekt ein. Prompt Templating mit Twig ist ein direktes Ergebnis, Mate ein indirektes.

Funktioniert Symfony Mate 2026 mit lokalen Modellen?

Ja. Johannes hat schon den ersten Prototyp ohne Internet getestet, mit OpenCode als Agent und einem lokalen Modell. Mate liefert den Kontext, welches Modell ihn verarbeitet, entscheidet ihr. Das passt gut zu Setups mit Ollama und Open Weight Modellen.

Gibt es eine Sulu Erweiterung für Symfony Mate 2026?

Ja. Auf Packagist ist eine Mate Extension für Sulu gelistet. Daneben gibt es offizielle Erweiterungen für Symfony und Monolog sowie Community Extensions für PHPStan, PHPUnit und weitere Systeme. Welche Extensions für euer Projekt passen, prüft ihr mit dem Discover Befehl von Mate.

Wo finde ich die ganze Geschichte von Symfony Mate?

Johannes Wachter hat die Entstehung auf seinem Blog unter dem Titel The Mate Journey aufgeschrieben. Dort gibt es auch eine gesprochene Fassung und eine ganze Serie zu Mate, unter anderem zum Wechsel vom MCP Server zur CLI und zu Skills für Agents.

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu