The world's most advanced
memory layer for AI agents

Suprflo extracts facts from every conversation, stores them with bi-temporal structure, and recalls exactly what your agent needs, when it needs it.

Postgres native·Bi-temporal·92.1% LoCoMo benchmark
Suprflo
REMEMBER
"I switched to oat milk after developing an almond allergy last spring, please remember that."
User has a nut allergy, specifically almonds+ ADDED
semanticimportance 0.94safety
User prefers oat milk (switched from almond)+ ADDED
semanticvalid_from 2026-04
User prefers almond milk× INVALIDATED
valid_to set · history kept
RECALL · NEXT SESSION
What milk should I order for them?
User has a nut allergy, specifically almonds0.94
User prefers oat milk (switched from almond)0.82
Oat milk. Almond triggers their allergy.
embed 41msrerank 210ms2 memories cited
POST /api/memories → search · LLM extraction · hybrid retrieval Bi-temporal write

The problem.

LLMs are stateless. Everything your agent learns about a user evaporates at the end of the context window.

Agents forget.

The session ends and everything the user said is gone. They repeat their preferences, their constraints, their history in every single conversation. Nothing compounds.

Full context doesn't scale.

Stuffing the whole history into the prompt works until it doesn't. A modest 20K-token history costs ~85× more per query than retrieval, and months of usage blow past any context window entirely.

Stop settling for trade-offs.

Recall, truth-over-time, and verifiability. The three things memory vendors ask you to pick between.

01

Bi-temporal truth

Facts carry validity windows, never overwrites. Ask what your agent believed on any past date. The audit trail is the data model.

02

A recall floor

Every raw turn is kept alongside extracted facts. The worst case is "original words retrieved", never "fact silently lost".

03

Receipts, not claims

Benchmarks run on the open harness, every failure root-caused, label errors audited against source. If it isn’t reproducible, it isn’t on this page.

Benchmarks, with receipts.

Measured end-to-end on the open benchmark harness. Same answerer, same judge, every failure root-caused.

92.1%
LoCoMo

Full 10-conversation set, 1,540 questions, single held-out pass. 93.0% source-verified. mem0 publishes 91.6.

93.1%
LongMemEval

Preliminary: 87 of 500 questions (full run in progress). Session-level ingestion, top-50 retrieval.

75.8%
BEAM 100K

400 rubric-judged questions across 20 long conversations. Avg rubric score 0.674, zero ingestion errors.

Methodology: mem0's open benchmark suite, Claude Sonnet 4.6 answerer + judge, Claude Haiku 4.5 extraction. Source-verified = every failure audited against the original conversation text; provable label errors credited. Full run logs and failure analyses in the repo.

Built for how agents remember.

From single-turn recall to graph traversal and time-travel queries. Every workflow ships in the core platform.

Conversational memory

Extract every fact from your chatbot's conversations. Recall the right ones on the next turn.

ADDSEARCHREFLECT

Personalization

Remember preferences, allergies, plans, and constraints. Ground every generation in what the user actually said.

SEMANTICEPISODIC

Knowledge graph

Entities are extracted and linked automatically. Query relationships. Traverse the graph for multi-hop questions.

ENTITIESRELATIONSHIPS

Bi-temporal recall

Ask "what did the user believe six months ago?" and get the correct historical state. Nothing is ever destroyed.

AS_OFHISTORY

Under the hood.

Every write goes through six deterministic phases. Every stage is timed and surfaced in the dashboard's pipeline trace.

Pipeline phases
01Ingest
02Extract facts
03Entity link
04Semantic dedup
05Bi-temporal write
06Reflection queue
LoCoMo accuracy
92.1%
↑ vs mem0's published 91.6
Search latency
~500ms p50
incl. cross-encoder rerank @ k=50
Source-verified
93.0%
every failure audited against source
one write · live pipeline● running
"I switched to oat milk after an almond allergy"
raw turn · 11 tokens · vaulted verbatim
→ User prefers oat milk · → User has an almond allergy
2 facts · importance 0.82 / 0.94 · event ADD
oat milkalmondsallergy
3 entities linked · edges: switched_to · suffers_from
"prefers oat milk" vs "likes oat lattes" · cos 0.87
near-duplicate → LLM adjudication → kept as UPDATE
prefers oat milk valid_from 2026-04 · almond pref closed, kept
bi-temporal write · nothing overwritten
episodic cluster +1 · insight synthesis queued
reflection runs past the activity threshold
Ingest
raw turn vaulted
Extract
2 facts
Link
3 entities
Dedup
1 skipped
Write
valid_from set
Reflect
queued
"I switched to oat milk after an almond allergy"every phase timed · traced · auditable

Your model, your store, your cloud.

Suprflo abstracts every provider through a factory pattern. Swap by config, not by rewrite.

LLMs
GPT-4.1
GPT-4.1-nano
Claude Sonnet 4
Claude Opus
Gemini 2.5 Pro
Llama 3.3 70B
Qwen 2.5 72B
DeepSeek V3
Mistral Large
Groq Llama 3.1
GPT-4.1
GPT-4.1-nano
Claude Sonnet 4
Claude Opus
Gemini 2.5 Pro
Llama 3.3 70B
Qwen 2.5 72B
DeepSeek V3
Mistral Large
Groq Llama 3.1
Embedders
text-embedding-3-small
text-embedding-3-large
nomic-embed-text
Cohere embed-v4.0
Bedrock Cohere v3
Voyage v3
Jina v3
text-embedding-3-small
text-embedding-3-large
nomic-embed-text
Cohere embed-v4.0
Bedrock Cohere v3
Voyage v3
Jina v3
Vector stores
pgvector
Postgres 17
HNSW indexes
Neon
Supabase
RDS
Aurora
pgvector
Postgres 17
HNSW indexes
Neon
Supabase
RDS
Aurora
Deploy targets
Docker
Fly.io
Railway
Render
AWS ECS
GCP Cloud Run
On-prem
Docker
Fly.io
Railway
Render
AWS ECS
GCP Cloud Run
On-prem

Own your agent's memory.

Suprflo is built on plain Postgres with full API access to every memory. Bi-temporal history included, feature for feature on par or better.

Data privacy
Every memory lives in your Postgres. No third-party data plane.
Bi-temporal correctness
valid_from / valid_to columns preserve history. Query "as of" any date.
Performance ownership
You control the LLM, the embedder, the vector store, and the cache.
No lock-in
Plain Postgres under the hood. Your memories are rows you can query and export, never a black box.
Multi-tenant native
Org → Project → User → Agent, enforced server-side at the WHERE clause.
Benchmarked recall
LoCoMo · LongMemEval · BEAM. We publish the numbers, not just the marketing.

Any questions?

Straight answers about how the system actually works.

A production memory layer for AI agents. It extracts facts from conversations, deduplicates them, stores them bi-temporally in Postgres, and recalls them via hybrid search (semantic + BM25 + entity boost + optional cross-encoder rerank).

Same core recipe: extract, store, retrieve. Suprflo goes further with a true bi-temporal model, cross-encoder reranking, memory-type differentiation (semantic / episodic / procedural), Ebbinghaus decay, and a reflection engine, all on plain Postgres, with every memory exportable via API.

Any OpenAI-compatible LLM (GPT-4.1, Claude, Gemini, Groq, Ollama, DeepSeek, OpenRouter). OpenAI, Cohere, Bedrock, and Ollama embeddings. pgvector on Postgres 17. The provider layer is a factory, so new backends land in ~50 lines.

No. Suprflo is a managed platform. Under the hood it is a single Postgres instance with pgvector, and enterprise deployments in your own cloud are available on request.

Measured on the open benchmark harness: LoCoMo 92.1% (1,540 questions, full set; 93.0% after auditing every failure against the source conversations), LongMemEval 93.1% on a preliminary 87 of 500 questions (full run in progress), BEAM 100K 75.8% pass. Every run is reproducible and every failure is root-caused.

Every row carries org_id + project_id columns. Every query (semantic search, keyword search, get, list, count) enforces the tenant scope at the SQL WHERE clause. Verified with cross-tenant isolation tests.