AEGIS Get API key
Early access · SDK on PyPI · exactly-once by design

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.

$ pip install aegis-idempotency

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.

01

Duplicate execution

Network retries and crashes trigger the same action twice. Your customer gets charged twice. The email goes out twice.

02

No human checkpoint

High-stakes actions fire automatically. One hallucination causes an irreversible outcome with no approval gate.

03

Zero visibility

3,000 events in a night, no audit trail, no cost breakdown. No way to explain what happened to a client.

04

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.

Exactly-once

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
HITL gate

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}
Metered billing

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.

agent.py
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.

Idempotency middleware PENDING → COMMITTED → FAILED state machine. Concurrent requests for the same key block and wait — not collide.
Transactional outbox Events written atomically with the DB transaction. Relay publishes exactly once even on crash.
Tenant isolation Bearer token is the only source of truth for tenant_id. Body/header spoofing returns 403.
Concurrency tested Concurrency, crash-recovery and exactly-once billing suites run against a real PostgreSQL (Testcontainers, not mocks). Correctness-first; self-host for high throughput.
SDK on PyPI pip install aegis-idempotency · v0.1.2 · works with any HTTP-capable runtime.
12
endpoints live
0.1.2
SDK on PyPI
100
free events / month
Live
hosted API · try it now

Pricing

Pay for what you use.

Metered per event. No seats. No minimums. No surprise overages.

Free
$0
100 events / mo Evaluation & side projects Start free
Starter
$0.05 / event
1,000 events / mo Early-stage teams Get started
Most popular Pro
$29 / month
10,000 events / mo · $0.03 / event beyond Growing products · cancel anytime Subscribe — $29/mo
Enterprise
$0.01 / event
Unlimited Production scale Contact us

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.