An 'AI agent' is a language model given tools, memory, and a loop: it decides which tool to call, reads the result, and decides again until the task is done or a limit is reached. That loop is the whole idea, and it is also where most of the difficulty lives.
The pattern that works most reliably today is the narrow, tool-constrained agent. Give the model a small set of well-described tools, a clear success condition, and a bounded number of steps. Support triage, data lookup and summarisation, and internal reporting all fit this shape. The task is repetitive, the tools are few, and a wrong answer is recoverable.
The pattern that disappoints is the open-ended autonomous agent asked to accomplish a vague goal across many systems. Each step compounds the error rate of the last. An agent that is 95% reliable per step is roughly 60% reliable across ten steps, which is not a system anyone should put in front of customers without a human check.
Retrieval matters more than model choice for most enterprise use cases. An average model with excellent, well-scoped context outperforms a frontier model guessing from training data. Invest in chunking strategy, metadata filtering, and evaluation of retrieval quality before spending time comparing model providers.
Evaluation is the part teams skip and later regret. Build a set of real inputs with known-good outputs before you build the agent. Without it, every prompt change is a guess and every regression is invisible until a user reports it.
Guardrails belong at the tool boundary, not only in the prompt. If an agent should never issue a refund above a threshold, enforce that in the tool implementation. Prompt instructions are guidance; code is enforcement.
A sensible first project: pick one repetitive workflow with clear inputs, a small tool surface, and a human approving anything consequential. Measure deflection or time saved against a baseline. Expand scope only once the evaluation set stays green.