attenu

Your agents delegate.
Their authority shouldn’t.

A library inside your agent app: each sub-agent gets only the permissions its task needs, enforced at every delegation, with an audit log your auditor verifies offline.

Book the 20-minute walkthrough See what your auditor gets →

or just reply to the email that brought you here.

Twelve agent frameworks, integrated unmodified. Three enforced live on real apps. Nothing of ours in the deny path.

How it works

The guard

Runs in your process. When one agent hands work to another, the sub-agent gets only the permissions its task needs — a subset of its parent’s, never more. Hard limits, expiry, default deny on unknown tools. No proxy, and no network call in the deny path.

The engine

Computes the permission set from your declared roster and tool list — never from prompt text. You see and edit every permission before anything is enforced. Payments, mail, deletes and code execution are never granted automatically — only by a named person.

The console

See every run as a delegation graph, decide what stays held, and verify the audit log — offline, with our software absent.

observe (records only, blocks nothing) → shadow (evaluates, still blocks nothing) → enforce. One flag back.

Works with LangGraph, OpenAI Agents SDK, Google ADK, CrewAI, AutoGen, Claude Agent SDK, Pydantic AI, smolagents, AWS Strands, LlamaIndex, Semantic Kernel and Agno — integrated unmodified.

What’s proven — and what isn’t

The 20 minutes

A screen-share on a nine-agent run: watch a sub-agent try a call outside its permissions and get denied with a readable reason; grant a held payment yourself and watch the same call pass; then export the audit log and verify it in a clean shell — with our software absent. Bring nothing.

If it looks like your problem, the next step is one week on one of your own apps — one operator on your side, observe first, one flag back — after we have looked at your handoffs together.

Book the 20-minute walkthrough