首页 / 开源榜单 / langchain

langchain

LangChain 是一个开源 Python 框架,用于构建由 LLM 驱动的应用程序、RAG 流水线和自主智能体,并提供跨模型提供商的统一接口。

PythonMITFramework
⭐ GitHubhttps://github.com/langchain-ai/langchain
142,928
Star 数
+0
Star 增速
2026年7月29日
最后更新
1
点击数

1. 项目概述

LangChain 是一个开源 Python 框架,为开发者提供构建 LLM 应用所需的基础组件——模型、提示词、检索器、工具和智能体——支持从简单的聊天助手到复杂的使用工具的自主智能体等各种应用。

2. 背景与定位

LangChain 的诞生是为了解决早期 LLM 应用开发中反复出现的一个问题:每个提供商(OpenAI、Anthropic、Google 等数十家)提供的 API 都略有不同,而每个应用都需要相同的重复组件——提示词管理、记忆、检索增强生成(RAG)、工具调用和智能体循环——每次都得从头重建。LangChain 的核心使命是跨模型和集成提供标准、可组合的接口,让开发者能快速原型设计并替换组件(不同的模型、向量存储或检索器),而无需重写应用逻辑。

与类似项目相比,LangChain 的突出之处在于:

  • 集成的广度——拥有数百个用于模型、向量存储、文档加载器和工具的连接器,由核心团队和社区共同维护。
  • 分层抽象——开发者可以在高层(预构建的链和智能体)工作,也可以下沉到低层原语(通过 LCEL 实现的 Runnable 协议)进行细粒度控制。
  • 完整的生态系统,而不仅仅是库——LangChain 是应用构建层,而兄弟项目 LangGraph(有状态、可控的智能体编排)和 LangSmith(追踪、评估和可观测性)涵盖编排和生产监控,形成从原型到生产的完整路径。

3. 功能分类

  • 🧩 核心抽象——基础且与提供商无关的接口(langchain-core)。代表性示例:Runnable 协议、ChatModelBaseRetrieverBaseTool、输出解析器。目的:为生态系统中的每个组件提供一致的接口,使它们可以互换组合。
  • 🔗 LangChain 表达式语言 (LCEL)——一种使用 | 管道运算符组合链的声明式方法。代表性示例:prompt | model | parser、流式传输、批处理、异步执行、自动重试。目的:让开发者将多步流水线构建为简单、易读且可用于生产的组合。
  • 🤖 智能体与工具调用——让 LLM 决定采取何种行动的组件。代表性示例:工具调用智能体、ReAct 风格智能体、结构化输出、函数/工具模式。目的:赋予模型自主规划、调用外部工具、观察结果并朝着目标迭代的能力。
  • 📚 检索增强生成 (RAG)——将 LLM 响应锚定在外部数据上的实用工具。代表性示例:文档加载器、文本分割器、嵌入、向量存储集成(Chroma、Pinecone、FAISS、Weaviate 等)、检索器。目的:让应用能使用私有或最新数据回答问题,而非仅依赖模型训练数据。
  • 🔌 模型与向量存储集成——庞大的合作伙伴包目录。代表性示例:langchain-openailangchain-anthropiclangchain-google-genailangchain-awslangchain-community。目的:以极少的改动将同一应用代码连接到几乎任何 LLM 提供商、嵌入模型或数据存储。
  • 🧠 记忆与状态——在多轮对话或多个步骤间维持上下文的机制。代表性示例:对话缓冲区、消息历史记录存储、检查点(通过 LangGraph)。目的:允许多轮对话和长时间运行的智能体保留相关上下文。

4. 核心亮点

  • 统一的模型接口——只需更改一行配置,即可在 OpenAI、Anthropic、Google、开源或自托管模型之间切换,因为所有聊天模型都实现了相同的 ChatModel 接口。
  • LCEL 可组合性——使用管道(|)语法构建的任何链都会自动支持流式传输、批处理、异步执行和重试,无需额外代码。
  • 海量集成目录——数百个由官方和社区维护的模型、向量存储、文档加载器和工具集成,减少了自定义的胶水代码。
  • 通过 LangGraph 走向生产——对于需要分支、循环或持久状态的智能体,LangChain 能干净利落地交接给 LangGraph 基于图的编排和内置检查点功能。
  • 通过 LangSmith 实现内置可观测性——可选但紧密集成的追踪与评估工具,使得调试和监控 LLM 应用就像工程师监控传统软件一样。
  • 活跃的大规模社区——拥有超过 14 万个 GitHub Star 和快速的发布节奏,LangChain 受益于快速的错误修复、新的集成以及社区共享的模式和模板。

5. 按角色划分的用例

  • 普通开发者——构建聊天机器人、基于 RAG 的问答系统和内部副驾驶,无需手动编写特定于提供商的 API 客户端或检索流水线。
  • 数据/研究科学家——使用相同的可组合接口快速原型设计并比较不同的模型、嵌入和检索策略,然后使用 LangSmith 评估结果。
  • 项目经理/技术负责人——标准化团队间构建 LLM 功能的方式,降低供应商锁定风险,因为只需极少的返工即可替换底层模型提供商。

6. 快速上手

找到你需要的内容——浏览官方文档和集成目录,找到与你的用例相关的模型、向量存储或工具集成:

https://docs.langchain.com/

安装与集成——安装核心包以及你需要的提供商集成:

pip install langchain langchain-openai

贡献——复刻仓库,阅读贡献指南,并提交拉取请求:

git clone https://github.com/langchain-ai/langchain.git
cd langchain
# 有关设置和测试说明,请参阅 CONTRIBUTING.md

7. 项目结构(可选)

langchain/
├── libs/
│   ├── core/            # langchain-core:基础抽象(Runnable、ChatModel 等)
│   ├── langchain/        # 主 langchain 包:链、智能体、检索辅助工具
│   ├── text-splitters/   # 文档分块实用工具
│   ├── partners/         # 官方提供商集成(openai、anthropic 等)
│   └── standard-tests/   # 集成包共享的测试套件
├── docs/                 # 文档源码(docs.langchain.com)
├── cookbook/             # 示例笔记本和方案
└── libs/langchain_v1/    # 积极维护的下一代包

关键目录:libs/core 定义了所有其他包实现的接口;libs/partners 是特定于模型和存储的集成所在之处;docs/ 支持官方文档网站。

8. 相关生态

  • 上游依赖:模型提供商,如 OpenAI、Anthropic、Google 和 AWS Bedrock;向量数据库,如 Chroma、Pinecone、Weaviate 和 FAISS;通过 pyproject.toml/uv/poetry 工作流进行的 Python 打包。
  • 互补项目LangGraph 用于有状态、可控的多步智能体编排;LangSmith 用于追踪、评估和监控;LangChain.js 用于在 JavaScript/TypeScript 中构建等效应用;LangServe 用于将链部署为 REST API。

9. 许可证

  • ✅ 可免费使用、修改和分发,包括用于商业和专有产品。
  • ✅ 你可以再授权并出售软件副本。
  • ❌ 不提供任何担保;对于因使用软件而产生的损害,作者不承担责任。
  • ℹ️ 软件的副本或实质部分必须包含 MIT 许可证文本和版权声明。

10. 常见问题

问:LangChain 可以在商业产品中免费使用吗?
答:可以。它是在 MIT 许可证下发布的,允许商业使用、修改和再分发。

问:我需要 LangGraph 或 LangSmith 才能使用 LangChain 吗?
答:不需要,两者都是可选的。仅 LangChain 就涵盖了链和基础智能体等构建块;LangGraph 为复杂的有状态智能体添加了编排功能,而 LangSmith 增加了可观测性。许多生产应用会将三者结合使用。

问:LangChain 支持哪些 LLM 提供商?
答:数十家,包括 OpenAI、Anthropic、Google、AWS Bedrock 以及许多开源和自托管模型,通过专门的合作伙伴包(如 langchain-openailangchain-anthropic)提供支持。

问:我该如何快速上手?
答:安装该包并遵循快速入门指南:

pip install langchain

有关分步教程,请参见 https://docs.langchain.com/

问:有 JavaScript/TypeScript 版本吗?
答:有,langchain-ai/langchainjs 为 Node.js 和基于浏览器的 JavaScript/TypeScript 应用提供了等效的框架。

11. 快速链接

12. 总结

LangChain 为开发者提供了一种一致、可组合的方式来构建 LLM 应用,而无需受限于单一模型提供商,也无需重新发明 RAG 和工具调用智能体等常见模式。它最适合希望快速进行原型设计,然后利用其配套工具 LangGraph 和 LangSmith 进行编排和可观测性以扩展到生产的开发者和团队。