Patterns I Keep Reaching For in Agentic Workflows

A short catalogue of the patterns that survive contact with real-world agent orchestration.

After spending time building and reviewing agentic systems, certain patterns keep appearing regardless of the framework or model in use. A few I find myself returning to:

Narrow the action surface. The most stable agents have small, well-defined tool sets. Every tool you add is a failure mode you are accepting. Start with the minimum and add deliberately.

Separate planning from execution. Agents that plan and act in the same context window tend to drift. A planning step that produces a structured intermediate representation — even just a list — before any tools are called makes the system easier to debug and interrupt.

Design for the unhappy path first. The happy path usually works. What happens when a tool returns an unexpected schema? When a step times out? When the model loops? These are the cases worth designing around before you hit them in production.

Human-in-the-loop is not a failure. For high-stakes or irreversible operations, a confirmation step is architecture, not a workaround. The systems that age well are the ones that know where to stop and ask.

Log everything, observe selectively. Full trace logging is cheap. You won’t know what you need until something goes wrong. Build the logging in early, then build a layer on top to surface signal from the noise.

None of this is novel. Most of it applies to distributed systems generally. The interesting challenge with agents is that the failure modes are harder to predict and reproduce.