Your agent logic is the interesting part. The plumbing isn't.
Getting an agent to work in a notebook takes an afternoon. Getting it to survive production means writing the same infrastructure every team writes. AEGIS is designed to be that infrastructure, so you can focus on your agents.
The problem
What you stop writing.
| What you end up building | What AEGIS is designed to provide | Where |
|---|---|---|
| Retry logic that will not pay twice | Retry classes declared per tool | Runtime |
| Saving state so a crash does not lose an hour of work | Checkpoints and leases | Runtime |
| A queue and a UI for human approval | Approval objects with an inbox | Guard |
| Hiding secrets from prompts | A credential broker in the gateway | Connect |
| Stopping a sub-agent from using a parent's access | Narrowing Mandates | Guard |
| Provider switching and fallback code | Model routes | Intelligence |
| Working out what happened after a failure | One record, and replay | Trace |
The interface
A denial is just a result you handle.
Governance tools often feel like an obstacle bolted on later. The goal here is an error model and object model that feel like ordinary engineering.
- Typed errors with stable codes
- Immutable agent versions, pinned per run
- Event stream per execution
- Local tests with mock tools, planned
# API design preview. This package is not published.
from aegis import Aegis, PolicyDenied
client = Aegis()
run = client.tasks.create(
agent="invoice-review@4",
objective="Review overdue vendor invoices",
mandate={
"tools": ["records.search", "ap.schedule_payment"],
"unattended_limit_usd": 5000,
"expires_in": "24h",
},
)
try:
result = run.wait()
except PolicyDenied as denied:
# A denial is a typed result you can handle in code.
print(denied.reason) # vendor_not_in_masterYour framework
Keep what you already use.
AEGIS is designed to run agents defined in its own configuration, and a Phase 2 adapter is planned so that actions from existing frameworks can pass through Guard. LangGraph is the likely first target.
No lock-in by design
Bring your keys. Take your data.
You keep your model provider relationship, and traces are planned to export through OpenTelemetry. There is no token markup, so we have no reason to steer your model choice.
Getting started
What you can do today.
There is no SDK to install yet.
Tell us what is wrong with the API design.
It is much cheaper to change now. Developers who join early access can help shape it.