Ship AI agents to production.
Without the horror stories.
Exactly-once execution and human approval for every AI action. Drop AEGIS in front of any LangGraph, CrewAI, or AutoGen agent in an afternoon.
The problem
Every agent framework ships without a safety net.
These are not edge cases. They are the default behavior of every LangGraph, AutoGen, and CrewAI pipeline in production today.
Duplicate execution
Network retries and crashes trigger the same action twice. Your customer gets charged twice. The email goes out twice.
No human checkpoint
High-stakes actions fire automatically. One hallucination causes an irreversible outcome with no approval gate.
Zero visibility
3,000 events in a night, no audit trail, no cost breakdown. No way to explain what happened to a client.
No compliance trail
A regulator asks what your agent did last Tuesday. You have logs, but no structured queryable record. That's a liability.
How it works
Three guarantees, one middleware.
AEGIS sits between your agent and the world. Every action passes through three enforcement layers before anything executes.
Actions fire once.
Idempotency keys + transactional outbox ensure every action executes once, even across retries, crashes, and 500 concurrent requests.
PENDING → COMMITTED → FAILED · SELECT FOR UPDATE SKIP LOCKED
Humans stay in control.
Block any action until a person — or a policy — explicitly clears it. Thread-safe, tenant-isolated, auditable by default.
/approve · /reject · /status/{thread_id}
Full cost visibility.
Every event is timestamped, attributed to a tenant, and billed to a plan. Queryable in real time. Defensible to regulators.
GET /api/v1/billing/usage · per-event, no seats
Quickstart
From install to protected in 5 lines.
from aegis_hitl import AegisClient
async with AegisClient(
"https://aegis-idempotency-production.up.railway.app",
api_key="sk_live_...",
) as client:
# Same key twice = one execution. 202 the first time, 409 after.
response = await client.approve(
"550e8400-e29b-41d4",
thread_id="order-42",
)
Works with LangGraph, CrewAI, AutoGen, n8n, or plain Python. Framework-agnostic REST API.
Technical moat
Hard to replicate. Easy to integrate.
The edge cases that kill DIY implementations are already solved.
Pricing
Pay for what you use.
Metered per event. No seats. No minimums. No surprise overages.
Billing tracked via GET /api/v1/billing/usage · Queryable in real time
Get your free API key.
100 free events/month. No credit card. The key is shown once — copy it.
Or straight from the terminal — this works right now:
curl -X POST https://aegis-idempotency-production.up.railway.app/api/v1/accounts/signup -H "Content-Type: application/json" -d '{"name":"Your Name","email":"you@example.com"}'
Every endpoint is browsable and executable in the live API docs — no install, no key needed to look around.