首頁 / 開源排行榜 / 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 應用程式。
  • 活躍的大規模社群——擁有超過 140,000 個 GitHub 星標和快速發布的節奏,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 進行編排和可觀測性以擴展到生產環境的開發者和團隊。