name: langchain description: Build agents with a prebuilt architecture and integrations for any model or tool. Use when creating tool-calling agents, switching model providers, or adding structured output. license: MIT compatibility: Python 3.10+, Node.js 20+ metadata: author: langchain-ai version: "1.0"
LangChain
LangChain is an open-source framework with a prebuilt agent architecture and integrations for any model or tool. Build agents and LLM-powered applications in under 10 lines of code, with integrations for OpenAI, Anthropic, Google, and hundreds more.
When to use
Use LangChain when you need to:
- Build tool-calling agents with
create_agent()and a prebuilt agent loop - Switch model providers without changing application code via
init_chat_model() - Add structured output to parse LLM responses into typed objects
- Integrate with any model or tool using LangChain's provider packages
- Use middleware for cross-cutting concerns like rate limiting and caching
When NOT to use
- For complex multi-step workflows with custom control flow, use LangGraph instead
- For a batteries-included agent with planning, subagents, and context management, use Deep Agents instead
- LangChain provides the core building blocks; LangGraph adds orchestration; Deep Agents adds high-level capabilities on top
Install
# Python
pip install -U langchain
# JavaScript/TypeScript
npm install langchain @langchain/core
Install a provider integration:
# Python
pip install -U langchain-openai # or langchain-anthropic, langchain-google-genai
# JavaScript/TypeScript
npm install @langchain/openai # or @langchain/anthropic, @langchain/google-genai
Quick reference
Create an agent
from langchain.agents import create_agent
def get_weather(city: str) -> str:
"""Get weather for a given city."""
return f"It's always sunny in {city}!"
agent = create_agent(
model="openai:gpt-5.5",
tools=[get_weather],
system_prompt="You are a helpful assistant",
)
result = agent.invoke(
{"messages": [{"role": "user", "content": "What is the weather in SF?"}]}
)
Initialize a chat model
from langchain.chat_models import init_chat_model
# Switch providers by changing the string
model = init_chat_model("openai:gpt-5.5")
model = init_chat_model("anthropic:claude-opus-4-8")
model = init_chat_model("google_genai:gemini-3.5-flash")
Define a tool
from langchain.tools import tool
@tool
def search(query: str) -> str:
"""Search the web for information."""
return "search results"
Gotchas
- Snake_case tool names—Tool function names must be valid Python identifiers. Use
get_weather, notget-weather. - Reserved parameters—Do not name tool parameters
type,name, ordescriptionas these conflict with the tool schema. - Provider packages—Models live in separate packages (e.g.,
langchain-openai). The baselangchainpackage does not include providers. - Model string format—Use
"provider:model-name"format withinit_chat_model()(e.g.,"openai:gpt-5.5").
Key documentation
- Overview—What LangChain is and how to get started
- Quickstart—Build your first agent
- Agents—Prebuilt agent architecture
- Models—Chat models and provider integrations
- Tools—Define and use tools
- Structured output—Parse LLM responses into typed objects
- MCP integration—Use Model Context Protocol servers as tools
API reference
For SDK class and method details, use the LangChain API Reference site:
- Browse:
https://reference.langchain.com/python/langchain-core - MCP server:
https://reference.langchain.com/mcp
Related skills
- langgraph—Low-level orchestration for stateful, durable agent workflows
- deep-agents—Batteries-included agent harness built on LangChain
- langsmith—Trace, evaluate, and deploy your LangChain agents