Everyone is shipping agents; far fewer are shipping reliable ones. The gap is instructive, because most agent failures aren't the model being unintelligent. They're the scaffolding around it.
The three real problems
Error recovery. A tool returns an error or garbage. Weak agents plow ahead as if nothing happened; strong ones notice, diagnose, and retry differently. Most catastrophic agent runs trace back to an unhandled bad result early on.
Context management. Long tasks overflow the window. What the agent chooses to keep, summarize, or drop determines whether it stays coherent or loses the plot. This is an engineering decision, not a model capability.
Knowing when to stop. Recognizing that a task is done — or genuinely stuck — is a skill. Agents that can't stop loop forever or declare victory too early.
The model is the easy part now. Reliability is the work.
Evaluation is the real moat
You can't improve what you can't measure, and agents are hard to measure: success is multi-step and often subjective. The teams that win invest first in task suites — reproducible scenarios with clear pass/fail — before they invest in prompts. The evaluation harness, not the clever prompt, is what compounds.
Tools are the product surface
An agent is only as good as the tools it's given and how clearly they're described. A crisp tool definition — good name, tight inputs, honest description of when to use it — does more for reliability than a smarter model. Ambiguous, overlapping tools produce confused agents.
The path to reliable agents runs through boring engineering: handle errors, manage context, define done, measure everything, and give the agent sharp tools. Depth beats breadth, and trust is earned one reliable run at a time.