Standardized Bricks,
Custom Buildings
What 1,780 production AI systems from ~935 companies actually converge on, where they genuinely diverge, what broke in production, and how the teams that shipped reasoned about it. Every claim below traces to a verbatim quote from an engineering writeup or conference talk.
The finding that organizes everything else
Compared as whole architectures, production agentic systems look wildly diverse: across 991 agentic systems, no single architecture shape describes more than ~13% of any problem domain. Compared as components, the industry has already converged hard. Two-thirds of everything orchestrates tools. Nearly half is governed by evaluation. Two in five keep a human gate in the loop.
This is the corpus's central lesson, and it took a measurement mistake to find it. Our first convergence metric compared full "solution shapes" and concluded everything was diverse — an unfalsifiable answer, because composition is combinatorial. Measured at two levels, the real structure appears: teams converge on which bricks to use, and stay creative about the building. Practically, the leverage sits at the brick level — with the ~10 blocks below, their variants, and their failure modes in hand, almost any production agent architecture reads as a composition.
Adoption of fundamental building blocks
Share of 991 deduplicated agentic production systems whose extraction contains the pattern · top 12 of 23 qualifying
The load-bearing blocks, as they exist in production
The textbook definitions of these patterns are not what the corpus shows. Below is what each block actually means once it is carrying production traffic — the variant decisions inside it, and the wound it usually carries.
Tool-use orchestration 64.9% · the substrate
In production this is not "function calling." It is capability governance: a registry of what agents may do, machinery for choosing among capabilities at runtime, and interfaces redesigned so a model can operate them. LinkedIn built a central skill registry — gRPC auto-registration, embedding search over skills, service-principal authorization applied transitively to agents — because hand-wiring tools into every application "was not going to scale, so we inverted it." They built it before MCP existed; when MCP arrived, the layered design absorbed it cheaply. Hex went the other direction on the same problem: their agents saw too many tools, so they consolidated tool families and added tool search, retrieving the relevant few per task instead of exposing hundreds.
"Rather than hardcode the tool, you dynamically figure out from the skill registry what tool is most appropriate, fill in the arguments to it using the power of the LLM, and after that execute it."
— linkedin · hiring assistant · articleThe recurring wound: naive one-API-endpoint-to-one-tool mapping floods the agent with choices and repeated instructions. The convergent fix is a smaller, curated tool surface with retrieval over it — the same shape as RAG, applied to capabilities.
Eval-driven development 47.9% · the governor
The mature form has a specific life cycle that appears again and again: define human rubrics per component → convert them to LLM-driven, reference-free automated evaluation as fast as possible (because human annotation is the iteration bottleneck) → attach evals to every release gate. LinkedIn evaluated each sub-agent in isolation before stitching; Dropbox treats model, retrieval, and prompt changes as gated code changes; one team's practice — every recurring failure spotted in logs becomes a tagged dataset in Braintrust — is the pattern in miniature: problems become datasets, datasets become regression tests.
"When Lily identifies a recurring problem through log reviews, user feedback, or focus group sessions, she creates a dataset in Braintrust tagged with the specific issue."
— conversational-ai team · articleIts wound is the largest gotcha cluster in the corpus (806 systems): evaluation coverage gaps, led by subjective-quality blind spots (334). Rovio's fine-tuned art generator passed the metrics; their artist looked at it and said the gestures were "a bit creepy and a bit awkward." And a coding-agent team discovered the sharper version: they optimized SWE-bench, got better SWE-bench scores, and a worse product — grading the wrong thing is worse than not grading.
Human-in-the-loop gates 40.0% · the accountability layer
The production version is precise about what the human owns. The strongest implementations gate on irreversibility and accountability, not on volume: agents "are not able to initiate any irreversible state changes without a human," while everything reversible flows freely. A voice-agent platform drew an even harder line — sensitive-data access is decided by deterministic permission systems, never by model judgment, because a prompt is not an access-control policy. The anti-form is equally well documented: approval on every low-risk step converts automation into a slow notification system and burns scarce expert attention.
Multi-agent orchestration 33.5% · the divisible workload
The dominant shape is a supervisor that treats sub-agents as tools — invoke, receive, act. What the corpus makes unusually clear is why teams accept its cost. Chained stages multiply error: two 90%-accurate stages yield 81%. LinkedIn wrote that math on a slide and chose modularity anyway, because the alternative — one monolithic prompt — cannot be quality-engineered by a team: any few-shot example added to fix one behavior silently changes another. Decomposition is a social architecture as much as a technical one: it buys parallel workstreams and isolated evaluation at the price of compounded error, then claws the error back by engineering each stage hard.
"If you have 90% accuracy in both stages, you're going to have 90% of 90%, that's 81%."
— linkedin · on why they still chose modular · articleObservability & tracing 33.2% · the flashlight
The consistent testimony: classic APM-style observability fails on agents, because non-deterministic systems produce a different flow every time — a single trace explains nothing. Replit's agent traces ran to hundreds of steps and broke their ingestion and display tooling. The convergent design is aggregation before inspection: cluster traces into behavior families, feed OTel-compatible pipelines, and serve two distinct consumers — an engineer replaying one bad run, and a team watching aggregate failure modes shift in production.
RAG, in an agentic world 30.7% · demoted and promoted
The fixed retrieve-then-generate pipeline is receding; retrieval survives as a tool the agent invokes iteratively — deciding when to search, reformulating, and searching again. That's a promotion in capability and a demotion in architecture: retrieval is now a capability inside tool orchestration rather than the system's spine. Its wounds are the second-largest gotcha cluster (784): chunking that destroys document structure (table cells separated from their rows), citation fidelity, and ranking cutoffs that silently drop the evidence the model needed.
Agent memory 18.5% · scoped, layered, deliberate
Production memory is not a vector store bolted on. The mature design is scoped and layered — working memory (task context), episodic and procedural long-term memory, and collective memory at organizational granularities (what does this recruiter do; what do all recruiters at this company do) — with three retrieval mechanisms used together: most-recent-N, summarization, and semantic search. The corpus is also blunt that big context windows are not memory: long context is slower, more expensive, and hallucination-prone, which is why teams that tried "just stuff it in the window" migrated back to engineered retrieval.
Durable execution 9.4% · small share, sharpest lesson
Below the fundamental-block threshold in raw share but philosophically important: agent work outlives requests, waits on humans, and half-fails after side effects. Teams at Block, Instacart, and Hex converged on the same split — deterministic workflow code owns state and progress; every model call and external effect runs as a retryable activity. The universal gotcha: carrying rich agent context inside workflow history bloats it until replay breaks; store artifacts externally, persist references, use lifecycle controls. Its boundary question is the cleanest in the library: if the whole job is short and safely retryable end-to-end, it is not needed — the presence of an LLM alone justifies nothing.
The decisions every team faces, and how they reasoned
Across 991 systems, the same handful of forks recur. These are the arguments that appear in the writeups — not our opinions.
Decompose into stages, or keep one model call?
Teams choose decomposition knowing it compounds error (the 81% math), because a monolith can't be engineered by more than one person: the whole context influences every behavior, so fixes don't compose. Decomposition converts an ML problem into a software-engineering problem — isolated quality, parallel teams, per-stage evals. The reasoning is about engineerability, not accuracy.
Which model, where?
The recurring insight is that different paths in one system scale with different variables. LinkedIn's intake chat scales with recruiters; candidate evaluation scales with candidates — orders of magnitude more. So: frontier models where iteration agility matters, fine-tuned small models on the high-volume path, and a config-driven inference proxy so switching is an ops change, not a code change. Where both agility and domain performance were needed, LinkedIn's answer was multitask instruction tuning — fine-tune on domain data while preserving instruction-following.
An LLM at all?
Stated almost verbatim across multiple systems: "if you're doing simple workflow automation, you may not even need an LLM… procedural code works a lot better, a lot more stable, faster." The maturity marker in the corpus is how much of each "agent" is deliberately not a model.
How do agents talk to each other?
27 systems independently converged on messaging (SQS, Kafka, EventBridge, semantic event buses) as the agent-to-agent substrate — because agent workloads face exactly the failure modes messaging already solves: state consistency, region shifts, host loss, retries. LinkedIn literally runs agent traffic on the same platform as user messages. Two disciplines ride along: structured data stays structured inside the message (never round-tripped through prose), and — a rule they state flatly — prompts are never sent in messages.
Buy or build, in a field that moves monthly?
"Always try to buy… the space is moving really fast." But the load-bearing half of the advice is the adapter layer: LinkedIn wrapped LangChain/LangGraph in their own abstractions so the framework stays swappable, and when MCP appeared — which didn't exist when they built — the skill registry integrated it instead of being obsoleted by it. The pattern is commit shallowly, integrate deeply.
Bigger context window, or engineered context?
The corpus's verdict on long context: slower, token-priced, and more hallucination-prone. The emerging discipline — context-engineering, accepted into our vocabulary on 9 independent usages — treats the model's information surface as a designed artifact: versioned instruction files, pruning of stale prompt mass, fresh isolated contexts per sub-agent, and the customization pyramid (prompting and retrieval before fine-tuning, fine-tuning before training) as the escalation ladder.
What actually breaks
We clustered every documented production issue. Two results stand out before the details: evaluation and retrieval failures lead, as expected — but human adoption and workflow fit is #3, nearly tied, ahead of every infrastructure category. Systems fail because people won't or can't work with them almost as often as because the AI is wrong.
Documented production issues by class
Deduplicated systems reporting at least one gotcha in the class · classes overlap (a system may appear in several)
The individual stories are where the transferable engineering judgment lives. A selection worth internalizing:
Dual tasks degrade both
Asked to "do legal reasoning about this complex edit request" and "parse and emit XML" simultaneously, model performance on both tasks regressed.
Fix: separate representation handling from reasoning; never make raw OOXML (or any hostile format) the model's interface.
legal-tech · articleTrust is measured, not assumed
"About 10% — it means one in ten — it's just an answer that you cannot really trust, but you don't know which one." Unlocalized error is what kills adoption.
Fix: per-answer confidence, citations ("receipts"), and escalation paths — users tolerate known failure modes, not unknown ones.
prosus · transcriptTool calls fail more than expected
Across models — including top performers — agents made at least one tool-call error in 36% of conversations, despite having the metadata to get it right.
Fix: validate and retry tool calls as a first-class error path, not an exception.
snorkel · insurance underwriting · articleWorkflow state is not a junk drawer
Carrying large analysis context inside Temporal workflow history bloated it, hit serialization limits, and caused replay timeouts.
Fix: store artifacts externally, persist references, use continue-as-new lifecycle controls.
block · cloudflare-adjacent pattern, multiple systemsStatic analysis can't see runtime truth
Code search could not prove a GraphQL field unused — old mobile app versions still call queries deleted from the main branch long ago.
Fix: define "unused" against production traffic over a time window (they chose 30 days), not against the codebase.
e-commerce platform · articleUsers will misuse the agent — accommodate it
A food-ordering agent received customer-support complaints. The wrong answer is nothing ("the client will think you are dumb").
Fix: design for out-of-scope intents explicitly: acknowledge, hand off, or gracefully decline — silence is the worst response.
ifood · transcriptFine-tuning fights a moving target
Fine-tuning optimizes hard inside a fixed problem statement — while a young product keeps changing the statement under it.
Fix: stay on general models while the product moves; when adaptation is unavoidable, tune for domain knowledge while preserving instruction-following.
linkedin · eon · articleThe registry is an attack surface
A central skill registry with dynamic selection means any registered capability is potentially every agent's capability — including destructive ones nobody planned to grant.
Fix: service-principal authorization applied transitively to agents; an agent must hold the entitlement to invoke the skill.
linkedin · q&a · articleLong async work needs async UX
Spinners on minutes-long agent tasks irritate users into abandonment.
Fix: show progress only when response is fast; otherwise switch to an explicit async flow — ETA up front, notification on completion.
linkedin · ux lessons · articleModels go stale about internal code
An agent migrating UI frameworks kept failing because "model knowledge of Fluent UI was uneven and often stale" — the training-data version of the framework wasn't theirs.
Fix: ground agents in current internal documentation and examples; never rely on the model's memory of the stack.
block · articleThe deciding questions
Adjacent patterns blur together until the one question that splits them is in hand. These came out of building the boundary matrix across all 23 patterns — each is a test that takes seconds to apply to a design.
"Would this route remain if all model prices were equal?"
"Can a perfectly valid schema still represent a forbidden action?"
"Must the model recall it, or must the workflow resume it?"
"Did the route change because of failure, or ordinary task fit?"
"Does the callee own a role, state, and a loop — or merely execute a bounded capability?"
"Is the artifact telemetry, or a scored judgment?"
"Is a human producing evaluation evidence, or controlling an action?"
"Is the question who acts — or what each actor is allowed to see?"
"Is the recalled item durable history, or external knowledge selected for this task?"
"If the process were short and retryable end-to-end, would it still be needed?"
When not to use the shiny thing
Every pattern page carries an evidence-backed "when not to use" section. Collected, they form the corpus's anti-hype doctrine:
- No durable workflow engine for short, idempotent requests that can retry end-to-end. Hex adopted Temporal only after long-running iterative work outgrew queues — "lifecycle complexity, not the presence of an LLM," justifies the migration.
- No human gate on every step. Encode what can be policy as policy, automate stable quality criteria, and spend human attention only where ambiguity, accountability, or consequences demand it.
- No persistent memory for one-shot tasks — and no memory at all where sensitive data lacks a clear retention benefit. Manus deliberately ships task continuity without cross-conversation memory: an intentional midpoint, not a missing feature.
- No context platform for a small, stable prompt. And never use context selection to paper over missing authorization: choosing what the model sees is different from deciding what it may see.
- No fine-tuning while the problem statement is still moving.
- No LLM where procedural code does the job — reasoning is the only thing that pays for nondeterminism.
How the field moved, 2023 → 2026
The corpus spans the whole modern arc, and several systems narrate their own evolution through it. The composite story: 2023 was prompt-in/string-out and the first RAG chatbots; trust defenses and conversational memory arrive as soon as users can type. 2024 is the copilot era — prompt chains with intent classification, planning, and synthesis stages; modularity emerges as a team-scaling necessity. 2025 is the agent turn: chains become graphs, tools become skills, human-in-the-loop becomes an explicit architectural concept, and MCP appears mid-year to standardize what registries like LinkedIn's had built privately. 2026, in the newest entries, is consolidation: durable execution under agents, message-bus orchestration between them, context engineering as a named discipline, agent identity/authorization as a first-class security problem, and forward-deployed engineering as the delivery model for enterprise agents.
Notably stable across all four years: evaluation discipline and human gates. They were in the earliest systems and the newest ones — the constants of the field, not its fashions.
Epistemics: how much to trust all this
Deep understanding includes knowing where this evidence is weak.
Publication bias is the big one. Companies write up successes. The corpus over-represents systems that worked, under-represents abandoned approaches, and the gotchas we have are the ones survivors chose to admit. Read adoption rates as "among teams that shipped and told the story."
Promotional gradient. Vendor customer-stories (AWS/OpenAI-style posts) are flagged promotional_bias: high in the data, and their outcome claims are recorded as claims ("the summary reports…"), not facts. Engineering-blog and conference-talk material — most of the corpus — is franker, and the frankest material (the gotchas) is also the most credible: nobody invents their own failure.
Evidence tiers. 106 of 1,780 systems are summary-only (no fetched source); their evidence is marked and weighted accordingly. Every quantitative claim on this page traces: pattern page → extraction → verbatim quote → source URL.
Convergence ≠ correctness. 64.9% adoption means the industry converged, not that the pattern is optimal — the field is young enough that some consensus is fashion. The strongest signals are the ones backed by stated reasoning plus independent convergence (messaging-as-substrate: 27 unrelated teams, same conclusion, same arguments).
Where everything lives, for anything deeper than this page: the 23 pattern pages in patterns/ (each with variants, tradeoffs, checklists, and citations), the boundary matrix in pattern-boundary-matrix, per-system deep dives in projects/ (searchable index) (1,780 of them, with architecture diagrams), and the analysis layer in analysis/. To use the library the way it was designed: pick the pattern pages relevant to the system being built and place them in a coding agent's context — they were written to be read by humans and agents alike.