npx skills add ...
npx skills add langchain-ai/skills-benchmarks --skill langchain-dependencies
npx skills add langchain-ai/skills-benchmarks --skill langchain-dependencies
INVOKE THIS SKILL when setting up a new project or when asked about package versions, installation, or dependency management for LangChain, LangGraph, LangSmith, or Deep Agents. Covers required packages, minimum versions, environment requirements, versioning best practices, and common community tool packages for both Python and TypeScript.
Key principles:
| Requirement | Python | TypeScript / Node |
|---|---|---|
| Runtime minimum | Python 3.10+ | Node.js 20+ |
| LangChain | 1.0+ (LTS) | 1.0+ (LTS) |
| LangSmith SDK | >= 0.3.0 | >= 0.3.0 |
| Framework | When to use | Core extra package |
|---|---|---|
| LangGraph | Need fine-grained graph control, custom workflows, loops, or branching | langgraph / @langchain/langgraph |
| Deep Agents | Want batteries-included planning, memory, file context, and skills out of the box | deepagents (depends on LangGraph; installs it as a transitive dep) |
Both sit on top of langchain + langchain-core + langsmith.
| Package | Role | Min version |
|---|---|---|
langchain | Agents, chains, retrieval | 1.0 |
langchain-core | Base types & interfaces (peer dep) | 1.0 |
langsmith | Tracing, evaluation, datasets | 0.3.0 |
| Package | Use when | Min version |
|---|---|---|
langgraph | Building custom graphs directly | 1.0 |
deepagents | Using the Deep Agents framework | latest |
| Package | Provider |
|---|---|
langchain-openai | OpenAI (GPT-4o, o3, …) |
langchain-anthropic | Anthropic (Claude) |
langchain-google-genai | Google (Gemini) |
langchain-mistralai | Mistral |
langchain-groq | Groq (fast inference) |
langchain-cohere | Cohere |
langchain-fireworks | Fireworks AI |
langchain-together | Together AI |
langchain-huggingface | Hugging Face Hub |
langchain-ollama | Ollama (local models) |
langchain-aws | AWS Bedrock |
langchain-azure-ai | Azure AI Foundry |
These packages have tighter compatibility requirements — use the latest available version unless you have a specific reason not to.
| Package | Adds | Notes |
|---|---|---|
langchain-tavily | Tavily web search (TavilySearch) | Dedicated integration package; prefer latest |
langchain-text-splitters | Text chunking utilities | Semver, keep current |
langchain-community | 1000+ integrations (fallback) | NOT semver — pin to minor series |
faiss-cpu | FAISS vector store (local) | Via langchain-community; use latest |
langchain-chroma | Chroma vector store | Dedicated integration package; prefer latest |
langchain-pinecone | Pinecone vector store | Dedicated integration package; prefer latest |
langchain-qdrant | Qdrant vector store | Dedicated integration package; prefer latest |
langchain-weaviate | Weaviate vector store | Dedicated integration package; prefer latest |
langsmith[pytest] | pytest plugin for LangSmith | Requires langsmith >= 0.3.4 |
langchain-community stability note: This package is NOT on semantic versioning. Minor releases can contain breaking changes. Prefer dedicated integration packages (e.g.
langchain-chroma,langchain-tavily) when they exist — they are independently versioned and more stable.
| Package | Role | Min version |
|---|---|---|
@langchain/core | Base types & interfaces (peer dep) | 1.0 |
langchain | Agents, chains, retrieval | 1.0 |
langsmith | Tracing, evaluation, datasets | 0.3.0 |
| Package | Use when | Min version |
|---|---|---|
@langchain/langgraph | Building custom graphs directly | 1.0 |
deepagents | Using the Deep Agents framework | latest |
| Package | Provider |
|---|---|
@langchain/openai | OpenAI (GPT-4o, o3, …) |
@langchain/anthropic | Anthropic (Claude) |
@langchain/google-genai | Google (Gemini) |
@langchain/mistralai | Mistral |
@langchain/groq | Groq (fast inference) |
@langchain/cohere | Cohere |
@langchain/aws | AWS Bedrock |
@langchain/azure-openai | Azure OpenAI |
@langchain/ollama | Ollama (local models) |
| Package | Adds | Notes |
|---|---|---|
@langchain/tavily | Tavily web search (TavilySearch) | Dedicated integration package; prefer latest |
@langchain/community | Broad set of community integrations | Use sparingly; prefer dedicated packages |
@langchain/pinecone | Pinecone vector store | Dedicated integration package; prefer latest |
@langchain/qdrant | Qdrant vector store | Dedicated integration package; prefer latest |
@langchain/weaviate | Weaviate vector store | Dedicated integration package; prefer latest |
@langchain/coremust be installed explicitly in yarn workspaces and monorepos — it is a peer dependency and will not always be hoisted automatically.
langchain-tavily # use latest; partner package, semver
langchain-chroma # use latest; partner package, semver
langchain-text-splitters # use latest; semver
| Package group | Versioning | Safe upgrade strategy |
|---|---|---|
langchain, langchain-core | Strict semver (1.0 LTS) | Allow minor: >=1.0,<2.0 |
langgraph / @langchain/langgraph | Strict semver (v1 LTS) | Allow minor: >=1.0,<2.0 |
langsmith | Strict semver | Allow minor: >=0.3.0 |
Dedicated integration packages (e.g. langchain-tavily, langchain-chroma) | Independently versioned | Allow minor updates; use latest |
langchain-community | NOT semver | Pin exact minor: >=0.4.0,<0.5.0 |
deepagents | Follow project releases | Pin to tested version in production |
Breaking changes only happen in major versions (1.x → 2.x) for all semver-compliant packages. Deprecated features remain functional across the entire 1.x series with warnings.
Prefer dedicated integration packages over langchain-community. When a dedicated package exists (e.g. langchain-chroma instead of langchain-community's Chroma integration), use it — dedicated packages are independently versioned and better tested.
Community tool packages (Tavily, vector stores, etc.) should be kept at latest unless your project requires a locked environment. These packages frequently release compatibility fixes alongside LangChain/LangGraph updates.
langchain>=1.0,<2.0
langchain-community>=0.4
langchain-community>=0.4.0,<0.5.0
langchain-tavily==0.0.1
langchain-tavily>=0.1
To find the current canonical import for any integration, search the integrations directory: https://python.langchain.com/docs/integrations/tools/
Each entry shows the correct package and import path. If a dedicated package exists, use it — the community path may still work but is considered legacy.
`@langchain/core` is a peer dependency — it must be in your package.json, especially in monorepos. ```json // WRONG: missing @langchain/core (breaks in yarn workspaces / strict hoisting) { "dependencies": { "@langchain/langgraph": "^1.0.0" } }// CORRECT: always list @langchain/core explicitly { "dependencies": { "@langchain/core": "^1.0.0", "@langchain/langgraph": "^1.0.0" } }
# LangSmith (always recommended for observability)
LANGSMITH_API_KEY=<your-key>
LANGSMITH_PROJECT=<project-name> # optional, defaults to "default"
# Model provider — set the one(s) you use
OPENAI_API_KEY=<your-key>
ANTHROPIC_API_KEY=<your-key>
GOOGLE_API_KEY=<your-key>
MISTRAL_API_KEY=<your-key>
GROQ_API_KEY=<your-key>
COHERE_API_KEY=<your-key>
FIREWORKS_API_KEY=<your-key>
TOGETHER_API_KEY=<your-key>
HUGGINGFACEHUB_API_TOKEN=<your-key>
# Common tool/retrieval services
TAVILY_API_KEY=<your-key> # for Tavily search
PINECONE_API_KEY=<your-key> # for Pinecone