When Anthropic published Building Effective Agents in late 2024, it did something rare for the industry: it gave engineers a shared vocabulary. Instead of another manifesto about artificial general intelligence, the guide offered six clear patterns for structuring LLM systems. A year and a half later, in 2026, the landscape looks radically different. Model Context Protocol has become a universal standard. Claude has gained new capabilities. Most organizations now have at least one agent running in production. Against that backdrop, it is fair to ask whether those six patterns still matter, or if they belong in the archive next to last year’s model weights.

I tested all six patterns against a local model in a side repository to find out. The answer is yes. They still hold up. But not because they are immutable laws. They hold up because the last eighteen months of production experience have validated the framework’s core logic.

What the Framework Actually Gave Us

The six patterns are worth remembering precisely: Prompt Chaining, Routing, Parallelization, Evaluator-Optimizer, Orchestrator-Workers, and Autonomous Agents. That last one is essentially a loop in which the model plans, acts, observes, and repeats until some condition is met.

Plenty of engineers were already chaining prompts or delegating tasks to worker threads before the guide appeared. What Anthropic provided was taxonomy. One person’s “agent” was another person’s “workflow,” and a third person’s “multi-step tool call.” The guide sorted the mess into buckets with clear boundaries. That made it possible to argue about trade-offs without talking past each other. In a field drowning in hype, crisp language is a kind of infrastructure.

The Industry Built On Top, Not Around

By 2026, these categories are baked into how teams design systems. Anthropic still teaches them in their Academy courses. Research papers and engineering blogs still use the same six buckets to describe new architectures. That kind of longevity is unusual for a discipline that refreshes its stack every quarter.

The reason is straightforward. The industry did not replace the framework. It built on top of it. New tools like MCP and the newer Agent Skills standards function as plumbing. They make it easier to connect a model to a database, expose a tool, or manage state. But they do not change the logic of when to use a router instead of an orchestrator. A better pipe does not rewrite the floor plan.

Production data in 2026 confirms this. The most common deployment pattern is still a single tool-use call paired with human review. The second most common is a multi-step workflow with exactly one handoff to a person. Both are direct descendants of Prompt Chaining and Routing. Full autonomous loops remain the exception, not the rule, in live systems.

Restraint Won the Market

The original guide’s best advice was also the advice most often ignored in 2024: use the simplest pattern that works. Do not deploy a full autonomous agent if a hardcoded path will get the job done.

The market has finally internalized this. Most agent pilots still fail, and they fail for the same predictable reason. Teams stack abstraction on abstraction until no one can trace the decision boundary. When the system drifts, debugging becomes archaeology. The companies that have succeeded in production are the ones that showed restraint. They defaulted to single-turn tool use. They added a routing layer only after the single prompt proved inconsistent. They treated autonomy as a liability to be justified, not a feature to be celebrated.

This is not an argument against ambition. It is an argument for composition. The patterns work best when you combine them deliberately rather than reflexively reaching for the most complex option on the menu.

Where the Seams Start to Leak

The framework is not a cure-all. There are hard limits that show up the moment you leave the prototype stage.

Voor taken met een hoge frequentie en lage kosten wint deterministische code nog steeds. Een LLM zou geen CSV-kolom moeten normaliseren wanneer pandas dit in milliseconden kan doen zonder te hallucineren. Vermijd autonome loops als je geen scherp evaluatiedoel kunt definiëren. Zonder een duidelijke stopconditie zal het model blijven itereren totdat het een reden verzint om te stoppen. Vertrouw bij beslissingen met een hoge inzet die externe onderbouwing vereisen niet uitsluitend op de interne kennis van het model. En let op knelpunten bij het ophalen van gegevens. Elk patroon dat afhankelijk is van vector search of externe API's kan vastlopen als je database traag is of je context window verstopt zit met irrelevante chunks.

Dit zijn geen hypothetische randgevallen. Het zijn de beperkingen die een werkende demo onderscheiden van een systeem dat het weekend overleeft.

Een rigide controle en een foutieve mislukking

Ik leerde de praktische waarde van dit framework kennen tijdens het bouwen van mijn testrepository. Ik was het Evaluator-Optimizer-patroon aan het implementeren. Mijn evaluator begon als een hardcoded regex die de output van het model scande op specifieke trefwoorden. Het model gaf een correct, goed onderbouwd antwoord dat toevallig synoniemen gebruikte in plaats van de exacte woorden waar ik naar op zoek was. De evaluator markeerde dit als een mislukking.

Het model had gelijk. Mijn controle was te rigide.

Het oplossen ervan vereiste meer dan alleen het uitbreiden van een woordenlijst. Ik stapte over op een LLM-gebaseerde beoordeling voor de evaluator zelf. Dat kostte extra tokens en een paar milliseconden meer, maar het bracht de evaluatie terug naar het juiste abstractieniveau. Het patroon zelf was solide. Ik had simpelweg de verkeerde implementatie voor de taak gekozen. Dat is precies het soort fout dat het framework moet voorkomen. Sommige evaluaties hebben code nodig. Andere hebben een model nodig. Weten welke welke is, is precies waar het om gaat.

Hoe je ze nu gebruikt

Beschouw deze zes patronen als een startpunt, niet als een absolute wet. Begin met een enkele prompt. Als de kwaliteit inconsistent is bij verschillende soorten input, voeg dan een routing-laag toe om verschillende verzoeken naar gespecialiseerde prompts te sturen. Als je meerdere onafhankelijke perspectieven nodig hebt voordat je een beslissing neemt, gebruik dan Parallelization. Als de taak groot en deelbaar is, probeer dan Orchestrator-Workers. Gebruik de volledige autonome loop pas wanneer de probleemruimte te breed is om vooraf in kaart te brengen en wanneer je een betrouwbare