LangChain 是用于构建 LLM 驱动应用的框架,官方定位为「用智能体和 RAG 构建 LLM 应用」。
【用途与适用时机】 资料列出的典型使用场景包括:构建带工具调用与推理(ReAct 模式)的智能体;实现 RAG(检索增强生成)流程;需要方便地切换 LLM 供应商(OpenAI、Anthropic、Google);创建带对话记忆的聊天机器人;快速进行 LLM 应用原型开发;通过 LangSmith 可观测性进行生产部署。
【规模指标】 GitHub 星标 119,000+;272,000+ 仓库使用 LangChain;500+ 集成(模型、向量存储、工具);3,800+ 贡献者。版本 0.3+(稳定版),许可 MIT。
【安装】 核心库(Python 3.10+):
Core library (Python 3.10+)
pip install -U langchain
按供应商安装:
With OpenAI
pip install langchain-openai
With Anthropic
pip install langchain-anthropic
Common extras
pip install langchain-community # 500+ integrations pip install langchain-chroma # Vector store
【核心概念】
- Models(模型抽象):可方便切换供应商,例如 ChatOpenAI、ChatAnthropic、ChatGoogleGenerativeAI,并支持流式输出(llm.stream)。
- Chains(链):顺序操作,通过 PromptTemplate 与 LLMChain 组合执行。
- Agents(智能体):使用工具的推理,采用 ReAct(Reasoning + Acting)模式,可用 create_tool_calling_agent、AgentExecutor、Tool 构建。
- Memory(记忆):保存对话历史,例如 ConversationBufferMemory 配合 ConversationChain 实现多轮对话。
【RAG(检索增强生成)】 基本 RAG 流程包括:加载文档(如 WebBaseLoader)、切分成块(RecursiveCharacterTextSplitter,chunk_size=1000,chunk_overlap=200)、创建嵌入与向量存储(Chroma.from_documents + OpenAIEmbeddings)、创建检索器(search_kwargs={"k": 4})、创建 QA 链(RetrievalQA.from_chain_type,return_source_documents=True)、查询并返回结果与来源。 带记忆的会话式 RAG 可使用 ConversationalRetrievalChain.from_llm,配合 ConversationBufferMemory(memory_key="chat_history",return_messages=True)实现多轮问答。
【高级智能体模式】 结构化输出:使用 Pydantic 的 BaseModel/Field 定义 schema,通过 llm.with_structured_output(WeatherReport) 获得结构化响应。 并行工具执行:智能体自动并行化相互独立的工具调用。 流式执行:通过 agent_executor.stream 输出各步骤。
【常用模式】 多文档问答:load_qa_with_sources_chain 配合 chain_type="stuff",输出含来源引用。 自定义工具与错误处理:使用 @tool 装饰器,在工具内捕获异常并返回错误信息。
【LangSmith 可观测性】 设置环境变量 LANGCHAIN_TRACING_V2="true"、LANGCHAIN_API_KEY、LANGCHAIN_PROJECT 后,所有链/智能体自动追踪,可在 smith.langchain.com 查看追踪记录。
【向量存储】 Chroma(本地,可持久化到目录)、Pinecone(云端)、FAISS(相似度搜索,可 save_local/load_local)。
【文档加载器】 支持网页(WebBaseLoader)、PDF(PyPDFLoader)、GitHub(GithubFileLoader)、CSV(CSVLoader)等。
【文本切分器】 递归切分(推荐通用文本)、代码感知(PythonCodeTextSplitter)、语义切分(SemanticChunker)。
【最佳实践】 从简单开始,多数情况用 create_agent();启用流式以获得更好体验;添加错误处理;使用 LangSmith 调试;RAG 分块大小 500-1000 字符;对提示进行版本管理;缓存嵌入;监控成本。
【性能基准(资料给出)】 简单 LLM 调用约 1-2s;带 1 个工具的智能体约 3-5s(含 ReAct 推理开销);RAG 检索约 0.5-1s;嵌入 1000 篇文档约 10-30s。
【LangChain 与 LangGraph 对比(资料给出)】 LangChain 适合快速智能体与 RAG,抽象层级高,起始代码 <10 行,控制简单,有状态工作流能力有限,不支持循环图,人工介入为基础级别。LangGraph 适合复杂工作流,抽象层级低,起始约 30 行,控制完全,原生支持有状态工作流与循环图,人工介入更高级。当需要带循环的有状态工作流、细粒度控制、多智能体系统或复杂逻辑的生产应用时,建议使用 LangGraph。
【替代方案(资料给出)】 LlamaIndex:偏重 RAG,更适合文档问答;LangGraph:复杂有状态工作流、更强控制;Haystack:生产级搜索管道;Semantic Kernel:微软生态。
【资源】 GitHub:https://github.com/langchain-ai/langchain Docs:https://docs.langchain.com API Reference:https://reference.langchain.com/python LangSmith:https://smith.langchain.com
【限制】 资料未提供定价、收费模式、具体性能承诺、平台支持范围(除 Python 3.10+ 外)等更多信息,这些方面暂未提供。