Resident, not replayed
The run is held once and referenced by handle. Turn forty does not pay to re-read turns one through thirty-nine, which is where a long agent loop quietly spends its budget.
O(1) per turnKeep the whole run resident and addressable, so the model stops re-reading what it knows.
Runs on your metal, too.
Trusted by 5,000+ teams running long agents
HalcyonNorthwindQuarryTessellateLumen&FoldWhat sits in the aperture
Every turn, every tool result and every document stays where the model left it. Recall addresses them directly, so a long run costs what a short one does.
The run is held once and referenced by handle. Turn forty does not pay to re-read turns one through thirty-nine, which is where a long agent loop quietly spends its budget.
O(1) per turnAsk for the third tool call or the paragraph a claim came from and get exactly that back. The window is an index, not one long string you slice by hand.
Span-level readsYou decide what ages out and what is pinned for the life of the run. Nothing disappears because a buffer filled up while you were not looking.
Explicit policyInvented product, invented figures. Nothing here was measured.
Three calls
One call per run returns a handle. Everything after that is written against it, including the turns your framework would otherwise be concatenating for you.
Turns, tool results and documents go in as spans with whatever metadata you want to query them by later. Writes are append-only, so a replay is exact.
The model reads through the window instead of through your prompt. You send the question and the handle, and nothing else travels.
Eviction policy
Nothing ages out on its own schedule. Set the policy once per run and the window holds to it.
Applies to the whole run
Plans
Questions
No. A vector store is for finding things you did not know you had. A window is for holding things you already put there, in order, and reading them back by address. You would sensibly use both.
The policy you set decides. Pinned spans stay, the oldest unpinned spans go, and with summarise-on-evict a stub is left in their place so the order of the run is still readable.
Only enough to be handed a window id. Everything else is the runtime's job, so the same window works across whichever model you route to that day.