Tools · Free preview

Why Agents Need Tools

A model can only talk

A language model can only produce text from what it already knows — the moment a request needs live data, exact arithmetic, or an action in the world, it needs a tool.

A model can only talk

Ask a bare model "what's the weather in Tokyo right now?" and it will answer with total confidence — "It's 18°C and partly cloudy." It made that up. The model has no window, no thermometer, no live feed; it produced the words that most often follow that question in its training. Ask "what is 48291 × 7732?" and it will write a number that looks right and is almost certainly wrong, because it pattern-matches digits instead of multiplying them.

That's the failure tools exist to fix. A language model is a text function: given words, it returns likely next words. For timeless knowledge — who wrote Hamlet, why the sky is blue — that's enough, because the answer was baked in and never changes. But the model has no clock, no calculator, no inbox. The instant a request needs live data, exact arithmetic, or an action in the world, text prediction can only produce a plausible-sounding guess. A tool is what actually goes and gets the real value — or performs the real action.

A guessed weather reading or hallucinated total isn't just wrong, it's confidently wrong, and a user can't tell the difference. The first skill of agent design is spotting which requests fall past the model's edge — every tool in this track exists to cover it.

Below is a list of user requests. Finish classify so it returns "needs-tool" for the ones that reach past frozen knowledge — live data ("weather… right now", "current price of Bitcoin"), exact arithmetic, real-world actions ("send an email") — and "answerable" for the timeless facts. Print <request> -> <verdict> for each. Done is when every line carries the verdict that matches its real signal.

A tool is not a feature you bolt on for fun — it is the answer to a request the model literally cannot satisfy with words alone.

In the full academy, you write and run this — live, graded:

// A bare model can only emit text from what it already knows.
// Some requests it can answer; others NEED a tool (live data, exact
// arithmetic, or an action in the world). Classify each request.
const requests = [
  "What is the capital of France?",
  "What is the weather in Tokyo right now?",
  "Why is the sky blue?",
  "What is 48291 * 7732?",
  "Send an email to my landlord",
  "What is the current price of Bitcoin?",
  "Who wrote Hamlet?",
];

// 🧠 Decide: does this request need a tool, or can a bare model answer it?
function classify(request) {
  // TODO: return "needs-tool" or "answerable" based on real signals.
  return "answerable";
}

for (const r of requests) {
  console.log(`${r} -> ${classify(r)}`);
}

🔒 Live code execution, real agent runs, mastery tracking and verifiable credentials unlock with the full academy.

This is 1 of 50 lessons.

The full academy: write real code, watch real agents run, and earn verifiable credentials — across 8 tracks, in a 3D campus.

Unlock the full academy — $100 →

14-day refund · 🔒 Stripe-secured checkout · lifetime access

More free lessons: An LLM Is a Function  ·  The Agent Loop  ·  Define a Tool  ·  Give an Agent a Tool  ·  Durable State

← The Agent Marketplace