{"id":1695,"date":"2026-06-23T06:32:47","date_gmt":"2026-06-23T04:32:47","guid":{"rendered":"https:\/\/vittrup-graversen.dk\/?p=1695"},"modified":"2026-06-23T06:32:48","modified_gmt":"2026-06-23T04:32:48","slug":"lokal-llm-hukommelse-naar-agentkodning-skal-huske-projektet","status":"publish","type":"post","link":"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/23\/lokal-llm-hukommelse-naar-agentkodning-skal-huske-projektet\/","title":{"rendered":"Lokal LLM-hukommelse: n\u00e5r agentkodning skal huske projektet"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Agent-LLM\u2019er har f\u00e5et en praktisk blind vinkel: de kan skrive kode, l\u00e6se projektet og kalde v\u00e6rkt\u00f8jer, men de glemmer stadig for meget mellem sessioner. Det er ikke bare irriterende. Det er en driftsfejl forkl\u00e6dt som produktivitet. N\u00e5r en agent ikke kan huske arkitekturvalg, lokale regler, tidligere fejl og hvorfor en l\u00f8sning blev fravalgt, ender udvikleren med at v\u00e6re manuel cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Derfor er denne uges mest interessante LLM-nyhed ikke endnu en st\u00f8rre model. Det er <a href=\"https:\/\/github.com\/oleksiijko\/pmb\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener\">PMB<\/a>, et nyt local-first memory-system for AI coding agents, som blev delt p\u00e5 Hacker News 22. juni. PMB kobler sig p\u00e5 agentens livscyklus via MCP, gemmer projektviden lokalt i SQLite og LanceDB, og injicerer relevante minder f\u00f8r agenten svarer. Den korte version: lokal LLM-hukommelse bliver en del af udviklingsmilj\u00f8et, ikke en chatfunktion man skal huske at bruge.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hukommelse er ikke pynt, det er kontrolplan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PMB beskriver sig selv som \u201clocal-first memory for your AI coding agent\u201d. If\u00f8lge projektets README gemmes beslutninger, erfaringer, projektfakta og pr\u00e6ferencer i \u00e9n lokal SQLite-fil. Der bruges en lokal LanceDB-vektorindeks til s\u00f8gning, og systemet kan k\u00f8re uden cloud, API-n\u00f8gler eller abonnement. Det underst\u00f8tter Claude Code, Cursor, Codex og andre MCP-aware agenter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det interessante er ikke SQLite i sig selv. Det interessante er placeringen i agentflowet. PMB fors\u00f8ger at gemme l\u00e6ring automatisk efter en tur og hente relevant kontekst f\u00f8r n\u00e6ste svar. P\u00e5 Hacker News forklarede udvikleren, at l\u00e6sning kombinerer BM25, embeddings og en graf over entiteter med reciprocal rank fusion. M\u00e5let er ikke bare den semantisk n\u00e6rmeste tekstbid, men den rigtige hukommelse for netop det projekt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det lyder n\u00f8rdet, men konsekvensen er enkel: hvis agenten skal v\u00e6re mere end en hurtig autocomplete med terminaladgang, skal den have en stabil model af projektet. Ikke en global, magisk personlighed. En lokal, auditerbar og sletbar projektmodel. Her rammer PMB et reelt hul i dagens agentv\u00e6rkt\u00f8jer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvorfor lokal hukommelse betyder noget for danske udviklere<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der er en sikkerhedsvinkel, som er vigtigere end hypen. Mange teams bruger allerede LLM\u2019er til kode, fejls\u00f8gning og driftstekster, men de har ikke styr p\u00e5, hvor projektkonteksten ender. Hvis agenthukommelse bliver en hosted API, bliver hukommelsen endnu en datakategori, der skal klassificeres, logges, slettes og forklares ved revision.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lokal LLM-hukommelse \u00e6ndrer ikke automatisk compliance-billedet, men den g\u00f8r arkitekturvalget mere konkret. Du kan pege p\u00e5 en fil, en mappe, en backupstrategi og en sletteprocedure. Du kan beslutte, om hukommelsen m\u00e5 indeholde kundedata, incident-noter, kodeudsnit eller navne p\u00e5 interne systemer. Det er meget mere h\u00e5ndterbart end \u201cnoget ligger i en leverand\u00f8rs memory layer\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der er ogs\u00e5 en mere jordn\u00e6r produktivitetsvinkel. Hvis du arbejder p\u00e5 en kodebase over flere m\u00e5neder, er de v\u00e6rdifulde ting ofte ikke i README-filen. De ligger i beslutninger som \u201cbrug ikke denne pakke, fordi den br\u00f8d PDF-generering\u201d, \u201cdenne test fejler kun p\u00e5 CI\u201d, eller \u201cdenne integration m\u00e5 ikke kaldes synkront\u201d. Det er pr\u00e6cis den type kontekst, agenten skal huske, hvis den ikke skal lave de samme dumme forslag igen og igen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Det h\u00e6nger direkte sammen med den udvikling, jeg tidligere har skrevet om i <a href=\"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/14\/claude-code-kan-nu-selv-reviewe-fixe-og-merge-dine-pull-requests-2\/\">Claude Code kan nu selv reviewe, fixe og merge dine pull requests<\/a> og <a href=\"https:\/\/vittrup-graversen.dk\/index.php\/2026\/06\/18\/claude-design-goer-design-systems-til-llm-kontrolplan\/\">Claude Design g\u00f8r design systems til LLM-kontrolplan<\/a>. N\u00e5r agenter f\u00e5r mere handlekraft, bliver de sm\u00e5 kontrolmekanismer vigtigere. Hukommelse er en af dem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MCP g\u00f8r hukommelse til infrastruktur<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PMB bygger oven p\u00e5 <a href=\"https:\/\/modelcontextprotocol.io\/\" target=\"_blank\" rel=\"noopener\">Model Context Protocol<\/a>, som efterh\u00e5nden er blevet standardvejen til at koble LLM-klienter sammen med v\u00e6rkt\u00f8jer og data. MCP g\u00f8r ikke automatisk noget sikkert eller godt, men det giver et f\u00e6lles integrationspunkt. Det er afg\u00f8rende, fordi hukommelse ellers let bliver l\u00e5st til \u00e9n klient eller \u00e9n leverand\u00f8r.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hvis PMB\u2019s tilgang virker i praksis, peger den mod en mere fornuftig agentarkitektur: modellen kan skiftes, klienten kan skiftes, men projektets hukommelse kan blive liggende lokalt. Det er samme tanke som at holde kode i Git og ikke i IDE\u2019ens cache. V\u00e6rkt\u00f8jet m\u00e5 gerne v\u00e6re smart, men den varige viden skal ikke forsvinde, n\u00e5r du skifter model eller betaler for en ny plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der er stadig \u00e5bne sp\u00f8rgsm\u00e5l. Hvor godt virker recall p\u00e5 store projekter? Hvor mange falske minder bliver gemt? Hvordan h\u00e5ndteres hemmeligheder, persondata og midlertidige debugging-noter? Og hvem rydder op, n\u00e5r agenten har misforst\u00e5et en beslutning og gjort den til regel? Lokal hukommelse g\u00f8r problemet nemmere at eje, men den fjerner det ikke.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Min vurdering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PMB er v\u00e6rd at holde \u00f8je med, fordi det angriber et lavpraktisk problem i agentic coding: kontinuitet. Ikke med endnu en benchmark, men med en konkret hukommelsesmekanisme, som kan inspiceres og k\u00f8re lokalt. Det er sundere end at vente p\u00e5, at de store LLM-leverand\u00f8rer l\u00f8ser al kontekst med st\u00f8rre vinduer og mere opaque personalisering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For teams er anbefalingen ikke at smide PMB direkte ind i produktionen og kalde det en strategi. Start med et ikke-f\u00f8lsomt repo. Log hvad der bliver gemt. Test om agenten faktisk bliver bedre, eller bare mere selvsikker. Lav en sletteprocedure. Og hold hemmeligheder ude, indtil I har bevis for, at jeres memory layer er lige s\u00e5 kontrolleret som resten af jeres udviklingsmilj\u00f8.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">LLM-udviklingen handler ikke kun om st\u00f8rre modeller. Den handler ogs\u00e5 om de sm\u00e5 lokale systemer omkring modellerne. Hukommelse, v\u00e6rkt\u00f8jsadgang, audit trail, politikker og rollback. Det er d\u00e9r, agent-LLM\u2019er enten bliver seri\u00f8s infrastruktur eller bare dyrere chatbots med shell-adgang.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kilder<\/h2>\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/oleksiijko\/pmb\/blob\/main\/README.md\" target=\"_blank\" rel=\"noopener\">PMB README<\/a> \u2013 GitHub, bes\u00f8gt 23. juni 2026<\/li>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=48631169\" target=\"_blank\" rel=\"noopener\">Show HN: PMB \u2013 local-first memory for AI coding agents over MCP<\/a> \u2013 Hacker News, 22. juni 2026<\/li>\n<li><a href=\"https:\/\/modelcontextprotocol.io\/\" target=\"_blank\" rel=\"noopener\">Model Context Protocol documentation<\/a> \u2013 MCP, bes\u00f8gt 23. juni 2026<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Denne artikel er skrevet i samarbejde med AI, og efterf\u00f8lgende redigeret af et rigtigt menneske \ud83d\ude42<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>PMB viser hvorfor lokal LLM-hukommelse kan blive kontrolplan for agentkodning: mindre glemsomhed, bedre audit og f\u00e6rre cloud-data.<\/p>\n","protected":false},"author":1,"featured_media":1694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24,8,7],"tags":[178,31,98],"class_list":["post-1695","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-engineering","category-ai","category-techology","tag-ai-coding-agents","tag-language-models","tag-mcp"],"acf":[],"_links":{"self":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/comments?post=1695"}],"version-history":[{"count":1,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1695\/revisions"}],"predecessor-version":[{"id":1696,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/1695\/revisions\/1696"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media\/1694"}],"wp:attachment":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media?parent=1695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/categories?post=1695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/tags?post=1695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}