Skip to content

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. If you need 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.