I Needed a Workflow Engine for AI Agents. None of Them Fit. So I Built One.

I Needed a Workflow Engine for AI Agents. None of Them Fit. So I Built One.

The engineering case against every existing workflow engine for AI agents can be stated simply: they all assume you know the workflow graph before you start. Airflow, Temporal, BullMQ, Prefect — all of them treat the DAG as immutable once a run begins. AI agents break this assumption by design. An agent's analysis of what it's working on determines what the next steps should be. A simple task skips design review; a payments change spawns a security audit; an API schema change spawns contract validation. None of that is knowable at workflow-start time, and none of those engines have a graceful answer for it.

The author of vexdo documents how this limitation forced a custom build, and what the architecture looks like when you treat runtime graph extension as a first-class feature rather than an edge case. The central abstraction is a "living graph" — a DAG where completing a node can output new nodes to add, each with their own dependencies, retry policies, and compensation logic. The result preserves the parallelism that makes agents fast while giving the system the observability and recoverability of a proper workflow engine: every node is separately trackable and retryable, not a black box that either completes or fails.

This is Part 3 of a series, and it's the most architecturally substantive installment. For teams currently stretching Temporal or Airflow to fit agent pipelines — and hitting the graph-immutability wall — the "living graph" framing provides both a vocabulary and a design template worth reading before the next rewrite.

Read more on DEV Community →