Research Project

Durable Agent Runtime Lab

A comparative study on agentic reliability — evaluating conventional model-driven loops against deterministic, event-sourced workflow engines.

$ uv sync --extra dev
$ uv run dar experiment run --config experiments/configs/quickstart.yaml
$ uv run dar experiment run --config experiments/configs/quickstart.yaml --provider openai

The Thesis

"Long-horizon AI-agent reliability improves when stochastic model decisions are compiled into typed, deterministic, durable, verifiable workflows rather than executed through an unconstrained conversational tool loop."

Two Runtimes Compared

⟳ Baseline Runtime

The conventional ReAct-style loop used by most current agent frameworks.

  • [✗] Ad-hoc string-based tool calls
  • [✗] Volatile execution state
  • [✗] Opaque model reasoning
  • [✗] Brittle error recovery

⊞ Durable Runtime

A deterministic engine treating the model as a stochastic proposal generator within a formal state machine.

  • [✓] Typed Goal Specs & Pydantic DAGs
  • [✓] Append-only event ledger (hash chained)
  • [✓] Proposal → Verify → Commit cycle
  • [✓] Idempotent sandboxed execution

Architecture Pipeline

User Goal
↓
Goal Compiler
↓
Typed Plan DAG
↓
Deterministic Orchestrator
↓
Model Proposer
↓
Policy Verifier
↓
Sandbox Executor
↓
Event Ledger
256
Tests
19
Domain Models
6
Benchmarks
7
ADRs
2
Runtimes

▸ Quick Start

Terminal
# Clone and install
git clone https://github.com/rmax-ai/durable-agent-runtime-lab
cd durable-agent-runtime-lab
uv sync --extra dev

# Run tests
uv run pytest                # 256 tests

# Run an experiment (mock provider, no API key needed)
uv run dar experiment run --config experiments/configs/quickstart.yaml

# Run the same experiment with OpenAI (requires OPENAI_API_KEY)
UV_CACHE_DIR=.uv-cache uv run dar experiment run \
  --config experiments/configs/quickstart.yaml \
  --provider openai

# Generate the latest run report
uv run dar experiment report

Built with Modern Python

Python 3.12+Pydantic v2pytest + HypothesisSQLite + JSONLhttpxuvTyper CLI