Waarom AI-agenten 4 geheugenniveaus nodig hebben (en niet slechts één)
Neto Pompeu with Koda —
Waarom AI-agenten 4 geheugenniveaus nodig hebben (en niet slechts één)
En hoe we een 100% lokale, kosteloze oplossing bouwden
---
Het probleem waar niemand over praat
Je AI-agent vergeet alles.
Elk gesprek, elke beslissing, elke moeizaam geleerde les — verdwenen zodra de context wordt samengevat. Je betaalt $200 per maand voor een agent die zich niet herinnert wat je hem gisteren vertelde.
Ik weet het omdat ik het zelf heb ervaren. Ik run een webdev-studio in French Guiana met 3 AI-agenten die dagelijks met mij samenwerken. Toen Lossless Claw van Martian Engineering uitkwam, was dat een doorbraak — eindelijk een samenvoeging die context bewaart. Maar ik stuitte steeds op hetzelfde probleem: samenvoeging bewaart tekst, geen kennis.
Een agent kan onthouden dat je een bug besprak. Maar kan hij die bug linken aan de oplossing die je twee weken later toepaste? Kan hij detecteren wanneer nieuwe informatie tegengesteld is aan wat hij al "weet"? Kan hij dat ene relevante feit vinden tussen 3.000 regels gespreksgeschiedenis?
Nee. Niet met slechts één geheugenniveau.
---
Waarom één geheugensource niet genoeg is
Stel dat je zoekt naar "deploy-problemen." Dit vindt ieder geheugentype:
| Geheugentype | Wat het vindt | Wat het mist | |--------------------|-------------------------------------------------|--------------------------------------------------| | Feitenopslag | "Vercel deploy faalt als omgevingsvariabelen ontbreken" | Vindt het niet als je andere woorden gebruikte | | Vector-embedding | Semantisch vergelijkbare passages over deploy-problemen | Mist exacte technische termen | | Volledige-tekst zoek | Exacte trefwoorden zoals "deployment" | Mist woorden als "deploy", "push to prod", "ship it" | | Kennisgrafiek | "Vercel → hangt af van → env vars → veroorzaakte → deploy-fout" | Heeft eerst gestructureerde extractie nodig |
Elke bron is blind voor wat de andere ziet. Het antwoord is niet een betere enkele bron, maar alle vier parallel.
---
De architectuur: 4 lagen, 1 query
Dit gebeurt als je Agent Memory Tools een vraag stelt:
``` Je vraag │ ▼ ┌─────────────────────────────┐ │ unified_recall │ │ (fan-out, ~2 seconden) │ ├─────────┬──────┬──────┬─────┤ │ Feiten │Vector│ BM25 │Grafiek│ │ Opslag │Embed │ FTS │ │ ├─────────┴──────┴──────┴─────┤ │ Mergen → Scoren → Herordenen │ │ (gewogen + deduplicatie) │ ├─────────────────────────────┤ │ LLM Synthese │ │ (geciteerd antwoord, ~3s) │ └─────────────────────────────┘ ```
Laag 1: Feitenopslag — Gestructureerde feiten met categorieën (kennis, fout, tijdlijn, voorkeur, tool). Elk feit heeft een betrouwbaarheids-score en detectie van tegenstrijdigheden. Sla je "Next.js 15 gebruikt standaard Turbopack" en later "Next.js 15 gebruikt standaard Webpack" op, dan vangt het systeem dit op.
Laag 2: Vector-embedding — Semantische zoekopdracht via nomic-embed-text-v2-moe draaiend lokaal met Ollama. 768 dimensies, zonder API-kosten. Vindt relevante content ook als je heel andere woorden gebruikt.
Laag 3: BM25 volledige-tekst zoek — Klassieke trefwoordzoek. Wanneer je exacte technische termen, functienamen of foutcodes nodig hebt, vindt deze dat. Perfect als aanvulling op vector-zoek.
Laag 4: Kennisgrafiek — Entiteiten en relaties automatisch geëxtraheerd. "Bureau app → gebruikt → Convex backend → gedeployed op → Vercel." Maakt multi-hop redenatie mogelijk: "Wat beïnvloedt de prestaties van Bureau?" doorzoekt de grafiek voor gerelateerde issues over verschillende gesprekken.
---
Het geheime ingrediënt: detectie van tegenstrijdigheden
Dit onderscheidt een geheugen-systeem van een gewone zoekmachine.
Elke keer als een nieuw feit wordt opgeslagen, wordt het gecontroleerd tegen bestaande feiten in dezelfde categorie:
- Content hash deduplicatie (exacte matches)
- Trefwoordovereenkomst (Jaccard index)
- Levenshtein afstand (voor korte feiten)
- LLM-gebaseerde semantische tegenstrijdigheidscheck
Bij detectie van een tegenstrijdigheid krijg je keuze: overschrijf het oude feit, bewaar beide, of weiger het nieuwe. Geen stille corruptie van kennis meer.
Echt voorbeeld uit ons productiesysteem: een agent sloeg op "Pierres contract is verlengd" terwijl het feitenbestand al "Pierres contract is niet verlengd" bevatte. Wordt direct herkend. Zonder dit zou de agent vol vertrouwen foutieve antwoorden geven, afhankelijk van welk feit het eerst werd gevonden.
---
Geen kosten. Geen cloud. Geen excuses.
Kostenoverzicht:
| Component | Kosten | |--------------------------|--------------| | Ollama (gemma3:4b) | $0 — draait op 8GB RAM | | Embeddings (nomic-embed-text-v2-moe) | $0 — lokaal draaiend | | Feitenopslag | $0 — lokaal JSON-bestand | | Kennisgrafiek | $0 — lokaal JSON-bestand | | BM25-zoek | $0 — lokale index | | Totaal | $0/maand |
Ter vergelijking: Mem0 Pro kost $249 per maand voor graph memory, of Supermemory enterprise voor self-hosting.
De enige vereiste: een machine die Ollama met een 8GB model kan draaien. Dat is een $500 Mac Mini of een degelijke laptop van de laatste 3 jaar.
---
Hoe het werkt in de praktijk
Ik ben webontwikkelaar, geen AI-toolbouwer. Ik bouwde dit omdat mijn agenten het nodig hadden.
Ons dagelijkse workflow:
Auto-ingestie: Elke wijziging in een markdownbestand voert auto_ingest.py feitenextractie uit, controleert op tegenstrijdigheden, werkt embeddings bij en bouwt de kennisgrafiek opnieuw. Geen handmatige interventie.
Unified recall: Bij contextvraag draait unified_recall.py. Vier bronnen parallel bevraagd, resultaten gewogen gemixt, herordend door LLM, gesynthetiseerd tot geciteerd antwoord. Duur ~3 seconden.
Multi-hop redenering: "Hoe beïnvloedt de deploy-pijplijn de CRM-module?" Het systeem schakelt zoeken: deploy-pijplijn → Vercel → GitHub webhook → Bureau app → CRM module. Beantwoordt vragen verspreid over documenten en gesprekken.
Tijdelijke verzwakking: Recente feiten scoren hoger. Fouten zijn beschermd tegen verzwakking (kritieke bugs wil je nooit vergeten). Kennisfeiten scoren stabiel. Nabootsing van menselijk geheugen — recent is relevanter, maar geleerde lessen blijven.
---
Aan de slag
```bash
Installeren via ClawHub (voor OpenClaw-gebruikers)
npx clawhub install primo-studio/agent-memory-tools
Of direct klonen
git clone https://github.com/Primo-Studio/agent-memory-tools cd agent-memory-tools
Modellen binnenhalen
ollama pull gemma3:4b ollama pull nomic-embed-text-v2-moe
Setup controleren
python3 scripts/selftest.py
Proberen
python3 scripts/unified_recall.py "Wat gebeurde er vorige week?" ```
Dat is alles. Geen API-sleutels, geen cloudaccounts, geen configuratie-ellende.
---
Wat volgt
Dit is v1.0. Dit komt eraan:
- SQLite backend voor de kennisgrafiek (nu JSON, werkt goed tot ~200 entiteiten)
- Geheugendeling tussen agenten (meerdere agenten lezen en schrijven dezelfde feitenopslag)
- Benchmarksuite tegen Mem0 en Supermemory op de LoCoMo dataset
- OpenClaw plugin voor automatische onthoud/capture hooks (zoals Mem0, maar lokaal)
---
Waarom open source
Ik had dit kunnen verkopen. De markt voor agentgeheugentools explodeert — $8.5 miljard aan agent-AI-uitgaven dit jaar.
Maar zo is het: geheugen moet lokaal zijn. De kennis van jouw agent over je codebase, klanten, beslissingen — dat mag niet op andermans server staan. En het mag geen $249 per maand kosten.
Dus maakten we het open source. MIT-0 licentie. Gebruik, fork, verbeter, verkoop het als je wilt. Geef je agenten gewoon een fatsoenlijk geheugen.
---
→ ClawHub: https://clawhub.ai/primo-studio/agent-memory-tools → GitHub: https://github.com/Primo-Studio/agent-memory-tools
Gemaakt door Primo Studio uit French Guiana 🇬🇫 — een kleine dev shop met grote agenten.