What Are AI Agents? A Practical Definition

November 29, 2026

"AI agent" has become one of those terms that gets applied to everything from a genuinely autonomous multi-step system to a chatbot with a slightly longer system prompt. Here's a definition grounded in what actually distinguishes an agent architecturally, not in marketing language.

Table of Contents

A Working Definition

An AI agent is a system where an LLM decides its own sequence of actions — which tools to call, in what order, whether to loop back and try again — based on the current state of a task, rather than following a fixed, developer-defined sequence. The defining feature isn't "uses an LLM" (that's true of any LLM-powered feature) or "has memory" (many non-agentic systems have memory) — it's that the control flow itself is determined by the model at runtime, not hardcoded by a developer in advance.

What Separates an Agent from a Chatbot

A chatbot, even a sophisticated one with tool access, typically follows a fixed pattern: receive message, optionally call one tool, respond. An agent, by contrast, can chain multiple tool calls, evaluate intermediate results, and decide whether it needs to take another action before producing a final response — the loop continues until the model itself decides the task is complete, not until a developer-defined number of steps has run.

# Chatbot pattern: fixed, single-step tool use def chatbot_respond(message): if needs_search(message): results = search_tool(message) return llm.invoke(f"Answer using: {results}") return llm.invoke(message) # Agent pattern: the model decides the loop def agent_respond(task): state = {"task": task, "steps": []} while not is_complete(state): action = llm.decide_next_action(state) # model chooses: search, calculate, ask user, or finish result = execute(action) state["steps"].append(result) return state["steps"][-1]

The Core Components of an Agent

  • A goal or task description the agent is working toward.
  • Tools the model can invoke — search, code execution, database queries, API calls — each with a defined interface the model can reason about.
  • State/memory tracking what's happened so far in the current task, so the model's next decision is informed by prior steps.
  • A loop with a termination condition — the model needs a way to recognize the task is done (or has failed) and stop, rather than looping indefinitely.

Frameworks like LangGraph (see my multi-agent systems piece) provide structured ways to build this loop with explicit state and conditional branching, rather than hand-rolling it.

A Concrete Example

A genuinely agentic customer support system: given a ticket, the agent might first search a knowledge base, decide the results are insufficient, then query a database for the customer's account history, then decide it needs to escalate to a human, and finally draft a summary for the human agent — all without a developer having pre-scripted that exact sequence for that exact ticket. A non-agentic version of the same feature would have a developer-defined flowchart: if category X, search KB; if not resolved, escalate. The agentic version's sequence emerges from the model's own reasoning about the specific ticket.

Where the Term Gets Overstretched

  • A single LLM call with a system prompt calling it "an agent" because it has a persona — no actual decision-making loop is happening.
  • A fixed two-step pipeline (retrieve then generate) labeled agentic when it's actually just RAG (see my RAG explainer) with no model-driven branching.
  • Marketing materials describing any LLM product as "agentic AI" regardless of whether there's genuine autonomous multi-step decision-making under the hood — this is the most common source of the term's dilution.

Levels of Agentic Autonomy

A useful mental model, roughly ordered by increasing autonomy: tool-augmented response (one tool call, no looping) → planning agent (model creates a plan upfront, then executes it, limited replanning) → fully autonomous agent (model continuously reassesses and can change its plan based on intermediate results, with minimal fixed structure) → multi-agent system (multiple specialized agents collaborating, potentially with a supervisor coordinating them). Most production systems sit at the tool-augmented or planning-agent level — fully autonomous, open-ended agents are still relatively rare in production due to reliability and cost concerns at that level of unconstrained autonomy.

When You Actually Need an Agent vs a Simpler System

If your task has a predictable, small number of steps that a developer can reasonably enumerate in advance, a fixed pipeline is simpler, cheaper, more predictable, and easier to debug than an agent — don't reach for agentic architecture by default. Agents earn their complexity when the actual sequence of steps genuinely can't be predetermined because it depends on information only available mid-task (what a search returns, what a user says next, what an intermediate calculation yields).

FAQs

Is ChatGPT with plugins/tools an AI agent? It has agentic characteristics (the model decides whether and which tool to call), though the degree of autonomous multi-step looping varies by implementation — it sits somewhere on the "tool-augmented" to "planning agent" end of the spectrum depending on the specific feature.

Do I need LangGraph or a similar framework to build an agent? Not strictly — you can hand-roll the loop with plain code, as shown above. Frameworks earn their value once you need more sophisticated state management, branching, or persistence (resuming a paused agent) than a simple while-loop provides.

Are AI agents reliable enough for production use? Depends heavily on the task and the level of autonomy — constrained, tool-augmented agents with clear termination conditions and human review for consequential actions are production-viable today; fully open-ended autonomous agents with no guardrails are riskier and less predictable.

What's the difference between an agent and a workflow automation tool (like Zapier)? Workflow automation tools execute a fixed, developer/user-defined sequence of steps — no model-driven decision-making about what to do next. An agent's defining feature is that an LLM decides the sequence at runtime, not a human predefining it.

Key Takeaways

  • The defining feature of an agent is that an LLM determines its own action sequence at runtime, not that it "uses AI" or "has memory."
  • Most production systems today sit at the tool-augmented or planning-agent level of autonomy, not fully open-ended autonomous agents.
  • Use a fixed pipeline when the steps are predictable in advance — agents earn their complexity only when the sequence genuinely can't be predetermined.

Related Reading

Next Steps

Evaluating whether your product actually needs an agentic architecture, or want help scoping one that's production-reliable? Let's talk.

LinkedIn