Know where your agent can hurt you. Then make it unable to.
For customer-facing and internal agents alike. Protect wraps any stack and does two jobs: it maps your agent's exposure before run time, and it guards every action during it.
The exposure surface, before it ships.
At onboarding, Protect profiles the agent three ways: declared purpose, observed traffic, and analysis of the agent's own code and system instructions. Every task on its list is mapped against the duties and statutes it can violate, by jurisdiction. You see where the law can hurt you before the agent takes its first action, and the right legal brain is matched to what the agent actually is, not what the intake form said.
Every action passes the guard. Even offline.
Approvals, denials, pricing, screening, escalations. If your agent decides it, the guard sees it first. This is the product for the agents your customers never meet.
An action that cannot be undone never gets a guess. It gets a verdict, or it gets a human.
A signed local rules bundle keeps deciding when Aegis is unreachable, and a disk spool keeps recording. Zero silent decision loss is the SLO the whole design serves.
Open, closed, or degraded-local. Choosing fail-open is itself a recorded decision, which is exactly what your auditor will want to see.
# wrap the agent. that is the integration. from aegis import guard @guard(profile="collections-agent", jurisdiction="auto") def execute(task): ... # ambiguous actions raise HoldForReview with the verdict attached