{"id":26105,"date":"2026-10-15T14:14:03","date_gmt":"2026-10-15T13:14:03","guid":{"rendered":"https:\/\/nowtec.solutions\/blog\/memory-engine-fuer-agent-loop\/"},"modified":"2026-10-15T14:14:03","modified_gmt":"2026-10-15T13:14:03","slug":"memory-engine-fuer-agent-loop","status":"publish","type":"post","link":"https:\/\/nowtec.solutions\/de\/blog\/memory-engine-fuer-agent-loop\/","title":{"rendered":"Auswahl einer Memory-Engine f\u00fcr einen Agent-Loop"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ein Agent ohne Ged\u00e4chtnis ist ein sehr teurer Goldfisch. Er kann Werkzeuge aufrufen, \u00fcber das Zur\u00fcckkommende nachdenken und etwas Brauchbares produzieren \u2013 und dann endet die Session und alles ist weg. Der n\u00e4chste Lauf beginnt bei null und macht die gleichen Fehler in der gleichen Reihenfolge.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der dritten Sitzung zum Aufbau von Whale, unserem Agent Harness, schrieb ich keine Zeile Engine-Code. Ich verbrachte die gesamte Sitzung damit zu entscheiden, was hinter dem Memory-Hook platziert werden sollte, den wir bereits in den Haupt-Loop integriert hatten. Dies ist die Zusammenfassung dieses Vergleichs: vier Kandidaten, die tats\u00e4chlich relevanten Kriterien und die abschliessende Entscheidung \u2013 welche sich, wie sich herausstellte, nicht \u00fcber die Woche hinweg bew\u00e4hrte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Speicher ist nicht Chatverlauf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Das Erste, was gekl\u00e4rt werden muss: Der fortgef\u00fchrte Gespr\u00e4chsverlauf ist kein Ged\u00e4chtnis. Der Chat-Verlauf ist ein Protokoll, das w\u00e4chst, bis es das Context Window \u00fcberl\u00e4dt. Ged\u00e4chtnis ist der gegenteilige Ansatz \u2013 die Entscheidung dar\u00fcber, was den Erhalt wert ist, in welcher Form, damit es nach Relevanz und nicht nach Aktualit\u00e4t abgerufen werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Umdeutung verwandelt die Frage \u201eWelche Datenbank?\u201c in etwas Komplexeres. Die Engine muss vier Punkte beantworten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Kurzfristig gegen langfristig.<\/strong> Unterscheidet es, was in dieser Sitzung passiert ist, von dem, was der Agent im Allgemeinen weiss, oder ist alles ein undifferenzierter Haufen?<\/li>\n\n\n<li><strong>Vector Store gegen Knowledge Graph.<\/strong> Similarity Search findet Dinge, die sich \u00e4hnlich lesen. Ein Graph findet Dinge, die <em>verbunden<\/em> sind. Die meisten echten Fragen, die ein Agent stellt, betreffen Verbindungen.<\/li>\n\n\n<li><strong>Token-Effizienz.<\/strong> Was auch immer aus dem Speicher zur\u00fcckkommt, wird in einen Prompt eingef\u00fcgt. Eine Engine, die \u00fcppig zur\u00fcckgibt, verbrennt Ihr Budget in jedem einzelnen Schritt.<\/li>\n\n\n<li><strong>Wie es an den Loop angebunden wird.<\/strong> Wir hatten bereits den Hook. Die Engine schliesst entweder sauber daran an, oder sie will den Control Flow \u00fcbernehmen \u2013 und eine Engine, die den Loop \u00fcbernehmen will, ist keine Komponente, sondern ein Rewrite.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Wie wir recherchiert haben<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht durch vierst\u00fcndiges Lesen der Dokumentation. Ich habe f\u00fcr jeden Kandidaten einen separaten Research-Agenten gestartet \u2013 jeweils mit demselben Prompt: das Repository lesen, die Dokumentation lesen, die Kommentare lesen, erkl\u00e4ren, wie es funktioniert, und dann eine Einsch\u00e4tzung abgeben, ob es als Memory-Agent f\u00fcr ein Harness wie unseres dienen kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vier Agenten arbeiteten parallel, w\u00e4hrend ich ihre Ausgabe las, sobald sie eintraf. Es ist eine kleine Sache, aber sie ist die ehrliche Antwort auf die Frage \u201eWof\u00fcr verwenden Sie Agenten tats\u00e4chlich?\u201c, n\u00e4mlich genau dies. Das gleichzeitige Lesen von vier Codebasen ist die Art von Arbeit, bei der ein Agent seine Kosten rechtfertigt, da eine falsche Zusammenfassung leicht zu erkennen ist und eine korrekte einen ganzen Nachmittag spart.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Was folgt, ist meine Lesart dessen, was zur\u00fcckkam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die vier Kandidaten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/github.com\/semantica-agi\/semantica\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Semantica<\/a><\/strong> \u2013 \u201edas Open-Source-Palantir f\u00fcr KI-Agenten\u201c, wie es in den eigenen Worten heisst \u2013 erwies sich keineswegs als eine Speicherbibliothek. Es handelt sich um eine Plattform mit einer speicher\u00e4hnlichen API; der Schwerpunkt liegt auf einer Datenpipeline mit ETL, die Dokumente verarbeitet und personalisiert, unterlagert von einem Vector Store. Wenn Sie ein Data Lake ben\u00f6tigen, mit dem ein Agent kommunizieren kann, ist die L\u00f6sung tats\u00e4chlich leistungsf\u00e4hig. Wir suchten jedoch nicht nach einem Data Lake. Wir suchten nach etwas Kleinem, das in einen Loop integriert werden kann, und das Abh\u00e4ngigkeitsgewicht wies in eine andere Richtung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die Neo4j-Ged\u00e4chtnisschicht<\/strong> ist die mit der klarsten Haltung, und das meine ich als Kompliment. Sie kommt mit einer klaren Vorstellung davon, was Agent-Ged\u00e4chtnis <em>ist<\/em>: drei Ebenen \u2013 Konversation, Sitzung, Nachricht \u2013 sowie Entit\u00e4tserkennung und Fakten, die als Subjekt-Pr\u00e4dikat-Objekt-Triples gespeichert werden, was RDF-Denken unter einer freundlicheren Oberfl\u00e4che darstellt. Die API-Oberfl\u00e4che ist breit, die Entit\u00e4tserkennung ist gut, und sie ist gut nachvollziehbar. Der Preis ist das Backend: Sie befinden sich in der Welt von Neo4j, selbst gehostet oder verwaltet, und zahlen daf\u00fcr mit operationalem Aufwand.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/github.com\/cytostack\/openwolf\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OpenWolf<\/a><\/strong> ist minimalistisch und das einzige Tool, das ich bereits in einem anderen Projekt eingesetzt habe. Es verwaltet einen projektweiten Speicher \u00fcber Claude Code, Codex und OpenCode hinweg, funktioniert \u00fcber Hooks und ist bemerkenswert effizient im Tokenverbrauch \u2013 was keineswegs eine kleine Tugend ist. Es l\u00f6st jedoch ein leicht anderes Problem: Es h\u00e4lt den Speicher strukturiert und pr\u00e4sent; es ist keine allgemeine Engine, auf der Sie aufbauen k\u00f6nnen. Es blieb im Vergleich, weil seine Einfachheit ein st\u00e4ndiges Argument gegen alles Schwerf\u00e4lligere darstellt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/github.com\/topoteretes\/cognee\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">cognee<\/a><\/strong> ist der direkteste Konkurrent zu dem, was Whales Speicher sein soll, und war der einzige Moment in der Sitzung, in dem ich dachte: \u201eJemand hat das bereits gebaut.\u201c Eine austauschbare, persistente, mehrschichtige Speicherl\u00f6sung f\u00fcr Agents, die einen Knowledge Graph mit einem Vector Store und einem Cache kombiniert, mit austauschbaren Providern auf jeder Ebene, einem regelbasierten Klassifikator, der den Suchtyp f\u00fcr eine gegebene Query ausw\u00e4hlt, sowie Self-Improvement Loops darauf aufbauend. Es handelt sich um eine Interface Library im besten Sinne: Sie schreibt nicht vor, welche Graph Database verwendet werden soll, sondern stellt eine Factory zur Verf\u00fcgung und tritt in den Hintergrund.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Der Vergleich auf einen Blick<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr>\n<th><\/th>\n<th>Form<\/th>\n<th>St\u00e4rke<\/th>\n<th>Was es Sie kostet<\/th>\n<\/tr><\/thead><tbody>\n<tr><td><strong>Semantica<\/strong> (MIT)<\/td><td>Plattform mit einer speicher\u00e4hnlichen API<\/td><td>ETL-Pipeline, Vektorspeicherung, starke Struktur<\/td><td>Schwer; im Zentrum steht eine Pipeline, kein Loop<\/td><\/tr>\n<tr><td><strong>Neo4j agent memory<\/strong><\/td><td>Schicht mit klarer Haltung<\/td><td>Drei Ebenen, Entity-Extraktion, Triples, Tracing<\/td><td>Backend-Bindung, operativer Aufwand<\/td><\/tr>\n<tr><td><strong>OpenWolf<\/strong> (AGPL-3.0)<\/td><td>Minimalistische, hook-basierte Projekt-Speicherung<\/td><td>Token-effizient, einfach, intern bew\u00e4hrt<\/td><td>Enger Zuschnitt; keine allgemeine Engine<\/td><\/tr>\n<tr><td><strong>cognee<\/strong> (Apache-2.0)<\/td><td>Pluggable Multi-Layer-Speicherung<\/td><td>Graph + Vektoren + Cache, provider-agnostisch, selbstverbessernd<\/td><td>Komplexit\u00e4t; mehr Maschinerie, als ein erster Entwurf ben\u00f6tigt<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Was ich beschloss und was danach geschah<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Am Ende der Sitzung war die Antwort cognee, mit einem Vorbehalt, den ich auf der Aufnahme ausspreche: <em>bis zum n\u00e4chsten Mal, vielleicht tauchen bessere Ideen auf.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das taten sie. Innerhalb einer Woche hat ein Paper die Frage f\u00fcr mich neu gestellt \u2013 nicht \u201ewo speichere ich, was der Agent weiss\u201c, sondern \u201ewas f\u00fcr ein Ding ist das Ged\u00e4chtnis eines Agenten \u00fcberhaupt\u201c. Die Antwort, die wir schliesslich implementiert haben, speichert Prozeduren statt Fakten und schreibt sich selbst um, wenn diese fehlschlagen. Das ist der n\u00e4chste Beitrag und die n\u00e4chste Sitzung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie sonst nichts mitnehmen, dann dies: Der Vergleich hat sich trotzdem gelohnt. Nicht, weil er den Gewinner ausw\u00e4hlte \u2013 das tat er nicht \u2013, sondern weil er die vier Kriterien hervorbrachte. Als die bessere Idee aufkam, konnte ich feststellen, dass sie <em>in diesen Begriffen<\/em> besser war, in rund zehn Minuten, statt eine Woche lang mit mir selbst zu diskutieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Session ansehen<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube\" style=\"margin:2rem 0\">\n<a href=\"https:\/\/youtu.be\/pNqKBSNpa6I\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"display:block;position:relative;border-radius:10px;overflow:hidden;background:#000;text-decoration:none;line-height:0\">\n<img decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/pNqKBSNpa6I\/maxresdefault.jpg\" alt=\"Creating an AI Agent Harness: Iteration 3 \u2014 Memory Engine Research\" loading=\"lazy\" style=\"display:block;width:100%;height:auto;aspect-ratio:16\/9;object-fit:cover\">\n<span style=\"position:absolute;inset:0;display:flex;align-items:center;justify-content:center\">\n<span style=\"width:76px;height:54px;border-radius:14px;background:rgba(18,18,18,.82);display:flex;align-items:center;justify-content:center\">\n<span style=\"width:0;height:0;border-left:21px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px\"><\/span>\n<\/span><\/span>\n<span style=\"position:absolute;left:0;right:0;bottom:0;padding:.85rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.9rem;line-height:1.4\">Creating an AI Agent Harness: Iteration 3 \u2014 Memory Engine Research &#8212; auf YouTube ansehen &#8594;<\/span>\n<\/a>\n<figcaption class=\"wp-element-caption\">Kapitel: 00:00 R\u00fcckblick \u00b7 01:04 Warum ein Memory-Hook eine echte Engine ben\u00f6tigt \u00b7 02:06 Semantica \u00b7 04:12 Neo4j Agent Memory \u00b7 07:54 cognee \u00b7 10:06 Semantica Fazit \u00b7 14:15 Neo4j Fazit \u00b7 18:28 OpenWolf \u00b7 23:00 OpenWolf Fazit \u00b7 27:09 cognee Fazit \u00b7 31:20 Fazit.<\/figcaption>\n<\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>Die bisherigen Folgen:<\/strong> https:\/\/www.youtube.com\/playlist?list=PLPbgiIdJb7gE<\/li>\n\n\n<li><strong>Start der Serie:<\/strong> https:\/\/nowtec.solutions\/blog\/creating-an-agent-harness\/<\/li>\n\n\n<li><strong>Code:<\/strong> https:\/\/github.com\/nowtec\/whale<\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Dieser Artikel wurde unter Zuhilfenahme von KI-Tools verfasst und vor der Ver\u00f6ffentlichung von unserem Team gepr\u00fcft (EU-KI-Verordnung, Art. 50).<\/em><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Vier Memory-Engines im Vergleich \u2014 Semantica, Neo4j, OpenWolf und cognee \u2014 und die vier Kriterien, auf die es beim Ged\u00e4chtnis eines Agenten wirklich ankommt.<\/p>\n","protected":false},"author":4,"featured_media":26097,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-26105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-trends-and-innovation"],"acf":[],"_links":{"self":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts\/26105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/comments?post=26105"}],"version-history":[{"count":0,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/posts\/26105\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/media\/26097"}],"wp:attachment":[{"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/media?parent=26105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/categories?post=26105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nowtec.solutions\/de\/wp-json\/wp\/v2\/tags?post=26105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}