AI Agents vs Chatbots: What's the Real Difference
Bright Leaf Coffee's support assistant, built across parts 16 through 18, is genuinely a chatbot — it answers real questions, grounded in real data, but it can't actually do anything beyond generating text. This part covers the real, precise line separating that from a genuine AI agent.
The real, core distinction
Chatbot: takes a real input, generates a real text response — the
ENTIRE real capability is generating an answer (exactly parts 16-18)
Agent: can take real, independent ACTIONS — looking something up,
calling a real function, modifying real data — often across
MULTIPLE real steps, deciding what to do next based on each step's
real resultThis isn't a difference in the underlying model — a real agent uses the exact same generation mechanism from part 4. The real, structural difference is in what the surrounding application built around that model actually allows it to do.
Tool use: the real, technical mechanism enabling agent behavior
tools = [
{
"name": "check_order_status",
"description": "Look up a real Bright Leaf Coffee order by ID",
"input_schema": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
}
]
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "Where's my order BLC-10293?"}],
)This directly extends part 16's real request structure with one new, real piece — a tools definition. Rather than only generating text, the model can now respond by requesting that your own real code execute check_order_status("BLC-10293") — your application actually runs that real, specific function, then sends the real result back to the model to generate its final, grounded answer.
A real, complete agent loop
1. Customer asks: "Where's my order BLC-10293?"
2. Model decides (based on its training and the tools provided) that
answering requires calling check_order_status
3. Your real application code actually executes that function against
a real, live order database
4. The real result (shipped, in transit, delivered) is sent back to
the model
5. The model generates its final, real, grounded answer using that
actual, current dataThis is genuinely different from part 18's chatbot, even though it uses the exact same underlying model — the real, added capability is the model directing your application to take a real action and incorporate its genuine, live result, rather than only ever working from data already present in the prompt.
This is exactly the real gap between Bright Leaf Coffee's chatbot (parts 16-18) and a genuine agent — the chatbot can answer "what subscriptions do you offer" perfectly well from hardcoded or RAG-retrieved data (part 19), but it structurally cannot answer "where's my order" correctly, since that requires a real, live lookup against data that changes constantly and can't be baked into a prompt in advance.
Multi-step agents: real, chained tool use
A genuinely more complex real task: "Cancel my subscription and
refund my last order"
Real, multi-step agent behavior:
1. Call a real cancel_subscription tool
2. Call a real get_last_order tool
3. Call a real issue_refund tool, using data from step 2
4. Generate a real, final confirmation message summarizing what
was actually doneA genuine agent can chain several real tool calls together, using the result of one to inform the next — this is the real, structural capability that separates an agent from a chatbot that can only make one real tool call in isolation, and it's the same underlying pattern behind real, more sophisticated systems like the Claude Agent SDK referenced in this site's own news coverage.
A real, honest scoping note
Building a genuine, production-safe multi-step agent — with real
safeguards against an incorrect or unintended real action (like a
wrongly triggered refund) — is genuinely beyond this series'
beginner-to-intermediate scopeThis part's real, practical goal is precise, honest understanding of the distinction and the underlying tool-use mechanism enabling it — not a full, production-ready agent implementation, which involves genuinely more real safeguards (confirmation steps, permission scoping, real audit logging) than this series has covered.
Next: common AI beginner mistakes and misconceptions — a direct, honest roundup of the real gaps this series flagged individually, brought together in one place.