Engineers reach for agents because they look powerful. Users reach for products that are fast, correct, and predictable. Match complexity to the problem.
Decision checklist
- Is the task mostly retrieval + one explanation? Start with RAG and a single LLM call.
- Is the process fixed by policy? Encode it as code or a state machine; let the LLM fill slots.
- Are steps exploratory and branching? Consider an agent — with budgets and tests.
- Does latency budget dominate? Fewer model passes win; cache aggressively.
Complexity debt
Every extra tool and loop adds: failure modes, monitoring requirements, and QA surface. Ship the minimum that satisfies success metrics, then add autonomy where data proves it helps.
Key takeaways
- Prefer boring pipelines until data says you need autonomy.
- Measure outcomes; do not choose architecture based on demos alone.
- Simpler systems are easier to secure, test, and operate.