Bird
Raised Fist0
LangChainframework~20 mins

Creating tools for agents in LangChain - Practice Exercises

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
Challenge - 5 Problems
🎖️
LangChain Tools Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this LangChain tool execution?
Consider this LangChain tool that adds two numbers. What will be the output when the tool is called with inputs 3 and 5?
LangChain
from langchain.tools import Tool

def add_numbers(a: int, b: int) -> int:
    return a + b

add_tool = Tool(
    name="Adder",
    func=add_numbers,
    description="Adds two numbers"
)

result = add_tool.func(3, 5)
ATypeError: func() missing 1 required positional argument
B35
C8
DNone
Attempts:
2 left
💡 Hint
Think about what the add_numbers function returns when given 3 and 5.
📝 Syntax
intermediate
2:00remaining
Which option correctly defines a LangChain tool with a synchronous function?
You want to create a LangChain tool that synchronously reverses a string. Which code snippet correctly defines this tool?
Areverse_tool = Tool(name="Reverser", func=lambda s: s[::-1], description="Reverses a string")
Breverse_tool = Tool(name="Reverser", async def func(s): return s[::-1], description="Reverses a string")
Creverse_tool = Tool(name="Reverser", func=async lambda s: s[::-1], description="Reverses a string")
Dreverse_tool = Tool(name="Reverser", func=lambda s: s.reverse(), description="Reverses a string")
Attempts:
2 left
💡 Hint
Remember that synchronous functions do not use async keywords.
🔧 Debug
advanced
2:00remaining
What error does this LangChain tool code raise?
This tool is intended to fetch current weather but has a bug. What error will it raise when called?
LangChain
from langchain.tools import Tool
import requests

def get_weather(city: str) -> str:
    response = requests.get(f"https://api.weather.com/{city}")
    return response.json()['temp']

weather_tool = Tool(name="Weather", func=get_weather, description="Gets weather")

result = weather_tool.func('London')
ANo error, returns temperature as string
BTypeError: func() missing 1 required positional argument
Crequests.exceptions.ConnectionError
DKeyError: 'temp'
Attempts:
2 left
💡 Hint
Check what keys the JSON response might have and if 'temp' exists.
state_output
advanced
2:00remaining
What is the value of 'counter' after running this LangChain tool multiple times?
This tool increments a counter each time it is called. What is the value of 'counter' after calling tool.func() three times?
LangChain
from langchain.tools import Tool

counter = 0

def increment_counter() -> int:
    global counter
    counter += 1
    return counter

increment_tool = Tool(name="Incrementer", func=increment_counter, description="Increments counter")

increment_tool.func()
increment_tool.func()
increment_tool.func()
A1
B3
C0
DTypeError: global variable not defined
Attempts:
2 left
💡 Hint
Think about how the global variable 'counter' changes with each call.
🧠 Conceptual
expert
2:00remaining
Which option best describes the role of a Tool in LangChain agents?
In LangChain, what is the primary purpose of creating a Tool for an agent?
ATo provide a reusable function with a description that an agent can call to perform specific tasks during its reasoning process
BTo store large datasets that the agent uses internally for training
CTo handle user interface rendering for the agent
DTo replace the language model with a faster alternative
Attempts:
2 left
💡 Hint
Think about how agents use tools to extend their capabilities.

Practice

(1/5)
1. What is the main purpose of creating tools for agents in Langchain?
easy
A. To let agents perform specific tasks easily
B. To make the code run faster
C. To store data permanently
D. To create user interfaces

Solution

  1. Step 1: Understand the role of tools in Langchain

    Tools are designed to help agents do tasks by providing specific functions.
  2. Step 2: Identify the main benefit

    By using tools, agents can perform tasks more easily and effectively.
  3. Final Answer:

    To let agents perform specific tasks easily -> Option A
  4. Quick Check:

    Tools help agents do tasks = B [OK]
Hint: Tools help agents do tasks simply and clearly [OK]
Common Mistakes:
  • Thinking tools speed up code execution
  • Confusing tools with data storage
  • Assuming tools create user interfaces
2. Which of the following is the correct way to create a tool in Langchain?
easy
A. tool = Tool(func=search_function)
B. tool = Tool('search', description='Searches data')
C. tool = Tool(name='search', description='Searches data')
D. tool = Tool(name='search', func=search_function, description='Searches data')

Solution

  1. Step 1: Check required parameters for Tool

    The Tool constructor needs a name, a function (func), and a description.
  2. Step 2: Match parameters with options

    Only tool = Tool(name='search', func=search_function, description='Searches data') provides all three: name, func, and description correctly.
  3. Final Answer:

    tool = Tool(name='search', func=search_function, description='Searches data') -> Option D
  4. Quick Check:

    Tool needs name, func, description = C [OK]
Hint: Tool needs name, function, and description to work [OK]
Common Mistakes:
  • Omitting the function parameter
  • Passing parameters in wrong order
  • Leaving out the description
3. Given this code snippet, what will be the output when the agent uses the tool?
def greet(name: str) -> str:
    return f"Hello, {name}!"

from langchain.agents import Tool

greet_tool = Tool(name='greet', func=greet, description='Greets a person')

result = greet_tool.func('Alice')
print(result)
medium
A. "greet Alice"
B. "Hello, Alice!"
C. Error: Missing agent call
D. "Hello!"

Solution

  1. Step 1: Understand the greet function behavior

    The greet function returns a string "Hello, {name}!" with the given name.
  2. Step 2: Check how the tool is used

    The tool calls greet with 'Alice', so it returns "Hello, Alice!" which is printed.
  3. Final Answer:

    "Hello, Alice!" -> Option B
  4. Quick Check:

    greet('Alice') = "Hello, Alice!" [OK]
Hint: Tool calls function directly with given input [OK]
Common Mistakes:
  • Thinking the tool prints 'greet Alice'
  • Assuming an error without agent context
  • Ignoring the name parameter in output
4. Identify the error in this tool creation code:
def add_numbers(a, b):
    return a + b

from langchain.agents import Tool

add_tool = Tool(name='add', func=add_numbers, description='Adds two numbers')

result = add_tool.func(5)
print(result)
medium
A. Missing one argument when calling add_tool.func
B. Tool name must be uppercase
C. Description is too short
D. Function add_numbers should not return a value

Solution

  1. Step 1: Check function parameters

    add_numbers requires two arguments: a and b.
  2. Step 2: Check function call

    add_tool.func is called with only one argument (5), missing the second argument.
  3. Final Answer:

    Missing one argument when calling add_tool.func -> Option A
  4. Quick Check:

    Function needs 2 args, call has 1 = D [OK]
Hint: Match function parameters with call arguments count [OK]
Common Mistakes:
  • Ignoring argument count mismatch
  • Thinking tool name case matters
  • Assuming description length causes error
5. You want to create a tool that converts temperatures from Celsius to Fahrenheit for an agent. Which code correctly creates this tool with a clear description?
hard
A. def convert_temp(f): return (f - 32) * 5/9 from langchain.agents import Tool tool = Tool(name='temp_convert', func=convert_temp, description='Converts Fahrenheit to Celsius')
B. def c_to_f(c): return c + 32 from langchain.agents import Tool temp_tool = Tool(name='temp', func=c_to_f, description='Temperature conversion')
C. def c_to_f(c): return (c * 9/5) + 32 from langchain.agents import Tool temp_tool = Tool(name='temp_convert', func=c_to_f, description='Converts Celsius to Fahrenheit')
D. def c_to_f(c): return (c * 9/5) + 32 tool = Tool(func=c_to_f, description='Convert temp')

Solution

  1. Step 1: Verify function correctness

    The c_to_f(c) function returns (c * 9/5) + 32, which correctly converts Celsius to Fahrenheit using the standard formula.
  2. Step 2: Check tool creation parameters

    Tool(name='temp_convert', func=c_to_f, description='Converts Celsius to Fahrenheit') uses name, func, and a clear description matching the task.
  3. Final Answer:

    def c_to_f(c):\n return (c * 9/5) + 32\n\nfrom langchain.agents import Tool\n\ntemp_tool = Tool(name='temp_convert', func=c_to_f, description='Converts Celsius to Fahrenheit') -> Option C
  4. Quick Check:

    Correct formula and clear tool setup = A [OK]
Hint: Use correct formula and full tool parameters [OK]
Common Mistakes:
  • Using wrong temperature formula
  • Omitting tool name or description
  • Confusing Celsius to Fahrenheit with reverse