LangChain 怎么选:4 个框架按场景对号入座
截至 2026-11 抓取,langchain-ai/langchainjs 仓库显示 18.3k star、3.5k fork、8,264 次提交,仓库首页的自我定位已经改成 “The agent engineering platform”,不再是单纯的 “framework”。这正是现在值得重新做一次选型的原因:LangChain 官方自己在 README 里把”更高级的定制或 agent 编排”指向了 LangGraph.js,把”入门”指向了另一个更高层的 agent 包,把”上线”指向了 LangSmith——同一个生态内部已经分出了不同工位。选错的典型症状不是跑不起来,而是三个月后想加一条人工审批分支,才发现自己被抽象层卡住。
下面给一条可执行路径:先跑通最小环境,再按四个具体场景对号入座。
动手前的三件事
- Node.js 版本对齐:官方 README 明确列出 LangChain.js 支持 Node.js 20.x、22.x、24.x(ESM 与 CommonJS 均支持)。执行
node -v,输出应落在 20/22/24 三个大版本之一,否则先升级。 - 确认包管理器:README 给出的安装方式是 npm、pnpm、yarn 三选一。执行
npm -v(或pnpm -v/yarn -v),确认命令可用即可,三者装出来的包结构一致。 - 准备一个模型提供商的 API key:LangChain 只是中间层,真正发起请求的是模型集成。密钥的具体环境变量名取决于你选哪家模型商,请以该集成商的官方文档为准,不要照抄别人博客里的变量名。
第 1 步:先装最小可运行的一层
不要一上来就装全家桶。官方 README 的快速安装给出的就是单一包:
# 三选一
npm install -S langchain
pnpm install langchain
yarn add langchain
装完立刻确认落地位置和版本号:
node -e "console.log(require('langchain/package.json').version)"
ls node_modules/@langchain
第二条命令值得单独跑一次:LangChain 的模型、嵌入、向量库等集成大多以 @langchain/xxx 形式作为独立包存在。你需要知道哪些能力是主包自带的、哪些要另装,否则后面遇到 “Cannot find module ‘@langchain/openai'” 这类报错时,根本分不清是版本问题还是压根没装这个包。
如果项目是 ESM(import 语法),在 package.json 里确认字段:
{
"type": "module"
}
第 2 步:认准 4 个名字和它们的分工
本文只对比 4 个框架,多一个都不算。
LangChain(JS / Python):通用 LLM 应用框架,官方定义是”把可互操作的组件和第三方集成串起来”的框架,抽象层从高层 chain 到底层组件都有,覆盖 agents、models、embeddings、vector stores 等标准接口。
LangGraph:官方 README 称之为 “lower-level agent orchestration framework”,即低层 agent 编排框架,提供可定制的架构、长期记忆和 human-in-the-loop(人在回路)工作流。仓库 README 点名 LinkedIn、Uber、Klarna、GitLab 在生产中使用它。
LlamaIndex:社区二手资料里被一致归为”专注 RAG 的数据感知型框架”,优势在文档摄取与检索链路的开箱即用。腾讯云社区那篇框架选型长文(个人作者经验,非官方结论)把它列为”RAG 天花板”,并提到 130+ 数据连接器。
CrewAI:同样出自社区二手资料,定位是多 Agent 协作框架——定义角色、拆任务、分派给不同 Agent,配置相对简单但集成面比 LangChain 窄。
另需说明:LangChain 官方 README 目前还提到面向新手的更高层 agent 包(带规划、子 Agent、文件系统能力)、Deep Agents,以及托管平台 LangSmith。这几个属于 LangChain 生态内的配套设施,不计入上面 4 个的对比。
第 3 步:按场景对号入座
| 你的场景 | 选它 | 依据 | 代价 |
|---|---|---|---|
| 一天内要 demo,需要接多家模型和向量库 | LangChain | 官方 README:标准接口覆盖 agents、models、embeddings、vector stores,支持模型互换 | 抽象层多,深定制时容易”抽象泄漏”(社区经验) |
| 生产 Agent 要状态持久化、人工审批、可控步骤 | LangGraph | 官方定位为低层编排框架,含长期记忆与 human-in-the-loop | 学习成本明显高于 LangChain,官方把它定位为”advanced customization” |
| 核心任务是让 LLM 吃透私有文档 | LlamaIndex | 社区资料一致强调其 RAG 专精与数据连接器数量 | 生态外的第三方集成少于 LangChain |
| 多角色协作的内容生产/研究流水线 | CrewAI | 社区资料:角色定义清晰、任务自动拆解分派 | 集成数量少,小团队更合适 |
这张表的价值在于反着读:如果你正在做的事同时命中”要 demo”和”要人工审批”,那正确动作不是二选一,而是先用 LangChain 把集成层接好、跑通,再把编排迁到 LangGraph——社区那篇踩坑记录就是这么描述从 LangChain 切到 LangGraph 的体感变化的。
第 4 步:3 种方式确认装对了
- 版本可读:
node -e "console.log(require('langchain/package.json').version)"能打印出一个版本号,说明包确实被解析到。 - 导入成功:在脚本里
import { ChatOpenAI } from '@langchain/openai'(或你所用模型商的对应包),Node 能启动且不抛 module not found,说明依赖图完整。 - 调用成功:发起一次最小对话,标准输出里出现模型返回文本。若这一步报错,问题通常不在 LangChain,而在 API key、网络或模型名——先排查这三样,再怀疑框架。
常见卡点与对应解法
“Cannot find module ‘@langchain/openai'”:不是安装失败,是漏装集成包。执行 npm install -S @langchain/openai(换成你实际用的模型商包),再重跑第 4 步的第 2 条。
Node 版本不在 20/22/24:官方 README 只列了这三条线。执行 node -v 看到 18 或 25 时,升级 Node,而不是升级 LangChain 去赌兼容性。
ESM 项目报 “Cannot use import statement outside a module”:这是 Node 的模块配置问题,不是 LangChain 的问题。在 package.json 加 "type": "module",或把文件后缀改成 .mjs。
跑得通但看不懂内部发生了什么:官方仓库为此单独指向 LangSmith(构建、测试、监控 LLM 应用的统一平台),可以先用免费层跑通一次 trace,看清每次调用经过哪些层,再决定要不要继续加深抽象。社区二手资料里反复出现的痛点是 Chain、Runnable、CallbackHandler 三者关系难梳理——遇到这类困惑,先加 trace 而不是先重构。
改一个自定义工具要继承好几个类:社区作者的结论是”简单场景用 LangChain,复杂定制直接自研,或只取 LangChain 的单个模块”。这是社区经验判断,不是官方建议,但它指向一个合理动作:把该模块单独隔离出来评估,而不是硬套整套框架。
反方:什么时候根本不该用框架
如果你只做一次模型调用或一个简单问答,框架带来的依赖体积、升级成本和抽象层都是净负担。腾讯云社区那篇对比里给出的”自研”路径——直接调模型 API、自己写编排——优点是完全可控、无中间层开销、问题好排查,缺点是要从零实现 prompt、记忆和工具调用。社区资料也提到 LangChain 的版本迭代快、API 变化频繁,升级成本高,这是选型时必须算进去的运营成本。
我的经验判断(非官方结论):先用裸 API 写通一个最小闭环,再决定要不要引入框架,比反过来省事得多。
参考来源
-
memory_agent_hub/47.ComprehensiveRAG.md at main · 1850298154/memory_agent_hub
-
LangChain.js 官方仓库(安装命令、Node 版本、定位与生态说明):https://github.com/langchain-ai/langchainjs
-
langchain 包目录 README(快速安装、运行环境清单):https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain/
-
LangChain 官方文档站(README 中给出的文档入口):https://docs.langchain.com/langchain/
-
AI 智能体框架选型:7 个主流框架(腾讯云社区,个人经验文章,二手来源):https://cloud.tencent.cn/developer/article/2684260
-
AI Agent 编排工具之战:LangChain vs CrewAI vs 自研(腾讯云社区,个人经验文章,二手来源):https://cloud.tencent.cn/developer/article/2671338
-
主流 RAG 框架对比笔记(个人仓库文档,二手来源):https://github.com/1850298154/memory_agent_hub/blob/main/47.ComprehensiveRAG.md
评论区
登录后可评论。