Enterprise AI that does the work: your first governed workflow, live in about two weeks.Map your first AI teammate
← The Operating Layer

Module 05 of 12 Β· 2 hours

Designing Agentic Workflows

Turning a real business process into a designed system: autonomy levels, approval gates, failure paths and evidence.

Artefact: A complete workflow specification with gates, failure paths and one measurable acceptance criterion

Share

Why this module exists

"Agentic" has become a category label rather than a design decision. Systems are described as agents the way software was once described as cloud β€” as a statement of modernity rather than of architecture.

This module treats autonomy as what it is: a set of choices, made step by step, each with a cost. How much independence at which step, guarded by whom, failing into what, and evidenced how.

The output is a specification. Not a diagram of boxes, but a document precise enough that a vendor could build against it and an auditor could read it.

5.1 Autonomy is a dial, not a switch

The first mistake is applying one autonomy setting to a whole process. Real designs vary it step by step.

LevelThe system...The human...Appropriate when
1. SuggestSurfaces an observationDecides everythingNovel domain; you are still learning the failure modes
2. DraftProduces work for reviewEdits and sendsOutput is customer-facing or consequential
3. Act with approvalPrepares a complete actionApproves or rejectsHigh volume, meaningful consequence, reviewable in seconds
4. Act and reportActs, then notifiesAudits after the factLow consequence, reversible, high volume
5. Act autonomouslyActs, logs onlyReviews aggregatesCheap, reversible, and boring

Two rules that come from watching this go wrong:

Most of the value is at levels 2 and 3. They capture the labour saving β€” the drafting, the assembly, the reading of four thousand messages β€” while keeping a human on the consequence. Levels 4 and 5 add modest additional efficiency and a great deal of risk surface.

Most incidents come from a step being set at 5 because the demo worked. A demonstration exercises the common case. Autonomy is priced by the uncommon one.

Five autonomy levels, with levels two and three highlighted1Suggesthuman decides2Drafthuman sends3Act w/ approvalhuman approves4Act + reporthuman audits5Autonomoushuman reviews totalsmost of the valuemost of the incidents
Autonomy is assigned per step. The two positions that capture most of the value also keep a human on the consequence.

5.2 Approval gates are decision rights, made explicit

A gate is not a checkbox added for comfort. It is an organisational decision right that already exists β€” someone in your company is already accountable for this class of decision β€” written into the system so that it survives automation.

That framing does real work. It tells you who the approver must be (the person who holds the right today, not whoever is free), and it tells you when a gate is missing (when the system takes an action nobody currently has the authority to take unilaterally).

Four rules cover almost every case, and they compose:

RuleExampleWhy it works
ThresholdCredits above €10,000 need a managerScales review effort to exposure
CounterpartyAnything to a top-20 account is reviewedConcentrates attention on relationship risk
ContentAnything customer-facing is reviewed; internal summaries auto-completeSeparates reputational surface from internal noise
ChannelApprovals happen where the approver already works β€” inbox, chat, work boardDetermines whether the gate is used or bypassed

The fourth is the one most often neglected and most often fatal. A gate that requires the approver to log into a new system will be batched, rushed at the end of the week, and eventually delegated to whoever has time. Convenience is not a nicety here; it is the control.

The override test

The hard question, and the one that connects this module to Module 6:

Can the approver actually change the outcome?

Three sub-questions establish it:

  1. Do they see the inputs the system used β€” not just its output?
  2. Do they have time at real volume? Four hundred approvals a day at thirty seconds each is three and a half hours. If nobody has that time, the gate is fiction.
  3. Has anyone ever overridden it? Pull the number. A gate with a 0% override rate over months is either a perfect system or a rubber stamp, and it is not a perfect system.

A gate that fails the override test is worse than no gate, for two reasons. Operationally, it creates false assurance β€” everyone believes the output was reviewed. Legally, as Module 6 shows through the SCHUFA reasoning, a nominal human step does not remove a decision from the automated-decision rules. You carry the obligation and get none of the protection.

A real approval gate contrasted with a decorative oneA REAL GATEA RUBBER STAMPSees the inputs, not just the outputSees only the outputHas time at real volumeReviews 400 items in an hourHas authority to differCannot realistically differOverride rate above zeroOverride rate flat at zeroA gate that fails the test is worse than none: you carry the obligation and get none of the protection.
The same gate, described two ways. Only one of them survives the three questions.

5.3 Design the failure path first

Systems without a designed failure path do not fail gracefully. They fail silently, which is worse, and silent failure is the usual reason a promising pilot is quietly abandoned six months later β€” not because it broke loudly, but because trust drained without anyone being able to point at an incident.

For every step, answer four questions before deployment:

  1. What does wrong output look like here? Be specific. Not "an error" β€” "an appeal letter citing the wrong policy section," "a summary that omits the complaint."
  2. Who notices, and how? A person, a validation rule, a downstream system, or nobody.
  3. How quickly? Same minute, next day, next quarter, never.
  4. What happens next? The recovery path, and who owns it.

Two patterns are worth building in by default.

Deterministic validation after judgement. The cheapest reliability improvement available: a rule that checks the model's output before it moves on. Does the drafted letter reference a policy section that exists? Does the extracted date fall in a plausible range? Is the total equal to the sum of the lines? These catch a large share of failures at almost no cost, and they convert an unbounded error into a caught one.

A designed escape hatch. Every workflow needs a path for "this case is not like the others." Without one, the system will handle unusual cases badly rather than declining them. Instruct the system to escalate on low confidence or on inputs outside its defined scope, and β€” critically β€” make sure the escalation queue has an owner. An escalation queue nobody reads is a silent failure with extra steps.

5.4 Traces and spans: the evidence layer

This section introduces vocabulary you will be held to in vendor conversations, so it is worth being precise rather than approximate.

A trace is the complete record of one run of a workflow, end to end β€” one denial processed, one quote produced, one ticket answered. It is the unit you look at when someone asks what happened to this case?

A span is one timed step inside that trace. Retrieving the policy document is a span. The model call that drafts the letter is a span. The approval is a span. Each span records when it started, how long it took, what went in, what came out, and whether it failed.

Spans nest. A trace is not a flat list but a tree: the drafting step contains the retrieval it triggered, which contains the two database queries the retrieval made. That structure is the whole point β€” it is what lets you answer which part was slow or wrong, rather than only that the run was.

TermWhat it isThe question it answers
TraceOne complete runWhat happened to this case?
SpanOne timed step within a run, possibly containing othersWhich step was slow, or wrong?
AttributeA labelled value attached to a span β€” model version, token count, document id, approverWhy did that step behave that way?
Trace idThe identifier that ties every span together, and ties the run to your other systemsWhere else did this case appear?
A trace shown as a timeline of nested spansONE TRACE β€” A SINGLE RUN, LEFT TO RIGHT IN TIMEworkflow runretrievedraft β€” model callvalidateapprovequeryqueryeligibilityWidth is duration. Depth is containment: a span can hold the spans it triggered.traceone run, end to endspanone timed step inside itattributemodel version, tokens, document id, approver
A trace is one run; spans are the timed steps inside it, and they nest. The failing span is usually not the one that raised the error.

Traces serve three masters at once, which is why they are the highest-return piece of infrastructure in this entire course:

MasterWhat it needs the trace for
EngineeringDebugging. Without the exact input and system version, a failure cannot be reproduced
GovernanceEvidence. Module 6's logging and oversight obligations are satisfied here, and a data-protection impact assessment's claims are only credible if traceable
ImprovementEvery human edit is a labelled example of what the system got wrong. That is the training signal, and it is free if you capture it

The minimum trace schema:

FieldWhy
Run identifier, timestampCorrelation
Input referenceWhat it saw β€” a pointer, not a copy, if the data is sensitive
Retrieved contextWhich documents were used; the most common root cause of a wrong answer
System and prompt versionOtherwise you cannot tell whether last week's fix worked
Tool calls and resultsWhere the numbers came from
OutputWhat it produced
Approver, decision, editWho signed, and what they changed
Escalation reasonWhy it declined, if it did

Note the retention consequence: traces contain the data the system processed. They inherit its residency, retention and deletion obligations, and they are frequently forgotten in the data map. Include them in the Module 6 control map explicitly.

5.5 Reliability engineering for chains

Module 3 established the arithmetic: chained step reliabilities multiply. Five steps at 95% is 77%; twenty is 36%. Three design moves follow directly.

Shorten the model chain. Prefer one model step doing a well-specified job over five model steps reasoning their way along. Every additional model step is another multiplication by a number below one. Length is risk.

Interleave deterministic steps. A rule between two model steps is a 1.0 in the product and, if it validates, it truncates error propagation. The strongest workflows alternate: judge, check, act, check.

Set the acceptance threshold before launch. Decide in advance what performance makes this worth deploying β€” and what performance triggers rollback. Negotiating that number after the results are in is how systems get deployed at levels nobody would have approved in advance.

One further point, often missed: measure the end-to-end rate, not the per-step rate. Vendors quote per-step accuracy because it is flattering. Your customer experiences the product of the chain.

5.6 Where customer engagement fits

Module 3 showed that customer-facing work is where the shape test most often returns yes. Design adds a caution: customer-facing steps almost never belong above autonomy level 3.

The asymmetry is that a customer interaction is both irreversible and reputationally amplified. A wrong internal summary is corrected in a meeting. A wrong message to a customer is screenshotted.

The pattern that works: the model does the reading, the retrieval and the drafting β€” the parts that consume the agent's day β€” and the human does the sending. That typically removes 70–80% of handling time while leaving every outbound communication signed by a person. It is less impressive in a demo than full automation, and it is the version that is still running a year later.

Exercise β€” Write the specification

Time: 90 minutes. Produces the artefact for this module.

Take the workflow you labelled in Module 3 and mapped in Module 4, and specify it.

  1. Step table. Every step, its layer, its autonomy level, and one sentence on why that level.
  2. Gate specification. For each gate: the rule (threshold, counterparty, content, channel), the named approver, the channel they already work in, and the expected volume in minutes per day.
  3. Override test. For each gate, answer the three sub-questions. If any fails, redesign the gate or lower the autonomy level.
  4. Failure table. For each step: what wrong looks like, who notices, how fast, recovery path.
  5. Escape hatch. The condition that routes a case out, and the named owner of that queue.
  6. Trace schema. Which fields you will record, and their retention period.
  7. Acceptance criterion. One measurable claim with a baseline, a date, a threshold and a rollback action.

The specification is complete when someone who was not in the room could build against it and disagree with it. Vagueness is what makes a document unarguable, and unarguable documents are how bad systems get approved.

Self-check

  1. Why is autonomy assigned per step rather than per process?
  2. A gate exists, an approver is named, and the override rate has been zero for six months. What do you conclude, and what do you do?
  3. Your vendor reports 96% per-step accuracy across a seven-step agent. What is the end-to-end figure, and what would you ask them to change?
  4. Name one step in your own workflow where a deterministic check after a model step would catch a realistic failure.
  5. What is the retention obligation on your traces, and who currently owns it?

Further reading

  • Anthropic, Building Effective Agents, 2024 β€” workflow patterns and when to stop adding autonomy.
  • Module 6 of this course, on the legal status of human oversight that cannot change the outcome.

Working through this on a real portfolio?Book a 30-minute call and we will label the steps together β€” including the ones that turn out not to need a model.