From one answer to a finished task
A chat with a large language model produces text; an agent produces outcomes. The difference is architecture, not magic: an agent wraps the model in a loop — decide the next step, act through a tool (search, database, code execution, another API), observe the result, decide again — until the task is done or a stop condition triggers. The model supplies the reasoning; the surrounding system supplies memory, tools and guardrails.
- Planning — decomposing a goal ('prepare the monthly report') into executable steps.
- Tool use — the model does not browse or query anything by itself; the agent framework exposes tools and the model chooses among them.
- Memory — task state and prior results carried across steps, often via retrieval-augmented generation.
- Guardrails — budgets, permissions and human-approval gates, because a system that acts can also act wrongly at speed.
Agents inherit every weakness of their model — hallucination, prompt sensitivity — and add new failure modes of their own, like loops that burn budget without progress. The practical craft is scoping: agents shine on well-bounded workflows with verifiable results, and disappoint as general-purpose employees. That gap between demo and dependable deployment is where the real engineering happens.
