Skip to content

Agentic AI Weather Assistant using Gemini API with tool calling for live weather data.

Notifications You must be signed in to change notification settings

mufeez1/agent-tool-calling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 What is a “tool” (in AI)?

A tool is a small helper that does one job really well (like a calculator or weather app). Your AI (the “brain”) can ask a tool to do that job and then use the result to answer you.

One‑liner: A tool is a helper your AI can use to get something done.


🔧 What is “tool calling”?

Tool calling is when the AI decides to use a tool during a conversation.

Flow:

  1. User asks: “What’s the weather in Karachi?”
  2. AI thinks: “I need real weather data.”
  3. AI calls tool: get_weather(city="Karachi")
  4. Tool returns: {"temp": 33, "condition": "Cloudy"}
  5. AI answers: “It’s 33°C and cloudy in Karachi.”

Think of it like a student using a calculator during an exam: the student decides when to use it, pushes the buttons (inputs), gets the number (output), and writes the final answer in their own words.


🧭 Why do we need tools?

  • LLMs don’t have live data. Tools fetch today’s facts (weather, news, prices).
  • LLMs can’t act by themselves. Tools do things (send email, book a slot, run code).
  • Accuracy & safety. Tools can validate math, check a database, or enforce rules.

🧰 Common tool types (beginner names)

Tool What it helps with
Search Look up facts on the web
Calculator Do exact math
Weather Get live weather
Email/SMS Send a message
Code Runner Execute code safely
Database Read/write app data

🧩 Real‑world analogy trio

  • Smartphone & apps: Your phone (AI) decides when to open Maps (tool) to navigate.
  • Kitchen: The chef (AI) uses a blender (tool) only when a recipe needs it.
  • Office: The manager (AI) asks the finance system (tool) for an invoice total.

🌀 The life of a tool call (super simple)

  1. Intent detection: “This needs outside help.”
  2. Pick a tool: Choose the right helper.
  3. Fill inputs: Provide clean, specific arguments (e.g., city="Karachi").
  4. Run tool: Call the function/API.
  5. Use result: Explain it in normal language to the user.
  6. (Optional) Act again: If needed, chain another tool (e.g., then send an email).

🧪 Tiny “paper” demo you can run in class (no code)

  • Make three cards (tools): Calculator, Weather, Dictionary.

  • Assign one student as AI, three students as tools, and one as User.

  • User asks: “What’s 19×23 and is it hotter than 30°C in Karachi?”

  • “AI” decides:

    • Calls Calculator → gets 437.
    • Calls Weather → gets 33°C.
  • “AI” responds: “19×23 = 437. Yes, it’s hotter than 30°C (33°C).” This makes tool calling visible and fun.


🧑‍💻 What does a tool look like (conceptually)?

You define a name, inputs, and what it returns (output). For example:

Tool name: get_weather
Inputs: city (text)
Returns: { temp: number, condition: text }

The AI picks this tool when it sees a weather question and fills in city from the user’s message.


✅ When to use tools vs. not

  • Use tools for live info, precise math, database reads/writes, sending messages, or doing real actions.
  • Don’t use tools when a normal explanation, story, or concept answer is enough.

🛡️ Good habits for beginners who build tools

  • One job per tool (single responsibility).
  • Clear names & inputs (e.g., send_email(to, subject, body)).
  • Predictable outputs (simple JSON).
  • Handle errors (what if the city isn’t found?).
  • Stay safe (never expose secrets; validate inputs).

🌈 Encourage curiosity

Let guess which tool you’d use for different tasks:

  1. “Translate this sentence.”
  2. “Find cheapest flight.”
  3. “Save my progress.”

Answers:

  1. Translation tool
  2. Search + Price tool
  3. Database tool

Visual Representation

Tool Calling Example

About

Agentic AI Weather Assistant using Gemini API with tool calling for live weather data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages