Most things being shipped as agents are a model call with a nicer wrapper around it. That is not a criticism of the products, it is a definition problem, and the definition matters because the four things that make a system genuinely agentic are also the four places it breaks.
The Loop, Not The Model
A standard language model call is stateless and one shot. You send a prompt, you get a response, the interaction is over. The model does not decide what happens next and it does not evaluate whether its own answer was good enough. You do both of those, or your application does.
An agent inverts that relationship. The same model sits inside a control loop: an objective goes in, the model picks an action, a tool runs, the model reads the result, adjusts the plan, and goes again until the goal is met or it concludes it cannot get there. Nothing about the model changed. The loop is the whole product.
This is why swapping in a stronger model rarely fixes a struggling agent. The failure is almost never the generation step.
The Four Properties
Four things separate an agentic system from a normal call, and it is worth checking your own system against them honestly.
Goal directedness. It receives an objective, deploy this fix, research these competitors, resolve this ticket, rather than a single question to answer.
Tool use. It can act beyond producing text: call an API, query a database, read a file, run code, send a message.
Planning autonomy. It decides the sequence of steps instead of having every step prescribed by the developer.
Self correction. It evaluates its own output, notices when a step failed or came back incomplete, and retries differently.
Not every system needs all four at full intensity. A system with none of them is a model call. A system with the first three and not the fourth is the most common shape in production, and it is the expensive one, because it fails confidently and nothing in the loop notices.
Where Agents Break In Production
The first break is the memory layer. An agent that cannot recall what it already tried will re-derive the same failed plan on the next run, and you pay for that twice. Longer context windows do not solve it, they just move the forgetting into the middle of the buffer where retrieval accuracy is worst.
The second is the success signal. Handing a job to an agent is only a good trade when the job has a clear one. Ranking audits, scheduled reports and ticket triage have one. Positioning and strategy do not, and an agent given those produces output nobody on the team can evaluate.
The third is cost shape. A loop that cannot tell when it is done will keep going, and the bill scales with the number of iterations rather than the number of requests. Most teams discover this after the first month, not before.
If you want the longer version of all of this, the loop, the core patterns, the memory layer and what production actually costs, it is covered on Agentic AI: How Autonomous AI Systems Work.
The short takeaway: an agent is not a smarter prompt, it is a loop with a memory and a stopping condition. Get those two right and the model you pick matters far less than you expect.
Top comments (0)