Agent Adda · Architecture Point of View Practitioner playbook · Sept 2026

The smallest safe loop wins.

A practical framework for choosing deterministic workflows, bounded decisions, dynamic fan-out, and agentic loops—without adding more autonomy than the work requires.

Do not ask, “Is this system agentic?” Ask, “Which individual step needs judgment, iteration, or exploration—and what is the narrowest construct that can handle it safely?”
01 Deterministicfixed graph 02 Bounded decisionclassify → dispatch 03 Dynamicfan-out, one pass 04 Bounded loopgenerate → check → revise 05 Open looprecursive, self-directed
Agent Adda · Knowledge is the MOAT — Hold, Think, Act
00

The real question isn't "agentic or not"

Calling a whole product “a workflow” or “an agent” is usually too coarse to help. Real systems mix several control patterns. The useful decision happens one step at a time: this classification, this dispatch, this repair, this investigation.

Consider software delivery. Requirements, design, build, test, and release follow a known order. That outer process is deterministic. Inside it, fixing a failed test is iterative: inspect the failure, form a hypothesis, patch, rerun, and stop when the test passes or the budget expires. The same release contains both patterns.

Enterprise AI works the same way. Quote-to-Order should remain reproducible even if an LLM helps read an input. Talk-to-Data may use probabilistic language-to-SQL reasoning, while its Planner → Validator → Executor → Healer graph stays fixed and auditable. A cross-system investigation is different again: each finding determines the next question, so the path cannot be fully drawn in advance.

This playbook replaces the workflow-versus-agent binary with five constructs. They differ along two axes: how much of the path is known before execution, and how much context must survive while the work unfolds.

00A

Two axes explain most architecture choices

As control flow becomes less predictable, the system must carry more state, evidence, and history. That does not automatically make it better. It makes it harder to test, govern, reproduce, and stop.

Freedom and context burden often rise together. Choose the leftmost construct that can solve the step without hiding real uncertainty.
01–05

Five constructs, not two

01 · Deterministic workflow

Fixed graph, code-resolved branches

The same steps run in the same order every time. Where the path branches, code resolves it — not model judgment.

Use when

The process is known, repeatable, and has to be auditable — especially when a regulator or a downstream system expects the same shape every run.

Context load
low, stable
Swing Playbook's 9-step risk process — SEBI's Research-Analyst rules require identical conditions for every reader, so the branches live in code even though the underlying read (is this setup rule-matched?) is model-assisted. The NCERT translation pipeline (create → start → poll → export) is the plainer case: no ambiguity to resolve, so no loop is needed at all.
02 · Bounded-decision workflow

One typed judgment, still a fixed graph

Still a fixed pipeline, but one node lets a model make a narrow, closed-set decision — a classification or intent label — which a deterministic dispatcher then routes on.

Use when

One step in an otherwise-known process needs judgment, but you can enumerate the possible outcomes in advance and pre-author what happens for each.

Context load
low, scoped
Agent Adda's inner loop (nse_agent) — stage 8's LLM call emits only an intent label from a closed set; a deterministic semantic_intent_plan() maps it to a pre-written plan. Same shape as CANON's classify-then-extract pipeline and Talk-to-Data's Planner→Validator→Executor→Healer flow.
03 · Dynamic workflow

Unknown fan-out, single pass

The subtasks aren't known ahead of time — a coordinator decides how many workers to run and what each does — but the whole thing still runs once and terminates when the fan-out closes.

Use when

Work decomposes into independent pieces, but you can't say in advance how many, or what they'll be: parallel research, multi-strategy exploration, multi-section synthesis.

Context load
medium, isolated
ATLAS's parallel strategy planning — several strategies explored side by side and arbitrated, rather than one model reasoning through all of them serially in a single, steadily degrading context window.
04 · Bounded agentic loop

Generate → check → revise, to a gate

A model iterates until an explicit gate says stop: a test passes, a confidence threshold clears, a turn budget runs out. Open-ended in duration, closed-ended in what each turn is allowed to do.

Use when

There's a cheap, reliable check for "is this done" — a failing test, a schema validator, a compliance rule — and revision genuinely improves the answer.

Context load
medium, compacted
The defect-fix loop inside an SDLC — patch, run the tests, read the failure, revise, repeat to green or budget. Also ATLAS's healing agents and its prompt-evolution engine, where shadow A/B results are the check.
05 · Open agentic loop

Self-directed, recursive, backtracking

What gets looked at next depends on what was just found. Recursion, fan-out, and backtracking are all in play; termination is a judgment call, usually enforced by more than one gate.

Use when

The exploration itself is the product — the next question isn't knowable until you've seen the last answer — and a wrong turn is recoverable because nothing ships without review.

Context load
high, engineered
RIC (Recursive Insight Chains) — each insight seeds the next investigation across SAP, Oracle EBS, Salesforce, and LIMS; chains narrow and fan out in parallel, and backtracking can invalidate earlier assumptions and trigger a version increment. Termination is three conditions at once — confidence threshold, depth limit, human-in-the-loop approval — not one.
+ governance shell

Wraps any of the five

A deterministic scaffold — phase gates, a shared state file, an audit log — around one or more agentic loops running underneath it. This is a composition, not a sixth register.

Use when

Multiple autonomous loops (or coding assistants) need to share state and stay auditable without becoming a single mega-context.

Context load
shell only
The Claude Code + Cursor two-agent build — .agent-protocol/STATE.json phase transitions, blast-radius analysis, and a hash-chained audit log coordinate two independent agentic loops without either one replaying the other's conversation.
06

Trade-offs, not verdicts

No construct is universally better. Each gains flexibility by giving up some predictability, auditability, speed, or cost control. Treat the disadvantages below as the price of the capability—not as a verdict against it.

ConstructAdvantagesDisadvantages
01 Deterministic Fully auditable and reproducible; predictable cost and latency; every path can be tested exhaustively; trivial to justify to a regulator or a client's audit team; no context-rot risk, since nothing accumulates between steps. Brittle outside the pre-enumerated cases; a genuinely new scenario needs a code change, not a prompt change; forces real ambiguity into a branch that doesn't quite fit; the branch count grows faster than the real-world variation it's modeling.
02 Bounded decision Keeps 01's auditability while absorbing exactly one ambiguous step; cheap and fast — a single narrow call on a small context; easy to monitor, since every intent label and its distribution can be logged; failure is legible: a wrong label, not a wrong plan. Only works when the outcome set is genuinely closed in advance; an input that fits no label needs its own fallback or fails outright; a new case still means a code change (new label, new branch); doesn't help once two steps need coupled judgment.
03 Dynamic Absorbs real "how many, what kind" uncertainty without going fully open-ended; parallel workers add both speed and, via voting, confidence; each worker's context stays small and clean, so quality doesn't decay with scale; still terminates predictably in one pass. Dispatch, timeout, and join logic are real engineering, not free; a synthesis step can quietly average away a valid minority finding; harder to audit after the fact than a fixed pipeline, since which workers ran wasn't fully predetermined; fan-out width still needs a cap or cost and latency spike.
04 Bounded loop Iteration genuinely improves the answer wherever a cheap correctness check exists; the blast radius is contained to what one turn is allowed to do; a hard budget or threshold gives a predictable worst case; the exit condition is one named, inspectable thing. Only as good as the check — a weak or gameable test lets the loop "pass" a bad answer; a naive implementation accumulates context turn over turn and degrades before it ever hits the budget; can thrash between two wrong fixes without noticing; every retry is a real cost and latency multiplier.
05 Open loop The only construct that can do real open-ended investigation — find the next question worth asking; backtracking corrects early mistakes instead of compounding them; recursion and fan-out reach a scale a fixed pipeline was never designed to cover. The highest context-management burden of the five — real engineering, not a setting, to keep it from rotting; hardest to audit or reproduce, since two runs can legitimately take different paths; a single soft gate is unsafe, so it needs several independent ones, which is itself extra design work; cost, latency, and outcome are all the least predictable here; needs review before anything ships.
+ governance shell Lets independently built loops — different assistants, different teams — share state and stay auditable without merging into one context; gives after-the-fact accountability even when the loops underneath aren't fully deterministic; scales oversight without scaling context. Adds a coordination layer that has to be maintained and can drift out of sync with what's actually running underneath; doesn't fix a bad loop, just adds bookkeeping around it; one more moving part to fail — the shell's own state file can become the bug.
07

Picking one: three questions, in order

Ask these questions in order. Compliance comes first because it can remove freedom from every choice below it. A step that benefits from exploration may still need a fixed output and explicit review when regulation or contract terms demand it.

1 Regulator or contract fixes the shape? SEBI RA rules · Q2O terms yes 01 / 02 deterministic — judgment boxed into code no 2 Is the step graph knowable upfront? can every branch be pre-authored? yes, one call → 02 bounded-decision workflow no 3 Cheap, reliable "done" check? a test · validator · threshold yes → 04 bounded agentic loop no, decomposable → 03 dynamic workflow (fan-out) no, not decomposable → 05 open agentic loop (recursive)
The three gated questions used to pick a construct, asked in order. A regulator or contract check comes first because it overrides everything below it — a step whose natural shape is 03 or 05 can still be forced to 01, exactly as SEBI's rules force the Swing Playbook into a fixed shape regardless of what the underlying judgment could support. Whichever branch the third question lands on, 04 and 05 both still need an explicit governor named before the first turn runs — see §10.
08

How the constructs compose, project by project

Real systems combine constructs. A deterministic shell may contain a bounded repair loop. A dynamic coordinator may dispatch workers that each make one bounded decision. Design each node separately, then compose the system.

01 · deterministic shell 04 · bounded loop Requirements Design Build Test Release passes fails → retry
The chain of phases stays fixed and auditable end to end — that's the deterministic shell. The one cycle in the picture sits entirely between Build and Test: patch, run the tests, and either loop back on failure or pass through to Release. That cycle is the only part of the SDLC worth calling agentic.
SystemConstruct(s)Why this shapeContext tactic
Full SDLC 01 shell + 04 at the defect node Phase order (requirements→design→build→test→release) is the value and must stay auditable; only "make the failing test pass" rewards iteration. State passes between phases as structured artifacts (tickets, diffs, reports) — the loop node compacts to the last diff + failure output each turn, not the phase history.
Quote-to-Order 01/02 Pricing and contract steps must reproduce the same output for the same input; MAS's harness generalizes this shape across Q2O and Order-to-Cash. Typed order/state object carried between stages, not conversational memory.
Talk-to-Data 02 NL→SQL parsing is probabilistic, but the Planner→Validator→Executor→Healer shape never changes — process-determinism, not output-determinism. Healer stage sees only the failing query and its error, not the full conversation that led there.
Agent Adda inner loop 02 nested in an outer 04 Same classify-then-dispatch shape as T2D and CANON, chosen for latency, cost, and production-safety — not because the judgment was easy. A 5-turn ContextPack rebuilt each turn instead of full history; router gets a typed RouteDecision, not raw context.
ATLAS 03 + 04 Strategy exploration is genuinely open (03); each healing/repair cycle underneath it is bounded by a check (04, shadow A/B as the gate). Workers return condensed strategies to the arbiter, not full reasoning traces.
RIC 05 The exploration is the product: insights seed further investigation, chains narrow and fan out across four enterprise systems. Each recursion level propagates the insight, not the trace that produced it — compaction built into the pattern itself. A 12-pattern language plus a pattern-selection algorithm governs what would otherwise be unconstrained recursion.
ShunyaSaarthi tutoring turn 02/03 Curriculum sequence is fixed (deterministic scope); diagnosing a misconception and picking a remediation path within a lesson is adaptive. MAS's five-layer harness (memory, state object, loop controller, tool/connector, guardrail) generalized across this and Q2O/T2D, so one skeleton serves very different determinism levels.
Migration estimation agent 01 behind an agentic front door The recipe (Scope→Activities→Unit Drivers→Base Effort→Volume Efficiency→Contingency→Person-Days→Cost) is a formula; only the scoping conversation that fills it is exploratory. Elicitation surface kept separate from the computation surface — only validated, typed scope inputs cross into the deterministic recipe.
Claude Code + Cursor build governance shell over 04/05 Each coding assistant runs its own loop; .agent-protocol/STATE.json, blast-radius analysis, and a hash-chained audit log keep the overall build auditable. A shared state file is the handoff between agents, not a replayed conversation.
09

Context management moves with the construct

Context is a finite working resource. A larger window does not remove the need to decide what the model should see now. Four practices do most of the work: compaction summarizes and resets; structured notes keep durable state outside the prompt; worker isolation gives detail tasks clean windows; and just-in-time retrieval fetches evidence only when needed. More open constructs depend on these practices more heavily.

1 Memory what persists between turns 2 State object the typed thing being acted on 3 Loop controller what decides "run again" or "stop" 4 Tool / connector what it's allowed to reach 5 Guardrail what catches a bad output — the last layer before it ships
MAS's five-layer harness, in the order a turn actually moves through it. What changes construct to construct isn't the stack — it's how much each layer has to do, from nothing (layers 1–3 sit empty in a pure 01 pipeline) to carrying the whole design (layer 5 is where RIC's failure-mode catalogue lives). The table below breaks out all five layers by construct.

Memory

what persists between turns
01 / 02None beyond the current step's inputs — nothing to compact because nothing accumulates.
03Per-worker scratch, discarded once the coordinator has the synthesis.
04Compacted to the last diff and the last failure — not the full attempt history (Agent Adda's 5-turn ContextPack is this same discipline applied inside a bounded pipeline).
05Structured note-taking as the architecture, not an add-on — RIC's chain-as-memory means each level only carries forward the insight, never the trace that produced it.

State object

the typed thing being acted on
01 / 02A typed order, query, or intent object (Q2O, T2D) — the state IS the context; there's no conversation to fall back on.
03A fan-out manifest: what was dispatched, what's outstanding.
04Attempt counter plus last result — enough to know if the loop is converging.
05Chain version, confidence, and depth counters together — RIC's three-fold termination state lives here, not in the model's judgment alone.

Loop controller

what decides "run again" or "stop"
01 / 02None — single pass by construction.
03A fan-out / join barrier: proceed once all workers report or a timeout fires.
04An explicit stop-check every turn: test result, threshold, or budget.
05Multiple independent gates evaluated together, never one soft gate alone.

Tool / connector

what it's allowed to reach
scales w/ reachA single SQL executor for T2D vs. SAP + Oracle EBS + Salesforce + LIMS connectors for RIC — the tool surface is itself a governance decision, not just a capability one.

Guardrail

what catches a bad output
01 / 02Schema and compliance validation — SEBI RA uniformity rules, contract terms.
03Cross-checks between worker outputs before synthesis.
04The test suite or validator IS the guardrail — it's also the stop-check.
05A pattern-composition rule set plus a named failure-mode catalogue — RIC's is the concrete version of this, built specifically to catch runaway recursion before it ships.
10

The governor rule

GOVERNOR With a governor depth · confidence · human — together no exit Without one same loop, no stop — drifts
Same reinforcing loop on both sides. The only difference is the gate: one closes on a named exit condition, the other has nothing to close on and trails off — which shows up as quality decay long before it shows up as a cost alert.
↻

An agentic loop is a reinforcing loop — each turn's output becomes next turn's input, and small errors compound the same way small gains do. A reinforcing loop with no balancing condition isn't stable, it's just early: it hasn't diverged yet.

Practically: 04 and 05 both need their governor named before the first iteration runs, not discovered after one runs long. RIC's answer is to never rely on one — confidence threshold, depth limit, and human approval have to clear together, precisely because a single soft gate can be reasoned past ("confidence is close enough"). The other common failure isn't runaway iteration but runaway context: a loop that never compacts gets slower and worse every turn long before it gets more expensive — the failure shows up as quality decay, not a cost alert.

10A

What goes wrong when the construct is wrong

Architecture mistakes often come from granting too much freedom, too little freedom, or no reliable stopping rule. These failures are visible before production if the team knows what to look for.

Agent where code was enough

Cost and variation rise without improving the answer. Replace model judgment with a rule or typed branch.

Workflow where exploration was needed

Novel cases get forced into the nearest known path. Move only the uncertain step into a dynamic or open construct.

Loop without a trustworthy check

The model revises toward its own preferences rather than correctness. Add an external test, validator, or human gate.

Full history as memory

Noise accumulates, contradictions survive, and later turns inherit obsolete assumptions. Compact to state and evidence.

Fan-out without isolation

Workers repeat the same reasoning and return correlated errors. Give each worker a distinct scope and clean context.

One soft governor

A model can reason past “close enough.” Combine hard budgets, confidence evidence, depth limits, and review.

11

Cheat sheet

ConstructGraph known upfront?Context loadGovernor needed?One example
01 · Deterministic workflow Yes, fully
No Swing Playbook's 9-step process
02 · Bounded-decision workflow Yes, except one closed-set call
No Talk-to-Data's Healer stage
03 · Dynamic workflow No — fan-out decided at runtime
Join/timeout only ATLAS strategy planning
04 · Bounded agentic loop No — but has a cheap "done" check
Yes — one explicit gate Defect-fix loop against a test suite
05 · Open agentic loop No — the graph is the output
Yes — multiple gates together RIC recursive investigation
12

The practitioner checklist

Before adding an agentic step, answer these questions in writing. If the answers are vague, the architecture is not ready.

Name the step

Classify one decision or activity—not the whole product.

State the uncertainty

What cannot be resolved reliably with code, rules, or a known workflow?

Choose the narrowest construct

Use the least freedom that still handles the uncertainty honestly.

Define typed state

Specify what enters, what changes, and what leaves the step.

Set the tool boundary

Grant only the systems and actions required for this step.

Name the governor

Define completion, retry budget, timeout, escalation, and human approval.

Plan context deliberately

Decide what is compacted, stored, retrieved, isolated, and discarded.

Log evidence, not theatre

Preserve decisions, inputs, outputs, checks, and state transitions—not hidden reasoning traces.

Test the failure mode

Simulate wrong labels, stale state, failed tools, disagreement, timeout, and non-convergence.

Revisit after production evidence

Move left when rules become clear; move right only when fixed paths repeatedly fail.