Saphan StudioDocs
Security/Guardrails

Limits

What the guardrail does not do in this release.

limitwhat it means for you
No built-in rulesJudging is only as good as the plugin you attach. Without one, the guardrail records but judges nothing.
A plugin can send content elsewhereNothing in the product restricts a plugin's own network access. The shipped NeMo adapter sends the conversation to your NeMo service by design.
One plugin, one decision at a timeEach proxy runs one plugin process, and decisions are serialised. A slow plugin slows the agent.
Enforce holds whole responsesIn enforce a streamed response is buffered until the decision, so the agent sees it all at once.
Some traffic is not judgedError replies from the model provider and model-listing requests pass unjudged, in every mode. They are recorded.
In observe, a plugin failure lets the call throughThe failure is recorded. Requests the proxy cannot read at all are refused in every mode.
Pointed, not forced, on most lanesOutside the sealed Linux wall, an agent that ignores the proxy address is not stopped at the network layer. See Coverage.
Not every agent is coveredcursor is not covered; qwen-code is not covered inside the egress wall; codex and droid are covered on Linux only.
Some coverage is unprovenThe remote Mac, the agent harness and droid inside the wall are built but not yet exercised end to end.
Plugin decisions are not in the event logThe console's event log does not show guardrail decisions in this release. Read them from the run's audit file, or summarise it with saphan guardrail stats.
No verification command for the transcript chainThe model transcript is hash-chained, but no command checks the chain on demand. See Session recording.