Back to blogAI Agents

Designing AI Agents

Ganesh PrashanthMay 28, 20266 min read

"Agent" has become a catch-all term, which makes it easy to over-engineer a simple problem or under-engineer a complex one. The distinction that actually matters is whether the task requires a single grounded answer, or a sequence of decisions and tool calls to reach an outcome.

If the job is 'answer this question using our documents,' a well-built RAG-backed assistant is the right tool — simpler to build, easier to evaluate, and cheaper to run than an agent loop.

If the job is 'look up the customer's order, check the return policy, and issue a refund if eligible,' an agent is warranted: a system that plans steps, calls tools, and adapts based on intermediate results. That capability comes with more surface area for things to go wrong, which is why guardrails and human-in-the-loop checkpoints matter more as autonomy increases.

Tool calls should go through typed, validated interfaces — not free-form text parsing of the model's output. A geometry check, a refund action, a database write: each should be a function with a defined schema the model calls, not a string the system tries to interpret after the fact.

The rule of thumb: start with the simplest architecture that solves the actual problem, and only add agentic autonomy where the task genuinely requires multi-step decision-making. Most business problems need less autonomy than the initial pitch assumes.