Skip to main content

Izabrani projekti

total-agent-memory totalmemory.dev

Trajna memorija za Claude Code i Codex CLI — knowledge graph, multi-representation embeddings, 3D WebGL vizuelizacija.

  • Python
  • SQLite
  • FAISS
  • BGE
  • Ollama
  • MCP
  • Three.js

Problem

Coding agent bez memorije pita iste stvari svake sesije. I ponavlja iste greške. Context window nije memorija, to je radni skup. Vector store takođe nije memorija, to je Ctrl+F sa embeddings-ima.

Hteo sam nešto bliže senior inženjeru: epizodni recall (“probali smo prošlog utorka, nije radilo”), semantički (“u kompaniji logujemo u JSON”), decay, kontradikcije i pravo da kažem “ne znam”.

Arhitektura

  • Hot path: SQLite + FTS5 — keyword recall ispod 50 ms.
  • Warm path: BGE / FastEmbed embeddings u FAISS-u za semantic similarity.
  • Graph sloj: entiteti + triples + cognitive activation spreading.
  • Re-rank: opcioni CrossEncoder za preciznost.
  • Diversity: MMR pass da agent ne uđe u echo-chamber.

6-stage pipeline (FTS → BM25 → semantic → fuzzy → graph → MMR) postiže R@5 = 97.45 % na LongMemEval default — iznad objavljenih baseline-ova.

Ključne odluke

  • Multi-representation skladište — svako sećanje stoji kao raw text, normalizovan, BM25-tokenizovan, embedding i graph čvor. Po upitu se bira pravo predstavljanje.
  • Self-extracting knowledge graph — entiteti i triples se izvlače malim lokalnim LLM-om, fact-merger spaja i razrešava kontradikcije.
  • Time travel — svaka promena je checkpoint, kg at <timestamp> pokazuje šta je agent verovao prošlog četvrtka.
  • 3D WebGL inspektor — ceo graf odluka u Three.js-u: drag čvorova, replay epizoda, vidljivo širenje pažnje.

Rezultati

Production-ready, MIT, MCP-native. Radi na Raspberry Pi 4 (sa isključenim embedding stack-om). Plug-in u Claude Code, Codex, Cursor, Cline kroz MCP — agent prestaje da pita osnovne stvari.

Lekcije

  • Recall je stack, ne servis. Najbolja memorija za AI je sve tehnike fusion-isane zajedno.
  • Zaboravljanje je feature. Bez decay-a, store postaje ukleti tavan za tri nedelje.
  • Mala promišljena memorija pobeđuje džinovski indeks. R@5 dobitak je došao od pruninga, ne od više dimenzija.