Build AI agents that
don't lose their work.
JamJet is the durable runtime for AI agents — with checkpoint replay,
full execution traces, and runtime-enforced reliability.
Write Python. Run with Rust reliability.
Your agents crash. Ours recover.
Every step is checkpointed as it happens. When a worker dies mid-run, the scheduler reclaims the lease and resumes exactly where it left off.
$ jamjet run research-pipeline.yaml ▸ Starting execution exec_7f3a... ▸ [Plan] ✓ completed 420ms ▸ [Research] ✓ completed 1.2s ▸ [Analyze] ✗ worker crashed ▸ Lease expired · reclaiming... ▸ [Analyze] ✓ resumed 890ms ▸ [Review] ✓ completed 650ms ▸ [Synthesize] ✓ completed 1.1s ▸ Execution complete · 5/5 nodes · 0 events lost
The Analyze step fails unexpectedly.
The scheduler detects the failure and reclaims work.
No rerun of completed steps. Picks up exactly where it stopped.
All 5 nodes complete. Full execution integrity preserved.
Production outcomes,
not feature lists
Recover from crashes without rerunning everything
Event-sourced execution means completed steps are never repeated. Resume from the exact point of failure.
Pause safely for human approval
Native human-in-the-loop nodes. The process sleeps durably until a human responds — even across restarts.
Replay any execution to debug exactly what happened
Full checkpoint replay with OpenTelemetry traces. Per-node cost attribution. No more guessing.
Connect tools and external agents with MCP + A2A
Both protocols built in — client and server. Connect to any tool, delegate to any agent.
Enforce cost and iteration limits in the runtime
Token budgets, cost caps, iteration limits. Enforced by the Rust runtime, not by convention.
Evaluate agents like software, not vibes
LLM-as-judge, assertion, latency, and cost scorers. Run evals as workflow nodes. CI exit codes on regression.
Deploy with enterprise controls when needed
Tenant isolation, PII redaction, OAuth 2.0 delegation, mTLS federation — enforced at the runtime layer.
Python you know.
Durability you don't
have to build.
Every @task is checkpointed. Every workflow survives crashes. Human approval gates pause durably. Cost limits are enforced by the runtime.
from jamjet import task, workflow, approval @task(model="claude-sonnet-4-6", max_cost=0.50) async def analyze(data: dict) -> Report: """Analyze data — checkpointed, cost-capped.""" @workflow async def pipeline(raw: dict): report = await analyze(raw) # crash-safe await approval(report) # durable pause return await publish(report) # resumes here
Coming from LangGraph?
TypedDict → pydantic.BaseModel. StateGraph → Workflow. Familiar patterns, stronger guarantees.
Not optional checkpoint plumbing. Every step is durable by default, enforced by the Rust runtime.
Typed schemas at every boundary. Catch errors before they propagate through the graph.
Cost caps and iteration budgets enforced by the scheduler, not by your code.
At a glance
Also migrating from:
CrewAI → OpenAI Agents SDK →Built for your role
Ship agents that survive production
Use your Python mental model, but get durable execution, replayable traces, and runtime-enforced safety. Start with @task, scale to full workflows without rewrites.
Standardize agent infrastructure
One runtime for reliability, observability, eval, and governance. Tenant isolation, PII redaction, OAuth delegation, and mTLS — all enforced at the Rust layer.
Enterprise controls →Run reproducible experiments
The same runtime properties that make agents reliable in production make experiments reproducible in research. ExperimentGrid, checkpoint replay, publication-ready export.
Explore the research toolkit →Reliable agents for production.
Reproducible agents for research.
Same runtime.
Sweep 6 strategies across models and seeds in one command. Parallel execution with durable checkpoints across every condition.
Replay the exact failed run. Fork with modified inputs for ablations. No need to rebuild infrastructure or re-run completed conditions.
Paper-ready LaTeX tables with mean ± std, CSV, and JSON. From experiment to results without custom scripts or manual formatting.
Enterprise-grade when you need it
All enforced at the Rust runtime layer, not by convention.
Security & enterprise docs →