<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
    <id>https://muench.dev/feed/atom</id>
    <title type="text">muench.dev Articles</title>
    <subtitle type="text">muench.dev Feed</subtitle>
    <link xmlns="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="https://muench.dev/feed/atom"/>
    <updated>2026-10-09T21:04:20+02:00</updated>
    <generator uri="https://github.com/mitydigital/feedamic" version="3.0.13">Feedamic: the Atom and RSS Feed generator for Statamic</generator>
    <entry>
        <title type="text">magento.watch MCP: Magento- und Adobe-Commerce-Wissen direkt abfragen</title>
        <link href="https://muench.dev/post/2026-10-magentowatch-mcp-magento-und-adobe-commerce-wissen-direkt-abfragen"/>
        <id>https://muench.dev/post/2026-10-magentowatch-mcp-magento-und-adobe-commerce-wissen-direkt-abfragen</id>
        <published>2026-10-06T11:00:00+00:00</published>
        <updated>2026-10-05T13:10:01+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Mit dem magento.watch MCP lassen sich wichtige Informationen rund um Magento Open Source und Adobe Commerce direkt aus einem KI-Assistenten abfragen. Ich nutze den MCP schon länger, vor allem um Abhängigkeiten zu prüfen. Praktisch ist auch die Möglichkeit, schnell zu kontrollieren, ob ein Shop die offiziellen Patches verwendet.&lt;/p&gt;
&lt;h2&gt;MCP ohne Zugangsdaten einbinden&lt;/h2&gt;
&lt;p&gt;Der MCP ist unter &lt;a href=&quot;https://magento.watch/mcp&quot;&gt;magento.watch/mcp&lt;/a&gt; dokumentiert. Für Claude lässt er sich beispielsweise so hinzufügen:&lt;/p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;claude mcp add magento-watch &lt;span class=&quot;hl-generic&quot;&gt;--transport&lt;/span&gt; http https://magento.watch/mcp/api
&lt;/pre&gt;
&lt;p&gt;In VSCode / CoPilot geht das z.B. so per Konfiguration:&lt;/p&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;notranslate&quot;&gt;&lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;servers&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;magento-watch&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;http&amp;quot;&lt;/span&gt;,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;url&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;https://magento.watch/mcp/api&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Dafür sind weder Passwort noch Token erforderlich. Das macht den Einstieg unkompliziert: Nach dem Hinzufügen kann Claude die bereitgestellten Werkzeuge verwenden, um konkrete Fragen zu Releases, Support-Zeiträumen, Abhängigkeiten, Security Bulletins und Patches zu beantworten.&lt;/p&gt;
&lt;p&gt;Und hier seht ihr den MCP in Aktion:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot-claude-magento-watch-mcp_2026-10-05.png&quot; alt=&quot;Dunkler Terminalbericht zur Magento-Sicherheit: Die installierte Version 2.4.9 gilt als sicher und entspricht der empfohlenen Version; das Supportende ist für den 12. Mai 2029 angegeben.&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Release- und Abhängigkeitsinformationen&lt;/h2&gt;
&lt;p&gt;Für den Überblick über Versionen gibt es unter anderem &lt;code&gt;get_all_versions&lt;/code&gt;, &lt;code&gt;get_supported_versions&lt;/code&gt; und &lt;code&gt;get_eol_versions&lt;/code&gt;. Damit lassen sich alle erfassten Versionen einer Distribution, aktuell unterstützte Releases und Versionen mit erreichtem End-of-Life abfragen. &lt;code&gt;get_version&lt;/code&gt; liefert Details zu einer einzelnen Version, einschließlich Lifecycle und Systemanforderungen. Wer nur die jüngste stabile Version benötigt, kann &lt;code&gt;get_latest_version&lt;/code&gt; verwenden.&lt;/p&gt;
&lt;p&gt;Bei Upgrade- und Wartungsarbeiten ist &lt;code&gt;check_compatibility&lt;/code&gt; besonders nützlich. Das Werkzeug prüft, ob eine bestimmte PHP-, MySQL- oder andere Abhängigkeitsversion mit einem Release kompatibel ist. So kann ich Anforderungen gezielt gegen die eingesetzte Shop-Version abgleichen, statt Informationen aus mehreren Dokumentationsseiten manuell zusammenzutragen.&lt;/p&gt;
&lt;h2&gt;Security Bulletins und Schwachstellen&lt;/h2&gt;
&lt;p&gt;Auch Sicherheitsinformationen sind über eigene Werkzeuge erreichbar. &lt;code&gt;get_security_bulletins&lt;/code&gt; listet Adobe- und Magento-Security-Bulletins, optional gefiltert nach Schweregrad oder Veröffentlichungsdatum. Mit &lt;code&gt;get_security_bulletin&lt;/code&gt; lassen sich ein konkretes Bulletin, dessen CVEs, Schweregrad und die Releases mit enthaltenem Fix abrufen.&lt;/p&gt;
&lt;p&gt;Für eine konkrete Shop-Version gibt es &lt;code&gt;check_version_security&lt;/code&gt;. Damit kann geprüft werden, ob bekannte Bulletins die Version betreffen und welche Version den Fix enthält. Das ist hilfreich, um eine Patch-Frage konkreter zu beantworten: Ist die installierte Version betroffen, und auf welches Release sollte aktualisiert werden?&lt;/p&gt;
&lt;h2&gt;Quality Patches prüfen&lt;/h2&gt;
&lt;p&gt;Für Quality Patches bietet &lt;code&gt;find_patch&lt;/code&gt; eine Liste der auf eine Magento-Version anwendbaren Patches. Die Suche kann außerdem nach einem beschriebenen Fehler priorisieren. &lt;code&gt;get_patch&lt;/code&gt; liefert Details zu einem einzelnen Patch, beispielsweise Varianten, Einschränkungen, geänderte Dateien und Dokumentation.&lt;/p&gt;
&lt;p&gt;Damit lässt sich auch praktisch prüfen, welche offiziellen Patches für einen Shop relevant sind und ob sie bereits berücksichtigt wurden. Das ist eine sinnvolle Ergänzung zu Release- und Security-Abfragen, gerade bei der laufenden Wartung einer Installation.&lt;/p&gt;
&lt;h2&gt;REST API und n98-magerun2&lt;/h2&gt;
&lt;p&gt;Neben dem MCP stellt magento.watch auch eine REST API bereit. Diese API wird in der nächsten Version von n98-magerun2 in einem Kommando zur Prüfung der Datenbank-Kompatibilität zum Einsatz kommen. So stehen die Informationen nicht nur KI-Assistenten zur Verfügung, sondern können auch direkt in bestehende Kommandozeilen-Workflows einfließen.&lt;/p&gt;
&lt;h2&gt;Ein Community-Projekt mit praktischem Nutzen&lt;/h2&gt;
&lt;p&gt;magento.watch wird von &lt;a href=&quot;https://lbajsarowicz.me&quot;&gt;Łukasz Bajsarowicz&lt;/a&gt; entwickelt. Er hat bereits viele wertvolle Beiträge für die Magento-Community geleistet und ist Core Contributor. Ich schätze seine Arbeit sehr.&lt;/p&gt;
&lt;p&gt;Für mich ist magento.watch ein überzeugendes Projekt, weil es Release-, Kompatibilitäts-, Sicherheits- und Patch-Informationen über eine klare Schnittstelle zugänglich macht. Der MCP spart beim Prüfen von Abhängigkeiten Zeit und hilft, gezielte Fragen zum Zustand eines Shops zu beantworten. Wer Claude nutzt, kann die Anbindung mit einem einzelnen Kommando ausprobieren, ganz ohne Passwort oder Token.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">herdr: Terminal-Multiplexer für Server und AI-Agenten</title>
        <link href="https://muench.dev/post/2026-10-herdr-terminal-multiplexer-fuer-server-und-ai-agenten"/>
        <id>https://muench.dev/post/2026-10-herdr-terminal-multiplexer-fuer-server-und-ai-agenten</id>
        <published>2026-10-05T09:00:00+00:00</published>
        <updated>2026-10-01T21:37:59+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Ein Terminal-Multiplexer ist für mich ein Werkzeug, um mehrere Arbeitskontexte parallel im Blick zu behalten. Das können lokale Shells sein, SSH-Verbindungen zu Servern oder Sessions mit Coding-Agenten.&lt;/p&gt;
&lt;p&gt;Dafür nutze ich &lt;a href=&quot;https://herdr.dev&quot;&gt;&lt;strong&gt;herdr&lt;/strong&gt;&lt;/a&gt;. Es lässt sich als normaler Terminal-Multiplexer verwenden und unterstützt verschiedene Coding-Agenten out-of-the-box. Dazu kommen persistente Sessions und die Möglichkeit, Remote-Maschinen per SSH anzubinden. So kann ich in einem Werkzeug mehrere Terminals und Agent-Sessions parallel organisieren.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_20261001_164544_herdr.png&quot; alt=&quot;Screenshot eines Terminalfensters mit mehreren Codezeilen und Abläufen, die Informationen über Home Assistant und Systemprozesse anzeigen. In der oberen linken Ecke befinden sich Navigationsoptionen, während der Hauptbereich von System- und Prozessdaten dominiert wird.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Auch wenn es sich um ein CLI Tool handelt ist es wichtig zu wissen, dass man alles auch per Maus bedienen kann. Es lassen sich alle Panes per Drag&amp;amp;Drop verschieben, genauso wie Tabs. Auch Menüs kann man per Klick mit der Maus öffnen.&lt;br /&gt;
Über die Tastatur geht selbstverständlich auch alles.&lt;/p&gt;
&lt;h2&gt;Nicht nur Terminalfenster&lt;/h2&gt;
&lt;p&gt;herdr verwaltet mehrere Sessions und Workspaces. Das ist nützlich, wenn ich zum Beispiel lokal entwickle, parallel auf einen Server zugreife und dazu einen oder mehrere Agenten laufen lasse.&lt;/p&gt;
&lt;p&gt;Ein wichtiger Unterschied zu mehreren gewöhnlichen Terminalfenstern ist die persistente Session: herdr basiert auf einer Client-Server-Architektur. Prozesse, die in einer Session gestartet wurden, laufen weiter, auch wenn ich die Verbindung oder das Terminal verlasse. Wenn ich später zurückkehre, kann ich dort weitermachen und den aktuellen Stand sehen. Das gilt nicht nur für Coding-Agenten, sondern grundsätzlich für Prozesse in der Session.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_20261001_165046_hermes_remote.png&quot; alt=&quot;Screenshot einer Terminal-Oberfläche mit buntem Text „CATPPUCCIN“ und einem Agenten namens „Hermes“. Links sind Maschinen- und Agentenmenüs sichtbar, während rechts technische Informationen und verfügbare Tools angezeigt werden.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Damit lassen sich Aufgaben trennen, ohne den Überblick zu verlieren: etwa ein Workspace pro Projekt, separate Sessions für unterschiedliche Agenten und zusätzliche Terminals für Serverzugriffe.&lt;/p&gt;
&lt;h2&gt;Agenten in den Terminal-Workflow einbinden&lt;/h2&gt;
&lt;p&gt;Coding-Agenten arbeiten häufig direkt im Terminal. herdr bringt die Sessions, Workspaces und Agent-Integrationen in eine gemeinsame Arbeitsumgebung.&lt;br /&gt;
Das macht herdr nicht selbst zum Coding-Agenten. Es organisiert vielmehr die Umgebung, in der Agenten und andere Prozesse laufen. Der praktische Nutzen entsteht, wenn mehrere Aufgaben parallel bearbeitet werden und ich zwischen den jeweiligen Sessions wechseln möchte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_20261001_165926-herdr-integrations.png&quot; alt=&quot;Das Bildschirmfoto zeigt eine Benutzeroberfläche mit den Einstellungen für Integrationen. Es listet verschiedene Agenten auf, von denen einige als &amp;quot;nicht gefunden&amp;quot; und andere mit einer &amp;quot;Update verfügbar&amp;quot;-Benachrichtigung angezeigt werden.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dazu kommen weitere Features, wie Git-Worktrees für getrennte Arbeitsstände, Plugins, konfigurierbare Tastenkürzel sowie Werkzeuge wie Neovim und Lazygit. Welche davon sinnvoll sind, hängt davon ab, wie viel der eigenen Entwicklungsumgebung man in diesen Workflow integrieren möchte.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_20261001_181006-herdr-git-worktree-support.png&quot; alt=&quot;GIT Worktree Support in Herdr&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Agentische Nutzung&lt;/h2&gt;
&lt;p&gt;Herdr selbst ist über die Kommandozeile komplette automatisierbar. Da liegt es nahe, dass Agenten auch Herdr fernsteuern. Dazu beitet das Projekt direkt einen passenden Agent-Skill an.&lt;/p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;npx skills add herdrdev/herdr &lt;span class=&quot;hl-generic&quot;&gt;--skill&lt;/span&gt; herdr &lt;span class=&quot;hl-generic&quot;&gt;-g&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Der Skill enthält wichtige CLI Kommandos z.B. für das Window-Management. Dazu kommt noch, dass über das Tool auch über eine &lt;a href=&quot;https://herdr.dev/docs/socket-api/&quot;&gt;Socket-API&lt;/a&gt; steuerbar ist.&lt;/p&gt;
&lt;h2&gt;Remote-Zugriff und parallele Sessions&lt;/h2&gt;
&lt;p&gt;Für mich ist der SSH-Zugriff ein wichtiger Teil des Ganzen. Remote-Maschinen lassen sich in den Arbeitsablauf einbeziehen, sodass lokale Terminals, Serverzugriffe und Agent-Sessions gemeinsam im Blick bleiben.&lt;/p&gt;
&lt;p&gt;Das ist besonders hilfreich, wenn eine Aufgabe nicht nur aus lokalem Code besteht. Man kann etwa ein Projekt bearbeiten, auf einem entfernten System Befehle ausführen und gleichzeitig den Status einer Agent-Session beobachten. Die Oberfläche bündelt diese Kontexte, statt sie auf verschiedene Programme und Fenster zu verteilen.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Ich nutze herdr als Terminal-Multiplexer für gewöhnliche Shell-Arbeit, SSH-Zugriffe und Coding-Agenten. Besonders die persistenten Sessions und die Möglichkeit, mehrere Workspaces und Remote-Verbindungen zusammenzuführen, machen es für meinen Workflow interessant.&lt;/p&gt;
&lt;p&gt;Es gibt auch noch andere Tools wie &lt;a href=&quot;https://tuios.dev&quot;&gt;tuios&lt;/a&gt; die vielleicht flüssiger in der Darstellung sind oder besonders schickt aussehen. Ich persönlich fühle mich zur Zeit mit herdr sehr wohl und bin damit wesentlich produktiver.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">In rund zwei Stunden zum eigenen Uptime-Kuma-Widget für KDE Plasma</title>
        <link href="https://muench.dev/post/2026-10-in-rund-zwei-stunden-zum-eigenen-uptime-kuma-widget-fuer-kde-plasma"/>
        <id>https://muench.dev/post/2026-10-in-rund-zwei-stunden-zum-eigenen-uptime-kuma-widget-fuer-kde-plasma</id>
        <published>2026-10-02T08:00:00+00:00</published>
        <updated>2026-09-29T11:58:24+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Manchmal entstehen kleine Projekte nicht, weil man unbedingt etwas Neues&lt;br /&gt;
programmieren möchte, sondern weil einem im Alltag etwas fehlt. Genau so&lt;br /&gt;
war es bei meinem neuen KDE-Plasma-Widget für Uptime Kuma.&lt;/p&gt;
&lt;p&gt;Ich betreibe bereits seit einiger Zeit Uptime Kuma, um verschiedene&lt;br /&gt;
Server und Anwendungen zu überwachen. Wenn irgendwo etwas ausfällt,&lt;br /&gt;
bekomme ich eine entsprechende Benachrichtigung in Discord.&lt;/p&gt;
&lt;p&gt;Das funktioniert grundsätzlich gut. Allerdings kann eine&lt;br /&gt;
Discord-Nachricht auch einmal untergehen. Gerade wenn man nebenbei viele&lt;br /&gt;
andere Nachrichten bekommt, ist schnell eine Meldung übersehen.&lt;/p&gt;
&lt;p&gt;Da ich den größten Teil des Tages an meinem KDE-Desktop arbeite, kam mir&lt;br /&gt;
deshalb eine einfache Idee: &lt;strong&gt;Warum sehe ich den aktuellen Zustand&lt;br /&gt;
meiner Systeme nicht direkt auf meinem Desktop?&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Gibt es dafür nicht schon ein Widget?&lt;/h2&gt;
&lt;p&gt;Bevor ich selbst etwas baue, habe ich natürlich erst einmal gesucht.&lt;/p&gt;
&lt;p&gt;Meine Vorstellung war eigentlich ziemlich simpel: Ein Plasma-Widget&lt;br /&gt;
verbindet sich mit meiner bestehenden Uptime-Kuma-Instanz und zeigt mir&lt;br /&gt;
auf einen Blick, ob meine Server und Anwendungen erreichbar sind.&lt;/p&gt;
&lt;p&gt;Ich habe allerdings kein vorhandenes Widget gefunden, das meinen&lt;br /&gt;
Vorstellungen entsprach.&lt;/p&gt;
&lt;p&gt;Ganz unbekannt war mir die Entwicklung von Plasma-Widgets dabei nicht.&lt;br /&gt;
Vor vielen Jahren hatte ich bereits selbst ein KDE-Plasmoid geschrieben.&lt;br /&gt;
Damals natürlich noch ganz klassisch und ohne KI-Unterstützung.&lt;/p&gt;
&lt;p&gt;Das Wissen darüber war inzwischen allerdings ziemlich eingerostet.&lt;br /&gt;
Gleichzeitig machte genau das die Sache für mich interessant.&lt;/p&gt;
&lt;h2&gt;Ein guter Anlass, Antigravity CLI auszuprobieren&lt;/h2&gt;
&lt;p&gt;Ich wollte Antigravity CLI ohnehin einmal intensiver an einem echten&lt;br /&gt;
Projekt ausprobieren. Bis dahin hatte ich nur einen kleinen Teil meines&lt;br /&gt;
verfügbaren Token-Volumens verwendet.&lt;/p&gt;
&lt;p&gt;Also dachte ich mir: Warum nicht?&lt;/p&gt;
&lt;p&gt;Das Projekt hatte dafür eine angenehme Größe. Es war kein künstliches&lt;br /&gt;
„Hello World&amp;quot;, sondern etwas, das ich anschließend tatsächlich verwenden&lt;br /&gt;
wollte. Gleichzeitig war es überschaubar genug, um zu beobachten, wie&lt;br /&gt;
gut ein Coding Agent mit einem solchen Projekt zurechtkommt.&lt;/p&gt;
&lt;p&gt;Zusätzlich wollte ich ausprobieren, wie sich ein schnelles&lt;br /&gt;
&lt;strong&gt;Gemini-Flash-Modell&lt;/strong&gt; bei einer solchen agentischen Coding-Aufgabe&lt;br /&gt;
schlägt.&lt;/p&gt;
&lt;p&gt;Damit wurde aus dem kleinen Widget gleichzeitig ein Experiment:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie weit komme ich mit Antigravity CLI und einem schnellen&lt;br /&gt;
Flash-Modell bei einem echten KDE-Plasma-Projekt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime_kuma-widget_20260929_104145.png&quot; alt=&quot;Screenshot eines Terminalfensters, das eine Antigravity CLI-Version und Befehle zur Konfiguration eines Uptime Kuma Servers anzeigt. Die Anzeige enthält Bash-Befehle und Pfade zu verschiedenen Dateien im Zusammenhang mit Plasma und KDE.&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Von null zum ersten Widget&lt;/h2&gt;
&lt;p&gt;Ich habe bei null angefangen.&lt;/p&gt;
&lt;p&gt;Natürlich hatte ich durch mein altes Plasma-Widget eine ungefähre&lt;br /&gt;
Vorstellung davon, wie ein Plasmoid aufgebaut ist. Die konkrete&lt;br /&gt;
Umsetzung für ein aktuelles Plasma 6 hatte ich aber nicht mehr präsent.&lt;/p&gt;
&lt;p&gt;Das war für mich auch ein wichtiger Teil des Experiments. Ich wollte&lt;br /&gt;
nicht erst stundenlang Dokumentation lesen und mir den aktuellen&lt;br /&gt;
KDE-Stack wieder komplett erarbeiten. Stattdessen sollte Antigravity&lt;br /&gt;
einen großen Teil dieser Arbeit übernehmen.&lt;/p&gt;
&lt;p&gt;Relativ schnell entstand eine erste funktionierende Version.&lt;/p&gt;
&lt;p&gt;Von da an bestand die Arbeit vor allem aus Iterationen: Widget&lt;br /&gt;
ausprobieren, Problem entdecken oder eine neue Idee haben, Antigravity&lt;br /&gt;
beschreiben, was geändert werden soll, und anschließend das Ergebnis&lt;br /&gt;
erneut testen.&lt;/p&gt;
&lt;p&gt;Genau bei diesem Ablauf fand ich den Einsatz eines Coding Agents&lt;br /&gt;
besonders interessant.&lt;/p&gt;
&lt;h2&gt;Die Git-Historie zeigt die Geschwindigkeit ganz gut&lt;/h2&gt;
&lt;p&gt;Die gesamte Session habe ich nicht mit einer Stoppuhr gemessen. Wenn ich&lt;br /&gt;
sie rückblickend zusammenrechne, waren es ungefähr &lt;strong&gt;zwei Stunden&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Einen Teil davon kann man anhand der Git-Historie ziemlich gut&lt;br /&gt;
nachvollziehen.&lt;/p&gt;
&lt;p&gt;Der erste heute sichtbare Commit entstand um &lt;strong&gt;20:13 Uhr&lt;/strong&gt;. Zu diesem&lt;br /&gt;
Zeitpunkt war allerdings bereits einiges passiert und das Widget&lt;br /&gt;
grundsätzlich vorhanden. Ich hatte ungefähr eine Stunde vorher&lt;br /&gt;
angefangen.&lt;/p&gt;
&lt;p&gt;Danach ging es Schlag auf Schlag.&lt;/p&gt;
&lt;p&gt;Innerhalb von nur &lt;strong&gt;43 Minuten entstanden elf Commits&lt;/strong&gt;. Dabei ging es&lt;br /&gt;
längst nicht mehr nur darum, überhaupt Daten auf dem Desktop anzuzeigen.&lt;/p&gt;
&lt;p&gt;Unter anderem wurden Probleme mit der Plasma-6-Kompatibilität behoben,&lt;br /&gt;
Redirect-Handling und Gruppenfilterung verbessert, verschachtelte&lt;br /&gt;
Monitor-Gruppen berücksichtigt und verschiedene Darstellungsoptionen&lt;br /&gt;
ergänzt.&lt;/p&gt;
&lt;p&gt;Ein schönes Beispiel dafür ist der Header-only-Modus. Die Funktion wurde&lt;br /&gt;
ergänzt, ausprobiert und wenige Minuten später direkt noch einmal&lt;br /&gt;
korrigiert.&lt;/p&gt;
&lt;p&gt;Das beschreibt meinen tatsächlichen Workflow mit Antigravity ziemlich&lt;br /&gt;
gut:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Idee → umsetzen lassen → ausprobieren → Problem entdecken → Feedback&lt;br /&gt;
geben → korrigieren lassen → nächste Idee.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Nicht nur ein Proof of Concept&lt;/h2&gt;
&lt;p&gt;Was mich dabei selbst etwas überrascht hat: Nach diesen ungefähr zwei&lt;br /&gt;
Stunden hatte ich nicht einfach nur einen technischen Prototyp.&lt;/p&gt;
&lt;p&gt;Das Widget war bereits etwas, das ich tatsächlich auf meinem Desktop&lt;br /&gt;
einsetzen konnte.&lt;/p&gt;
&lt;p&gt;Es zeigt den Zustand der über Uptime Kuma überwachten Dienste,&lt;br /&gt;
Antwortzeiten und Uptime-Werte an. Die Monitore können nach Gruppen&lt;br /&gt;
dargestellt werden und über Heartbeat-Balken lässt sich auch der Verlauf&lt;br /&gt;
erkennen.&lt;/p&gt;
&lt;p&gt;Für unterschiedliche Einsatzorte gibt es verschiedene Darstellungen. Auf&lt;br /&gt;
dem Desktop kann ich beispielsweise eine ausführlichere Übersicht&lt;br /&gt;
verwenden, während sich das Widget im Plasma-Panel deutlich kompakter&lt;br /&gt;
darstellen lässt.&lt;/p&gt;
&lt;p&gt;Auch mehrere Widget-Instanzen mit unterschiedlichen Monitor-Gruppen sind&lt;br /&gt;
möglich.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime_kuma-widget_20260929_104549.png&quot; alt=&quot;Dashboard einer Monitoring-Anwendung zeigt den Status verschiedener Systeme. Alle Systeme sind funktionsfähig mit einer Übersicht über Latenzzeiten und Verfügbarkeiten.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime-kuma-widget_20260929_080817.png&quot; alt=&quot;Die Benutzeroberfläche eines Überwachungsdashboards zeigt den Status verschiedener Dienste und Anwendungen im Netzwerk an. Alle Systeme sind betriebsbereit, mit einer Liste von 61 überwachten Elementen, von denen 31 aktiv sind. Grünes Lichtsignalisiert, dass alles ordnungsgemäß funktioniert.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Man kann das Widget auch in eine Panel (Leiste) klein einfügen:&lt;br /&gt;
&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime-kuma-widget_20260929_082333.png&quot; alt=&quot;Ein grünes Symbol mit der Zahl 61/61 und dem Wort &amp;quot;Up&amp;quot; daneben. Es scheint den Status oder Fortschritt anzuzeigen.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dazu kamen im Laufe der Entwicklung noch Dinge, die ich am Anfang gar&lt;br /&gt;
nicht unbedingt auf meiner Liste hatte: Suche und Filterung,&lt;br /&gt;
unterschiedliche Anzeigevarianten, KDE-Benachrichtigungen bei Ausfällen&lt;br /&gt;
und Wiederherstellungen sowie verschiedene Möglichkeiten zur&lt;br /&gt;
Authentifizierung gegenüber Uptime Kuma.&lt;/p&gt;
&lt;p&gt;Aus einer relativ einfachen Idee wurde damit erstaunlich schnell ein&lt;br /&gt;
ziemlich vollständiges Plasma-Widget.&lt;/p&gt;
&lt;h2&gt;Der Coding Agent ersetzt nicht das Ausprobieren&lt;/h2&gt;
&lt;p&gt;Interessant fand ich dabei vor allem, wie sich meine eigene Arbeit&lt;br /&gt;
verändert hat.&lt;/p&gt;
&lt;p&gt;Ich musste nicht jede QML-Komponente und jede Plasma-6-API selbst&lt;br /&gt;
recherchieren und implementieren. Meine Aufgabe bestand viel stärker&lt;br /&gt;
darin, das Ergebnis zu beurteilen.&lt;/p&gt;
&lt;p&gt;Funktioniert das wirklich? Sieht das auf dem Desktop sinnvoll aus?&lt;br /&gt;
Welche Informationen fehlen? Was verhält sich anders als erwartet?&lt;br /&gt;
Welche Funktion möchte ich als Nächstes haben?&lt;/p&gt;
&lt;p&gt;Gerade bei einem visuellen Projekt kann der Agent diese Bewertung nicht&lt;br /&gt;
vollständig übernehmen.&lt;/p&gt;
&lt;p&gt;Ich musste das Widget immer wieder starten und tatsächlich benutzen.&lt;br /&gt;
Wenn etwas nicht funktionierte oder mir nicht gefiel, konnte ich&lt;br /&gt;
Antigravity aber ziemlich konkret beschreiben, was geändert werden&lt;br /&gt;
sollte.&lt;/p&gt;
&lt;p&gt;Dadurch entstand eine sehr schnelle Feedback-Schleife.&lt;/p&gt;
&lt;h2&gt;Zwei Stunden sind natürlich nicht die ganze Geschichte&lt;/h2&gt;
&lt;p&gt;„In zwei Stunden entwickelt&amp;quot; klingt schnell danach, als würde die KI die&lt;br /&gt;
komplette Arbeit erledigen und man selbst nur daneben sitzen.&lt;/p&gt;
&lt;p&gt;So würde ich es nicht beschreiben.&lt;/p&gt;
&lt;p&gt;Ich wusste, welches Problem ich lösen wollte. Ich konnte beurteilen, ob&lt;br /&gt;
die vorgeschlagene Lösung sinnvoll ist. Durch mein früheres&lt;br /&gt;
Plasma-Widget hatte ich zumindest ein grundsätzliches Verständnis davon,&lt;br /&gt;
was dort passiert. Und vor allem habe ich während der gesamten&lt;br /&gt;
Entwicklung entschieden, was als Nächstes passieren soll.&lt;/p&gt;
&lt;p&gt;Antigravity hat mir allerdings sehr viel Implementierungsarbeit und&lt;br /&gt;
Recherche abgenommen. Ich habe bewusst kein Agentic Engineering betrieben sondern nebenbein ein bisschen Vibe-Coding gemacht um zu sehen wie weit man auch ohne große Vorkentnisse kommen kann.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime-kuma-widget_20260929_103414.png&quot; alt=&quot;Ein Screenshot einer Terminal-Befehlszeile zeigt den Code für ein Uptime Kuma Widget, das für die Überwachung von Uptime Kuma-Servern und -Diensten erstellt wurde. Es enthält Funktionen wie Gesundheitsüberwachung, Statusbanner, Leistungsstatistiken und Benachrichtigungen.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime-kuma-widget_20260929_102728.png&quot; alt=&quot;Das Screenshot zeigt eine Software-Installationsoberfläche mit dem Titel &amp;quot;Uptime Kuma&amp;quot;. Es gibt eine Kurzbeschreibung, die besagt, dass es dazu dient, Server und Dienste zu überwachen. Eine Bewertung von 5/10 wird angezeigt.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;An der Konfiguration habe ich mit dem Agenten einiges iterativ optimieren lassen.&lt;br /&gt;
Das kann sich glaube ich auch sehen lassen:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-10/screenshot_uptime_kuma-widget_20260929_104732.png&quot; alt=&quot;Einstellungen für das Erscheinungsbild von Uptime Kuma mit Optionen zur Anpassung des Dashboards, einschließlich Gruppen und Anzeigearten.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Und genau dadurch konnte aus einer Idee, die ich ansonsten vielleicht&lt;br /&gt;
auf irgendeine TODO-Liste geschrieben hätte, innerhalb eines Abends ein&lt;br /&gt;
Werkzeug werden, das ich tatsächlich benutze.&lt;/p&gt;
&lt;h2&gt;Mein Fazit&lt;/h2&gt;
&lt;p&gt;Für mich war das Projekt ein ziemlich guter Test für agentisches Coding.&lt;/p&gt;
&lt;p&gt;Nicht weil das Ergebnis besonders riesig oder komplex wäre, sondern&lt;br /&gt;
gerade weil es ein &lt;strong&gt;echtes kleines Alltagsproblem&lt;/strong&gt; löst.&lt;/p&gt;
&lt;p&gt;Ich brauchte ein Uptime-Kuma-Widget für meinen KDE-Desktop. Ich fand&lt;br /&gt;
keines, das meinen Vorstellungen entsprach. Also habe ich Antigravity&lt;br /&gt;
CLI gestartet und ausprobiert, wie weit ich damit komme.&lt;/p&gt;
&lt;p&gt;Ungefähr zwei Stunden später hatte ich ein Widget auf meinem Desktop,&lt;br /&gt;
das meine Server und Anwendungen überwacht und mich sofort erkennen&lt;br /&gt;
lässt, wenn irgendwo etwas nicht stimmt.&lt;/p&gt;
&lt;p&gt;Dass dabei ein schnelles Gemini-Flash-Modell ausgereicht hat, um mich&lt;br /&gt;
durch QML, Plasma 6, Uptime Kuma und zahlreiche kleine Iterationen zu&lt;br /&gt;
begleiten, fand ich mindestens genauso interessant wie das eigentliche&lt;br /&gt;
Widget.&lt;/p&gt;
&lt;p&gt;Das Experiment hat für mich deshalb vor allem eines gezeigt: Coding&lt;br /&gt;
Agents machen eigene Ideen nicht automatisch gut. Aber sie können die&lt;br /&gt;
Strecke zwischen &lt;strong&gt;„Das wäre eigentlich praktisch&amp;quot;&lt;/strong&gt; und &lt;strong&gt;„Das läuft&lt;br /&gt;
jetzt auf meinem Rechner&amp;quot;&lt;/strong&gt; erstaunlich kurz machen.&lt;/p&gt;
&lt;p&gt;Den Quellcode des Widgets habe ich auf GitHub veröffentlicht.&lt;br /&gt;
&lt;a href=&quot;https://github.com/muench-dev/uptime-kuma-plasma-widget&quot;&gt;https://github.com/muench-dev/uptime-kuma-plasma-widget&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das Widget ist inzwischen auch direkt über den KDE-Store installierbar:&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">Home Assistant im Homelab: Bestehende Daten sichtbar machen und mit KI optimieren</title>
        <link href="https://muench.dev/post/2026-09-home-assistant-im-homelab-bestehende-daten-sichtbar-machen-und-mit-ki-optimieren"/>
        <id>https://muench.dev/post/2026-09-home-assistant-im-homelab-bestehende-daten-sichtbar-machen-und-mit-ki-optimieren</id>
        <published>2026-09-29T14:46:00+00:00</published>
        <updated>2026-09-28T17:55:38+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Ich wollte mehr aus meiner bestehenden Home-Assistant-Installation herausholen. Nicht, weil mir ein neues System gefehlt hätte, sondern weil ich gemerkt habe, dass etliche Informationen bereits im Haus erfasst werden. Sie waren nur nicht überall sinnvoll angeordnet oder auf einen Blick zu finden.&lt;/p&gt;
&lt;p&gt;Also habe ich meine Home-Assistant-Konfiguration mit Claude Code und OpenCode prüfen und überarbeiten lassen. In beiden Fällen kamen OpenAI-Modelle zum Einsatz. Das Ergebnis ist mehr als ein neues Dashboard: Es zeigt, wie sich vorhandene Infrastruktur besser nutzen lässt, wie Monitoring eine Grundlage für Automatisierungen schafft und wo Coding Agents bei der Pflege eines gewachsenen Systems helfen können.&lt;/p&gt;
&lt;h2&gt;Die vorhandenen Daten besser lesbar machen&lt;/h2&gt;
&lt;p&gt;Der größte Teil der Überarbeitung betraf die Home-Assistant-Ansicht „Übersicht“. Sieben weitere Ansichten habe ich nach einem gemeinsamen Muster neu aufgebaut. Statt unterschiedlich gewachsener Kachelsammlungen gibt es nun klar gegliederte Abschnitte mit Überschriften und Symbolen, einheitliche Kacheln und kompakte Verlaufsgrafiken.&lt;/p&gt;
&lt;p&gt;Welche Messwerte auftauchen, hängt vom jeweiligen Bereich ab. Dazu gehören unter anderem Temperatur, Luftfeuchtigkeit, Radon, elektrische Leistung und CO. Eine Kachel zeigt mir den aktuellen Zustand; ein kleiner Verlauf hilft dabei, ihn einzuordnen. Ist eine Temperatur ungewöhnlich, oder war sie schon den ganzen Tag so? Hat sich ein Messwert gerade verändert, oder ist der Verlauf stabil? Ein Graph beantwortet oft mehr als eine weitere Zahl.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_20260924_181143.png&quot; alt=&quot;Das optimierte Dashboard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Dabei ging es nicht darum, möglichst viele Daten gleichzeitig unterzubringen. Ein Dashboard soll die Fragen beantworten, die im Alltag tatsächlich auftauchen. Leere Abschnitte und doppelte Karten sind deshalb verschwunden. Verweise auf nicht mehr vorhandene Geräte und eine defekte Kamerakarte habe ich entfernt. Auch Beschriftungen und Tippfehler wurden bereinigt. Das klingt banal, macht eine Oberfläche aber leichter lesbar und verhindert, dass veraltete Einträge Vertrauen in die Anzeige kosten.&lt;/p&gt;
&lt;p&gt;Zusätzliche Funktionen ergänzen die vorhandenen Ansichten: eine Wettervorhersage, Musiksteuerung, Optionen und Kindersicherung für die Spülmaschine sowie die Akkustände der Rauch- und CO-Melder. Der Schalter für das Gast-WLAN liegt nun im Netzwerkbereich. Die automatische Abschaltung um 22 Uhr bleibt bestehen. Das ist ein kleines Beispiel dafür, dass nicht jede Verbesserung neue Sensoren benötigt. Manchmal reicht es, eine bestehende Funktion an den Ort zu verschieben, an dem man sie erwartet.&lt;/p&gt;
&lt;h2&gt;Warnungen, die nur bei Bedarf erscheinen&lt;/h2&gt;
&lt;p&gt;Eine häufige Schwäche von Smart-Home-Dashboards ist die Dauerpräsenz von Statusinformationen. Wenn jeder Zustand gleich prominent dargestellt wird, ist die wichtige Meldung nur eine Kachel unter vielen. Ich wollte deshalb Warnungen, die nur auftauchen, wenn es einen konkreten Grund dafür gibt.&lt;/p&gt;
&lt;p&gt;Die Ansichten machen unter anderem Rauch- und CO-Alarme, niedrige Batteriestände, Melder am Ende ihrer Lebensdauer oder außerhalb des Normalzustands sichtbar. Auch Schutzabschaltungen von Shelly-Steckdosen werden gemeldet, etwa bei Überhitzung, Überstrom, Überspannung oder Überlast. Für Salz- und Klarspülermangel sowie eine fertige Spülmaschine gibt es ebenfalls Hinweise. Ein Melder mit schwachem Funksignal bleibt so lange sichtbar, wie das Problem besteht. Bei Rauch- und CO-Alarm kann ich den Melder direkt im entsprechenden Abschnitt stummschalten.&lt;/p&gt;
&lt;p&gt;Bei den Steckdosen von Kühl- und Gefriergeräten war mir zusätzlich wichtig, dass eine Berührung der Kachel nicht versehentlich das Gerät ausschaltet. Das ist eine kleine Änderung an der Bedienung, aber eine wichtige Trennung zwischen Statusanzeige und Aktion: Nicht jede Information muss gleichzeitig ein Schalter sein.&lt;/p&gt;
&lt;p&gt;Diese Art von Dashboard ist für mich hilfreicher als eine möglichst vollständige Geräteliste. Ich sehe weiterhin relevante Zustände, aber die Oberfläche lenkt meine Aufmerksamkeit auf Abweichungen. Damit das klappt, müssen die zugrunde liegenden Entitäten natürlich gepflegt sein. Ein schöner Warnhinweis hilft nicht, wenn die Integration dahinter längst keine verlässlichen Daten mehr liefert.&lt;/p&gt;
&lt;h2&gt;Aus Messwerten werden Automatisierungen&lt;/h2&gt;
&lt;p&gt;Ein neues Dashboard zeigt jetzt außerdem die Nutzung mehrerer KI-Dienste: Kosten, Anfragen und Token-Zahlen für OpenAI, OpenRouter und Opper AI. Hinzu kommen eine Gesamtsumme und die Kosten des aktuellen Tages. Zum Zeitpunkt meiner Erfassung lag der Tageswert bei 1,16 US-Dollar.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_20260924_181124.png&quot; alt=&quot;Das AI Dashboard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Die Metriken sind nicht nur interessant, weil sie eine Rechnung erklären. Sie können auch eine konkrete Aktion auslösen. Ich habe eine Home-Assistant-Automation eingerichtet, die mich per Discord benachrichtigt, wenn die Tageskosten 10 US-Dollar überschreiten. Dafür gibt es die Discord-Integration und ein Skript zum Versenden der Meldung.&lt;/p&gt;
&lt;p&gt;An dieser Stelle braucht es keine generative KI, um zu entscheiden, ob die Kosten „hoch“ sind. Der Grenzwert ist eindeutig: Liegt der Tageswert darüber, wird eine Nachricht gesendet. Das macht die Regel leicht verständlich und vorhersehbar. Die KI war bei der Arbeit an der Konfiguration hilfreich; im laufenden Betrieb übernimmt eine normale Automation die Entscheidung.&lt;/p&gt;
&lt;p&gt;Für mich ist die Reihenfolge entscheidend: Erst müssen die Daten verfügbar sein, dann kann ich sie sinnvoll visualisieren. Wenn die Messwerte verlässlich sind, lassen sich darauf nachvollziehbare Regeln aufbauen. Ohne Metriken würde ich nur vermuten, ob ein Grenzwert erreicht wurde. Mit einer Automation muss ich auch nicht darauf hoffen, zufällig zur richtigen Zeit in die passende Ansicht zu schauen.&lt;/p&gt;
&lt;p&gt;Dass Home Assistant an meinen Discord-Server loggt, hilft außerdem dabei, Meldungen außerhalb des Dashboards mitzubekommen. Eine Benachrichtigung ist dabei kein Selbstzweck. Sie sollte klar sagen, was passiert ist und warum ich darauf achten sollte. Für den Anfang ist eine einzelne Schwellenwert-Warnung besser als eine Flut von Meldungen, die ich irgendwann ignoriere.&lt;/p&gt;
&lt;h2&gt;Coding Agents für die Arbeit, die sonst liegen bleibt&lt;/h2&gt;
&lt;p&gt;Claude Code und OpenCode haben mich bei der Prüfung und Überarbeitung der bestehenden Home-Assistant-Konfiguration unterstützt. Gerade bei einem länger genutzten System sammelt sich Arbeit an, die einzeln überschaubar wirkt: Ansichten vereinheitlichen, alte Geräteverweise finden, doppelte Karten entfernen, Beschriftungen korrigieren und Warnungen konsistent aufbauen. Zusammengenommen kosten diese Aufgaben Zeit, die im Alltag oft für andere Dinge draufgeht.&lt;/p&gt;
&lt;p&gt;Ein Coding Agent kann den Bestand analysieren, Zusammenhänge herausarbeiten und Änderungsvorschläge umsetzen. Das heißt nicht, dass jede vorgeschlagene Änderung automatisch richtig ist. Home Assistant hängt an echten Geräten und kann damit reale Auswirkungen haben. Ich behandle die Agenten deshalb als Werkzeuge für Analyse und Konfigurationsarbeit, nicht als autonome Hausverwaltung. Änderungen müssen nachvollziehbar bleiben und anschließend geprüft werden. Besonders bei Schaltern und Automationen sollte klar sein, welche Entität angesprochen wird und welche Folge eine Aktion hat.&lt;/p&gt;
&lt;p&gt;Der praktische Gewinn liegt für mich nicht darin, dass KI jede Entscheidung abnimmt. Sie senkt die Hürde, einen gewachsenen Bestand aufzuräumen. Aufgaben, die ich immer wieder verschoben habe, lassen sich gezielter angehen, wenn ein Agent beim Durchsuchen und Strukturieren hilft. Die Verantwortung für die Änderung und den Betrieb bleibt trotzdem bei mir.&lt;/p&gt;
&lt;h2&gt;Neue Informationen aus bestehenden Integrationen&lt;/h2&gt;
&lt;p&gt;Neben der Dashboard-Arbeit haben sich auch die verfügbaren Informationen einzelner Integrationen erweitert. Nach einem Update von Home Connect gibt es zusätzliche Hinweise zu Salzmangel, Klarspüler sowie Erinnerungen an Maschinenpflege und Filterreinigung. Für den Fernseher im Wohnzimmer ist ein separater Schalter für den Bildschirm hinzugekommen. Bei der Photovoltaik zeigt ein weiterer Sensor an, wie lange Erfassungsdaten fehlen.&lt;/p&gt;
&lt;p&gt;Das sind keine großen Plattformwechsel. Es sind Ergänzungen innerhalb der Infrastruktur, die bereits vorhanden ist. Wenn eine Integration einen hilfreichen Sensor neu bereitstellt, kann er in ein Dashboard aufgenommen oder als Auslöser einer Automation genutzt werden. Die Voraussetzung ist, dass ich die Information auch wahrnehme und ihren Zustand richtig verstehe.&lt;/p&gt;
&lt;h2&gt;Sichtbarkeit ist keine Fehlerbehebung&lt;/h2&gt;
&lt;p&gt;Die Überarbeitung hat nicht alle Probleme beseitigt. Bei der Türklingel liefert die Integration keine Kamera mehr. Ein Gerät war zeitweise nicht erreichbar; im Log standen dazu rund 530 Timeout-Meldungen. Außerdem gibt es einzelne nicht erreichbare Geräte und weiterhin einen Melder mit schwachem Funksignal.&lt;/p&gt;
&lt;p&gt;Das ist kein Widerspruch zum besseren Dashboard. Im Gegenteil: Eine gute Übersicht sollte nicht den Eindruck erwecken, alles sei in Ordnung, nur weil die Oberfläche sauber aussieht. Sie hilft dabei, Fehler und Ausfälle leichter zu erkennen. Die Ursache kann aber bei einer Integration, einem Gerät, der Netzwerkverbindung oder einer anderen Abhängigkeit liegen. Das muss getrennt untersucht werden.&lt;/p&gt;
&lt;p&gt;Diese Grenze ist auch für KI wichtig. Ein Agent kann Logs und Konfigurationen beim Eingrenzen eines Problems unterstützen. Er kann aber nicht allein aus einer schön formatierten Ansicht folgern, dass ein Gerät zuverlässig funktioniert. Wenn Daten ausbleiben, muss der Zustand als Problem sichtbar bleiben, statt stillschweigend als normal zu gelten.&lt;/p&gt;
&lt;h2&gt;Ein übertragbares Vorgehen fürs eigene Homelab&lt;/h2&gt;
&lt;p&gt;Vielleicht sind folgende Schritte auch für dein Homelab spannend:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Vorhandene Daten inventarisieren.&lt;/strong&gt; Welche Sensoren, Integrationen und Zustände gibt es bereits? Bevor ich neue Hardware anschaffe, lohnt sich ein Blick auf das, was schon erfasst wird.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nach Alltagstauglichkeit ordnen.&lt;/strong&gt; Eine gute Übersicht gruppiert Informationen nach ihrem Zweck und zeigt Entwicklungen, wenn ein Verlauf beim Einordnen hilft.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Warnungen an Bedingungen knüpfen.&lt;/strong&gt; Nur relevante Abweichungen sollten Aufmerksamkeit verlangen. Ständige Statusmeldungen stumpfen ab.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Erst messen, dann automatisieren.&lt;/strong&gt; Ein stabiler Sensorwert und eine klare Regel sind eine bessere Basis als eine komplizierte Automation auf unsicheren Daten.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;KI für Analyse und Routinearbeit einsetzen.&lt;/strong&gt; Coding Agents können beim Durchsuchen und Aufräumen helfen. Änderungen, besonders solche mit realen Auswirkungen, müssen überprüfbar bleiben.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fehler nicht verstecken.&lt;/strong&gt; Ein Dashboard darf Probleme nicht kaschieren. Veraltete Daten, nicht erreichbare Geräte und Integrationsfehler gehören ebenfalls in den Blick.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mein Home Assistant war schon vorher ein wichtiger Teil des Homelabs. Durch die Überarbeitung ist er für mich nützlicher geworden: Die Informationen, die bereits im System lagen, sind leichter auffindbar, ausgewählte Probleme fallen schneller auf, und aus einer neuen Kostenübersicht ist eine konkrete Discord-Warnung entstanden.&lt;/p&gt;
&lt;p&gt;Die KI hat mir geholfen, die Arbeit anzugehen, für die ich sonst wenig Zeit hatte. Die Automatisierungen bleiben bewusst nachvollziehbar, und Home Assistant führt die klar definierten Regeln aus. Das Zusammenspiel aus vorhandener Infrastruktur, sichtbaren Metriken und geprüfter KI-Unterstützung ist für mich der eigentliche Mehrwert.&lt;/p&gt;
&lt;p&gt;Welche Daten in eurem Homelab oder eurer bestehenden IT sind zwar schon vorhanden, aber noch nicht dort sichtbar, wo sie euch wirklich helfen würden?&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">LinkDing-Bookmarks automatisch taggen: Mein KI-Workflow mit n8n, Opper AI und kev</title>
        <link href="https://muench.dev/post/2026-09-linkding-bookmarks-automatisch-taggen-mein-ki-workflow-mit-n8n-und-opper-ai-und-kev"/>
        <id>https://muench.dev/post/2026-09-linkding-bookmarks-automatisch-taggen-mein-ki-workflow-mit-n8n-und-opper-ai-und-kev</id>
        <published>2026-09-25T08:00:00+00:00</published>
        <updated>2026-09-25T16:10:33+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Links speichere ich im Alltag schnell nebenbei. Sie später wiederzufinden, ist eine andere Sache. Eien gute Suche ist wichtig. Ich mag aber auch gerne Tags haben um auch Zusammenhänge und ähnliche Links schneller zu sehen. Für meine selbst gehostete Linkding-Instanz habe ich deshalb einen Workflow gebaut, der neue und bisher unverschlagwortete Bookmarks automatisch einordnet.&lt;/p&gt;
&lt;p&gt;Dabei kommen zwei Browser-Erweiterungen, die Linkding-REST-API, n8n und ein kleines Modell über Opper AI zusammen. Der entscheidende Teil ist nicht einfach „KI macht Tags“, sondern das Klassifikationssystem, nach dem die Tags vergeben werden.&lt;/p&gt;
&lt;h2&gt;Links im Browser sammeln und wiederfinden&lt;/h2&gt;
&lt;p&gt;Ich nutze zwei Erweiterungen, die unterschiedliche Aufgaben übernehmen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LinkDing Extension&lt;/strong&gt; (&lt;a href=&quot;https://chromewebstore.google.com/detail/linkding-extension/beakmhbijpdhipnjhnclmhgjlddhidpe&quot;&gt;Chrome Store&lt;/a&gt;) speichert einen Link in meiner Linkding-Instanz. Zusätzlich blendet die Erweiterung Linkding-Suchergebnisse im Hintergrund auf Suchseiten wie Google ein. Ich kann also beim Suchen sehen, ob ein Link bereits in meiner Sammlung liegt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_linkding_bookmark_extension_20260925_125930.png&quot; alt=&quot;Ein Screenshot eines Browsers, der ein Fenster zum Hinzufügen eines Lesezeichens zeigt. Oben links befindet sich ein Eingabefeld für die URL und verschiedene Optionen wie &amp;quot;Tags&amp;quot; und &amp;quot;Mark as unread&amp;quot;. Ein roter Pfeil weist auf ein Symbol im oberen Bereich des Fensters hin.&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LinkDing Bookmark Sync&lt;/strong&gt; (&lt;a href=&quot;https://chromewebstore.google.com/detail/linkding-bookmark-sync/ofcdpgnkoljnfilmnmkjfihmnhfjppdj&quot;&gt;Chrome Store&lt;/a&gt;) synchronisiert meine Tags als Ordner im Browser und ordnet die passenden Bookmarks darunter ein. So kann ich gespeicherte Links auch über die vertraute Ordnerstruktur wieder aufrufen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_linkding_tags_in_bookmarks_20260925_130109.png&quot; alt=&quot;Ein Screenshot einer Benutzeroberfläche zeigt eine geordnete Liste von Kategorien und Unterkategorien, darunter Themen wie Landwirtschaft, Klimawandel, Cybersicherheit und Kunst. Die Zahlen neben den Kategorien geben die Anzahl der entsprechenden Einträge an.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Linkding läuft bei mir selbst gehostet. Für die Anmeldung nutze ich SSO über Authentik. Die Sammlung bleibt damit unter meiner Kontrolle, ist für mich aber auch über die Weboberfläche durchsuchbar.&lt;/p&gt;
&lt;h2&gt;Der n8n-Workflow übernimmt ungetaggte Bookmarks&lt;/h2&gt;
&lt;p&gt;Der Automatisierungsteil läuft in n8n. Über die Linkding-REST-Schnittstelle lese ich die Bookmarks aus, die noch keinen Tag haben. Damit bearbeitet der Workflow nicht bei jedem Lauf die komplette Sammlung erneut, sondern konzentriert sich auf die offenen Einträge.&lt;/p&gt;
&lt;p&gt;Die Bookmark-Daten gebe ich an einen kleinen separaten n8n-Workflow weiter. Dessen Eingabeparameter heißt &lt;code&gt;body&lt;/code&gt; und ist schlicht ein String. So bleibt der Baustein unabhängig vom ursprünglichen Ablauf: Er bekommt die Informationen zu einem Bookmark, klassifiziert sie und ermittelt am Ende eine Tag-Liste.&lt;/p&gt;
&lt;p&gt;Für die Klassifikation verwende ich Opper AI als Model Router und das Modell &lt;a href=&quot;https://opper.ai/community/kev-4b#get-started&quot;&gt;&lt;strong&gt;kev 4b&lt;/strong&gt;&lt;/a&gt;. Der Baustein ruft die API zweimal auf. Die Einordnung läuft in zwei Stufen und basiert auf einem Klassifikationssystem, das ich gemeinsam mit Gemini ausgearbeitet habe. Es ist eher eine Art Weltbild als eine lose Sammlung einzelner Themenwörter: Die Tags sollen Links in eine Struktur einordnen, die zu meiner Art passt, Wissen und Interessen zu sortieren.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_ai_tagging_sub_workflow_20260925_125054.png&quot; alt=&quot;Ein Screenshot einer Benutzeroberfläche, die einen Workflow zeigt. Der Workflow umfasst Schritte wie das Vorbereiten von Fragen, das Klassifizieren von Kategorien und das Formatieren von Ergebnissen. In der rechten Spalte sind verschiedene Kategorien wie Technologie, Kunst, Wissenschaft und Sport aufgelistet.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ich beschreibe die beiden Schritte bewusst nicht als magische „KI versteht alles“-Funktion. Das Modell bekommt die Bookmark-Informationen und die Vorgaben des Klassifikationssystems; als Ergebnis liefert es die Tags, die ich für die Verschlagwortung nutze.&lt;/p&gt;
&lt;h2&gt;Warum ein kleines Modell hier ausreicht&lt;/h2&gt;
&lt;p&gt;Für diese Aufgabe brauche ich kein Modell, das lange argumentiert oder einen ausführlichen Text formuliert. Es soll einen Link anhand einer vorgegebenen Taxonomie schnell zuordnen. Das ist eine eng umrissene Klassifikationsaufgabe, bei der ein schnelles System-1-Modell für mich besser passt als ein großes Modell mit aufwendigem Reasoning.&lt;/p&gt;
&lt;p&gt;Auch die Kosten sprechen dafür. Bei dem Tarif, den ich für kev 4b nutze, werden &lt;strong&gt;0,04 US-Dollar pro einer Million Input-Tokens&lt;/strong&gt; berechnet; Output-Tokens kosten nichts. Da der Workflow zweimal auf die API zugreift, ist der Input natürlich der relevante Kostenfaktor. Für die Menge an Text, die bei einem Bookmark anfällt, bleibt das sehr günstig. Die konkrete Preisangabe bezieht sich auf meinen verwendeten Tarif und kann sich ändern.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_opper_ai_traces_kev_4b_system1_model_20260925_124934.png&quot; alt=&quot;Anzeige eines Programmier- oder Debugging-Tools mit Code- und Terminalausgaben. Im oberen Bereich sind Zeit- und Token-Informationen sichtbar. Der Hauptinhalt zeigt JSON-ähnliche Datenstrukturen.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In der Praxis ist die Verarbeitung außerdem schnell genug, dass automatisches Tagging nicht zu einem eigenen Arbeitsschritt wird. Ein Link landet in Linkding, der Workflow klassifiziert ihn im Hintergrund, und die Tags stehen anschließend für Suche und Sync zur Verfügung.&lt;/p&gt;
&lt;h2&gt;Auch der vorhandene Bestand bekommt neue Tags&lt;/h2&gt;
&lt;p&gt;Der Workflow war nicht nur für neue Bookmarks nützlich. Ich habe damit auch alle meine bisherigen Bookmarks einmal neu taggen lassen. Das war wichtig, weil eine gute Taxonomie erst dann ihren Wert zeigt, wenn nicht nur die Links von heute, sondern auch das über Jahre gewachsene Archiv darin auftaucht.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot_n8n_linkding_bookmark_tagging_20260925_125156.png&quot; alt=&quot;Ein Flussdiagramm zeigt verschiedene Schritte zur Datenverarbeitung, einschließlich Datensammlung, Klassifikation mit einem KI-Tool und Merging. Schritte sind grafisch verbunden und einige zeigen bestimmte Aktionen an.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Seitdem (ok seit gestern erst) ist die Verschlagwortung für mich deutlich schneller und konsistenter. Dadurch, dass ich einfach alle Tags neu habe vergeben lassen, sehe ich deutlich den Unterschied zu vorher. Ich muss nicht jedes Mal neu überlegen, welchen Tag ich für einen ähnlichen Link verwendet habe. Und weil die Tags anschließend auch als Browser-Ordner sichtbar sind, funktioniert dieselbe Ordnung in Linkding und im Browser.&lt;/p&gt;
&lt;h2&gt;Was ich dabei im Blick behalten muss&lt;/h2&gt;
&lt;p&gt;Automatisches Tagging macht die Klassifikation nicht automatisch richtig. Wenn sich die Taxonomie verändert oder ein Bookmark mehrdeutig ist, kann ein Tag fehlen oder unpassend sein. Das System steht und fällt deshalb mit einer verständlichen, gepflegten Tag-Struktur. Die zwei Klassifikationsschritte ersetzen diese Arbeit nicht, sie wenden die Struktur nur konsequenter an.&lt;/p&gt;
&lt;p&gt;Auch der Datenweg verdient Beachtung: Linkding ist selbst gehostet, aber die Bookmark-Informationen, die ich an den Klassifikationsbaustein übergebe, werden für die Modellverarbeitung an Opper AI weitergereicht. Self-Hosting allein bedeutet also nicht, dass jeder Verarbeitungsschritt lokal bleibt. Bei privaten oder vertraulichen Links muss ich berücksichtigen, welche Daten ich an den Router und das ausgewählte Modell sende.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Der Workflow ist für mich ein gutes Beispiel dafür, wo ein kleines Modell sinnvoller sein kann als ein möglichst großes: Die Aufgabe ist klar begrenzt, die Tag-Struktur ist von mir vorgegeben, und das Ergebnis soll schnell und günstig verfügbar sein.&lt;/p&gt;
&lt;p&gt;Mit Linkding als selbst gehostetem Archiv, den beiden Browser-Erweiterungen für Sammlung und Zugriff sowie n8n für die Automatisierung ist daraus ein Ablauf geworden, der neue und bestehende Bookmarks konsistenter sortiert. Der größte Aufwand lag nicht in den zwei API-Aufrufen, sondern darin, ein Klassifikationssystem zu entwickeln, das für meine Sammlung tatsächlich funktioniert.&lt;/p&gt;
&lt;p&gt;Ich nutze noch zum sammeln für Artikel oder für ein &amp;quot;Read it Later&amp;quot; das Tool Readeck. Das kommt (bewusst) ohne KI-Tagging daher. Auch dort habe ich die gleiche Tagging-Logik integriert. Das ist aber was für einen gesonderten Blog-Artikel.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">Mein Hermes-Agent kümmert sich um unseren Minecraft-Server</title>
        <link href="https://muench.dev/post/2026-09-orbitalstrike-auf-meinem-minecraft-server-plugin-und-update-hygiene"/>
        <id>https://muench.dev/post/2026-09-orbitalstrike-auf-meinem-minecraft-server-plugin-und-update-hygiene</id>
        <published>2026-09-24T15:00:00+00:00</published>
        <updated>2026-09-27T15:19:39+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Mein Sohn wollte, dass ich ein Minecraft-Plugin auf unserem Server installiere. Ich war gerade bei der Arbeit. Statt die Aufgabe auf später zu verschieben, habe ich sie an mein Hermes-Profil &amp;quot;Homelab&amp;quot; übergeben. Der Agent kennt den Server bereits aus seinem Inventar und verwaltet ihn für mich.&lt;/p&gt;
&lt;p&gt;Er hat die Installation übernommen und bei der Einrichtung ein Problem mit der Updatequelle entdeckt: Der Updater verwies auf ein anderes, ähnlich benanntes Projekt. Der Agent hat mich darauf hingewiesen und eine passende Korrektur vorgeschlagen. Wir haben die Änderung gemeinsam abgestimmt und umgesetzt. Auch die Einstellungen für einen sicheren Betrieb haben wir zusammen angepasst.&lt;/p&gt;
&lt;h2&gt;Vom Auftrag bis zur Prüfung&lt;/h2&gt;
&lt;p&gt;Der Agent hat nicht nur die Plugin-Datei installiert. Er hat den Serverzustand geprüft, das Problem mit der Updatequelle erkannt, eine Verbesserung vorgeschlagen und die abgestimmten Änderungen durchgeführt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-09/screenshot-hermes-minecraft-server-plugin-installation-2026-09-27_151709.png&quot; alt=&quot;Ein Textdokument beschreibt die Installation und Konfiguration des OrbitalStrike Cannon Plugins für Minecraft. Es enthält technische Details wie empfohlene Mindestanforderungen, Verifizierungshinweise und Risiken.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Anschließend hat er den Server geordnet neu gestartet und geprüft, ob das Plugin aktiv ist, der Server sauber hochkommt und der Updater die eingetragenen Plugins korrekt erkennt. Die Prüfungen waren erfolgreich.&lt;/p&gt;
&lt;h2&gt;Ein Agent mit Kontext über mein Homelab&lt;/h2&gt;
&lt;p&gt;Der Unterschied zu einer einmaligen Chat-Antwort: Mein Homelab-Profil kannte den Server bereits und hatte Zugriff auf die für die Verwaltung nötigen Informationen. Ich musste nicht erst erklären, welche Maschine gemeint ist oder die einzelnen Schritte selbst ausführen. Ich konnte den Auftrag übergeben und bekam auch eine Rückmeldung, als der Agent auf ein Problem stieß.&lt;/p&gt;
&lt;p&gt;Die technische Routinearbeit hat der Agent übernommen. Änderungen mit Auswirkungen auf den Server haben wir miteinander abgestimmt. Danach hat er das Ergebnis überprüft. Genau diese Kombination ist mir wichtig: Der Agent kann Aufgaben in einer bekannten Umgebung selbständig erledigen, weist auf Probleme hin und bezieht mich ein, wenn eine Entscheidung nötig ist.&lt;/p&gt;
&lt;p&gt;Für mich war das eine praktische Entlastung während der Arbeit. Mein Sohn bekam das gewünschte Plugin früher, und ich konnte weiterarbeiten.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">Hindsight: Ein Agent-Memory-System, das mich begeistert hat</title>
        <link href="https://muench.dev/post/2026-08-hindsight-ein-agent-memory-system-das-mich-begeistert-hat"/>
        <id>https://muench.dev/post/2026-08-hindsight-ein-agent-memory-system-das-mich-begeistert-hat</id>
        <published>2026-08-27T07:00:00+00:00</published>
        <updated>2026-08-28T17:11:20+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Jeder, der täglich mit Claude Code, Codex CLI oder opencode arbeitet, kennt das Problem: Der Agent ist am Ende jeder Session wieder bei null. Man erklärt zum gefühlt zehnten Mal den Tech-Stack, die Team-Konventionen, warum man Redis-Caching vor drei Monaten wieder verworfen hat. Notizen in System-Prompts oder CLAUDE.md-Dateien helfen, skalieren aber nicht – sie erfassen keine gewachsene, sich verändernde Wissensbasis, sondern nur einen statischen Snapshot.&lt;/p&gt;
&lt;p&gt;Ich bin seit ein paar Wochen mit &lt;strong&gt;Hindsight&lt;/strong&gt; unterwegs, einem Open-Source-Memory-System von Vectorize.io, und bin ziemlich angetan. Oder sagen wir es wie es ist. Ich bin seit langem mal wieder richtig begeistert von einer Software-Lösung gewesen.  Es macht genau das, was man sich unter &amp;quot;Agent-Gedächtnis&amp;quot; vorstellt, wenn man es nicht auf die naive Vektor-DB-Lösung reduziert. Es haben sich für mich gedanklich aber auch technisch neue Welten aufgetan.&lt;/p&gt;
&lt;h2&gt;Warum sollte man Hindsight nutzen?&lt;/h2&gt;
&lt;p&gt;Bevor ich in die technischen Details gehe, kurz die drei Gründe, die für mich den Ausschlag gegeben haben:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Erhöhte Kontextkontinuität&lt;/strong&gt;: Agenten behalten relevantes Vorwissen über Sessions hinweg und liefern dadurch konsistente, personalisierte Empfehlungen – statt bei jeder neuen Session wieder bei null anzufangen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bessere Genauigkeit bei komplexen Fragen&lt;/strong&gt;: Temporal- und Graph-Retrieval kombiniert mit automatischer Beobachtungs-Konsolidierung erhöhen die Trefferquote spürbar, gerade bei historischen oder indirekt verknüpften Fakten.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kontrollierte, erklärbare Erinnerungs-Logik&lt;/strong&gt;: Missionen und Direktiven schaffen Sicherheits- und Compliance-Guardrails, Evidenz-Tracking macht nachvollziehbar, worauf eine Antwort eigentlich basiert.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Was Hindsight ist – und was nicht&lt;/h2&gt;
&lt;p&gt;Der wichtigste Punkt zuerst: Hindsight ist keine reine Vektor-Datenbank mit hübscher API drumherum. Wer Rohdaten reinwirft und hofft, dass Cosine-Similarity am Ende die richtige Antwort liefert, wird von naiven RAG-Ansätzen regelmäßig enttäuscht. Sobald man ein paar hundert Memories über verschiedene Themen und Zeiträume hat, bricht das Prinzip &amp;quot;Embed alles, hol dir Top-K&amp;quot; oft zusammen.&lt;/p&gt;
&lt;p&gt;Hindsight geht einen anderen Weg. Im Hintergrund läuft &lt;strong&gt;PostgreSQL mit der pgvector-Extension&lt;/strong&gt; als Speicher, aber was aber genutzt wird, sind nicht die Rohdaten, sondern das Ergebnis eines Extraktionsprozesses: strukturierte Fakten, aufgelöste Entitäten (aus &amp;quot;Alice&amp;quot; und &amp;quot;meine Kollegin Alice&amp;quot; wird ein und dieselbe Entität), Zeitstempel für temporale Auswertungen und ein Wissensgraph, der die Beziehungen zwischen den Entitäten abbildet. Wer jetzt angst um seine Daten hat... ok, es sind auch die Dokumente in der Postgres Datenbank weiterhin gespeichert als &amp;quot;Document&amp;quot;. Aber die reinen Dokuemten sind eben in dem gesamten Prozess nicht das spannende sondern die aufbereiteten Daten.&lt;/p&gt;
&lt;p&gt;Angebunden wird das Ganze über &lt;strong&gt;MCP&lt;/strong&gt; – Claude Code, Codex, opencode, Cursor, VS Code, praktisch jeder MCP-fähige Client kann sich verbinden. Für die interne Verarbeitung (Fakten-Extraktion, Entity-Resolution, Reflect-Operationen) braucht Hindsight einen eigenen LLM-Provider – unabhängig vom Modell, das der eigentliche Agent nutzt. Das ist ein Detail, das mir gut gefällt: Man kann hier bewusst ein günstiges, schnelles Modell einsetzen, weil diese Verarbeitung im Hintergrund läuft und nicht die Qualität der eigentlichen Agent-Antworten beeinflusst. Ich habe für meine Tests das GPT-5.6 Luna Modell verwendet, weil es erstmal auf meine private Rechnung lief. Trotz des günstigen Modells habe ich aber richtig gute Ergebnisse bekommen. Man kann in Hindsight aber auch mehrere Modelle nutzen und falles feintunen. Ich habe ehrlicherweise bisher vielleicht 30-40% der Funktionen ausprobiert. Aber das macht nichts. Man bekommen einfach schnell Ergebnisse und kann mit den Daten arbeiten und auch selbst die Daten verbessern. Wie? Das kommt jetzt.&lt;/p&gt;
&lt;h2&gt;Die drei Kernoperationen&lt;/h2&gt;
&lt;p&gt;Hindsight bietet drei zentrale Operationen, die als MCP-Tools zur Verfügung stehen:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;retain&lt;/code&gt;&lt;/strong&gt; – Speichern. Man füttert Hindsight mit Text (eine einzelne Tatsache, eine ganze Konversation, ein Dokument), und im Hintergrund extrahiert ein LLM strukturierte Fakten, löst Entitäten auf, erzeugt Embeddings und indiziert alles für die spätere Suche. Wichtig: Man sollte &lt;strong&gt;nicht&lt;/strong&gt; vorab selbst zusammenfassen oder Fakten extrahieren – Hindsight braucht den vollen Kontext einer Konversation, sonst wird aus &amp;quot;ja, genau&amp;quot; oder &amp;quot;ich nehme Option 2&amp;quot; schlicht bedeutungsloser Text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;recall&lt;/code&gt;&lt;/strong&gt; – Suchen. Hier laufen vier Retrieval-Strategien parallel: semantische Suche, BM25-Keyword-Matching, Graph-Traversal über den Wissensgraphen und temporale Filterung. Die Ergebnisse werden anschließend per Cross-Encoder-Reranking sortiert. Das ist der eigentliche Clou gegenüber einer simplen Vektorsuche: Eine Frage wie &amp;quot;Was haben wir zum Caching entschieden?&amp;quot; findet die richtige Antwort auch dann, wenn die ursprüngliche Memory eine andere Terminologie verwendet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;reflect&lt;/code&gt;&lt;/strong&gt; – Synthetisieren. Reflect geht über reines Abrufen hinaus und lässt ein LLM über mehrere Memories hinweg Schlüsse ziehen – etwa auf die Frage &amp;quot;Welchen Tech-Stack würdest du mir basierend auf meinen bisherigen Entscheidungen empfehlen?&amp;quot;.&lt;/p&gt;
&lt;div class=&quot;mermaid-diagram not-prose&quot;&gt;&lt;pre class=&quot;mermaid&quot;&gt;flowchart LR    
    subgraph YourApp[&amp;quot;Your Application&amp;quot;]
        A[&amp;quot;AI Agent&amp;quot;]
    end

    subgraph Hindsight[&amp;quot;Hindsight&amp;quot;]
        API[&amp;quot;API Server&amp;quot;]

        subgraph MemoryBank[&amp;quot;Memory Bank&amp;quot;]
            direction TB
            MM[&amp;quot;Mental Models&amp;quot;]
            OBS[&amp;quot;Observations&amp;quot;]
            ME[&amp;quot;Memories &amp;amp; Entities&amp;quot;]
            CH[&amp;quot;Chunks&amp;quot;]
            DOC[&amp;quot;Documents&amp;quot;]

            MM --&amp;gt; OBS
            OBS --&amp;gt; ME
            ME --&amp;gt; CH
            CH --&amp;gt; DOC
        end
    end

    A --&amp;gt;|retain| API
    A --&amp;gt;|recall| API
    A --&amp;gt;|reflect| API

    API --&amp;gt; ME
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Extraktionsstrategien und Tagging&lt;/h2&gt;
&lt;p&gt;Ein Punkt, der in der Praxis unterschätzt wird: Nicht jede Datenquelle soll gleich verarbeitet werden. Hindsight bietet dafür benannte Retain-Strategien – etwa &lt;code&gt;verbatim&lt;/code&gt; für Inhalte, die wortwörtlich gespeichert werden sollen, oder &lt;code&gt;chunks&lt;/code&gt; für größere Dokumente, die in Abschnitte zerlegt werden. Diese Strategien lassen sich in der Bank-Konfiguration definieren und dann je nach Quelle gezielt beim &lt;code&gt;retain&lt;/code&gt;-Aufruf auswählen.&lt;/p&gt;
&lt;p&gt;Dazu kommt ein Tagging-System mit sogenannten Entity Labels: kontrollierte Vokabulare nach dem Schema &lt;code&gt;key:value&lt;/code&gt;, etwa &lt;code&gt;user:christian&lt;/code&gt; oder &lt;code&gt;topic:architektur&lt;/code&gt;, die beim Speichern automatisch extrahiert werden können. Für die reine inhaltliche Suche braucht man das oft gar nicht – Entitäten landen ohnehin im Wissensgraph und treiben die Graph-basierte Suche an. Für explizite Filterung auf entitätsähnliche Werte sind die Tags aber Gold wert, gerade wenn man mehrere Projekte oder Kunden in einer Bank sauber getrennt halten will.&lt;/p&gt;
&lt;h2&gt;Mental Models: lebende Dokumente&lt;/h2&gt;
&lt;p&gt;Was mich am meisten überzeugt hat, sind die &lt;strong&gt;Mental Models&lt;/strong&gt;. Man definiert eine Frage – zum Beispiel &amp;quot;Welche Architekturentscheidungen wurden für Projekt X getroffen?&amp;quot; – und Hindsight erzeugt daraus ein Dokument, das sich automatisch aktualisiert, sobald neue Memories dazukommen oder sich bestehende Dokumente ändern. Man muss also nicht bei jeder Anfrage ein volles &lt;code&gt;reflect&lt;/code&gt; über den kompletten Memory-Bestand laufen lassen, sondern bekommt eine Art vorberechnete, immer aktuelle Zusammenfassung.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/mental_models_20260828_162916.png&quot; alt=&quot;Metale Modelle&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Technisch läuft das asynchron über eine Queue: Die eigentliche LLM-gestützte Generierung passiert im Hintergrund, ein API-Aufruf liefert zunächst nur eine Operation-ID zurück, das fertige Ergebnis ist dann nach ein paar Sekunden abrufbar. Das ist konsequent zu Ende gedacht, hat aber auch eine Kehrseite, dazu gleich mehr.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/hindsight_queue_20260828_170103.png&quot; alt=&quot;Alles wird asynchron in einer Queue verarbeitet&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Skalieren ist auch kein Problem, denn es gibt im Konzept auch Worker-Instanzen die dann auch per Kubernetes skaliert werden können. Das ist alles möglich. In meinem Homelab Setup tut es auch ein einzelner Worker in einem fixen Docker-Container.&lt;/p&gt;
&lt;h2&gt;Visualisierung&lt;/h2&gt;
&lt;p&gt;Im Control Plane – dem Admin-UI von Hindsight – gibt es die sogenannte &lt;strong&gt;Constellation View&lt;/strong&gt;: eine interaktive, zoombare Graphdarstellung der Entity-Relationships mit Heat-Gradient-Einfärbung, auch im Dark Mode nutzbar. Für mich ist das mehr als nur ein nettes Feature – bei einem wachsenden Wissensgraphen hilft die visuelle Übersicht enorm dabei, ein Gefühl dafür zu bekommen, was die eigene Memory-Bank eigentlich &amp;quot;weiß&amp;quot; und wo die Extraktion vielleicht danebenliegt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/memory_view_world_facts_20260828_134418.png&quot; alt=&quot;Graph Darstellung&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Natürlich kann man auch filtern, zoomen und auf die einzelnen dahinterliegenden Dokumente schauen.&lt;/p&gt;
&lt;h2&gt;Features im Überblick&lt;/h2&gt;
&lt;p&gt;Ein paar Punkte aus der Gesamtliste, die im Artikel bisher noch nicht vorkamen, aber zum Verständnis dazugehören:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hierarchische Memory-Typen&lt;/strong&gt;: Neben Mental Models (kuratierte, selbst definierte Zusammenfassungen) gibt es Observations – automatisch aus Rohfakten konsolidierte, evidenzgestützte Glaubenssätze –, außerdem World Facts und Experience Facts. Diese Trennung sorgt dafür, dass reflect bei der Beantwortung einer Frage zuerst die Mental Models prüft, dann die Observations und erst zuletzt auf Rohfakten zurückgreift.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Strategie-Retrieval (TEMPR)&lt;/strong&gt;: Die vier parallelen Suchstrategien aus &lt;code&gt;recall&lt;/code&gt; – Semantic, Keyword/BM25, Graph, Temporal – laufen unter dem Namen TEMPR und werden per Reciprocal-Rank-Fusion zusammengeführt, bevor das Cross-Encoder-Reranking greift. Das macht den Abruf auch bei zeitlich oder graphbasiert verknüpften Fragen robust.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observation Consolidation&lt;/strong&gt;: Nach jedem &lt;code&gt;retain&lt;/code&gt;-Aufruf läuft im Hintergrund automatisch ein Konsolidierungsprozess, der neue Fakten gegen bestehende Observations abgleicht, dedupliziert und mit Evidenz-Verweisen versieht. Beobachtungen, die durch neuere, noch nicht konsolidierte Fakten überholt sein könnten, werden dabei als &amp;quot;stale&amp;quot; markiert und vor der Nutzung gegen die Rohfakten verifiziert.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Temporal Reasoning&lt;/strong&gt;: Abfragen wie &amp;quot;letzten Frühling&amp;quot; oder &amp;quot;im Juni&amp;quot; werden nicht nur semantisch, sondern explizit zeitbasiert aufgelöst – ein Bereich, in dem reine Vektorsuche typischerweise versagt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Missions- und Richtlinien-Konfiguration&lt;/strong&gt;: Auf Bank-Ebene lässt sich eine Mission definieren, die vorgibt, welches Wissen priorisiert werden soll, dazu unveränderliche Direktiven als Compliance-Guardrails und Disposition-Traits wie Skepsis, Literalität oder Empathie, die beeinflussen, wie &lt;code&gt;reflect&lt;/code&gt; Argumente gewichtet. Wichtig: Diese Einstellungen wirken nur auf &lt;code&gt;reflect&lt;/code&gt;, nicht auf &lt;code&gt;recall&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evidenz-gestützte Antworten&lt;/strong&gt;: Observations verweisen auf ihre Quell-Memories inklusive Zitat-Belegen und Proof-Counts – das macht die Herleitung einer Antwort nachvollziehbar, statt sie als Black Box hinzunehmen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clients &amp;amp; SDKs&lt;/strong&gt;: Offizielle SDKs für Python, TypeScript und Go, dazu CLI und HTTP-API – die Integration in bestehende Agent-Stacks jenseits von MCP ist damit unkompliziert.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployment-Optionen&lt;/strong&gt;: Neben dem lokalen Docker-Setup, wie ich es im Homelab nutze, gibt es Helm-Charts für Kubernetes, eine pip-Installation für den schnellen lokalen Test sowie einen Integrations-Hub für angebundene Datenquellen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Wie kommen Daten ins System?&lt;/h2&gt;
&lt;p&gt;Daten können auf verschiedenen Wegen in das Memory gelangen. Wird der MCP-Server genutzt kann einfach über das &lt;code&gt;retain&lt;/code&gt; Tool etwas gespeichert werden. Bei jedem erfassten Dokumente können Tags und eine eindeutige Document-ID definiert werden. Das definieren der Document-ID ist optional. Wird keine mitgesendet, erstellt das System eine UUID.&lt;br /&gt;
Wenn man Rohdaten z.B. Chatverläuft speicher will, dann reicht es die generierte UUID zu verwenden. Wenn es Daten wie z.B. der Inhalt hinter Webseite sind, dann kann die Document-ID auch eine URL sein. Wird mit der gleichen Document-ID ein neues Dokument gesendet, dann aktualisiert Hindsight auch den bestehenden Eintrag.&lt;br /&gt;
Zusätzlich lassen sich in Hindsight auch für verschiedene Quellen dann unterschiedliche strategien für das extrahieren der Daten definieren. Man kann dann auch Einfluss auf die RAG spezifischen Parameter wie die Chunk-Size nehmen.&lt;/p&gt;
&lt;p&gt;Da Hindsight durchgängig so konzipiert wurde, dass alles was die UI macht über eine REST-API kommuniziert, ist es auch ein einfaches die gleiche API für das importieren von Daten zu nutzen.&lt;br /&gt;
Beispielhaft habe ich mal ein n8n Community Plugin installiert, dass einfach die drei Grundopterationen in einem n8n Node abbildet.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/n8n_example_process_20260828_165134.png&quot; alt=&quot;n8n Beispiel Workflow mit Hindsight Community Node&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Mein Setup im Homelab&lt;/h2&gt;
&lt;p&gt;Ich habe mir das Ganze nicht in der Cloud, sondern in meinem Homelab aufgesetzt – zwei LXC-Container, einer für die API, einer für das Admin-UI beziehungsweise Control Plane. Die Datenbank musste ich nicht neu aufsetzen: Ich hatte bereits einen PostgreSQL-Server mit pgvector-Extension laufen und musste dort nur eine zusätzliche Datenbank anlegen. Das hat das Setup deutlich vereinfacht – wer schon eine Postgres-Instanz mit pgvector betreibt, ist hier in Minuten startklar, statt sich mit der eingebetteten PostgreSQL-Variante aus dem Docker-Quickstart herumzuschlagen.&lt;/p&gt;
&lt;p&gt;Als LLM-Provider für die interne Verarbeitung habe ich schnell OpenRouter angebunden und dort auf &lt;strong&gt;GPT-5.6 Luna&lt;/strong&gt; gesetzt – die günstige, latenzoptimierte Variante aus OpenAIs GPT-5.6-Serie, gedacht für genau solche hochfrequenten, aber nicht sonderlich anspruchsvollen Hintergrundaufgaben wie Fact-Extraction. Das Modell lässt sich aber problemlos austauschen: Hindsight unterstützt eine breite Auswahl an Providern, von OpenAI über Anthropic und Gemini bis zu lokalen Modellen über Ollama oder llama.cpp. Wer die interne Verarbeitung lieber komplett offline und ohne externe API-Calls fahren will, kann das inzwischen ebenfalls tun.&lt;/p&gt;
&lt;h2&gt;Integration in andere Systeme&lt;/h2&gt;
&lt;p&gt;Über MCP lässt sich Hindsight praktisch überall andocken, wo ein Client den Standard spricht – Claude Code, Codex CLI, opencode und weitere Coding-Agents sind direkt unterstützt, teils sogar mit automatischer Ingestion ohne zusätzlichen Setup-Schritt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/claude_code_hindsight_mcp_tool_20260828_163755.png&quot; alt=&quot;Claude Code MCP Tool&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Der MCP Server ist direkt in Hindsight enthalten und kann für jede Memory-Bank einzeln eingestellt werden. Man kann auch die MCP-Tools beschränken.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-08/mcp_tool_restriction_20260828_163932.png&quot; alt=&quot;MCP Tool Einstellungen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ich habe bei mir nichts beschränkt da ich sowieso noch einen zwischengeschalteten LiteLLM-Gateway habe.&lt;/p&gt;
&lt;h2&gt;Use Cases&lt;/h2&gt;
&lt;p&gt;Der naheliegendste Use Case für mich persönlich ist gar nicht primär technisch: Ich möchte Daten rund um den Fußballverein &lt;strong&gt;Wormatia Worms&lt;/strong&gt; aufbereiten, um die Mitarbeiter in der Geschäftsstelle zu entlasten. Statt jede Anfrage manuell zu beantworten, könnte ein Agent auf einer Hindsight-Bank mit historischen Informationen, Vereinsregeln und wiederkehrenden Fragen aufsetzen und so einen echten Teil der Kommunikationslast abnehmen.&lt;/p&gt;
&lt;p&gt;Daneben baue ich gerade eine zweite, eigene Bank auf: Dort arbeite ich die Vereinschronik, Saisonergebnisse und Spieler-Steckbriefe ein. Das Interessante hier ist nicht der reine Abruf einzelner Fakten, sondern dass das System selbstständig statistische Besonderheiten und Zusammenhänge über die eingespielten Daten hinweg entdecken soll – etwa, dass eine bestimmte Saison auffällig viele Unentschieden hatte oder ein Spieler in mehreren Spielzeiten überdurchschnittlich oft getroffen hat. Genau dafür ist &lt;code&gt;reflect&lt;/code&gt; gedacht: nicht nur Fakten abrufen, sondern über den gesamten Datenbestand hinweg Schlüsse ziehen. Besonders spannend wird das für den Archivar des Vereins, der Fragen stellen möchte wie &amp;quot;Wann war die längste Siegesserie?&amp;quot; – Fragen, die kein einzelner Datensatz beantwortet, sondern die erst aus der Zusammenschau vieler Saisonergebnisse entstehen.&lt;/p&gt;
&lt;p&gt;Im technischen Projektumfeld sehe ich mindestens zwei weitere sinnvolle Einsatzszenarien:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Architektur- und Richtlinien-Gedächtnis&lt;/strong&gt;: Ein Agent, der Softwarearchitektur-Entscheidungen, Coding-Guidelines und Projektkonventionen im Blick behält und Entwicklern direkt im Coding-Tool als Frage-Antwort-Instanz zur Verfügung steht – ohne dass diese erst in einem Wiki suchen müssen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vollständigkeitsprüfung bei Anforderungen&lt;/strong&gt;: In Projekten, in denen Anforderungen laufend erfasst werden, kann ein Agent mit Zugriff auf die gesammelten Memories prüfen, ob alle notwendigen Dokumente und Informationen vorliegen, und gezielt auf Lücken hinweisen. Gerade in Business-Kontexten mit vielen Stakeholdern ist das ein Szenario, das echten Mehrwert liefert.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Beurteilung&lt;/h2&gt;
&lt;p&gt;Was gut funktioniert: Der Einstieg ist erfreulich niedrigschwellig, insbesondere wenn – wie in meinem Fall – schon eine Postgres/pgvector-Instanz vorhanden ist. MCP als Anbindungsstandard bedeutet, dass man nicht für jeden Client eine eigene Integration bauen muss. Die Kombination aus Multi-Strategy-Retrieval und Reranking liefert in der Praxis spürbar bessere Trefferqualität als eine simple Vektorsuche, gerade bei größeren, thematisch gestreuten Memory-Beständen.&lt;/p&gt;
&lt;p&gt;Gibt es bei dem Ansatz auch Dinge die mich stören? Nicht wirklch, aber man sollte sich bewusst sein, dass mit der steigenden Anzahl an Informationen und mit jedem Mental Model auch der Aufwand steigt alles aktuell zu halten. Es können schon einige Token-Kosten entstehen.&lt;br /&gt;
Jede &lt;code&gt;retain&lt;/code&gt;-Operation bedeutet zusätzliche LLM-Calls für die interne Verarbeitung, das summiert sich bei hohem Volumen. Und der Reifegrad des Ökosystems ist noch nicht in Stein gemeißelt. Integrationen können sich relativ kurzfristig ändern.&lt;/p&gt;
&lt;p&gt;Hier kommt es einfach darauf an ob man den Context/Memory auch als Wert für sich entdeckt hat.&lt;/p&gt;
&lt;h2&gt;Business-Ausblick&lt;/h2&gt;
&lt;p&gt;Für ein Projekt-Umfeld wie ich es bei valantic kenne sehe ich den größten Hebel darin, dass Agenten über Sessions hinweg Projektkontext, Kundenpräferenzen und getroffene Architekturentscheidungen behalten.  Das bedeutet, dass weniger Zeit für wiederholte Kontext-Vermittlung, mehr Zeit für die eigentliche Wertschöpfung vorhanden ist. Das ist ein handfester Produktivitätsgewinn, gerade in längeren Projekten mit wechselnden Ansprechpartnern.&lt;/p&gt;
&lt;p&gt;Gleichzeitig darf man die Governance-Frage nicht ausblenden: Wo landen die extrahierten Fakten, wer hat Zugriff auf die Memory-Bank, wie sauber lässt sich zwischen Kunden oder Projekten trennen? Self-Hosting via Docker beziehungsweise, wie in meinem Fall, im eigenen Homelab per LXC-Container ist hier eine valide Antwort – man behält die volle Kontrolle über die Daten, statt sie einem Cloud-Anbieter anzuvertrauen.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Hindsight ist das erste Agent-Memory-System, das mich wirklich direkt begeistert hat, weil es Memory nicht auf &amp;quot;Text in eine Vektor-DB werfen&amp;quot; reduziert, sondern strukturierte Fakten, Entitäten, Zeitbezug und einen Wissensgraphen kombiniert. Das Setup im eigenen Homelab war dank vorhandener Postgres/pgvector-Infrastruktur überraschend unkompliziert, und die Kombination aus MCP-Standard und flexibler LLM-Provider-Wahl macht das System für sehr unterschiedliche Einsatzszenarien interessant – vom Vereinsalltag bei Wormatia Worms bis zum Architektur-Gedächtnis in technischen Projekten. Ich werde das in den kommenden Wochen weiter ausbauen und berichte, sobald sich daraus konkrete Workflows ergeben haben.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">mage-remote-run mit JSON Body Support und anderen neuen Features</title>
        <link href="https://muench.dev/post/2026-06-mage-remote-run-mit-json-body-support-in-virtual-commands"/>
        <id>https://muench.dev/post/2026-06-mage-remote-run-mit-json-body-support-in-virtual-commands</id>
        <published>2026-06-25T07:00:00+00:00</published>
        <updated>2026-06-25T20:28:48+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Zwei Releases an einem Tag - das passiert, wenn Features bereit sind. Am 17. Juni 2026 haben ich v1.9.0 und v1.10.0 von &lt;a href=&quot;https://github.com/muench-dev/mage-remote-run&quot;&gt;mage-remote-run&lt;/a&gt; veröffentlicht. Das Highlight in v1.9: Virtual Commands unterstützen jetzt JSON Request Bodies — POST- und PUT-Requests gegen die Magento REST API sind damit ohne eigenen JavaScript-Code möglich. v1.10 bringt eine sauberere Plugin-Infrastruktur: Inkompatible Plugins werden jetzt beim Laden erkannt und mit klarer Fehlermeldung abgewiesen.&lt;/p&gt;
&lt;h2&gt;v1.9.0: Virtual Commands mit JSON Body, Choices und interaktiven Prompts&lt;/h2&gt;
&lt;p&gt;Virtual Commands sind seit v1.4 ein zentrales Erweiterungs-Feature: REST-Requests per Konfiguration definieren, ohne JavaScript schreiben zu müssen. Bisher waren sie auf GET-Requests beschränkt. Das ist jetzt Geschichte.&lt;/p&gt;
&lt;h3&gt;JSON Body Templates&lt;/h3&gt;
&lt;p&gt;Mit &lt;code&gt;body&lt;/code&gt; in der Command-Definition lassen sich POST- und PUT-Requests direkt aus der Konfiguration absetzen. Der Body ist ein JSON-Template. Optionen werden als Platzhalter eingebettet und zur Laufzeit ersetzt.&lt;/p&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;notranslate&quot;&gt;&lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;customer update-email&amp;quot;&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;method&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;PUT&amp;quot;&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;endpoint&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;/V1/customers/:id&amp;quot;&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;Update customer email address&amp;quot;&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;body&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;customer&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;:id&amp;quot;&lt;/span&gt;,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;email&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;:email&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;options&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;id&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;string&amp;quot;&lt;/span&gt;,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;required&amp;quot;&lt;/span&gt;: true,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;Customer ID&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;,
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;email&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;string&amp;quot;&lt;/span&gt;,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;required&amp;quot;&lt;/span&gt;: true,
      &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;New email address&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;mage-remote-run customer update-email &lt;span class=&quot;hl-generic&quot;&gt;--id&lt;/span&gt; &lt;span class=&quot;hl-number&quot;&gt;42&lt;/span&gt; &lt;span class=&quot;hl-generic&quot;&gt;--email&lt;/span&gt; new@example.com
&lt;/pre&gt;
&lt;p&gt;Damit öffnet sich die gesamte Magento REST API für Virtual Commands und eben nicht nur lesende Operationen, sondern auch schreibende Workflows, ohne eigenen Plugin-Code.&lt;/p&gt;
&lt;p&gt;Die vollständige Dokumentation dazu findet ihr unter: &lt;a href=&quot;https://mage-remote-run.muench.dev/extensibility/virtual-commands&quot;&gt;mage-remote-run.muench.dev/extensibility/virtual-commands&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Choices für Options-Definitionen&lt;/h3&gt;
&lt;p&gt;Optionen können jetzt vordefinierte Auswahlwerte bekommen. Das macht Commands benutzerfreundlicher und verhindert ungültige Eingaben:&lt;/p&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;notranslate&quot;&gt;&lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;options&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;status&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;string&amp;quot;&lt;/span&gt;,
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;required&amp;quot;&lt;/span&gt;: true,
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;Order status&amp;quot;&lt;/span&gt;,
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;choices&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;hl-value&quot;&gt;&amp;quot;pending&amp;quot;&lt;/span&gt;, &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;processing&amp;quot;&lt;/span&gt;, &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;complete&amp;quot;&lt;/span&gt;, &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;canceled&amp;quot;&lt;/span&gt;&lt;span class=&quot;hl-property&quot;&gt;]&lt;/span&gt;
  &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Im interaktiven Modus erscheinen die &lt;code&gt;choices&lt;/code&gt; als Auswahlmenü. Per CLI werden ungültige Werte direkt zurückgewiesen.&lt;/p&gt;
&lt;h3&gt;Interaktive Prompts für fehlende Pflichtoptionen&lt;/h3&gt;
&lt;p&gt;Virtual Commands fragen fehlende Required Options jetzt interaktiv ab anstatt mit einer Fehlermeldung abzubrechen. Das Verhalten hängt vom Kontext ab: Im Terminal erscheint ein Prompt, in CI/CD-Pipelines wird der Fehler wie bisher ausgegeben. Soweit möglich werden Variablen die bereits von CI/CD Systemen wie Gitlab-CI oder Github Actions standardmäßig definiert wurden (wie &lt;code&gt;CI=1&lt;/code&gt;), automatisch erkannt, sodass der interaktive Modus nicht die Pipeline blockieren kann.&lt;/p&gt;
&lt;p&gt;Für Pipelines lässt sich der interaktive Modus aber auch explizit deaktivieren:&lt;/p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;NON_INTERACTIVE=&lt;span class=&quot;hl-number&quot;&gt;1&lt;/span&gt; mage-remote-run my-command
&lt;span class=&quot;hl-comment&quot;&gt;# alternativ:&lt;/span&gt;
NONINTERACTIVE=&lt;span class=&quot;hl-number&quot;&gt;1&lt;/span&gt; mage-remote-run my-command
&lt;/pre&gt;
&lt;p&gt;Beide Environment-Variablen werden als Alias akzeptiert an das Homebrew-Konvention-Feeling für Shell-Scripting.&lt;/p&gt;
&lt;h3&gt;Weitere Änderungen in v1.9&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;: Config-I/O läuft jetzt vollständig asynchron (&lt;code&gt;fs.promises&lt;/code&gt; statt synchronem &lt;code&gt;fs&lt;/code&gt;) — spürbar bei häufigen Profil-Wechseln&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;: &lt;code&gt;findRegisteredPluginIndex&lt;/code&gt; nutzt &lt;code&gt;Promise.all&lt;/code&gt; für parallele Prüfungen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fix&lt;/strong&gt;: Verschluckte Fehler in Catch-Blöcken wurden repariert — Fehler sind jetzt sichtbar statt still ignoriert&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refactoring&lt;/strong&gt;: Duplicated Filter-Matching-Logik wurde in &lt;code&gt;parseFilterOption&lt;/code&gt; extrahiert&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deps&lt;/strong&gt;: axios, zod, inquirer und @modelcontextprotocol/sdk auf aktuelle Versionen gehoben&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;v1.10.0: Plugin-Kompatibilitätsprüfung über peerDependencies&lt;/h2&gt;
&lt;p&gt;Plugins deklarieren seit v1.6 eine &lt;code&gt;peerDependency&lt;/code&gt; auf &lt;code&gt;mage-remote-run&lt;/code&gt;. Ab v1.10 wird diese beim Laden tatsächlich ausgewertet.&lt;/p&gt;
&lt;p&gt;Wenn ein Plugin eine Version von &lt;code&gt;mage-remote-run&lt;/code&gt; voraussetzt, die nicht mit der installierten übereinstimmt, bricht das Laden mit einer klaren Fehlermeldung ab — statt mit unerklärlichem Laufzeitverhalten.&lt;/p&gt;
&lt;p&gt;Das ist das übliche Prinzip: explizit schlechter als stumm falsch. Wer Plugins entwickelt oder nutzt, deklariert die &lt;code&gt;peerDependency&lt;/code&gt; in der &lt;code&gt;package.json&lt;/code&gt; des Plugins:&lt;/p&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;notranslate&quot;&gt;&lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;name&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;my-mage-remote-run-plugin&amp;quot;&lt;/span&gt;,
  &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;peerDependencies&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-property&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;hl-keyword&quot;&gt;&amp;quot;mage-remote-run&amp;quot;&lt;/span&gt;: &lt;span class=&quot;hl-value&quot;&gt;&amp;quot;&amp;gt;=1.10.0&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;hl-property&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Die Prüfung läuft beim Plugin-Laden — noch bevor Commands registriert werden. Inkompatible Plugins werden übersprungen und der Fehler protokolliert.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Update&lt;/h2&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;npm update &lt;span class=&quot;hl-generic&quot;&gt;-g&lt;/span&gt; mage-remote-run
&lt;/pre&gt;
&lt;p&gt;Oder direkt auf die aktuelle Version:&lt;/p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;notranslate&quot;&gt;npm install &lt;span class=&quot;hl-generic&quot;&gt;-g&lt;/span&gt; mage-remote-run@latest
&lt;/pre&gt;
&lt;p&gt;Feedback und Bugreports wie immer via &lt;a href=&quot;https://github.com/muench-dev/mage-remote-run/issues&quot;&gt;GitHub Issues&lt;/a&gt;. Wer Virtual Commands produktiv einsetzt oder Plugins entwickelt... ich freue mich über Erfahrungsberichte.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">valantic wird Anthropic Partner – und ich war dabei</title>
        <link href="https://muench.dev/post/2026-06-valantic-wird-anthropic-partner-und-ich-war-dabei"/>
        <id>https://muench.dev/post/2026-06-valantic-wird-anthropic-partner-und-ich-war-dabei</id>
        <published>2026-06-18T08:46:00+00:00</published>
        <updated>2026-06-18T10:56:47+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;valantic ist offiziell &lt;a href=&quot;https://www.valantic.com/de/blog/valantic-tritt-claude-partner-network-von-anthropic-bei/&quot;&gt;&lt;strong&gt;Select Partner im Claude Partner Network (Services Track)&lt;/strong&gt;&lt;/a&gt; von Anthropic geworden - eines der ersten Consulting- und Solutions-Unternehmen in Europa überhaupt. Ich durfte an diesem Prozess inhaltlich mitwirken und war selbst Teil der Schulung, die dazu notwendig war.&lt;/p&gt;
&lt;h2&gt;Was diese Partnerschaft bedeutet&lt;/h2&gt;
&lt;p&gt;Eine Partnerschaft mit Anthropic ist kein reines Marketing-Abkommen. Um Select Partner zu werden, muss man nachweisen, dass man die Materie wirklich versteht: Claude, das Anthropic-Ökosystem, die Architektur hinter Agenten-Systemen. Und man muss in der Lage sein, dieses Wissen weiterzugeben – intern an Kolleginnen und Kollegen, aber auch in Kundenprojekten und Schulungen.&lt;/p&gt;
&lt;p&gt;Der Gedanke dahinter ist nachvollziehbar: Anthropic will sicherstellen, dass Implementierungspartner nicht nur Lizenzen verkaufen, sondern echten Mehrwert liefern. Das setzt voraus, dass die Leute, die Kunden beraten, wissen, wovon sie reden.&lt;/p&gt;
&lt;h2&gt;London: Schulung zum Trainer&lt;/h2&gt;
&lt;p&gt;Ein Teil dieses Nachweises war eine Schulung in London, die ich zusammen mit meinem Kollegen Alexander Weinfurter besuchen durfte. Das Ziel war klar: Wir sollten das Wissen erwerben, um andere zu schulen – sowohl intern bei valantic als auch für Kunden.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-06/anthropic-partner-bootcamp-london-collage.png&quot; alt=&quot;Zwei Personen lächeln in die Kamera, während sie in einem Raum sitzen. Im Hintergrund sind ein Mann und ein Tisch mit Getränken zu sehen. Neben ihnen steht ein Schild mit der Aufschrift &amp;quot;Welcome to Partner Basecamp&amp;quot; und Informationen zu einem Programm. In der unteren Ecke sieht man die Themse und das London Eye im Hintergrund.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Inhaltlich war es ein intensives Format. Wir haben uns tief mit der &lt;strong&gt;Evaluierung von Prompt-Ergebnissen&lt;/strong&gt; beschäftigt – ein Thema, das in der Praxis oft unterschätzt wird. Es reicht nicht, einen Prompt zu bauen, der auf den ersten Blick funktioniert. Man muss strukturiert messen können, ob ein Modell konsistent, korrekt und für den jeweiligen Use Case geeignet antwortet. Dafür gibt es Methoden und Frameworks, die wir in London durchgearbeitet haben.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-06/anthtropic-exercices-terminal-2026-06-18-um-10.05.36.png&quot; alt=&quot;Verzeichnisbaum mit Unterordnern für ein Projekt. Enthält Ordner für 'day1' und 'day2' mit verschiedenen Übungen, sowie eine README.md-Datei. Die Benutzerberechtigungen und Änderungsdaten sind angezeigt.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ein weiterer Schwerpunkt war das &lt;strong&gt;Erstellen und Deployment von Agenten in der Cloud&lt;/strong&gt;. Es ging darum wie man KI-Agenten produktionsreif aufsetzt, welche Infrastruktur dahintersteckt und wo die typischen Fallstricke liegen. Das ist genau der Bereich, der in vielen Projekten über Erfolg oder Misserfolg entscheidet: nicht das Modell selbst, sondern wie es eingebettet und verwendet wird.&lt;/p&gt;
&lt;p&gt;Wir haben außerdem verschiedene Anthropic-Modelle verglichen und ein Gefühl dafür bekommen, wann welches Modell für welchen Einsatzzweck sinnvoll ist.&lt;/p&gt;
&lt;p&gt;Was mich persönlich am meisten gefreut hat: der direkte Austausch mit Anthropic-Mitarbeitern und KI-Architekten und meinem valantic Kollegen. Alexander war zum Beispiel viel besser in der Optimierung der Prompts. So lernt man gegenseitig. Man bekommt in solchen Formaten einen anderen Einblick als durch Dokumentation und Blog-Posts. Fragen, die man im Alltag nicht einfach stellen kann, lassen sich dort direkt klären.&lt;/p&gt;
&lt;h2&gt;Was das für Kunden bedeutet&lt;/h2&gt;
&lt;p&gt;Wenn ich mir die valantic-Seite zur &lt;a href=&quot;https://www.valantic.com/de/ki/claude-implementierung/&quot;&gt;Claude Implementierung&lt;/a&gt; anschaue, sehe ich genau das abgebildet, was wir in London erarbeitet haben. Der Ansatz ist nicht &amp;quot;KI einschalten und fertig&amp;quot;, sondern ein strukturierter Prozess: von der ersten Sondierung über einen Pilot mit messbarem Business Case bis zum unternehmensweiten Rollout.&lt;/p&gt;
&lt;p&gt;Besonders wichtig finde ich den Aspekt, den valantic explizit benennt: Viele Unternehmen scheitern beim Sprung von einzelnen Tests zur produktiven Nutzung. Nicht weil das Modell schlecht ist, sondern weil Strategie, Governance und Integration fehlen. Das deckt sich mit dem, was ich in Projekten erlebe. Die Technologie ist selten das Problem.&lt;/p&gt;
&lt;p&gt;Als konkreten Einstieg bietet valantic &lt;strong&gt;Claude Code Workshops&lt;/strong&gt; für Entwicklungsteams an – ein direkter, praxisnaher Weg in Anthropics agentische Coding-Fähigkeiten. Für Entwickler, die verstehen wollen wie KI-gestützte Softwareentwicklung in der Praxis aussieht, ist das ein guter erster Schritt.&lt;/p&gt;
&lt;p&gt;Der Select Partner Status bedeutet außerdem: valantic hat direkten Zugang zu Anthropic-Expertise und -Roadmaps. Das ist in einem Bereich, der sich so schnell entwickelt, kein unwichtiger Punkt. Einen Vorsprung beim Zugriff auf Informationen oder Modelle ist gerade jetzt ein Wettbewerbsvorteil.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Ich finde es gut, dass valantic diesen Schritt gemacht hat – und ich finde es noch besser, dass er mit echtem Substanz-Aufwand verbunden war. Eine Schulung in London, inhaltliche Auseinandersetzung mit Evaluierung, Deployment und Architektur, direkter Kontakt zu Anthropic. Das ist kein Badge auf der Website, sondern Grundlage für Projekte, die tatsächlich funktionieren.&lt;/p&gt;
&lt;p&gt;Wer das Thema Claude im Unternehmenskontext ernsthaft angehen will, hat bei valantic jetzt einen Ansprechpartner, der weiß, wovon er spricht.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
    <entry>
        <title type="text">Google Cloud Summit DACH 2026</title>
        <link href="https://muench.dev/post/2026-06-besuch-beim-google-cloud-summit-dach-2026-in-frankfurt"/>
        <id>https://muench.dev/post/2026-06-besuch-beim-google-cloud-summit-dach-2026-in-frankfurt</id>
        <published>2026-06-15T08:25:00+00:00</published>
        <updated>2026-06-15T10:28:00+02:00</updated>
        <summary/>
        <content type="html">&lt;p&gt;Letzte Woche war ich für valantic beim Google Coud Summit DACH in Frankfurt. Die Anreise war entspannt: mit dem Deutschlandticket per Zug, klimafreundlich und ohne Parkplatz-Stress. Schon das Rahmenprogramm hat gesetzt, was den Ton für die zwei Tage vorgab – groß, professionell, durchdacht. Mehrere Tausend Teilnehmer, kostenfreie Veranstaltung inklusive Essen und Getränken. Google lässt sich das was kosten.&lt;/p&gt;
&lt;h2&gt;Tag 1: Der AI Experience Walk&lt;/h2&gt;
&lt;p&gt;Der erste Tag stand für mich im Zeichen des &lt;strong&gt;AI Experience Walk&lt;/strong&gt; – einer Art begehbaren KI-Ausstellung, bei der Google seine Lösungen entlang der kompletten Wertschöpfungskette vorgestellt hat. Vom ersten Kundenkontakt bis zur internen Prozessautomatisierung war alles vertreten.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-06/google-cloud-summit-emea-2026-collage.png&quot; alt=&quot;Google Cloud Summit 2026 - Impressionen&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Google gab selbst Einblicke wie sich die Entwicklung aufgrund der Nutzung von KI geändert hat. Es gibt immer mehr Entwickler die nur noch mit Prompts arbeiten und die IDE selbst gar nicht mehr wirklich nutzen.&lt;br /&gt;
&lt;img src=&quot;/assets/content/blog/2026-06/ai-replaces-developers_20260609_101513660.jpg&quot; alt=&quot;AI isn't going to replace developers. But a develop using AI will replavce a developer sho isn't.&quot; /&gt;&lt;br /&gt;
Was für mich imer wieder durchkam war, dass das Thema &amp;quot;Grounding&amp;quot; einfach viel ernster genommen werden muss. Über Tests gilt es die Ergebnisse (gerade in Verbindung mit eigenen Daten) immer wieder zu automatisch zu überprüfen. Das Test-Driven-Development ist wieder da aber eben anders wie früher.&lt;/p&gt;
&lt;p&gt;Was mich am meisten beeindruckt hat: &lt;strong&gt;Live-Remote-Video-Übersetzung in 15 Sprachen&lt;/strong&gt;, in Echtzeit, direkt im Video-Stream. Das war kein Demo-Video und kein &amp;quot;coming soon&amp;quot; – das hat funktioniert. Solche Momente zeigen, wo KI gerade wirklich steht. Nicht alles ist noch Versprechen.&lt;/p&gt;
&lt;p&gt;Ein zweites großes Thema am ersten Tag war &lt;strong&gt;Digitale Souveränität&lt;/strong&gt;. Das ist kein neues Thema, aber es war auffällig, wie prominent Google es platziert hat. Wer kontrolliert die Infrastruktur, wer hat Zugriff auf die Daten, wo laufen die Modelle? Für viele Unternehmen sind das inzwischen keine akademischen Fragen mehr, sondern konkrete Entscheidungskriterien bei der Plattformwahl.&lt;/p&gt;
&lt;h2&gt;Tag 2: Hands-on statt Hype&lt;/h2&gt;
&lt;p&gt;Tag 2 war für mich der wertvollere. Weniger Bühne, mehr Werkstatt. In den Hands-on Sessions konnte man direkt selbst ran – und das macht einen Unterschied.&lt;/p&gt;
&lt;p&gt;Ich habe einen &lt;strong&gt;MCP Server live auf das Google ADK umgestellt&lt;/strong&gt; – direkt auf der Veranstaltung, nicht vorher vorbereitet, nicht in einer kontrollierten Demo-Umgebung. Das hat funktioniert, und das war ein gutes Signal. Das ADK ist praxistauglich genug, um spontan damit zu arbeiten.&lt;/p&gt;
&lt;p&gt;Besonders interessant war ein Vortrag zum Thema &lt;strong&gt;RAG (Retrieval-Augmented Generation)&lt;/strong&gt; am konkreten Anwendungsfall: Gesetzestexte. Die Herausforderung bei juristischen Dokumenten ist nicht nur, die richtige Passage zu finden – sondern sie auch korrekt zu zitieren, mit Paragraphen-Referenz und im richtigen Kontext. Genau das wurde gezeigt. Ein Anwendungsfall, der echte Anforderungen hat und bei dem schlechte Ergebnisse echte Konsequenzen hätten. RAG muss hier nicht nur &amp;quot;meistens&amp;quot; funktionieren.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/assets/content/blog/2026-06/rag-is-hard_20260610_090752659.jpg&quot; alt=&quot;RAG is hard&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Google als einziger Full-Stack-KI-Anbieter&lt;/h2&gt;
&lt;p&gt;Eine Beobachtung zieht sich durch beide Tage: Google ist der einzige Anbieter, der &lt;strong&gt;Hardware, Software und Plattform&lt;/strong&gt; für KI aus einer Hand liefert. Eigene TPUs, eigene Modelle (Gemini), eigene Cloud-Infrastruktur, eigene Entwicklertools. Das ist eine andere Ausgangssituation als bei Anbietern, die sich auf externe Chip-Hersteller oder Drittanbieter-Infrastruktur verlassen.&lt;/p&gt;
&lt;p&gt;Ob das ein Vorteil ist, hängt davon ab, was man sucht. Wer tief in das Google-Ökosystem einsteigen will, hat eine konsistente Stack-Erfahrung. Wer Unabhängigkeit und Portabilität priorisiert, sieht das vielleicht anders. Ich finde es trotzdem bemerkenswert, dass kein anderer Hyperscaler diese Kombination in dieser Tiefe vorweisen kann.&lt;/p&gt;
&lt;h2&gt;Fazit&lt;/h2&gt;
&lt;p&gt;Zwei Tage, mehrere Tausend Teilnehmer, kein Eintrittsgeld. Google investiert sichtbar in Community und Sichtbarkeit – und das zahlt sich aus. Man verlässt so eine Veranstaltung nicht mit fertigen Entscheidungen, aber mit einem guten Gefühl dafür, wo die Reise hingeht.&lt;/p&gt;
&lt;p&gt;Für mich persönlich: Tag 2 hat mehr gebracht als Tag 1. Nicht weil der AI Experience Walk uninteressant war – sondern weil Hands-on-Erfahrung durch nichts zu ersetzen ist. Einen MCP Server live umzustellen und direkt Feedback zu bekommen, ist mehr wert als zehn Folien über dasselbe Thema.&lt;/p&gt;
&lt;p&gt;Wer die Möglichkeit hat, beim nächsten Google Summit dabei zu sein: lohnt sich.&lt;/p&gt;</content>
        <author>
            <name>Christian Münch</name>
        </author>
    </entry>
</feed>
