Quando a Anthropic publicou Building Effective Agents no final de 2024, ela fez algo raro para a indústria: deu aos engenheiros um vocabulário compartilhado. Em vez de mais um manifesto sobre inteligência artificial geral, o guia ofereceu seis padrões claros para estruturar sistemas de LLM. Um ano e meio depois, em 2026, o cenário parece radicalmente diferente. O Model Context Protocol tornou-se um padrão universal. O Claude ganhou novas capacidades. A maioria das organizações agora tem pelo menos um agente rodando em produção. Diante desse cenário, é justo perguntar se esses seis padrões ainda importam, ou se pertencem ao arquivo ao lado dos pesos dos modelos do ano passado.
Eu testei
For high-frequency, low-cost tasks, deterministic code still wins. An LLM should not be normalizing a CSV column when pandas can do it in milliseconds without hallucinating. Avoid autonomous loops if you cannot define a crisp evaluation goal. Without a clear stopping condition, the model will iterate until it invents a reason to stop. For high-stakes decisions that require external grounding, do not rely solely on the model’s internal knowledge. And watch for bottlenecks in data retrieval. Any pattern that depends on vector search or external APIs can choke if your database is slow or your context window is clogged with irrelevant chunks.
These are not hypothetical edge cases. They are the constraints that separate a working demo from a system that survives the weekend.
A Rigid Check and a Wrong Failure
I learned the practical value of this framework while building my test repository. I was implementing the Evaluator-Optimizer pattern. My evaluator started as a hardcoded regex that scanned the model’s output for specific keywords. The model returned a correct, well-reasoned answer that happened to use synonyms instead of the exact words I was hunting. The evaluator flagged it as a failure.
The model was right. My check was too rigid.
Fixing it required more than expanding a word list. I switched the evaluator itself to an LLM-based judgment. That cost extra tokens and a few more milliseconds, but it restored the evaluation to the right level of abstraction. The pattern itself was sound. I had simply chosen the wrong implementation for the task. That is exactly the kind of mistake the framework is meant to prevent. Some evaluations need code. Others need a model. Knowing which is which is the whole point.
How to Use Them Now
Treat these six patterns as a starting point, not absolute law. Begin with a single prompt. If quality is inconsistent across input types, add a routing layer to send different requests to specialized prompts. If you need multiple independent perspectives before making a call, use Parallelization. If the task is large and divisible, try Orchestrator-Workers. Only reach for the full autonomous loop when the problem space is too wide to pre-map and when you have a reliable
