Autonomy is not a virtue by itself
A workflow follows a known path. An agent discovers a path. If the task always has the same sequence, adding an agent loop usually adds cost, latency, and weird failure modes without buying much.
The disciplined question is not “can an agent do this?” Of course it can attempt it. The question is “does uncertainty in the path justify autonomous planning and tool choice?”
Use a workflow when the path is stable
ETL, invoice parsing, newsletter drafting, report generation, and CI checks often have known steps. Put the model inside those steps, but keep orchestration deterministic.
This gives you predictable logs, retry boundaries, and simpler tests. Boring? Yes. Shippable? Also yes. Boring wins a surprising number of production fights.
Use an agent when the path is discovered
Debugging, research, incident triage, codebase exploration, and open-ended planning often depend on intermediate discoveries. In those cases, the system needs to choose tools dynamically and revise its route.