AI Design Patterns

A Decision Framework for Choosing AI Design Patterns

Match AI design patterns to task complexity, risk, latency budget, and operational maturity — so you stop defaulting to planners, critics, and ensembles.

EnhanceLearning.AIArchitect & Researcher
June 23, 20266 min read
AI Design PatternsDecision FrameworkArchitecture
A Decision Framework for Choosing AI Design Patterns — cover illustration | EnhanceLearning.AI

Not every task needs a planner, a critic, and an ensemble. Pattern fashion is how teams burn latency and money on structure they cannot operate. A decision framework forces the boring questions first: how complex is the job, how bad is a wrong action, how tight is the latency budget, and how mature is the team’s harness and eval practice? Answer those, then pick a pattern — not the other way around.

Why teams over-pattern#

Demo culture rewards visible machinery. A Planner–Executor with Reflection and three specialist agents looks serious in a review. On a form-fill extraction job, it is theatre. Over-patterning creates failure modes you did not have: plan thrash, critic disagreement, handoff loss, and dashboards that cannot attribute cost to a stage.

Under-patterning is the opposite failure: a model with just tools and hope. The framework below exists to land between those poles.

Four scores that decide the pattern#

Score each AI feature on four axes before you name a pattern. Use a simple 1–3 scale so debates stay short.

Score 1–3 on each axis

4 axes

Task complexity

1

Single-shot or one tool hop

Classify, extract fields, rewrite tone

2

Multi-step but mostly known

Policy-grounded reply, multi-field enrichment

3

Open-ended / discovery-heavy

Investigation, research, novel troubleshooting

Risk level

1

Low blast radius

Draft suggestions, internal summaries

2

Reversible mistakes or customer-visible text

Support replies without money movement

3

Irreversible or regulated

Payments, access changes, medical / legal advice

Latency budget

1

Tight interactive (<3s feel; few model calls)

2

Conversational (several seconds OK)

3

Batch / async (minutes OK)

Operational maturity

1

Early: weak evals, ad-hoc prompts, limited tracing

2

Intermediate: golden sets, basic budgets, allowlists

3

Mature: trajectory evals, versioned patterns, on-call runbooks

Decision framework: score complexity, risk, latency, and maturity, then map to a recommended AI design pattern | EnhanceLearning.AI

Pattern map from scores#

These are defaults, not laws. Override with a written reason.

SituationPreferAvoid
Complexity 1, any riskSingle call or thin prompt chain + validatorsAgent loops, multi-agent
Complexity 2, risk ≤2, latency ≤2Prompt chain or Router → specialistsFull Planner–Executor
Complexity 2–3, discovery neededBounded agent loop (ReAct-style)Unbounded “just explore”
Complexity 3, risk 3, latency 3Planner–Executor + human gate on writesAuto-commit tools
High-stakes draft quality (risk 3, latency ≥2)Chain or plan, then Reflection/critic passCritic-only systems with no base pattern
Maturity 1Chains, routers, hard allowlistsMulti-agent, deep ensembles
Maturity 3, clear specializationMulti-agent only with shared contractsAgents for prestige
Maturity is a hard gate

If operational maturity is 1, do not pick a maturity-3 pattern because the task is hard. Simplify the task boundary, add humans, or invest in harness and evals first. Pattern ambition cannot substitute for operational guts.

Scored walkthroughs

4 cases

A

Invoice field extraction

Complexity1Risk2Latency1Maturity2

Recommendation

Single model call with structured output + schema validator. Optional tiny chain: OCR/normalize → extract → validate.

Why

Low complexity and tight latency kill loops and planners. Risk is handled by validation and a human exception queue for low-confidence fields — not by a critic committee.

B

Tier-1 support reply

Complexity2Risk2Latency2Maturity2

Recommendation

Prompt chain — classify → retrieve → draft → policy check. Router if channels or product lines differ.

Why

The path is known. A loop would rediscover the same three steps at higher variance. Add Reflection only if faithfulness failures dominate your evals.

C

Fraud investigation assistant

Complexity3Risk3Latency3Maturity3

Recommendation

Planner–Executor with human approval before any account freeze or payout tool. Bounded repairs only. Trajectory evals required.

Why

Discovery is real; actions are irreversible; async is acceptable. A plain chain cannot enumerate every investigative branch. A ReAct loop without a reviewable plan is hard to defend in risk review.

D

“Do everything” internal copilot

Scoresscores all over the map

Recommendation

Do not pick one pattern for the product. Split job classes. Router in front; each class gets its own pattern and budgets.

Why

One mega-agent is how cost and failure modes become unattributable. The framework applies per job class, not per brand name on the box.

A compact decision procedure#

Decision procedure

7 steps

  1. 1

    Score complexity, risk, latency, maturity (1–3 each).

  2. 2

    If maturity = 1 → cap pattern ambition at chain / router / single call.

  3. 3

    If complexity = 1 → single call or short chain; stop.

  4. 4

    If discovery is required → bounded loop or planner; else prefer chain.

  5. 5

    If risk = 3 → require human gate on irreversible tools; add Reflection for drafts.

  6. 6

    If latency = 1 → forbid multi-agent and stacked critics.

  7. 7

    Write the pattern card (name, decider, stops, forbidden tools) before coding.

Code
def recommend(complexity: int, risk: int, latency: int, maturity: int) -> str:
    if maturity <= 1:
        return "chain_or_single" if complexity <= 2 else "human_led_with_model_assist"
    if complexity == 1:
        return "single_or_short_chain"
    if latency == 1 and complexity >= 3:
        return "defer_or_async_loop"  # do not fake deep work in <3s
    if complexity >= 3 and risk >= 3:
        return "planner_executor_with_human_gate"
    if complexity >= 3:
        return "bounded_agent_loop"
    if risk >= 3:
        return "chain_plus_reflection_and_gate"
    return "prompt_chain_or_router"

Keep the function boring. The value is forcing the four scores into the design doc where product and risk can argue with them.

What the framework deliberately ignores#

Vendor logos, model leaderboard rank, and “agentic” marketing do not appear as axes. Those belong in model selection and procurement — adjacent problems. A weak pattern with a strong model still fails operations. A strong pattern with a mid-tier model often ships.

Summary#

Choose AI design patterns with a four-axis score: complexity, risk, latency, and maturity. Default to the simplest pattern that clears the score. Escalate to loops, planners, critics, and multi-agent only when the axes demand it — and only when the team can operate what they drew. The framework’s job is to make “we need a planner and a critic” a claim you have to earn, not a default costume for every LLM feature.

Share
Premium blueprints

Want premium architecture blueprints?

Be among the first to explore interactive reference architectures, implementation playbooks, and premium engineering resources at launch.

Related Articles

Recommended reading based on this topic.

AI Design Patterns

How AI Design Patterns Evolve as LLM Capabilities Improve

Which AI design patterns persist, simplify, or fade as LLMs improve—and how to design control shapes that survive capability jumps without endless rewrites.

Read Article
AI Design Patterns

Why Every AI Pattern Has Hidden Costs Beyond Compute

AI design patterns cost more than tokens—latency, maintenance, observability, and cognitive load. Price the full pattern tax before you add another planner.

Read Article
Multi-Agent Systems

Multi-Agent AI Systems vs Classical Distributed Systems

Multi-agent AI overlaps with distributed systems but is not the same. Import idempotency and tracing; do not treat LLM handoffs like RPC.

Read Article