Today, we’re announcing our $35 million Series A, led by RRE Ventures, just six months after our seed announcement, bringing our total capital raised to $43 million. We’re using it to bring this infrastructure to developers and enterprises. Eventually, we’ll bring it to the cloud, to on-prem and to consumer devices. Today, when people say memory, they mean storage: chips and drives that hold bytes. Graphon Labs is ushering in software as memory, where what you keep is understood, not just stored.
01 · motivation
The Motivation
We should be able to ask a computer about our lives as easily as we ask it about the internet.
The story your father told at dinner. The place you went with someone years ago. The advice you recorded and only understood much later. You remember enough to ask, but not enough to know which file to open.
We have the photos, the videos, the conversations. I want to be able to talk to all of it. Ask a question in my own words and get back the moment I was looking for, with enough of what came before and after to make sense of it.
This is something we have wanted to build for a long time. And watching language models get so much better has made one question increasingly frustrating: why is it still so hard to give them an understanding of our own world?
you ask
What was the story Mom told at dinner about walking to school?
the moment, with enough of before and after to make sense of it
Before starting Graphon, I worked as an applied scientist on Amazon’s Customer Service team. Customer service gives you a particular appreciation for the distance between an answer that sounds reasonable and one that is actually right.
Closing the distance
Across the industry, the approaches to closing that distance have changed considerably.
Before ChatGPT, a common way to automate customer service at scale involved training classifiers. A customer typed “didn’t deliver,” a model identified the likely intent, and a predefined decision tree took it from there. A lot of engineering went into figuring out which branch someone belonged on.
Then language models changed everyone’s expectations.
You could take an off-the-shelf, open-source model, give it instructions, and have it interpret a request and generate a response. Zero-shot prompting made a compelling demo remarkably easy to build. Getting something consistently reliable enough for production was harder.
So the industry went deep into fine-tuning.
This was the day and age of model merging, low-rank adapters, and trying funny things with freezing different layers to see whether it made any difference. Many a PhD was burned—and is still being burned—babysitting data instead of inventing new layer-normalization techniques.
Fine-tuning helped. But enterprise knowledge refuses to sit still. Policies change. Products change. Something that was correct when you assembled the training dataset can be wrong by the time a customer asks about it. Continuously fine-tuning a model to keep up comes with its own problems.
Enter RAG.
The idea was sensible. Fine-tune the model for how it should behave—how to sound like a customer-service representative or a pirate—and use retrieval to find the latest information to feed into its context window. A policy change could go into the knowledge source without requiring another training run.
This opened up a new can of worms.
Now you had to make sure the embedding models worked on your data. You had to invent the right chunking strategies. Decide how much overlap to add. Figure out how much to retrieve and whether it would fit into the downstream model’s context window.
For the longest time, chunking felt like a pseudoscience. A recipe worked on one dataset and fell apart on another.
And semantic similarity could blur precisely the distinctions that mattered.
“Can offer a refund” and “can’t offer a refund” concern the same topic and share almost all their words. They can sit close together in an embedding space. But the difference determines what the agent is allowed to do.
“The correct voltage is 70 V” and “the correct voltage is 770 V” look almost identical. The number is the part you cannot afford to get wrong.
Of course, you can add rerankers, exact matching, filters, and checks. Then maintain and evaluate all of them as your data changes. You can retrieve more passages to improve your chances of finding the missing detail, then pay to have the model read them. Before long, you’re operating an elaborate retrieval stack just to get the right information in front of the model.
And even a relevant passage can leave out the thing that makes it useful. The exception is in another section. The warning comes before the procedure. The explanation is spoken while someone points to a part in a video.
Text version
- A short refund policy (“We can offer a refund within 30 days of purchase. Items must be unused, in their original box. We can’t offer a refund on sale items. Exchanges are always free.”) is cut into overlapping chunks. Someone has to choose the embedding model, the chunk size, the overlap, how many chunks come back, and whether they fit the model’s context window.
- The same settings on another dataset put a cut in the middle of the rule: “We can’t offer a refund on” lands in one chunk and “sale items.” in the next.
- In embedding space, “can offer a refund” and “can’t offer a refund” sit almost on top of each other, though they give opposite answers.
- So do “the correct voltage is 70 V” and “the correct voltage is 770 V”, one digit apart.
- To cope, the stack grows: a reranker, exact matching, filters and checks, each to maintain, and the model is given more passages to read.
- Asked “Can I get a refund on a sale item?”, the passage that comes back says refunds are offered within 30 days. The exception for sale items is in another chunk.
An analogy: storing a book in a trashcan
Here’s the analogy I keep coming back to.
I give you a book and ask you to store it. You tear each page out, crumple it into a ball, and throw it into a trashcan.
Then I ask you a question.
You search through the trashcan and hope you find all the crumpled-up pieces of paper needed to answer it. Maybe you find the rule but miss the exception. Maybe you find step four without the warning before step one.
The words are still there. The structure that made them useful is much harder to recover.
And we spent extraordinary amounts of effort building a bigger trashcan, a better crumpled ball, and a faster way to rummage.
Text version
Mom’s five-page scrapbook about her school days is torn into pages, crumpled and thrown in a basket. Asked “How far did Mom really walk to school?”, a search through the basket brings back the three pages that look most like an answer and leaves two behind.
- Page 1 · School days. “Mom’s school. 1979. She was 12.” Retrieved.
- Page 2 · Bus pass. “Route 7. Two stops.” Left in the basket: the bus pass is missed.
- Page 3 · Mom’s version. “Five miles. Every day. Uphill, both ways.” Sunday dinner, 2019. Retrieved: Mom’s version is found.
- Page 4 · In the margin. “The school was across the road.” Her brother. Left in the basket: her brother is missed.
- Page 5 · Mom’s map. A long winding road over the hills from home to school, drawn for the grandkids in 2015. Retrieved.
The answer that comes back is five miles, uphill. A bigger basket and faster rummaging bring back more pages, but nothing ties Mom’s version to the bus pass or to her brother.
My objection is to the premise: why are we throwing away useful structure in the first place?
If we want AI to understand the information we accumulate—across our lives, our work, and all the different ways we record it—we have to take seriously how that information is organized. What happened before and after. Which explanation belongs to which demonstration. How a detail in one source changes the meaning of something in another.
That is the problem we’re building Graphon to solve.
02 · solution
The Solution
Clark and I spent the better part of our youth building graph-based solutions for robots: helping them remember where they had been, navigate places they hadn’t seen, and communicate in unknown, unstructured environments.
The graphs were sometimes explicit, sometimes implicit. But the thinking was consistent: exploit the structure of the problem. What a robot observes now relates to what it saw earlier. What one robot knows might fill a gap in another’s understanding. Those relationships are useful information in their own right.
Two ideas
We brought that thinking to Graphon.
We built around two ideas.
First, build a graph detailed enough to represent the information in the data, without having to decide every useful relationship in advance.
And yes, that means messy data. Videos, images, spreadsheets, recordings, Markdown files. The stuff people actually create.
A video has events within scenes. A spreadsheet has values whose meaning depends on row and column headers. A document has rules, exceptions, and references to other documents. A spoken explanation might only make sense alongside what someone is showing on screen.
Our hypothesis was that graphs could preserve and connect this structure far better than a collection of independently retrieved vectors.
But “put it in a graph” is where a lot of explanations stop, and where another difficult problem starts.
The more detail you preserve, the larger and denser that graph becomes. A question might require one precise fact. Another might require following relationships across several sources. You need a way to find the relevant evidence without wandering through every possible connection.
After all, the time complexity of Dijkstra’s algorithm is O(E + V log V).
That was our second idea: build a compressed representation of the graph—a graphon—to guide retrieval through it.
The graph captures the details and their relationships. The graphon gives us a way to reason about the larger structure and use it to guide where we look. These two pieces have to work together. A rich representation is only useful if you can retrieve from it effectively.
Text version
The same scrapbook comes back, its pages intact, as one patch of a larger fabric built from forty years of family files. Four more sources join it: the 2019 Sunday dinner video with its moments, a photo of Mom outside her school in 1979, the index of home movies and her brother’s texts. Threads join specific parts of them:
Asked “How far did Mom really walk to school?”, the compact overview points to the cluster about Mom’s school days, and the evidence that comes back is the bus pass, a 1979 letter (“I can hear the bell from bed”) and Mom’s own telling from 1998, when it was still “about a mile”, each linked to its source. By 2019 it was five miles, uphill both ways.
From ideas to a system
Then came the engineering.
We spent the last year or so turning these ideas into a system that could ingest real data, build and maintain that structure, and answer questions over it at scale. The system has to handle different file types, incorporate new information, and trace retrieved evidence back to the source. It has to do this at a cost and speed that make it practical to use.
The test is whether this work produces better answers.
Can it find a detail buried in a video? Connect that detail to an explanation in another source? Recover enough evidence to answer a question completely? And how does it compare with a well-tuned retrieval stack on the same data?
We think the results speak for themselves.
the benchmarks
Results
The most accurate memory system on every benchmark, across video, audio and text, at a fraction of the cost of full context.
ATM-Bench ↗
The first benchmark for multimodal, multi-source personalized referential memory QA over 3.3 GB of raw multimodal data spanning ~4 years, with evidence-grounded retrieval and answering.
Graphon is #1 and #2 on the leaderboard.
ATM-Bench Hard ↗
ATM-Bench’s 31 hardest questions. Each needs many pieces of evidence pulled together across years of emails, photos and videos. In the paper that introduced it, no system reached 20%.
Graphon scores 65.6 with 66.6% Recall@10, ahead of every memory system and coding agent on the board. The best coding agent, Antigravity with Gemini 3.7 Flash, scores 62.9.
All runs
| System | Type · model | QA score | Recall@10 |
|---|---|---|---|
| Graphon V1 | Memory Graphon | 65.6 | 66.6 |
| Memexa v2 | Memory DeepSeek V4.1 | 63.6 | 63.0 |
| Antigravity | Coding agent Gemini 3.7 Flash (high) | 62.9 | – |
| Claude Code | Coding agent Claude Fable 5.1 (high) | 61.0 | – |
| Codex | Coding agent GPT-5.6 Sol (medium) | 58.8 | – |
| Kimi Code | Coding agent Kimi K3-256k (high) | 52.5 | – |
| OpenCode | Coding agent Qwen3.8-Flash-Next (xhigh) | 51.7 | – |
| Pi | Coding agent Qwen3.8-Flash-Next (xhigh) | 51.6 | – |
| OpenClaw | Coding agent Kimi K2.5 | 25.4 | – |
| A-Mem | Memory DeepSeek-V4-flash | 16.7 | 38.5 |
| ATM-RAG | RAG Qwen3-VL-8B-Instruct | 13.8 | 30.4 |
| MemoryOS | Memory Qwen3-VL-8B-Instruct | 13.7 | 32.7 |
| MemPalace | Memory DeepSeek-V4-flash | 13.6 | 28.9 |
| HippoRAG2 | RAG DeepSeek-V4-flash | 12.3 | 32.2 |
| Mem0 | Memory Qwen3-VL-8B-Instruct | 9.2 | 23.7 |
| SimpleMem | Memory Qwen3-VL-8B-Instruct | 3.2 | 7.0 |
Best run per system or agent harness, from the public ATM-Bench leaderboard’s Hard track. Coding agents report no Recall@10. Oracle rows, which give the model the gold evidence, are left out.
LoCoMo
A benchmark for very long-term conversational memory: dialogues of about 600 turns across up to 32 sessions, with questions about what was said, when, and how it connects.
Graphon redraws the cost-accuracy Pareto frontier: 94.0% accuracy at 7.9K tokens per question, more accurate than full context with less than half the tokens. Every answer (JSON) ↓
ConvoMem
A benchmark of 75,336 question-answer pairs over long conversation histories, testing user facts, assistant recall, preferences, facts that change, implicit connections, and knowing when not to answer.
Graphon pushes the cost-accuracy Pareto frontier up: 91.0% accuracy at 8.9K tokens per question, more accurate than full context with a twentieth of the tokens. Every answer (JSON) ↓
LongMemEval
A benchmark of 500 questions over long chat histories of about 50 sessions each, testing recall of what the user and the assistant said, reasoning across sessions and over time, facts that change, and preferences.
Graphon pushes the cost-accuracy Pareto frontier up: 92.8% accuracy at 15.1K tokens per question, more accurate than full context with about a seventh of the tokens.
Maximum accuracy
The frontier above is Graphon tuned for efficiency. Graphon also offers modes with deeper graph reasoning, which spend more graph traversals for higher accuracy. In that mode it answers 481 of the 500 questions correctly (96.2%), the highest published score.
| System | As reported | Accuracy |
|---|---|---|
| Graphon | Every answer (JSON) ↓ 481 of 500 | 96.2% |
| Agent Zero Memory | Research paper ↗ | 95.6% |
| Synap | Self-reported ↗ | 95.6% |
| OMEGA | Self-reported ↗ the mean of the per-type scores; 93.2% (466 of 500) overall | 95.4% |
| Mastra Observational Memory | Self-reported ↗ | 94.9% |
| Mem0 | Self-reported ↗ an independent re-run measured 73.8% | 94.4% |
| ByteRover | Self-reported ↗ | 92.8% |
| Hindsight | Self-reported ↗ | 91.4% |
| MemCurrent | Databricks ↗ | 90.2% |
| Emergence AI | Self-reported ↗ an internal configuration | 86.0% |
| Supermemory | Self-reported ↗ | 85.2% |
| EverMemOS | Self-reported ↗ a subset of the questions | 82.0% |
| Zep | Reported ↗ | 71.2% |
Accuracy is the share of the 500 questions an LLM judge grades correct with LongMemEval’s grading prompts. Retrieval scores such as recall are not counted. Graphon’s file lists, for every question, the question, the dataset’s answer, Graphon’s answer, and the judge’s verdict and reason.
BEAM ↗
A benchmark of 2,000 questions over conversations of up to 10 million tokens, testing ten memory abilities, including instructions and preferences, facts that change, contradictions, and the order of events.
At 10 million tokens, Graphon scores 73.0, ahead of Exabase M-1 (68.0), Mastra (66.4) and every other published result under BEAM’s standard evaluation. Every answer (JSON) ↓
All tiers
| System | 10M | 1M | 100K |
|---|---|---|---|
| Graphon | 73.0 | 80.7 | 83.3 |
| Mastra Observational Memory | 66.4 | 80.6 | 83.3 |
| Exabase M-1 | 68.0 | 75.0 | 76.9 |
| Hindsight | 64.1 | 73.9 | 73.4 |
| Mem0 Platform | 48.6 | 64.1 | – |
| Honcho | 40.9 | 61.8 | 63.0 |
| MemOS | 56.8 | – | – |
DolphinBench ↗
A benchmark for agent memory in action: three simulated knowledge workers with years of history each, and 600 tool-using tasks that pass only if the agent recalls and applies the right fact. Every run reports its total cost and latency alongside accuracy.
Graphon passes 504 of 600 tasks (84.0%) for $11.84 in total, with a median of 28.8 s a task. The best run on the public leaderboard, on the same model, passes 424 (70.7%) for $96.21.
That $11.84 is the whole bill for the run: Graphon’s indexing and search, plus every input and output token GPT 5.6 Luna spent working through the 600 tasks.
All runs
| Memory | Harness + model | Passed | Accuracy | Total cost | Median latency |
|---|
These results are a checkpoint on a much larger ambition: making the information we accumulate useful long after the moment we first recorded it.
Building with Graphon
Developers shouldn’t have to understand the mathematics underneath Graphon to build with it.
So we built an interface around concepts they already know: S3-style storage and search. Buckets, objects, files, queries. You put data in, and Graphon builds the structure that makes it searchable.
From there, you can run keyword and semantic searches, search using an image, or ask questions that require an agent to follow connections across multiple sources. A straightforward lookup and a deeper investigation use the same underlying platform.
- moms-scrapbook.pdf
- school-1979.jpg
- sunday-dinner-1998.mp4
- new-year-2009.mp4
- sunday-dinner-2019.mp4
- brother-texts.txt
- + 14,920 more
query “bus pass”
- moms-scrapbook.pdf · p. 2
Bus pass. Route 7. Two stops.
- letters-1979.pdf · July
I take the bus when it rains, which is silly.
- brother-texts.txt · 21:07
she had a bus pass!!
query “Mom exaggerating about school”
- brother-texts.txt · 21:04
five miles?? 😂
- new-year-2009.mp4 · 1:02:30
Her brother rolls his eyes
- moms-scrapbook.pdf · p. 4
The school was across the road.
query Mom’s map of the walk
- moms-scrapbook.pdf · p. 5
Mom’s map, for the grandkids, 2015
- school-1979.jpg
The real one: home is across the lane
question “How far did Mom really walk to school?”
- moms-scrapbook.pdf · p. 2
Route 7. Two stops.
the bus pass - school-1979.jpg
Home is the door across the lane.
the photo - sunday-dinner-1998.mp4 · 0:48:10
About a mile, I think.
Mom, 1998 - new-year-2009.mp4 · 1:02:00
Three miles, rain or shine.
Mom, 2009 - sunday-dinner-2019.mp4 · 1:12:40
Five miles. Uphill, both ways.
Mom, 2019
That means a developer can start with search over a collection of files and build toward something much more capable without assembling a separate system for every kind of question.
For a person, the ambition is the one we started with: being able to ask about your own world and find the pieces that matter.