OpenAI, Anthropic, Gemini, or your hosted model.
Keep your agent. Protect the action.
Wrap the tool that performs the write, or route a provider webhook through Salus. Your model, framework, agent loop, and backend stay yours.
from salus import Salus
salus = Salus() # reads SALUS_* environment variables
# do_refund is your existing tool implementation.
issue_refund = salus.protect(
"issue_refund",
do_refund,
side_effect=True,
risk="high",
)
# Dispatch "issue_refund" from your agent's tool loop.
Add Salus where your tools execute.
Salus belongs at the moment an agent hands an action to code that can change the outside world.
Framework, custom dispatcher, voice agent, or browser executor.
Checks the proposed action before execution.
The same provider, API, tool, or internal system.
Connect Salus to the tools you already use.
Choose the boundary your stack already exposes. The authorization model stays the same across each pattern.
Protect a Python callable or tool registry.
Wrap the functions that create side effects, or protect the framework tool list before you construct the agent.
salus.protect(...)
Policy checked before call
Route a provider action endpoint.
Place Salus between a voice or HTTP provider and the backend action endpoint. No SDK is required inside the conversational loop.
Vapi · Retell · HTTP
Forward only after allow
Protect any tool executor.
Evaluate any proposed function, API call, webhook, browser action, or custom tool immediately before it executes.
Function call · API request · Webhook · Computer action
Receipt attached to outcome
Salus fits into your existing stack.
Use a framework helper where one exists or protect the executor directly. Salus does not need to own the model call.
Framework-specific helpers keep setup short. The underlying runtime remains provider-agnostic, so a custom loop follows the same pattern.
See integration examples →Run in shadow or enforcement.
Run any protected action path in shadow to observe decisions, or enforcement to act on them before execution. Set the mode independently for each route.
The action continues while the decision and receipt are recorded.
SALUS_MODE=shadow
Allow, revise, escalate, or block according to the active policy.
SALUS_MODE=enforce
Your agents do the work. Salus keeps them under control.
Bring the agent you already run. We will help put the first action path behind Salus.