in-process
enforcement
4
actor types
SOC 2
control evidence
1.0 Governance
Policy as code, or authored in the dashboard
What you get
A policy is a versioned document — written as YAML in your repository, or drafted in the dashboard. Both compile through the same pipeline into the same guardrail rows, so a dashboard-authored policy reaches the SDK exactly like a Git-authored one.
2.0 Governance
Enforced in your runtime, not on ours
What you get
The rules that are pure functions of the request — regex, secret egress, schema contract, model governance, topic boundary — compile into a bundle the SDK evaluates in-process. The call is refused inside your own service. Nothing proxies through Zespan, and no agent is rebuilt on our platform to earn the control.
3.0 Governance
A risky call waits for a person
What you get
An action with real consequences pauses instead of proceeding. awaitApproval holds the tool call while a named reviewer decides in the dashboard, and the decision is recorded against them rather than against the agent that asked.
4.0 Governance
An audit trail that names the actor
What you get
Every entry carries an actor type — a person, an API key, the system itself, or Zespan staff — so a scheduled job is never filed under whoever happened to trigger it. SOC 2 control evidence is assembled from that same trail and exports as JSON or HTML.
Setup
Under 5 minutes,
two lines of code.
No forking and no architecture changes. Traces appear within seconds of the first agent run, with cost attribution, eval scores, and anomaly alerts on by default.
Common questions
Do I have to rebuild my agents on Zespan to get enforcement?
No. Policies compile to a bundle your existing SDK evaluates in-process, so the block happens inside your own service. Zespan is not in the request path — there is no proxy or gateway to route through, and your agents keep whatever framework they already use.
What happens if Zespan is unreachable?
The SDK keeps evaluating the last bundle it successfully loaded, so a control-plane outage cannot turn into a global false deny. Before the very first bundle loads it fails closed instead — answering "allowed" at that point would be indistinguishable from a project with no policies at all.
Can every guardrail type be evaluated locally?
No, and the bundle says so. Regex, secret egress, schema contract, model governance, and topic boundary are pure functions of the request and run locally. An LLM judge needs a model call and a budget needs a shared counter, so those stay server-side and are listed under remoteTypes — the SDK calls out rather than assuming it saw the whole policy.
Is Zespan SOC 2 certified?
Zespan produces SOC 2 control evidence — CC6.1, CC7.2, and CC8.1 — collected from your live audit trail and exportable as JSON or HTML for your own auditors. That is evidence for your controls, which is not the same thing as Zespan holding a certification.
Do dashboard-authored guardrails reach the SDK bundle?
Only rules that came from a policy do. A hand-built guardrail is evaluated server-side, while policy-derived rules are the ones compiled into the bundle. That boundary is what lets the two writers coexist without either one pruning the other's rules.
Explore more features
All features →