Stevora

Introduction

Durable execution runtime for AI agent workflows

What is Stevora?

Stevora is a durable execution runtime purpose-built for AI agent workflows. It provides the infrastructure layer that ensures your AI agents run reliably, recover from failures, and stay within budget — so you can focus on building intelligent workflows instead of wrestling with orchestration plumbing.

Why Stevora?

Building production AI agents is hard. LLM calls fail, APIs time out, costs spiral, and workflows need human oversight. Stevora solves these problems with:

  • 6 Step Types — Task, Wait, Condition, External Event, LLM, and Approval steps give you the building blocks for any workflow
  • Durable Execution — Every step is checkpointed. Failures retry automatically with exponential backoff. Workflows resume exactly where they left off
  • LLM Orchestration — First-class support for OpenAI and Anthropic with tool calling, guardrails, model fallback, and structured outputs
  • Cost Tracking — Real-time per-run cost aggregation across all LLM calls so you always know what you're spending
  • Human-in-the-Loop — Approval steps let humans review, edit, or reject AI decisions before they execute
  • Webhook Delivery — HMAC-signed webhook notifications for workflow lifecycle events

Architecture Overview

┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│  Your App   │────▶│   Stevora API    │────▶│  PostgreSQL  │
│  (SDK)      │◀────│   (Fastify)      │     │  (State)     │
└─────────────┘     └──────┬───────────┘     └─────────────┘

                    ┌──────▼───────────┐     ┌─────────────┐
                    │  Execution Engine │────▶│    Redis     │
                    │  (BullMQ Workers)│     │  (Queues)    │
                    └──────────────────┘     └─────────────┘

Your application submits workflow definitions and starts runs through the REST API (or TypeScript SDK). The execution engine picks up work from BullMQ queues, executes steps durably with PostgreSQL-backed state, and reports results back through the API and webhooks.