Home / Blog / Agentic AI

AGENTIC AI

Your Agent Framework Is a Black Box. A DAG Isn’t.

Why production agentic workflows often benefit from explicit orchestration, named tasks, independent retries, durable approval gates and an audit trail you can actually inspect.

DB
DataBridgeCrux Data + AI Engineering
August 5, 2026 · 10 min read

Most agent frameworks run a reasoning loop.

The model receives a task, decides to call a tool, gets a result, decides to call another, accumulates context, and eventually produces an answer.

It works, often impressively.

Then it fails, and you get a failed run and a transcript.

One tool call in twelve returned something unexpected, the model compensated in a way that was reasonable given what it had, and the output is wrong in a manner that is difficult to trace.

The retry restarts the whole thing, discarding the eleven calls that were fine.

Someone asks why the system answered what it did, and the honest response is that it is in the transcript somewhere.

The operational problem A reasoning loop can be an acceptable trade for exploratory work. It is a poor trade for a workload that runs on a schedule, touches production data and has to be explainable to someone who was not in the room.

The alternative is not new

The Apache Airflow project has made this argument publicly and in more detail than we will here, in a post titled Agentic Workloads on Airflow: Observable, Retryable, and Auditable by Design .

It is worth reading in full rather than in our paraphrase, and it comes with a working example.

The core move is to express the agentic workload as an orchestrated graph rather than as a loop.

Each model call becomes a named task. A fan-out becomes dynamic task mapping. Synthesis becomes a named task with its inputs recorded. A human review becomes an approval step inside the graph.

Software engineering team reviewing workflow architecture and orchestration
Explicit orchestration turns model calls, branches, synthesis and approval into individually observable workflow steps.

What that buys, concretely

Every step is a first-class artifact

Four parallel model calls appear in the UI as four individually named task instances, each with its own log, its own duration, its own retry state, and its own recorded input and output.

This is the same information the agent harness had internally.

The difference is that it is surfaced and queryable rather than embedded in a transcript.

Partial failure doesn’t restart the run

When one branch of a fan-out fails, that branch retries alone.

Completed results are preserved.

On a workload with twelve model calls and a 5% per-call failure rate, the difference between retrying one branch and restarting the run is the difference between a viable system and one that is always halfway through.

“Why did it answer that?” has an answer

The exact input a model received and the exact output it produced are both stored, per task, and can be queried after the fact.

Not reconstructed from logs — stored.

Human approval is a step, not a wrapper

A reviewer sees one decision with its immediate context, mid-workflow, and can approve, edit or reject.

Rejecting discards one step and its downstream rather than the entire run.

Airflow 3.1 added native support for this. The durable pause matters more than it sounds, because a run may wait three days across a weekend and must survive a deployment in the interim.

The full architecture for this type of control is also covered in our human-in-the-loop approval gates pattern .

It runs where your pipelines already run

Same scheduler. Same connections. Same role-based access control. Same on-call rotation.

No second orchestration system to operate, monitor and eventually migrate off.

The distinction A reasoning loop hides execution inside one evolving model context. An orchestrated graph makes the execution path explicit enough to observe, retry, pause, audit and reason about step by step.

The obvious objection

Isn’t this just Airflow DAGs?

Yes.

That is the argument, not a concession.

The properties above — named steps, independent retry, stored inputs and outputs, durable pauses and inherited access control — are not novel capabilities that an agent framework lacks by oversight.

They are what a mature orchestrator has provided for a decade, applied to a new kind of task.

A framework whose principal feature is that it is not exotic tends to outlive one whose principal feature is that it is new.

There is a practical version of this argument too.

Your team already runs an orchestrator. They know its failure modes, they have alerting on it, and someone is on call for it.

Adding a second system with its own runtime, its own state model and its own observability story is a real operational cost, and it is usually paid by whoever is on call rather than by whoever chose the framework.

Production data infrastructure and workflow orchestration systems
Production agentic systems inherit the same operational concerns as other data systems: retries, state, observability, access control and ownership.

The tradeoff, stated honestly

DAGs are acyclic.

That is in the name, and it is a genuine constraint.

An unbounded critic-to-generator loop — where a reviewer step sends work back to a generator repeatedly until quality clears a bar, with no fixed iteration count — does not express naturally as a DAG.

It has to be wired as explicit branching at authoring time, with a bounded number of rounds.

The Airflow project is direct about this in the post above, and so are we: the acyclicity is what buys the auditability, and you cannot have the second without accepting the first.

The decision rule If the work has a knowable shape — decompose, fan out, gather, synthesise, review — a graph is usually the better fit. If the problem genuinely requires open-ended iteration whose length cannot be bounded in advance, an agent harness is the better tool.

Most production workloads have a knowable shape.

Research and exploratory generation fall into the open-ended category more often than back-office document work does.

Anyone telling you one of these approaches is correct for all workloads is describing their product rather than your problem.

Where this leaves the model choice

One useful side effect of naming every model call as a task is that the cost of each one becomes visible per step.

That is what makes tiered routing tractable.

When a workflow’s twelve model calls are twelve named tasks with recorded token counts, you can see which of them actually need the expensive model and which are classification steps that a small model handles identically.

Inside a reasoning loop, that information exists but is not surfaced in a form anyone acts on.

Human-in-the-loop approval gates The full architecture for approval gates, including timeout behaviour, durable pauses and the signal that an approval rate above 95% may mean the gate is not doing useful work, is documented in Pattern 5 — Human-in-the-loop approval gates .

References

  • Agentic Workloads on Airflow: Observable, Retryable, and Auditable by Design — Apache Airflow project blog. The primary source for this argument, with a worked DAG and a direct treatment of the acyclicity tradeoff.
    Apache Airflow
  • Introducing the Common AI Provider for Apache Airflow — the operator set that makes this practical, covering multiple model providers through one package.
    Apache Airflow
  • Orchestrating agentic AI with Airflow 3.1 — a practitioner account of human-in-the-loop gates inheriting the orchestrator’s existing access control and audit logging.
    Medium
  • Building human-in-the-loop agentic workflows — equivalent mechanics in LangGraph, including idempotency constraints around interrupts. Useful for comparison if you are not using Airflow.
    Towards Data Science

HUMAN-IN-THE-LOOP

Put approval inside the workflow, not around it.

See the architecture for durable approval gates, explicit reviewer context, timeout handling, auditability and controlled continuation of agentic workflows.

Apache Airflow, Airflow, the Airflow logo, Apache, and the Apache feather logo are trademarks of The Apache Software Foundation. DataBridgeCrux is not affiliated with, endorsed by, or sponsored by the ASF.