Flagship use case
Vertical Cursor-style agents need a context runtime.
A coding copilot understands files, symbols, diffs, and local repo state. A vertical agent needs the same immediacy for its domain memory — matters, tickets, claims, incidents, approvals, and the decisions a team already made. MatrixArk is the drop-in context runtime that assembles that memory into a prompt-ready pack, keeps stale context out, and lets you replay exactly what the model saw.
Local workspace context is enough for a copilot that edits code. It is not enough for an agent that answers a domain question, because the answer depends on what happened across sessions: which facts are still valid, what the team already approved, what was promised to a customer, which source version is canonical, and which prior action should not be repeated. That is a memory problem, not a search problem.
The customer contract should stay small. A vertical harness sends a raw query plus lightweight hints; MatrixArk owns extraction, time-window planning, permission checks, freshness, and context-pack assembly. Teams do not define schemas, index names, or query operators — they ask for context and write back what happened.
What the agent actually needs remembered
- Timeline — the ordered events that led to the current state, not just the latest snapshot.
- Freshness — which facts are valid now and which have been superseded.
- Open loops — commitments, escalations, and unfinished tasks still in flight.
- Replay — the exact context, sources, and blocked facts behind any past answer.
Q: "Can we approve another GPU batch?"
Without a context runtime:
- agent pastes old invoices + a stale approval doc
- prompt carries noisy, out-of-date history
- risk: answers against last month's budget
With TemporalStore:
- Alice approved $50,000 on 2026-06-10 (valid until 2026-07-10)
- $18,420 already committed against it
- $31,580 remaining -> answer grounded in what is true now
Two ways vertical harnesses integrate
Same mental model in both: the harness keeps its UX; MatrixArk owns context planning, freshness, and replay.
Option 1: a platform vendor integrates the runtime directly into its product loop. Option 2: an enterprise already on a copilot adds it as a sidecar through extension hooks or an MCP tool. Both send a query before the model call and write outcomes back after.
Ingestion stays low-friction. If MatrixArk receives only the raw query plus local hints, it still returns a usable pack from default policy. Every additional stream — domain events, tool outputs, confirmations, approvals — is just another hook that improves freshness and continuity without touching the harness UI. Writes are lightweight: typed temporal records land first, affected summaries are marked dirty, and summary refresh happens off the serving path.
// Before the model call: ask for a context pack.
get_context_pack({
workspace: "company_a/platform/project_1",
raw_user_query: "Can we approve another GPU batch?",
hints: { active_page: "project_budget", selected_entity: "project_1" },
max_context_tokens: 3000
})
// After the answer: teach the next request what happened.
ingest_context_event({
workspace: "company_a/platform/project_1",
event_type: "assistant_answer_final",
happened_at: "2026-06-12T10:00:04Z",
data: {
answer_summary: "Another GPU batch is fine while spend stays under $50,000.",
accepted_by_user: true,
memory_updates: ["Check Alice's 2026-06-10 approval before the next purchase"]
}
})
Filters first, then semantic scoring
A filesystem is intuitive but it is not a serving model for time-aware context. Keep the path experience; compile it into a filter-first temporal namespace.
Plan
MatrixArk turns the raw query into scope, intent, time window, and token budget — using a small planner LLM, or the harness's own first-pass plan.
Filter
TemporalStore removes invalid candidates first: wrong tenant or scope, expired lifecycle, missing permission, stale source, out-of-window.
Assemble
Similarity scoring runs only over the small valid set; the winner becomes a compact pack under the token budget, with a replay id.
An external vector index and object storage stay optional. Add ANN when fanout or
cross-tree recall demands it, and keep raw PDFs, transcripts, and large payloads in
object storage by reference. But the first serving path does not need either:
the final prompt is the subset of candidates that passed the time, scope, lifecycle,
permission, and budget rules — not whatever path was easiest to browse.
/company_a/platform/project_1/approvals/alice-budget.md
TemporalStore node:
node_id = node_approval_001
scope = [company_a, platform, project_1, approvals]
valid_from = 2026-06-10T09:30:00Z
lifecycle = active
object_ref = object://company-a/raw/approvals/alice-budget.md
summary = "Alice approved a $50,000 GPU budget for Project 1."
Not every question belongs on the prompt-time path. Broad, exploratory work — long-range reports, cross-team scans, arbitrary joins — should be routed elsewhere and, when useful, written back as a summary that does fit the context path. TemporalStore's job is to protect the request: bounded timelines, latest approvals, open commitments, stale-memory blocking, and declared indexed filters.
That is why vertical agents are a natural fit. Their hard problem is not generic chat memory — it is domain context: custom objects, time validity, team decisions, approvals, source versions, permissions, and replayable prompt inputs. TemporalStore is the open-source engine that serves it; see temporalstore.ai for the store itself.