Introduction
AI agents are autonomous systems that can perceive their environment and take actions to achieve goals. LangChain provides a powerful framework for building such agents.
Agent Architecture
User Input → Agent Brain (LLM) → Tool Selection → Tool Execution → Response ↑_________________________________|
Types of Agents
| Type | Description | Use Case |
|---|---|---|
| ReAct | Reason + Act | Complex reasoning |
| Plan-and-Execute | Plan then act | Multi-step tasks |
| Conversational | Chat with tools | Chatbots |
| OpenAI Functions | Native tool calling | OpenAI models |
Quick Start
from langchain.agents import initialize_agent, Tool
from langchain_community.llms import OpenAI
llm = OpenAI(temperature=0)
tools = [
Tool(
name="Search",
func=search_tool,
description="Search for current information"
),
Tool(
name="Calculator",
func=calculator,
description="For math calculations"
)
]
agent = initialize_agent(
tools,
llm,
agent="zero-shot-react-description"
)
agent.run("What is the population of Tokyo multiplied by 2?")
Creating Custom Tools
from langchain.tools import BaseTool
class MyCustomTool(BaseTool):
name = "my_tool"
description = "Description of what this tool does"
def _run(self, query: str) -> str:
# Your implementation here
return result
Best Practices
- Write clear tool descriptions
- Limit the number of tools (5-10 max)
- Handle errors gracefully
- Add memory for context
Resources
Source: JackAI Hub