Burr
Build stateful decision-making applications (chatbots, agents, simulations) as an explicit state machine of @action-decorated functions with pluggable persisters, a Tracker UI for inspection, OpenTelemetry integration, streaming actions, and fork-and-replay for debugging and evaluation.
Description
Burr is a framework for developing stateful AI applications, donated by DAGWorks to the Apache Software Foundation and incubating there. An Application is a state machine in which @action-decorated functions read from and write to a typed State; transitions between actions are explicit. Built-in features: streaming actions for low time-to-first-token; pluggable Persisters (e.g. SQLLitePersister) for save/load and resume-from-checkpoint; fork and replay (initialize_from with fork_from_app_id) for debugging and evaluation; a tracking UI; and OpenTelemetry integration. Framework-agnostic — works with any LLM library or non-LLM use case.
Solution
Explicit state machine of actions over typed state. Each step the runtime selects the next @action function based on declared transitions and current state, executes it, applies its state mutations, fires hooks, and records to the configured Persister. Streaming actions return a StreamingResultContainer for incremental consumption. Resumption uses initialize_from(persister, app_id=..., resume_at_next_action=True) to rebuild State from a persisted checkpoint. Fork-and-replay rewinds to any past step via fork_from_app_id, supporting debugging and eval. OpenTelemetry traces and the Tracker UI provide observability.
Primary use cases
- explicit-state-machine chatbots and agents
- RAG and decision pipelines that must persist and resume
- debugging-by-replay via fork-from-app
- OpenTelemetry-instrumented production decision flows
Open the full interactive page →
Diagram, neighbourhood map, code examples, related patterns and full provenance.