Skip to main content

LangChain v0.3

Last updated: 09.14.24

What's changed​

What’s new​

The following features have been added during the development of 0.2.x:

How to update your code​

If you're using langchain / @langchain/community / @langchain/core 0.0 or 0.1, we recommend that you first upgrade to 0.2.

If you're using @langchain/langgraph, upgrade to @langchain/langgraph>=0.2.3. This will work with either 0.2 or 0.3 versions of all the base packages.

Here is a complete list of all packages that have been released and what we recommend upgrading your version constraints to in your package.json. Any package that now supports @langchain/core 0.3 had a minor version bump.

Base packages​

PackageLatestRecommended package.json constraint
langchain0.3.0>=0.3.0 <0.4.0
@langchain/community0.3.0>=0.3.0 <0.4.0
@langchain/textsplitters0.1.0>=0.1.0 <0.2.0
@langchain/core0.3.0>=0.3.0 <0.4.0

Downstream packages​

PackageLatestRecommended package.json constraint
@langchain/langgraph0.2.3>=0.2.3 <0.3

Integration packages​

PackageLatestRecommended package.json constraint
@langchain/anthropic0.3.0>=0.3.0 <0.4.0
@langchain/aws0.1.0>=0.1.0 <0.2.0
@langchain/azure-cosmosdb0.2.0>=0.2.0 <0.3.0
@langchain/azure-dynamic-sessions0.2.0>=0.2.0 <0.3.0
@langchain/baidu-qianfan0.1.0>=0.1.0 <0.2.0
@langchain/cloudflare0.1.0>=0.1.0 <0.2.0
@langchain/cohere0.3.0>=0.3.0 <0.4.0
@langchain/exa0.1.0>=0.1.0 <0.2.0
@langchain/google-genai0.1.0>=0.1.0 <0.2.0
@langchain/google-vertexai0.1.0>=0.1.0 <0.2.0
@langchain/google-vertexai-web0.1.0>=0.1.0 <0.2.0
@langchain/groq0.1.1>=0.1.1 <0.2.0
@langchain/mistralai0.1.0>=0.1.0 <0.2.0
@langchain/mixedbread-ai0.1.0>=0.1.0 <0.2.0
@langchain/mongodb0.1.0>=0.1.0 <0.2.0
@langchain/nomic0.1.0>=0.1.0 <0.2.0
@langchain/ollama0.1.0>=0.1.0 <0.2.0
@langchain/openai0.3.0>=0.3.0 <0.4.0
@langchain/pinecone0.1.0>=0.1.0 <0.2.0
@langchain/qdrant0.1.0>=0.1.0 <0.2.0
@langchain/redis0.1.0>=0.1.0 <0.2.0
@langchain/weaviate0.1.0>=0.1.0 <0.2.0
@langchain/yandex0.1.0>=0.1.0 <0.2.0

Once you've updated to recent versions of the packages, you will need to explicitly install @langchain/core if you haven't already:

npm install @langchain/core

We also suggest checking your lockfile or running the appropriate package manager command to make sure that your package manager only has one version of @langchain/core installed.

If you are currently running your code in a serverless environment (e.g., a Cloudflare Worker, Edge function, or AWS Lambda function) and you are using LangSmith tracing or other callbacks, you will need to await callbacks to ensure they finish before your function ends. Here's a quick example:

import { RunnableLambda } from "@langchain/core/runnables";
import { awaitAllCallbacks } from "@langchain/core/callbacks/promises";

const runnable = RunnableLambda.from(() => "hello!");

const customHandler = {
handleChainEnd: async () => {
await new Promise((resolve) => setTimeout(resolve, 2000));
console.log("Call finished");
},
};

const startTime = new Date().getTime();

await runnable.invoke({ number: "2" }, { callbacks: [customHandler] });

console.log(`Elapsed time: ${new Date().getTime() - startTime}ms`);

await awaitAllCallbacks();

console.log(`Final elapsed time: ${new Date().getTime() - startTime}ms`);
Elapsed time: 1ms
Call finished
Final elapsed time: 2164ms

You can also set LANGCHAIN_CALLBACKS_BACKGROUND to "false" to make all callbacks blocking:

process.env.LANGCHAIN_CALLBACKS_BACKGROUND = "false";

const startTimeBlocking = new Date().getTime();

await runnable.invoke({ number: "2" }, { callbacks: [customHandler] });

console.log(
`Initial elapsed time: ${new Date().getTime() - startTimeBlocking}ms`
);
Call finished
Initial elapsed time: 2002ms

Was this page helpful?


You can also leave detailed feedback on GitHub.