← back to gallery

Agent Memory Atlas

Side-by-side directory of open-source agent memory frameworks with a decision quiz.

dev-toolsagentsmemorydirectorygithubdecision-treevectorgraph
Open product ↗

agent-memory-atlas

A side-by-side directory of every open-source agent memory framework (Mem0, Letta, Zep, Cognee, Graphiti, LangMem, MemGPT, Memary, txtai, R2R, LlamaIndex, Chroma, Qdrant, CrewAI, …) with live GitHub vitals, an architecture classifier (vector / graph / KV / episodic / hybrid), and a 5-question decision quiz that ends in a shareable "Atlas recommends X" card.

This is not a recall benchmark. It tells you which memory framework architecturally fits your use case and which ones are still maintained — picking, not testing.

---

What you get

---

Data sources

| Source | URL pattern | Refresh interval |
|---|---|---|
| GitHub repo metadata | https://api.github.com/repos/{owner}/{repo} | every 6 hours (cron: 0 /6 ) |
| GitHub latest commit | https://api.github.com/repos/{owner}/{repo}/commits?per_page=1&sha={default_branch} | every 6 hours |
| GitHub latest release | https://api.github.com/repos/{owner}/{repo}/releases/latest | daily (cron: 30 3 *) |

No mock data, no Math.random jitter, no hardcoded counts. If GitHub is unreachable at boot the UI shows the manifest list with "Awaiting first sync" badges until the first refresh succeeds; star counts never get faked.

Rate budget: unauthenticated, 60 req/hr is enough if we space the 22 repos × ~2 calls / cycle by 70 seconds. Set GITHUB_TOKEN to remove the spacing and raise the ceiling to 5000/hr (the token is optional).

The curated list of 22 frameworks lives in seed/frameworks.json and is the editorial input — analogous to listing competitors. Numeric / temporal fields are 100% live.

---

API

All endpoints mounted under /agent-memory-atlas. No auth, all public.

| Method | Path | Purpose |
|---|---|---|
| GET | /health | {ok:true} |
| GET | /api/frameworks | All frameworks joined with their latest snapshot. Query params: sort=stars\|commit\|name, arch=vector,graph,…, lang=python\|…, hosted=yes\|no, q=<search> |
| GET | /api/frameworks/:slug | One framework with full vitals + last 30 snapshots history |
| GET | /api/frameworks/:slug/history | Just the time series |
| GET | /api/stats | {total, active_count, slow_count, stale_count, by_arch, by_lang, refreshed_at} |
| POST | /api/quiz | Body {answers:{q1..q5}}{recommendations:[3], share_code} |
| GET | /api/share/:code | JSON of a stored quiz result |
| GET | /share/:code | Server-rendered HTML share card with OG meta |
| GET | / | SPA |
| GET | /static/* | Static assets |

---

Decision logic (lib/decision.js)

Five answers feed into a weighted score per framework:

Reason string is auto-composed from which boosts hit. Top 3 returned.

---

Stack

---

Run locally

npm install
PORT=4773 node server.js
# open http://localhost:4773/agent-memory-atlas/

On first boot with an empty database the server kicks off one immediate refresh cycle in the background. Without a GITHUB_TOKEN this takes ~26 minutes (70s spacing × 22 repos). With a token it completes in seconds.

.env.example:

PORT=4773
GITHUB_TOKEN=__INJECT_FROM_VAULT__   # optional

---

What this product deliberately does not do