Bird
Raised Fist0
Agentic AIml~3 mins

Why Defining tool schemas and descriptions in Agentic AI? - Purpose & Use Cases

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
The Big Idea

What if you never had to guess how to use a tool again?

The Scenario

Imagine you have many different tools to solve problems, but no clear list or guide explaining what each tool does or how to use it.

You try to remember or guess each tool's purpose every time you need it.

The Problem

This guesswork wastes time and causes mistakes.

You might pick the wrong tool or use it incorrectly, leading to frustration and poor results.

The Solution

Defining tool schemas and descriptions creates a clear, organized map of each tool's purpose and how to use it.

This helps you quickly find the right tool and understand how it works without confusion.

Before vs After
Before
tool = get_tool('weather')  # guess what it does
result = tool.run('today')
After
tool = get_tool('weather', schema=weather_schema)  # clear description
result = tool.run('today')
What It Enables

With clear schemas and descriptions, you can build smarter systems that pick and use tools correctly every time.

Real Life Example

Think of a smartphone app store where each app has a description and screenshots.

This helps you choose the right app quickly instead of guessing what it does.

Key Takeaways

Manual tool use is slow and error-prone without clear info.

Tool schemas provide organized descriptions and usage rules.

This clarity speeds up correct tool selection and use.

Practice

(1/5)
1. What is the main purpose of defining a tool schema in agentic AI?
easy
A. To describe what the tool does and what inputs it needs
B. To write the tool's source code
C. To train the AI model
D. To store user data securely

Solution

  1. Step 1: Understand the role of tool schemas

    Tool schemas explain what a tool does and what inputs it requires for proper use.
  2. Step 2: Differentiate from other tasks

    Writing code, training models, or storing data are separate tasks not covered by schemas.
  3. Final Answer:

    To describe what the tool does and what inputs it needs -> Option A
  4. Quick Check:

    Tool schema = tool description + inputs [OK]
Hint: Schemas explain tool purpose and inputs clearly [OK]
Common Mistakes:
  • Confusing schema with code implementation
  • Thinking schema trains the AI
  • Assuming schema stores data
2. Which of the following is the correct way to define a tool schema description in JSON format?
easy
A. {"name": search, "desc": "Finds info", inputs: {query: string}}
B. {"tool": search, description: Finds info, inputs: query string}
C. {"name": "search", "description": "Finds information", "inputs": {"query": "string"}}
D. {name: "search", description: "Finds information", inputs: {query: string}}

Solution

  1. Step 1: Check JSON syntax correctness

    {"name": "search", "description": "Finds information", "inputs": {"query": "string"}} uses proper JSON with keys and string values quoted correctly.
  2. Step 2: Verify key names and structure

    {"name": "search", "description": "Finds information", "inputs": {"query": "string"}} uses "name", "description", and "inputs" keys properly with correct value types.
  3. Final Answer:

    {"name": "search", "description": "Finds information", "inputs": {"query": "string"}} -> Option C
  4. Quick Check:

    Valid JSON with quoted keys and strings = {"name": "search", "description": "Finds information", "inputs": {"query": "string"}} [OK]
Hint: Look for quoted keys and string values in JSON [OK]
Common Mistakes:
  • Missing quotes around keys or strings
  • Using unquoted identifiers
  • Incorrect key names or structure
3. Given this tool schema snippet:
{"name": "calculator", "description": "Performs math operations", "inputs": {"operation": "string", "x": "number", "y": "number"}}

What would be the expected output if the tool is called with inputs {"operation": "add", "x": 5, "y": 3}?
medium
A. 8
B. "add"
C. 53
D. Error: missing inputs

Solution

  1. Step 1: Understand the tool schema inputs

    The tool expects an operation (like add) and two numbers x and y.
  2. Step 2: Apply the operation to inputs

    Adding 5 and 3 results in 8 as output.
  3. Final Answer:

    8 -> Option A
  4. Quick Check:

    5 + 3 = 8 [OK]
Hint: Match inputs to operation and compute result [OK]
Common Mistakes:
  • Returning operation string instead of result
  • Concatenating numbers as strings
  • Assuming missing inputs cause error
4. You have this tool schema:
{"name": "translator", "description": "Translates text", "inputs": {"text": "string", "target_lang": "string"}}

Which error is present in this schema?
medium
A. Description is too long
B. Name key is missing
C. Input types should be numbers
D. Missing closing brace for inputs object

Solution

  1. Step 1: Check JSON syntax carefully

    The inputs object is opened but not closed with a } before the schema ends.
  2. Step 2: Verify other keys

    Name key exists, description length is fine, input types as strings are correct.
  3. Final Answer:

    Missing closing brace for inputs object -> Option D
  4. Quick Check:

    Unclosed braces cause JSON errors [OK]
Hint: Count opening and closing braces carefully [OK]
Common Mistakes:
  • Ignoring missing braces
  • Thinking input types must be numbers
  • Assuming description length matters
5. You want to define a tool schema for a weather forecast tool that takes a city name and date, and returns temperature and conditions. Which schema correctly describes this tool?
hard
A. {"name": "weather", "description": "Forecast tool", "inputs": {"city": "string"}, "outputs": {"temp": "string", "cond": "string"}}
B. {"name": "weather", "description": "Provides weather forecast", "inputs": {"city": "string", "date": "string"}, "outputs": {"temperature": "number", "conditions": "string"}}
C. {"name": "weather", "description": "Gives weather", "inputs": {"location": "string", "day": "date"}}
D. {"name": "weather", "inputs": {"city": "string", "date": "string"}}

Solution

  1. Step 1: Check completeness of schema

    {"name": "weather", "description": "Provides weather forecast", "inputs": {"city": "string", "date": "string"}, "outputs": {"temperature": "number", "conditions": "string"}} includes name, description, inputs (city and date), and outputs (temperature and conditions) as required.
  2. Step 2: Verify input and output types

    Inputs are strings (city, date), outputs are number and string, matching expected data.
  3. Final Answer:

    {"name": "weather", "description": "Provides weather forecast", "inputs": {"city": "string", "date": "string"}, "outputs": {"temperature": "number", "conditions": "string"}} -> Option B
  4. Quick Check:

    Complete schema with inputs and outputs = {"name": "weather", "description": "Provides weather forecast", "inputs": {"city": "string", "date": "string"}, "outputs": {"temperature": "number", "conditions": "string"}} [OK]
Hint: Include inputs and outputs with correct types [OK]
Common Mistakes:
  • Omitting outputs section
  • Using wrong input/output keys or types
  • Leaving out description