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
Creating Tools for Agents with LangChain
📖 Scenario: You are building a simple assistant that can perform specific tasks using tools. These tools help the assistant answer questions or perform actions by connecting to external functions.
🎯 Goal: Create a LangChain agent that uses a custom tool to answer questions about the current date and time.
📋 What You'll Learn
Create a tool function that returns the current date and time as a string.
Create a LangChain Tool object using the tool function.
Create an agent that uses the tool to answer questions.
Run the agent with a sample question about the current date and time.
💡 Why This Matters
🌍 Real World
Agents with tools help automate tasks by connecting language models to real functions, making assistants smarter and more useful.
💼 Career
Understanding how to create and use tools in LangChain is valuable for building AI assistants, chatbots, and automation systems in software development roles.
Progress0 / 4 steps
1
Create a tool function to get current date and time
Write a Python function called get_current_datetime that returns the current date and time as a string using datetime.now() and strftime with format "%Y-%m-%d %H:%M:%S".
LangChain
Hint
Use from datetime import datetime and return datetime.now().strftime("%Y-%m-%d %H:%M:%S").
2
Create a LangChain Tool using the function
Import Tool from langchain.agents and create a variable called datetime_tool that is a Tool object. Set its name to "CurrentDateTime", func to get_current_datetime, and description to "Returns the current date and time as a string.".
LangChain
Hint
Use Tool(name=..., func=..., description=...) to create the tool.
3
Create an agent using the tool
Import initialize_agent and AgentType from langchain.agents. Create a variable called agent by calling initialize_agent with a list containing datetime_tool, an llm set to None (placeholder), and agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION. This sets up the agent to use the tool.
LangChain
Hint
Use initialize_agent(tools=[datetime_tool], llm=None, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION).
4
Run the agent with a sample question
Call agent.run with the string "What is the current date and time?" to get the answer using the tool.
LangChain
Hint
Use agent.run("What is the current date and time?") to ask the agent.
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
Step 1: Understand the role of tools in Langchain
Tools are designed to help agents do tasks by providing specific functions.
Step 2: Identify the main benefit
By using tools, agents can perform tasks more easily and effectively.
Final Answer:
To let agents perform specific tasks easily -> Option A
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
Step 1: Check required parameters for Tool
The Tool constructor needs a name, a function (func), and a description.
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.
Final Answer:
tool = Tool(name='search', func=search_function, description='Searches data') -> Option D
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
Step 1: Understand the greet function behavior
The greet function returns a string "Hello, {name}!" with the given name.
Step 2: Check how the tool is used
The tool calls greet with 'Alice', so it returns "Hello, Alice!" which is printed.
Final Answer:
"Hello, Alice!" -> Option B
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
Step 1: Check function parameters
add_numbers requires two arguments: a and b.
Step 2: Check function call
add_tool.func is called with only one argument (5), missing the second argument.
Final Answer:
Missing one argument when calling add_tool.func -> Option A
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')