How to install and manage dependencies¶
LangGraph.js is part of the LangChain ecosystem,
which includes the primary
langchain
package as well as
packages that contain integrations with individual third-party providers. They
can be as specific as
@langchain/anthropic
,
which contains integrations just for Anthropic chat models, or as broad as
@langchain/community
,
which contains broader variety of community contributed integrations.
These packages, as well as LangGraph.js itself, all rely on
@langchain/core
, which
contains the base abstractions that these packages extend.
To ensure that all integrations and their types interact with each other
properly, it is important that they all use the same version of
@langchain/core
. When installing LangGraph, you should install @langchain/core
alongside it as well:
$ npm install @langchain/langgraph @langchain/core
@langchain/core
must be installed separately because it is a peer dependency of @langchain/langgraph
.
This is to help package managers resolve a single version of @langchain/core
. Despite this,
in some situations, your package manager may resolve multiple versions of core, which can result in unexpected TypeScript errors or other strange behavior.
The best way to guarantee that you only have one version of @langchain/core
is to add a "resolutions"
or
"overrides"
field in your project's package.json
. The specific field name will depend on your package manager. Here are a few examples:
Tip
The resolutions
or pnpm.overrides
fields for yarn
or pnpm
must be set in the root package.json
file.
Also note that we specify EXACT versions for resolutions.
If you are using yarn
, you should set "resolutions"
:
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.2.15",
"@langchain/langgraph": "^0.2.0"
},
"resolutions": {
"@langchain/core": "0.2.31"
}
}
For npm
, use "overrides"
:
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.2.15",
"@langchain/langgraph": "^0.2.0"
},
"overrides": {
"@langchain/core": "0.2.31"
}
}
For pnpm
, use the nested "pnpm.overrides"
field:
{
"name": "your-project",
"version": "0.0.0",
"private": true,
"engines": {
"node": ">=18"
},
"dependencies": {
"@langchain/anthropic": "^0.2.15",
"@langchain/langgraph": "^0.2.0"
},
"pnpm": {
"overrides": {
"@langchain/core": "0.2.31"
}
}
}
Next steps¶
You've now learned about some special considerations around using LangGraph.js with other LangChain ecosystem packages.
Next, check out some how-to guides on core functionality.