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 的对应概念,理解会更快。
💬 评论 0
还没有评论,快来抢沙发吧~