Agents help large language model (LLM) apps act on their own. They let the app decide what to do next without waiting for you.
Why agents add autonomy to LLM apps in LangChain
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
LangChain
from langchain.agents import initialize_agent from langchain.llms import OpenAI from langchain.tools import Tool llm = OpenAI(temperature=0) tools = [Tool(name="Search", func=search_function, description="Useful for web search")] agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
The initialize_agent function creates an agent that can pick tools and decide actions.
You provide tools and an LLM, and the agent uses them to work autonomously.
Examples
LangChain
agent.run("Find the latest news about space exploration.")LangChain
agent.run("Calculate 15% tip for a $45 bill.")Sample Program
This example shows an agent that can add two numbers by choosing the Adder tool on its own.
LangChain
from langchain.agents import initialize_agent from langchain.llms import OpenAI from langchain.tools import Tool # Simple tool to add two numbers def add_numbers(inputs: str) -> str: try: a, b = map(int, inputs.split()) return str(a + b) except Exception: return "Error: provide two numbers separated by space" llm = OpenAI(temperature=0) tools = [Tool(name="Adder", func=add_numbers, description="Adds two numbers")] agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=False) # Agent decides to use the Adder tool result = agent.run("Add 7 5") print(result)
Important Notes
Agents let your app think and act without you telling every step.
They combine language understanding with tools to solve tasks better.
Make sure your tools have clear descriptions so the agent picks the right one.
Summary
Agents add independence to LLM apps by choosing actions automatically.
They help apps handle complex tasks by using tools and reasoning.
Using agents makes your app smarter and more helpful without extra coding for each step.
Practice
1. What is the main benefit of using agents in Langchain LLM applications?
easy
Solution
Step 1: Understand agent autonomy
Agents enable the app to choose what to do next on its own, without needing explicit commands for each step.Step 2: Compare options
Replacing tools, reducing model size, and skipping reasoning are incorrect benefits. Allowing the app to decide actions automatically without manual instructions correctly states the main benefit.Final Answer:
They allow the app to decide actions automatically without manual instructions. -> Option DQuick Check:
Agent autonomy = automatic action choice [OK]
Hint: Agents act independently, no step-by-step coding needed [OK]
Common Mistakes:
- Thinking agents reduce model size
- Believing agents speed up by skipping reasoning
- Assuming agents remove need for external tools
2. Which of the following is the correct way to create an agent in Langchain that uses a tool?
easy
Solution
Step 1: Recall Langchain agent creation syntax
The standard way to create an agent with tools is using the function initialize_agent with parameters llm, tools, and agent_type.Step 2: Evaluate options
agent = initialize_agent(llm=llm, tools=tools, agent_type='zero-shot') matches the correct syntax. Using Agent class directly, Agent.new, or create_agent are invalid in Langchain.Final Answer:
agent = initialize_agent(llm=llm, tools=tools, agent_type='zero-shot') -> Option BQuick Check:
Agent creation uses initialize_agent() [OK]
Hint: Use initialize_agent() with llm, tools, and agent_type [OK]
Common Mistakes:
- Using Agent class directly instead of initialize_agent
- Calling non-existent create_agent function
- Wrong parameter names or missing agent_type
3. Given this code snippet, what will the agent do when asked a question it cannot answer directly?
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
llm = OpenAI(temperature=0)
tools = [SearchTool(), CalculatorTool()]
agent = initialize_agent(llm=llm, tools=tools, agent_type='zero-shot')
response = agent.run('What is the square root of 256?')medium
Solution
Step 1: Understand agent tool usage
The agent is initialized with CalculatorTool, so it can use it to answer math questions like square root.Step 2: Predict agent behavior on math query
Since the question requires calculation, the agent will call CalculatorTool and return the correct result 16.Final Answer:
The agent will use the CalculatorTool to compute the square root and return 16. -> Option AQuick Check:
Agent uses tools to answer complex queries [OK]
Hint: Agents use tools for tasks LLM can't do alone [OK]
Common Mistakes:
- Assuming agent errors on math questions
- Thinking agent guesses without tools
- Believing agent asks user for answers
4. Identify the error in this Langchain agent setup code:
from langchain.agents import initialize_agent
llm = OpenAI()
tools = [SearchTool()]
agent = initialize_agent(llm, tools, agent_type='zero-shot')
agent.run('Find the weather in Paris')medium
Solution
Step 1: Check initialize_agent parameter usage
initialize_agent expects keyword arguments like llm=llm and tools=tools, not positional arguments.Step 2: Verify other code parts
Temperature is optional, SearchTool import is assumed, and run() does not require callback by default.Final Answer:
The initialize_agent call is missing keyword arguments for llm and tools. -> Option CQuick Check:
initialize_agent needs llm= and tools= keywords [OK]
Hint: Always use llm= and tools= keywords in initialize_agent() [OK]
Common Mistakes:
- Passing llm and tools as positional args
- Forgetting to import SearchTool
- Adding unnecessary parameters to run()
5. You want to build a Langchain app that can answer questions, perform calculations, and search the web autonomously. Which approach best adds autonomy to your app?
hard
Solution
Step 1: Understand autonomy in Langchain agents
Agents combine LLM and tools, choosing actions automatically to handle complex tasks.Step 2: Evaluate options for best autonomy
Initializing an agent with LLM and multiple tools lets it autonomously decide which to use. Separate scripts, single LLM with manual code, or single tool do not provide the same level of autonomy.Final Answer:
Initialize an agent with LLM and multiple tools, letting it decide which to use automatically. -> Option AQuick Check:
Agent + tools = autonomous multi-task app [OK]
Hint: Combine LLM and tools in an agent for full autonomy [OK]
Common Mistakes:
- Relying on manual code for each task
- Splitting tasks into separate scripts without agent
- Using only one tool and ignoring others
