The AI Memory Dashboard That Knows When to Forget
By Nishant Unavane — Built for the WeMakeDevs × Cognee Hackathon**
Ever asked an LLM a question, got a confident answer, and then realized it was using information you replaced months ago? That's the context amnesia problem — and it's the reason I built Synapse.
The Problem
LLMs don't know that your tech stack changed. They don't know that the API key you stored last week was rotated yesterday. They don't know that the decision you made in March was superseded in April.
Most "memory" tools for AI agents work like a tape recorder — they append everything and hope for the best. The result? Conflicting records, bloated contexts, and confidently wrong answers.
I wanted to build something different: a memory that reconciles, not just records.
Enter Cognee
Cognee isn't just another vector store. It's a full memory lifecycle framework — it gives you remember, recall, cognify, and forget as first-class APIs. That last one — forget — is what caught my attention.
Most projects treat forgetting as a failure. I wanted to treat it as a feature.
What Synapse Does
Synapse is a self-organizing knowledge graph dashboard that ingests data from PDFs, GitHub repos, YouTube transcripts, ChatGPT exports, and articles — then reconciles everything it learns.
The core loop:
Ingest → Detect Contradictions → Resolve → Query → Decay → Forget
The Cognee Integration
Every Cognee API is load-bearing in Synapse. Here's how:
1. remember() — Multi-Source Ingestion
await cognee.add([content]) # Add raw data
await cognee.remember() # Ingest into graph
This handles PDFs (base64 uploads), GitHub repos (zip download + commit history), YouTube transcripts, articles (via trafilatura), and even ChatGPT/Claude exports. One API, five source types.
2. cognify() — The Knowledge Graph
await cognee.cognify() # Build graph schema
This generates the knowledge graph — entities, relationships, and schemas. But I added a step between ingestion and storage: the Reconciliation Pass.
After cognify() runs, I query the existing graph for contradictions. A judge LLM compares fresh claims against stored facts:
prompt = f"""
OLD: {existing_knowledge}
NEW: {fresh_claim}
Does the new claim contradict, supersede, or agree with the old?
If supersede or contradict, the user must decide.
"""
Conflicts go to a /resolve inbox where users choose: Keep Old, Keep New, or Keep Both.
3. recall() — Temporal-Aware Q&A
answer = await cognee.recall(query)
But I wrapped it with temporal awareness. When you ask "What changed since March?", Synapse queries the reconciliation_log and returns a structured diff — what was added, removed, changed, and newly decided.
4. forget() — The Decay Engine
This is the part I'm most proud of.
Every node in the knowledge graph has a confidence score. Each decay sweep reduces unreinforced nodes by 0.15. When confidence drops below 0.20:
if node.confidence < 0.20:
await cognee.forget([node_id])
log_to_confidence_history(node, "pruned by decay")
Users configure decay settings in the dashboard: when decay starts (default: 60 days), when nodes get forgotten (default: 180 days). It's memory health management — like a garbage collector for your AI's brain.
5. Memory Provenance
provenance = await cognee.get_memory_provenance_graph()
Every relationship is visualized as an interactive 3D graph using react-force-graph-3d, with nodes colored by confidence (green = fresh, yellow = fading, red = stale). You can click any node to inspect it, or click "Forget" to prune it manually.
The 3D Graph Dashboard
The centerpiece is the /graph page — a real-time 3D knowledge graph where:
- Node size = number of connections (hub nodes are larger)
- Node color = confidence score (green → yellow → red)
- Hover = entity details panel
- Click = full schema view with provenance
-
Forget button = manual
cognee.forget()invocation
What Winning "Best Use of Cognee" Taught Me
The judges weren't looking for a wrapper around Cognee. They were looking for:
-
Deep integration — not just calling
remember()and calling it a day, but using the full lifecycle (cognify,recall,forget, provenance) - Novel UX — the reconciliation inbox and decay dashboard are not Cognee features; they're Synapse features built on top of Cognee
- Production polish — BYOK (bring your own key), error states, loading skeletons, empty states
Tech Stack at a Glance
| Layer | Stack |
|---|---|
| Frontend | Next.js 16, React 19, Tailwind CSS 4, Three.js |
| Backend | FastAPI (Python), SQLite/PostgreSQL + PGVector |
| Memory | Cognee SDK 1.2.2 |
| LLMs | Gemini (primary), Groq (fallback), OpenAI (BYOK) |
| Auth | NextAuth v5 (GitHub + Google OAuth) |
| Deployment | Vercel (monorepo — frontend + Python backend) |
Lessons Learned
- Context isolation matters. Cognee uses global process-wide config, not request-scoped. Fine for single-session use, but something to watch for multi-tenant scaling (tracking upstream issue #2228).
- Contradiction detection is hard. The judge prompt needs precise instructions — too loose and you get false positives, too strict and contradictions slip through.
- Decay is a feature, not a bug. Users love the confidence timeline. Being able to say "here's what I believed then vs now" is unexpectedly powerful.
Try It Yourself
- Live Demo: synapse-knowledge.vercel.app — sign in with GitHub/Google or click "View demo"
- GitHub: github.com/IamNishant51/Synapse
No API keys needed to explore — just bring your own key for AI features (or use the demo mode with seed data).
Built for The Hangover Part AI: Where Is My Context? — WeMakeDevs × Cognee Hackathon (Jun 29 - Jul 5, 2026)
AI coding assistants were used in development, per hackathon guidelines.
Want to contribute? The repo is open source (MIT) with good first issue tags — check the CONTRIBUTING.md.
Top comments (0)