[{"data":1,"prerenderedAt":524},["ShallowReactive",2],{"navigation":3,"\u002Flabs\u002F2026-10-30-letta-code-memory":38,"\u002Flabs\u002F2026-10-30-letta-code-memory-surround":519},[4],{"title":5,"path":6,"stem":7,"children":8,"page":37},"Labs","\u002Flabs","labs",[9,13,17,21,25,29,33],{"title":10,"path":11,"stem":12},"Ein schlankes AI-Review-Setup für kleine Repos","\u002Flabs\u002F2026-10-30-ai-review-setup","labs\u002F2026-10-30-ai-review-setup",{"title":14,"path":15,"stem":16},"Letta Code lokal: Wenn der Agent sein Gedächtnis selbst pflegt","\u002Flabs\u002F2026-10-30-letta-code-memory","labs\u002F2026-10-30-letta-code-memory",{"title":18,"path":19,"stem":20},"Der Harness-Prozess: Warum 2026 das Jahr der kontrollierten KI-Autonomie ist","\u002Flabs\u002Fagentic-harness-2026","labs\u002Fagentic-harness-2026",{"title":22,"path":23,"stem":24},"AnythingLLM: Eigene Wissensbasis, eigenes Modell, null Cloud-Zwang","\u002Flabs\u002Fanythingllm-local-rag","labs\u002Fanythingllm-local-rag",{"title":26,"path":27,"stem":28},"Claude Code als Agentic Development Partner","\u002Flabs\u002Fclaude-agent","labs\u002Fclaude-agent",{"title":30,"path":31,"stem":32},"Hermes-Agent als persönlicher CTO","\u002Flabs\u002Fhermes-agent-cto","labs\u002Fhermes-agent-cto",{"title":34,"path":35,"stem":36},"Kimi K2.5 vs Minimax M2.7 beim Refactoring","\u002Flabs\u002Fkimi-vs-minimax-refactoring","labs\u002Fkimi-vs-minimax-refactoring",false,{"id":39,"title":14,"author":40,"body":42,"date":502,"description":503,"extension":504,"image":505,"meta":506,"minRead":510,"navigation":511,"path":15,"seo":512,"stem":16,"tags":513,"__hash__":518},"lab\u002Flabs\u002F2026-10-30-letta-code-memory.md",{"name":41},"Bernd D.H. Martin",{"type":43,"value":44,"toc":493},"minimark",[45,65,68,73,84,88,150,154,157,169,175,179,232,314,318,341,345,355,435,438,442,459,489],[46,47,48,49,53,54,53,57,60,61,64],"p",{},"Bei meinen Coding-Agents pflege ich ihr Gedächtnis bisher selbst: ",[50,51,52],"code",{},"AGENTS.md",", ",[50,55,56],{},"CLAUDE.md",[50,58,59],{},"MEMORY.md"," und ",[50,62,63],{},"skills\u002F",". Letta Code dreht das um. Der Agent verwaltet seine Wissensbasis selbst, und ich lese und korrigiere nur noch mit. Ob das im Alltag besser ist, weiß ich nicht.",[46,66,67],{},"Dieses Lab ist ein Zwischenstand, kein Messbericht. Ich habe Letta Code einige Stunden gegen xAI laufen lassen und lokal mit Ollama angestartet. Gezählt oder gemessen habe ich dabei nichts, die Eindrücke unten sind also subjektiv. Die technischen Angaben stammen aus der offiziellen Doku und dem Changelog (Stand 30.10.2026) und können sich bei einem so jungen Projekt schnell ändern.",[69,70,72],"h2",{"id":71},"woher-die-idee-kommt","Woher die Idee kommt",[46,74,75,76,83],{},"Letta geht auf das MemGPT-Paper der UC Berkeley zurück (",[77,78,82],"a",{"href":79,"rel":80},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.08560",[81],"nofollow","Packer et al., arXiv:2310.08560","). Die Idee: Das Kontextfenster ist der knappe Hauptspeicher, alles andere liegt außerhalb, und das Modell entscheidet per Funktionsaufruf selbst, was es hineinholt und was es wegschreibt. Letta Code ist das Open-Source-Harness dazu (Apache-2.0), das lokal läuft.",[69,85,87],{"id":86},"die-bausteine","Die Bausteine",[89,90,91,99,105,111,134,144],"ul",{},[92,93,94,98],"li",{},[95,96,97],"strong",{},"Core Memory:"," Blöcke im Kontext, die der Agent selbst bearbeiten kann.",[92,100,101,104],{},[95,102,103],{},"Recall Memory:"," die durchsuchbare Gesprächshistorie.",[92,106,107,110],{},[95,108,109],{},"Archival Memory:"," ein Wissensspeicher zum Lesen und Schreiben. Was ich im Artikel „External Memory“ genannt hatte, heißt bei Letta Archival Memory.",[92,112,113,116,117,60,120,123,124,126,127,129,130,133],{},[95,114,115],{},"MemFS:"," ein Memory-Dateisystem auf Git-Basis. Der Agent liest und schreibt es mit normalen Datei-Werkzeugen, jede Änderung ist ein Commit. Dateien im Root, zum Beispiel ",[50,118,119],{},"persona.md",[50,121,122],{},"human.md",", landen bei jedem Schritt im System-Prompt. Unterordner mit eigenem ",[50,125,59],{}," bleiben draußen, bis sie gebraucht werden. Skills sind keine eigene Memory-Stufe, sondern liegen dort unter ",[50,128,63],{}," im Format ",[50,131,132],{},"SKILL.md",".",[92,135,136,139,140,143],{},[95,137,138],{},"Dreaming:"," Hintergrund-Subagenten gehen vergangene Gespräche durch, fassen Lektionen zusammen und aktualisieren das Memory. Ausgelöst wird das nach einer einstellbaren Zahl von Schritten oder bei der Kontext-Kompaktierung (",[50,141,142],{},"\u002Fsleeptime",").",[92,145,146,149],{},[95,147,148],{},"Mods:"," Erweiterungen, die Werkzeuge, Befehle, Oberfläche oder die Kontextzufuhr ändern. Der Agent kann sie selbst schreiben.",[69,151,153],{"id":152},"worauf-ich-achten-muss","Worauf ich achten muss",[46,155,156],{},"Zwei Punkte aus der Doku sind für mich sicherheitsrelevant:",[89,158,159,166],{},[92,160,161,162,165],{},"Dreaming mit der Option „Agent reviews before applying“ lässt eine zweite Hintergrund-Konversation die Änderungen prüfen. Das kostet mehr Tokens und fragt mich ",[95,163,164],{},"nicht"," um Freigabe. Memory wird also ohne mein Zutun geändert.",[92,167,168],{},"Mods sind „trusted code“ mit Zugriff auf die Runtime. Ich installiere nur, was ich lesen kann, und nutze die Permission-Modes.",[46,170,171,172,133],{},"Beides spricht dafür, Berechtigungen nicht nur über Sprachregeln im Prompt abzusichern. Für den Test isoliere ich den State pro Projekt mit ",[50,173,174],{},"LETTA_LOCAL_BACKEND_DIR",[69,176,178],{"id":177},"setup","Setup",[180,181,186],"pre",{"className":182,"code":183,"language":184,"meta":185,"style":185},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","brew install letta-code\nletta --backend local connect ollama\nletta --backend local\n","bash","",[50,187,188,204,222],{"__ignoreMap":185},[189,190,193,197,201],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"sBMFI","brew",[189,198,200],{"class":199},"sfazB"," install",[189,202,203],{"class":199}," letta-code\n",[189,205,207,210,213,216,219],{"class":191,"line":206},2,[189,208,209],{"class":195},"letta",[189,211,212],{"class":199}," --backend",[189,214,215],{"class":199}," local",[189,217,218],{"class":199}," connect",[189,220,221],{"class":199}," ollama\n",[189,223,225,227,229],{"class":191,"line":224},3,[189,226,209],{"class":195},[189,228,212],{"class":199},[189,230,231],{"class":199}," local\n",[89,233,234,249,252,263,279],{},[92,235,236,237,240,241,244,245,248],{},"Ich habe Letta Code über Homebrew installiert. Wer stattdessen npm (",[50,238,239],{},"npm install -g @letta-ai\u002Fletta-code",") nutzt, braucht eine passende Node-Version: Die Doku nennt 22.19+, das npm-Paket 0.34.33 verlangt laut ",[50,242,243],{},"engines"," aber ",[50,246,247],{},"^22.23.4 || ^24.22.1 || ^26.12.1",". Dann gilt die strengere Angabe.",[92,250,251],{},"Das Backend (lokal) und das Modell (lokal oder Cloud) sind zwei getrennte Entscheidungen.",[92,253,254,255,258,259,262],{},"Ollama ist als Provider eingebaut, ebenso LM Studio und llama.cpp. Ein Endpoint muss Chat Completions ",[95,256,257],{},"und"," Tool Calling können. Der Ollama-Provider listet nur Modelle, die die Fähigkeit ",[50,260,261],{},"tools"," melden.",[92,264,265,266,269,270,53,272,60,275,278],{},"Als lokales Modell habe ich ",[50,267,268],{},"qwen3.8:27b"," genommen (laut Ollama-Library etwa 18 GB, mit ",[50,271,261],{},[50,273,274],{},"thinking",[50,276,277],{},"vision","). Gegen xAI lief derselbe Aufbau mit einem Cloud-Modell.",[92,280,281,282,53,285,53,288,53,291,53,294,53,297,53,299,302,303,306,307,310,311,133],{},"Befehle: ",[50,283,284],{},"\u002Finit",[50,286,287],{},"\u002Fmemory",[50,289,290],{},"\u002Fdoctor",[50,292,293],{},"\u002Fsearch",[50,295,296],{},"\u002Fmodel",[50,298,142],{},[50,300,301],{},"\u002Fconnect",". Der Befehl ",[50,304,305],{},"\u002Fremember"," wurde laut Changelog in Version 0.32.14 entfernt, steht aber auf einigen Doku-Seiten noch. Lektionen gibt man jetzt in normaler Sprache („merk dir, immer pnpm zu nutzen“), Reflexion läuft über ",[50,308,309],{},"\u002Fdream"," oder ",[50,312,313],{},"\u002Freflect",[69,315,317],{"id":316},"erste-eindrücke","Erste Eindrücke",[89,319,320,326,335],{},[92,321,322,325],{},[95,323,324],{},"Gegen xAI:"," Ich habe Letta Code einige Stunden eingesetzt. Die Aufgaben, die ich gestellt habe, wurden bewältigt. Wie gut das Memory danach aussah, habe ich noch nicht systematisch geprüft.",[92,327,328,331,332,334],{},[95,329,330],{},"Lokal mit Ollama:"," ",[50,333,268],{}," ließ sich starten und läuft grundsätzlich. Zum Programmieren ist mein Mac dafür aber zu schwach. Das ist mein Eindruck von einem Rechner, kein Benchmark. Ob es sich mit den Erfahrungen anderer mit lokalen Qwen-Modellen deckt, kann ich hier nicht belegen.",[92,336,337,340],{},[95,338,339],{},"Konsequenz:"," Für den Alltag ist die Cloud-Variante für mich zunächst die praktikable. Das lokale Setup hängt an der Hardware, und die Frage, ob die Tool-Schemas von Letta Code mit lokalen Modellen stabil laufen, bleibt offen, weil ich lokal gar nicht so weit gekommen bin.",[69,342,344],{"id":343},"so-will-ich-weiter-testen","So will ich weiter testen",[46,346,347,348,350,351,354],{},"In einem kleinen Testrepo starte ich mit ",[50,349,284],{}," und führe mehrere Sitzungen mit wiederkehrenden Vorlieben und einem absichtlichen Fehler. Danach sehe ich mir mit ",[50,352,353],{},"git log"," im Memory-Repo an, was der Agent gespeichert hat.",[356,357,358,374],"table",{},[359,360,361],"thead",{},[362,363,364,368,371],"tr",{},[365,366,367],"th",{},"Kriterium",[365,369,370],{},"Wie ich es messe",[365,372,373],{},"Stand",[375,376,377,389,400,410,421],"tbody",{},[362,378,379,383,386],{},[380,381,382],"td",{},"Tool-Calling",[380,384,385],{},"Anteil erfolgreicher Aufrufe pro Sitzung",[380,387,388],{},"xAI: Aufgaben bewältigt, nicht gezählt; lokal: nicht beurteilbar",[362,390,391,394,397],{},[380,392,393],{},"Qualität des Memory",[380,395,396],{},"sinnvolle gegen falsche Einträge nach mehreren Sitzungen",[380,398,399],{},"offen",[362,401,402,405,408],{},[380,403,404],{},"Kosten von Dreaming",[380,406,407],{},"Tokens und Zeit pro Lauf",[380,409,399],{},[362,411,412,416,419],{},[380,413,414],{},[50,415,290],{},[380,417,418],{},"Was verbessert er an der Struktur?",[380,420,399],{},[362,422,423,426,432],{},[380,424,425],{},"Lokal gegen Cloud",[380,427,428,429,431],{},"dieselbe Aufgabe mit ",[50,430,296],{}," auf beiden",[380,433,434],{},"lokal startet, fürs Coden auf meinem Mac zu schwach",[46,436,437],{},"Ausgewertet wird erst nach mehreren Sitzungen. Einzelne Läufe sagen bei Sprachmodellen wenig.",[69,439,441],{"id":440},"offene-fragen","Offene Fragen",[89,443,444,450,453],{},[92,445,446,447,449],{},"Welche Hardware ich für ",[50,448,268],{}," mit ausreichend Kontext zum Coden brauche. Mein Mac reicht dafür nicht, das Modell allein braucht etwa 18 GB, der Kontext kommt dazu.",[92,451,452],{},"Ob die Tool-Schemas von Letta Code mit lokalen Modellen stabil laufen. Dazu steht nichts in der Doku, und ich bin lokal nicht weit genug gekommen, um es zu beurteilen.",[92,454,455,456,458],{},"Wie gut sich MemFS mit einem bestehenden ",[50,457,52],{},"- und Skills-Setup kombinieren lässt.",[46,460,461,331,464,53,469,53,474,53,479,53,484],{},[95,462,463],{},"Quellen:",[77,465,468],{"href":466,"rel":467},"https:\u002F\u002Fdocs.letta.com\u002Fquickstart",[81],"Letta Code Quickstart",[77,470,473],{"href":471,"rel":472},"https:\u002F\u002Fdocs.letta.com\u002Fletta-code\u002Fmemory",[81],"Memory",[77,475,478],{"href":476,"rel":477},"https:\u002F\u002Fdocs.letta.com\u002Fletta-code\u002Fmemfs",[81],"MemFS",[77,480,483],{"href":481,"rel":482},"https:\u002F\u002Fdocs.letta.com\u002Freference\u002Fchangelog\u002Findex.md",[81],"Changelog",[77,485,488],{"href":486,"rel":487},"https:\u002F\u002Fgithub.com\u002Fletta-ai\u002Fletta-code",[81],"Repository letta-ai\u002Fletta-code",[490,491,492],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":185,"searchDepth":206,"depth":206,"links":494},[495,496,497,498,499,500,501],{"id":71,"depth":206,"text":72},{"id":86,"depth":206,"text":87},{"id":152,"depth":206,"text":153},{"id":177,"depth":206,"text":178},{"id":316,"depth":206,"text":317},{"id":343,"depth":206,"text":344},{"id":440,"depth":206,"text":441},"2026-10-30","Was Letta Code anders macht als ein Setup mit von Hand gepflegten Dateien wie AGENTS.md und skills\u002F, und was ich bei einem ersten Lauf gegen xAI und lokal mit Ollama beobachtet habe.","md","\u002Flabs\u002Fletta-memory-layers.svg",{"type":507,"status":508,"source_id":509},"lab","entwurf","res-007",null,true,{"title":14,"description":503},[514,515,473,516,517],"Agentic Coding","Harness","Letta","Local AI","I19TdHU4RMA92DvP84OpsTGFsRuYLXmRyIC7AA8l4SU",[520,522],{"title":10,"path":11,"stem":12,"description":521,"children":-1},"Wie das Claude-Code-Team Code Review automatisiert, und was sich davon mit CLAUDE.md, REVIEW.md und einem Rundenlimit auf ein kleines eigenes Repo übertragen lässt.",{"title":18,"path":19,"stem":20,"description":523,"children":-1},"Was ein Agentic Harness ist, wie er funktioniert, und warum er der entscheidende Unterschied zwischen einem Spielzeug und einem echten KI-Entwicklungspartner ist.",1793616700773]