Pattern
Workflow First
Default to a deterministic workflow before reaching for an agent.
When to use
When the steps a task requires can be listed in advance. When the failure cost is asymmetric (a wrong answer costs more than a missed one). When a workflow can hit 80%+ accuracy on the eval before any LLM autonomy is added. In these cases, a workflow is faster, cheaper, more predictable, and easier to debug.
When not to use
When the task requires runtime decisions that cannot be enumerated — open-ended troubleshooting, dynamic multi-step research, novel synthesis tasks. When the workflow's branching factor explodes beyond ~20 branches.