How to Build an Agent Using LangChain: Simple Guide
To build an agent using
LangChain, you first define a language model and tools, then create an Agent that uses these to answer questions or perform tasks. Use initialize_agent with your model and tools to set up the agent, then call agent.run() with your input to get results.Syntax
Building an agent in LangChain involves these parts:
- Language Model: The AI brain, e.g., OpenAI GPT.
- Tools: Functions or APIs the agent can use.
- Agent: Combines model and tools to answer queries.
- initialize_agent: Function to create the agent with model and tools.
Basic syntax:
python
from langchain.agents import initialize_agent, Tool from langchain.llms import OpenAI # Define your language model llm = OpenAI(temperature=0) # Define tools your agent can use tools = [Tool(name="Search", func=search_function, description="Useful for web search")] # Initialize the agent agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) # Run the agent with a query response = agent.run("What is LangChain?") print(response)
Example
This example shows how to build a simple agent that uses a calculator tool and OpenAI GPT model to answer math questions.
python
from langchain.agents import initialize_agent, Tool from langchain.llms import OpenAI from langchain.utilities import PythonREPL # Language model setup llm = OpenAI(temperature=0) # Tool: Python REPL for calculations python_repl = PythonREPL() calc_tool = Tool(name="Calculator", func=python_repl.run, description="Useful for math calculations") # Initialize agent with the calculator tool agent = initialize_agent([calc_tool], llm, agent="zero-shot-react-description", verbose=False) # Run agent with a math question result = agent.run("What is 15 multiplied by 7?") print(result)
Output
105
Common Pitfalls
Common mistakes when building agents with LangChain include:
- Not providing clear tool descriptions, which confuses the agent.
- Forgetting to set
verbose=Trueduring development to see agent reasoning. - Using incompatible tools or functions that don't return strings.
- Not handling API keys or environment variables properly for the language model.
Example of a wrong tool definition and the fix:
python
# Wrong: Tool function returns non-string from langchain.agents import Tool def bad_tool_func(input): return 123 # Not a string bad_tool = Tool(name="BadTool", func=bad_tool_func, description="Returns int, not string") # Right: Tool function returns string def good_tool_func(input): return str(123) good_tool = Tool(name="GoodTool", func=good_tool_func, description="Returns string")
Quick Reference
Tips for building agents with LangChain:
- Always define clear, descriptive tools.
- Use
initialize_agentto combine tools and model. - Set
verbose=Trueto debug agent steps. - Test tools independently before adding to agent.
- Keep language model temperature low for consistent answers.
Key Takeaways
Use initialize_agent with a language model and tools to build a LangChain agent.
Define tools with clear descriptions and string-returning functions.
Set verbose=True during development to see agent reasoning steps.
Test each tool separately before integrating into the agent.
Keep model temperature low for reliable and consistent outputs.