A developer's reference for understanding the AI stack
Three terms everyone uses interchangeably — but they describe three distinct layers of the same stack. Getting them straight is the difference between knowing what you're building and knowing why it works the way it does.
The Full Stack — How It All Fits Together
🏢
Anthropic
The company. Builds and trains everything. Think AWS — invisible infrastructure, but everything runs on it.
✨
Claude
The product family. Like EC2 is a product from AWS, Claude is the brand Anthropic sells.
🧠
Opus / Sonnet / Haiku
Individual models within Claude. Different capability and cost tradeoffs — Opus is most powerful, Haiku is fastest, Sonnet is the everyday workhorse.
💬
claude.ai
Anthropic's own chatbot, built on top of those models. Their consumer interface. But it's just one chatbot — you can build your own.
The One-Liner Summary
Model
The brains. Stateless, passive, no agency. Text in → text out.
Chatbot
The interface. Wraps the model in a conversation. You talk; it responds. No action.
Agent
Takes action. Uses the model to think, but has tools, a loop, and a goal.
The Question vs. Goal Test
Ask yourself: did you give it a question, or a goal?
Set up the S3 bucket, CloudFront distro, and wire the origin.
A question asks for knowledge transfer. A goal asks for work output. A chatbot talks. An agent does.
Full Comparison
🧠 Model
💬 Chatbot
🤖 Agent
What it is
The AI brain
The interface
Takes action
Acts on its own?
No
No
Yes
Has memory?
No
Session only
Can persist
Uses tools?
No
Rarely
Yes
Ease to build
Very Hard
Easy
Moderate
Anthropic example
Claude Sonnet / Opus
claude.ai
Claude Code
The Agent Loop
An agent isn't just a model that responds — it's a model in a loop with tools and goals. Instead of answering, it plans, acts, observes the result, and decides what to do next.
Goal → Think → Act (call a tool) → Observe result → Think again → Act again → Done
Example — Claude Code fixing a bug:
1. Read relevant files (tool: read_file)
2. Identify the bug (reasoning)
3. Edit the broken line (tool: edit_file)
4. Run the tests (tool: run_command)
5. Tests fail → diagnose again (loop continues)
6. Fix the root cause (tool: edit_file)
7. Tests pass → done (loop exits)
Build Complexity Spectrum
Chatbot
30–50 lines · Hours
Simple Agent
150–300 lines · Weekend
Complex Agent
500+ lines · Weeks
The hard part isn't model access — that's the same API call. The hard part is the orchestration layer: the loop that runs until the goal is met, plus tool definitions, plus feeding results back in. Models are hard to create but chatbots and agents are cheap — you're standing on someone else's billion-dollar investment for a few dollars a month in API calls.
A Tale of Two Claudes — Same Model, Different Experience
What you say
"How do I build a basic website?"
"What's the best approach for my S3 bucket?"
"Explain this error to me."
What happens
Claude writes code and explains structure
You copy the code into your editor
You paste it, push to GitHub, wire up S3 yourself
Claude talked. You did the work.
What you say
"Build me a responsive landing page and push it to my repo."
"Fix the failing tests."
"Set up the S3 bucket and wire CloudFront."
What happens
Claude Code reads your existing files
Writes the code, commits it, pushes to GitHub
Runs tests, sees errors, iterates until they pass
It did the work. You gave the goal.
Same model under the hood. Completely different experience because of the scaffolding around it. Claude Code qualifies as an agent specifically because it can interact with GitHub — that GitHub interaction is a tool call.
Why This Matters
You don't build models — you build on top of them. Every chatbot or agent you build is an application layer on top of a model someone else trained at enormous cost. The model is the commodity. The value is in the right interface, the right context, and the right use case. When in doubt: did you give it a question or a goal? That's your answer.