A technical case study on building Oo-blee-ET: Multi-tier agent memory, causal provenance graphs, and solving the GDPR "Right to be Forgotten" with FalkorDB and MCP.
π The Hook: "Agents Are Only as Good as the Context They Work With"
The theme of the FalkorDB Graph Hacks hackathon opened with a profound truth:
βAgents are only as good as the context they work with.β
Over the last two years, the AI ecosystem rushed to give autonomous agents long-term memory using vector databases (Pinecone, Chroma, pgvector). But as agents evolved from simple chatbots into autonomous actors, enterprise engineering teams ran into an architectural brick wall: flat vector embeddings lack causal lineage.
When an intelligent agent interacts with a user, it doesn't just store raw text. It behaves like a cognitive system:
- It distills raw sessions into Episodic Facts.
- It synthesizes facts into Semantic Summaries.
- It forms predictive Behavioral Inferences.
- It triggers Autonomous Procedural Actions based on those beliefs.
User Statement βββΊ Episodic Fact βββΊ Semantic Summary βββΊ Inference βββΊ Autonomous Action
Now consider an unavoidable enterprise reality: What happens when a user requests data erasure under GDPR Article 17 or CCPA?
In a vector database, you delete the raw transcript embedding. But the downstream summaries, inferred habits, and autonomous scheduled actions remain stranded in the database. These "Zombie Beliefs" continue to influence agent decisions, leaking private user data indefinitely.
To solve this, we built Oo-blee-ET (from oublietteβthe chamber where things are forgotten). And to build it, we abandoned traditional vector stores and bet our entire architecture on FalkorDB.
Here is what we learned, why FalkorDB outperformed every alternative we tested, and our honest feedback as engineers building on the bleeding edge of graph-powered AI.
π§ The Architecture: Multi-Agent Causal Provenance in FalkorDB
In Oo-blee-ET, memory is not a floating vector in high-dimensional space. It is a strict Causal Provenance Graph implemented directly in FalkorDB:
graph TD
User["π€ User (user_ravi)"]
Src["π Source (chat_session)"]
Mem["πΎ Memory Container"]
Fact["π Fact (episodic)"]
Sum["π Summary (semantic)"]
Inf["π§ Inference (semantic)"]
Act["β‘ Action (procedural)"]
Fact -->|ABOUT| User
Fact -->|DERIVED_FROM| Src
Mem -->|CONTAINS| Fact
Sum -->|SUMMARIZES| Fact
Inf -->|INFERRED_FROM| Fact
Inf -->|INFERRED_FROM| Sum
Act -->|BASED_ON| Inf
We implemented a formal Three-Tier Memory Architecture:
- π΅ Episodic Memory: Immutable transcripts and statements ingested by our Concierge agent (
Fact,Source,Memory). - π£ Semantic Memory: Consolidated profiles and behavioral inferences derived by our Analyst agent (
Summary,Inference). - π’ Procedural Memory: Automated tasks and system directives executed by our agent workers (
Action).
Every single node preserves explicit causal relationships: DERIVED_FROM, SUMMARIZES, INFERRED_FROM, and BASED_ON.
β‘ Why FalkorDB Blew Away the Alternatives
We benchmarked multiple graph and vector engines before building Oo-blee-ET. Here is why FalkorDB stood out as the clear winner:
1. Sub-10 Millisecond Inner-Loop Traversals
Agent reasoning loops cannot tolerate 150ms database roundtrips. When our Auditor Agent validates whether a belief is grounded or hallucinated, it must walk 4 to 8 hops across facts, sources, and summaries. FalkorDBβs C-based GraphBLAS engine executed multi-hop Cypher queries in single-digit milliseconds (often 2β4ms), even over remote cloud sockets.
2. Native Multigraph Topology (True Multi-Tenancy)
In enterprise AI, data privacy across corporate tenants is non-negotiable. Traditional graph databases often force you to spin up separate server instances or rely on complex label-filtering hacks.
FalkorDB natively supports Multigraph Topology: a single cloud database instance hosts thousands of completely isolated graphs (tenant_acme, tenant_globex). We were able to enforce strict organizational isolation and run cross-tenant leakage scans (LEAKED_INTO) on a single cluster.
3. Atomic Cypher Transactions for Surgical Erasure
When a user requests erasure, we execute a two-phase blast-radius purge:
- Phase 1 (Dry Run): Cypher traverses downstream dependencies, identifies private nodes vs. shared team knowledge, and issues a 64-character SHA-256 fingerprint token.
- Phase 2 (Atomic Execution): A guarded, atomic Cypher transaction deletes the entire cascade of downstream inferences and actions while preserving shared parent sources.
// Atomic Cascade Erasure in FalkorDB
MATCH (u:User {id: $user_id})<-[:ABOUT]-(f:Fact)
OPTIONAL MATCH (f)<-[:SUMMARIZES|INFERRED_FROM*1..6]-(derived)
DETACH DELETE f, derived
4. Zero-Docker Low RAM Footprint
By connecting directly to FalkorDB Cloud on AWS, our entire multi-agent orchestrator, Model Context Protocol (MCP) server, and Cytoscape.js frontend ran with zero local Docker overhead, consuming less than 120 MB of RAM on developer machines.
π€ The Model Context Protocol (MCP) Triad
We decoupled our agents using the official Model Context Protocol (MCP) Python SDK, assigning least-privilege tool boundaries to each agent process:
[User Statement]
β
βΌ
ποΈ Concierge Agent ββ(MCP: remember)βββββββΊ FalkorDB (Episodic Tier)
β (Handoff)
βΌ
π Analyst Agent ββ(MCP: infer/summarize)ββΊ FalkorDB (Semantic Tier)
β (Handoff)
βΌ
π‘οΈ Auditor Agent ββ(MCP: explain_belief)βββΊ FalkorDB (Read-Only Ground Truth)
Powered by Google Gemini 2.5 Flash, the Auditor agent inspects beliefs without hallucination. When asked: "Why does this autonomous restaurant action exist?", it executes read-only FalkorDB tools over stdio and returns mathematically grounded evidence:
"The action
act_ravi_suggest_restaurantsis based on inferenceinf_ravi_lisbon_veg, which is derived from factsfact_ravi_vegetarianandfact_ravi_trip_lisbonrecorded in sessionsess_ravi_001."
π οΈ The Developer Experience: What Worked Beautifully vs. What Could Be Improved
One of the most rewarding parts of hackathons is sharing authentic developer feedback with the sponsoring team. Here is our honest experience working deeply with FalkorDB:
π What Worked Incredibly Well:
-
The Cypher Implementation: FalkorDB's openCypher engine handled complex path-traversal queries (
*1..9) and conditional aggregations (UNWIND,OPTIONAL MATCH,size()) flawlessly. -
The Python Client (
falkordb-py): Instantiation, parameterized query bindings, and result-set parsing were clean and lightweight. -
FalkorDB Cloud UX: Provisioning our cloud database in the AWS
ap-south-1region took under 60 seconds with zero configuration friction.
π‘ Constructive Feedback for the FalkorDB Roadmap:
If the FalkorDB engineering team is reading this, here are three features that would make FalkorDB even more dominant for AI agents:
-
Default Socket Keepalive & Health Checks in
falkordb-py: When connecting to FalkorDB Cloud across public internet routers or AWS NAT gateways, idle TCP sockets are sometimes terminated after prolonged periods of inactivity (raisingWinError 10054orConnectionError). We resolved this in our application by configuringsocket_keepalive=Trueandhealth_check_interval=15with exponential backoff retries. Making proactive socket health-checking the default infalkordb-pywould make cloud connections virtually bulletproof out of the box. -
First-Party FalkorDB MCP Server:
The Model Context Protocol (MCP) is rapidly becoming the universal standard for AI agents. While we wrote our own custom MCP server for Oo-blee-ET, a first-party, official
falkordb-mcppackage that exposes safe, read-only graph inspection tools would immediately establish FalkorDB as the #1 default database across Claude Desktop, Cursor, and agentic SDKs. -
Graph Algorithm Function Sugar in Cypher:
FalkorDB has fantastic built-in graph algorithms (PageRank, Shortest Path, Betweenness Centrality). Exposing these as inline Cypher function calls (e.g.,
algo.shortestPath(...)) would make them effortlessly callable directly from autonomous LLM tool declarations.
π The Verdict: The Graph-Powered Future of AI Governance
For the last two years, the AI industry has treated memory as a retrieval game. But in enterprise environments governed by GDPR, CCPA, and strict privacy laws, retrieval without causal lineage is an existential liability.
FalkorDB gave us the performance, multi-graph isolation, and expressive graph primitives needed to turn agent memory from a black-box vector space into a verifiable, auditable, and mathematically erasable graph.
Agents are only as good as the context they work withβand only as compliant as the memories they can surgically forget.
FalkorDB made both possible.
π Project & Community Links
- GitHub Repository: github.com/appongaier/Oo-blee-ET
- Built for: Graph Hacks: Context for AI Agents powered by FalkorDB and WeMakeDevs.
- Database: Powered by FalkorDB Cloud.
Top comments (0)