LangChain.js 是 LangChain 的 TypeScript 实现,是目前 Node.js 生态中功能最完整的 LLM 应用开发框架。
文档地址:https://docs.langchain.org.cn/oss/javascript/langchain/overview

学习本内容之前,最好看过之前的AI开发基础教程

安装

npm install langchain @langchain/core @langchain/langgraph

同时LangChain 提供了与数百个大语言模型(LLM)以及数千种其他服务的集成。这些集成存在于独立的提供商软件包中。不过很多模型都提供了与 anthropic 或者 openai 兼容的接口,因此也可以使用他们。使用哪个就安装哪个包就行了:

# OpenAI 兼容接口
npm install @langchain/openai
# anthropic 兼容接口
npm install @langchain/anthropic
# deepseek 接口
npm install @langchain/deepseek

可以参考文档:https://github.com/langchain-ai/langchainjs/tree/main/libs/providers

为什么有这么多包它们什么关系?

@langchain/core        ← 底层抽象(Runnable、消息类型、工具基类)
   被依赖
langchain              ← 高层封装(Chains、Tools、DocumentLoaders、向量库接口)
@langchain/langgraph   ← Agent 编排框架(StateGraph、createReactAgent)
@langchain/deepseek    ← 模型接入包(ChatDeepSeek)
  • @langchain/core:地基。定义了所有东西的"接口规范",比如 Runnable(所有可调用对象的统一接口)、消息类型(HumanMessage 等)。一般不直接用,但其它包都依赖它。
  • langchain:主包。提供了开箱即用的功能——文档加载器、文本切分器、各种 Chain 模式、工具定义函数等。我们写 RAG、定义工具时主要用这个。
  • @langchain/langgraph:Agent 编排框架。这是 v1.x 最大的变化所在——Agent 的官方推荐实现已经从 LangChain 的 AgentExecutor 迁移到这里了。 现在做 Agent,首选 LangGraph。
  • @langchain/deepseek:DeepSeek 模型接入包。提供 ChatDeepSeek 类,专门对接 DeepSeek API。

为什么 Agent 迁移到 LangGraph?

老版本(0.x)的 LangChain 用 AgentExecutor 做 Agent,但它的循环逻辑是写死的,想做复杂流程(比如根据条件跳过某些步骤、并行执行多个工具、人工介入审批)很困难。

LangGraph 用**图(Graph)**来建模 Agent 流程:每个步骤是一个节点,步骤之间的跳转是边,条件跳转是条件边。这样:

  • 简单 Agent(ReAct 循环):用 createReactAgent 一行创建
  • 复杂流程:用 StateGraph 自定义节点和边,想怎么编排就怎么编排

所以学 Agent,核心是学 LangGraph,不是老的 langchain/agents。

LangChain.js 和 ai SDK 的定位差异

前面已经学过 ai SDK,它和 LangChain.js 定位不同:

维度 ai SDK LangChain.js
定位 轻量模型调用库 完整 LLM 应用框架
核心抽象 函数(generateText/streamText) Runnable 协议(万物皆可 pipe)
Agent generateText + stopWhen LangGraph 图编排
RAG 自己组装 开箱即用的链(RetrievalQA 等)
生态 中等(Vercel 主导) 庞大(LangChain 生态)
学习曲线 中高

简单说:ai SDK 像"瑞士军刀",轻快直接;LangChain.js 像"工具箱",功能全但概念多。学这个教程时,可以经常对照 ai SDK 的对应概念,理解会更快。