LLM vs chatbot vs agent: the difference that actually matters.
Three words people use interchangeably. They are not interchangeable. Here is the cleanest separation, plus how to tell which one you are using.
Three words get tangled in every conversation about generative AI: LLM, chatbot, agent. People use them interchangeably, vendors blur them on purpose, and beginners end up reasoning about the wrong thing. Here is the cleanest separation that survives contact with reality.
The 30-second version
- An LLM is a model. It takes text in, returns text out. That is all it does.
- A chatbot is an LLM wrapped in a conversational UI, with memory of the current chat.
- An agent is a chatbot allowed to call tools, take actions, and loop until a goal is reached.
Same brain, different harness. The capability gap is the harness, not the model.
LLM, more precisely
A large language model is a function. You give it a string of tokens, it returns a probability distribution over the next token. Wrapped in a sampling loop, that produces text. Nothing about an LLM, by itself, knows it is talking to a human, remembers past conversations, or can do anything other than emit tokens.
GPT-4, Claude 4, Llama 4, Mistral, Gemini — these are all LLMs. Without a wrapper, you cannot talk to them in a way that feels natural. You would feed them a prompt and read the completion.
Chatbot, more precisely
A chatbot adds three things on top of an LLM:
- A turn-taking interface (your message, then the model's reply, then yours again).
- Conversation memory within the session: the model is shown the prior turns so it can refer back to them.
- Often, a system prompt that shapes tone, persona, and what the model is allowed to do.
ChatGPT, Claude.ai, Gemini, Copilot Chat — all chatbots. They are not "smarter" than the underlying LLM. They are the same model with a usable harness.
Agent, more precisely
An agent is a chatbot that is also allowed to do things. "Things" means calling external functions: searching the web, reading files, running code, sending emails, controlling a browser. The model decides which tool to call, the runtime calls it, and the result is fed back into the conversation. The model can then decide to call another tool. The loop ends when the model decides the goal is met.
The same LLM is doing the thinking. What changed is that someone gave it hands.
| Property | LLM | Chatbot | Agent |
|---|---|---|---|
| Has the model | Yes | Yes | Yes |
| Conversational UI | No | Yes | Yes |
| Memory within session | No | Yes | Yes |
| Can call tools | No | Rarely | Yes (defining feature) |
| Can act on the world | No | No | Yes |
| Risk profile | Hallucination | Hallucination, prompt injection | + data exfiltration, accidental destructive actions |
Why this distinction matters
The capability — and the risk — shifts dramatically as you move down the list.
- An LLM can only mislead you with text. The damage stays in your head.
- A chatbot can mislead you and keep doing it for a longer conversation, but it still cannot act on your behalf.
- An agent can mislead you and execute the consequences. If it confidently decides to "fix" a permissions bug, it can run
chmodon the wrong files before you notice.
How to tell which one you are using
Look at three signals:
- Does it remember your last message? If no, it is closer to a raw LLM. If yes, it is at least a chatbot.
- Can it browse, search, or run code? If yes, it is an agent — even if the UI looks like a chatbot.
- Does it take more than a few seconds to reply? Most often, that is because it is calling tools in a loop. That is agent behaviour.
The practical rule of thumb
Treat them as different products with different threat models:
- For an LLM: worry about hallucination.
- For a chatbot: worry about hallucination and what you tell it (it might be logged).
- For an agent: worry about everything above, plus what it might do without asking you twice.
If a tool claims to be an agent, ask exactly which actions it can take and what the rollback story is. If the answer is vague, treat it as still in beta.