Built on Oliver · AI SRE & security

Bring your own agent.

There is no product to buy here. Point the coding agent your team already uses at Oliver, and it investigates incidents and hunts threats against your own data — because the engine underneath can answer everything it asks at once.

Claude Code Codex Cursor open models
The shape of the work

An agent is only as good as how much it can afford to ask.

A real investigation is never one question. It is what changed, where, for whom, against which baseline, and is it still getting worse — dozens of questions, and the follow-ups they produce. Asked one at a time, that is minutes of waiting and a token bill. Asked together, it is one pass over the data.

the question “Why did checkout get slow at 14:12?”
what the agent actually asks — all at once
one pass every answer together
Batch execution is what makes an agent practical rather than expensive. How it works
What it does with that

The same engine, two jobs.

AI SRE

The incident, investigated

What broke, what changed in the minutes before it, which customers felt it, and whether it is still getting worse. Metrics, logs and traces answer in one query rather than across three tools with three query languages.

  • Correlate a latency change against every deploy in the window
  • Follow one slow request from the edge to the database call
  • Compare this hour to the same hour last week, per service
AI SecOps

The hunt, across everything

Chase an indicator through the whole history rather than the window you could afford to keep, and evaluate a detection pack in a single pass instead of one query per rule.

  • Run a whole rule library against a wide window at once
  • Trace an identity or a host through every event it touched
  • Keep the evidence trail the answer was built from
Typed decisions · with Jev

1.8 million rows. Sixty decisions.

Not every judgement needs a conversation. The engine collapses a day of errors to the handful of things that are genuinely distinct; Jev — TypeSafe’s tiny typed‑decision model — judges each one once, and the answer comes back as a column so the query keeps going. Calls scale with what is distinct, never with what is stored.

the enginescan & group
1,832,070 error rows
Jevone call per key
60 distinct templates
the foldre‑group
6 categories, ranked
what it gets asked
Error triagecategory, severity, does this page someone
Long‑tail normalisationthree thousand user agents into four groups — cached by value, free from day two
Alert triagethe detector flags twelve series; which deserve a human
Incident clustering“same underlying failure?” — six services, one incident
Ingest‑time enrichmentclassify once as rows land; every later query is an ordinary group‑by
The agent asks the questions. This is how the data gets small enough to answer them.
Handing over the keys

An agent you can let near production.

scope

The key carries the policy

Every key has a scope compiled into the query itself before it runs — narrowed, not merely refused — so a least‑privilege key is safe to hand to something that writes its own queries.

tools

A fence on the tool call

The agent reaches Oliver over MCP, and the same discipline applies to every other tool it can call: arguments pinned, schemas held, exfiltration paths closed once it has read something untrusted.

evidence

Every answer is attributable

What the agent asked, what it was allowed to see, and what came back — kept, so a conclusion can be checked rather than trusted.

What you point at it

The engine doesn’t care which model you brought.

Claude Code, Codex and Cursor all speak MCP, so pointing them at Oliver is a configuration change rather than a project. Open models work the same way — and when one model is not enough, the Swarm runs many small ones against the engine together and makes them cite their work.

Give your agent something worth querying.