Skip to content

LangChain 1.2.2+ 完整知识脑图

1. 核心架构

langchain-core (核心包)

  • Runnables (可运行对象)
    • RunnableSequence - 链式组合
    • RunnableParallel - 并行执行
    • RunnableBranch - 条件分支
    • RunnablePassthrough - 数据透传
    • RunnableLambda - 自定义函数
    • RunnableWithMessageHistory - 带历史记录
  • LCEL (LangChain Expression Language)
    • 管道操作符 |
    • 组合运算符
    • 流式处理
    • 批处理
    • 异步支持
  • Messages (消息系统)
    • SystemMessage - 系统消息
    • HumanMessage - 用户消息
    • AIMessage - AI回复
    • FunctionMessage - 函数调用
    • ToolMessage - 工具调用结果
  • Prompts (提示模板)
    • ChatPromptTemplate - 聊天模板
    • MessagesPlaceholder - 消息占位符
    • FewShotPromptTemplate - 少样本模板
    • PipelinePromptTemplate - 管道模板
  • Output Parsers (输出解析器)
    • StrOutputParser - 字符串解析
    • JsonOutputParser - JSON解析
    • PydanticOutputParser - Pydantic模型解析
    • CommaSeparatedListOutputParser - 列表解析
    • StructuredOutputParser - 结构化解析

langchain-community (社区集成)

  • 第三方集成
    • 各种LLM提供商
    • 向量数据库
    • 文档加载器
    • 工具集成

langchain (主包)

  • 高级功能
    • Agents
    • Chains (部分)
    • 工具和工具包
    • 回调处理

2. LLM 集成 (Language Models)

Chat Models (聊天模型)

  • langchain-openai
    • ChatOpenAI - GPT-3.5/4/4o
    • AzureChatOpenAI - Azure OpenAI
  • langchain-anthropic
    • ChatAnthropic - Claude 3.x/3.5
  • langchain-google-genai
    • ChatGoogleGenerativeAI - Gemini
  • langchain-mistralai
    • ChatMistralAI - Mistral
  • 其他提供商
    • ChatCohere
    • ChatOllama - 本地模型
    • ChatFireworks
    • ChatGroq
    • ChatDeepSeek

LLM (传统模型)

  • OpenAI
  • Anthropic
  • HuggingFaceHub
  • Ollama

Embeddings (嵌入模型)

  • OpenAIEmbeddings
  • HuggingFaceEmbeddings
  • CohereEmbeddings
  • OllamaEmbeddings
  • BGEEmbeddings - 中文友好

3. 记忆系统 (Memory) - 新架构 🔥

Chat History (对话历史)

  • BaseChatMessageHistory
    • InMemoryChatMessageHistory - 内存存储
    • RedisChatMessageHistory - Redis持久化
    • PostgresChatMessageHistory - PostgreSQL
    • MongoDBChatMessageHistory - MongoDB
    • FileChatMessageHistory - 文件存储
    • SQLChatMessageHistory - SQL数据库

History Management (历史管理)

  • RunnableWithMessageHistory ⭐
    • 自动历史管理
    • Session管理
    • 多用户支持

自定义实现

  • 滑动窗口记忆
  • Token限制
  • 摘要记忆

迁移指南

  • ❌ ConversationBufferMemory → ✅ InMemoryChatMessageHistory
  • ❌ ConversationSummaryMemory → ✅ 手动实现摘要功能
  • ❌ memory.save_context() → ✅ history.add_messages()

4. 检索增强生成 (RAG)

Document Loaders (文档加载器)

  • 文本文档
    • TextLoader - 纯文本
    • PyPDFLoader - PDF
    • UnstructuredPDFLoader - 复杂PDF
    • Docx2txtLoader - Word
    • UnstructuredMarkdownLoader - Markdown
    • UnstructuredHTMLLoader - HTML
  • Web内容
    • WebBaseLoader - 网页
    • SeleniumURLLoader - 动态网页
    • PlaywrightURLLoader - 现代网页
    • SitemapLoader - 站点地图
  • 代码
    • PythonLoader
    • NotebookLoader
    • DirectoryLoader - 批量加载
  • API/数据库
    • JSONLoader
    • CSVLoader
    • SQLDatabaseLoader
    • GitLoader - Git仓库

Text Splitters (文本分割)

  • RecursiveCharacterTextSplitter - 递归分割 ⭐
  • CharacterTextSplitter - 字符分割
  • TokenTextSplitter - Token分割
  • MarkdownHeaderTextSplitter - Markdown分割
  • HTMLHeaderTextSplitter - HTML分割
  • SemanticChunker - 语义分割 🔥
  • SpacyTextSplitter - NLP分割
  • 参数配置
    • chunk_size=1000
    • chunk_overlap=200
    • separators=["\n\n", "\n", " ", ""]

Vector Stores (向量数据库)

  • 开源本地
    • Chroma - 轻量级,推荐入门 ⭐
    • FAISS - Facebook AI,高性能
    • DocArrayInMemorySearch - 内存搜索
  • 开源服务器
    • Qdrant - 高性能 Rust
    • Milvus - 企业级
    • Weaviate - 云原生
  • 云服务
    • Pinecone - 托管服务
    • Supabase - PostgreSQL扩展
    • MongoDB Atlas - MongoDB向量搜索
    • Redis - Redis Vector Search

Retrievers (检索器)

  • 基础检索
    • VectorStoreRetriever - 向量检索 ⭐
      • search_type="similarity"
      • search_kwargs=
  • 高级检索
    • MultiQueryRetriever - 多查询生成
    • ContextualCompressionRetriever - 压缩检索
    • EnsembleRetriever - 混合检索(向量+BM25)
    • ParentDocumentRetriever - 父文档检索
    • SelfQueryRetriever - 自查询元数据
  • 搜索类型
    • similarity - 相似度搜索
    • mmr - 最大边际相关性
    • similarity_score_threshold - 阈值过滤

RAG Chains (RAG链)

  • 方式1: LCEL
    • prompt | llm | StrOutputParser()
  • 方式2: create_retrieval_chain
    • create_retrieval_chain(retriever, create_stuff_documents_chain(llm, prompt))

5. Agents (智能体) - 1.x 新架构 🔥

Agent Types (智能体类型)

  • 工具调用 Agent
    • create_tool_calling_agent - OpenAI风格 ⭐
    • create_react_agent - ReAct推理模式
    • create_structured_chat_agent - 结构化聊天
    • create_openai_functions_agent - 函数调用
    • create_openai_tools_agent - 工具调用(推荐)

Tools (工具)

  • 内置工具
    • DuckDuckGoSearchRun - 网页搜索
    • WikipediaQueryRun - 维基百科
    • PythonREPLTool - Python执行
    • ShellTool - Shell命令
    • RequestsGetTool - HTTP GET
    • RequestsPostTool - HTTP POST
    • GoogleSerperAPIWrapper - Google搜索
    • WolframAlphaQueryRun - 数学计算
  • 工具创建方式
    • @tool 装饰器 ⭐
    • StructuredTool.from_function
    • 自定义 BaseTool 类

Agent Executor (执行器)

  • AgentExecutor 配置
    • max_iterations - 最大迭代次数
    • max_execution_time - 超时时间
    • early_stopping_method - 停止策略
    • handle_parsing_errors - 错误处理
    • return_intermediate_steps - 返回中间步骤

Multi-Agent (多智能体)

  • 协作模式
    • 顺序执行
    • 并行执行
    • 层级结构
  • 状态共享
    • 共享内存
    • 消息传递
    • LangGraph工作流

6. Chains (链) - 简化后的架构

推荐做法 ✅

  • 优先使用 LCEL
    • chain = prompt | llm | output_parser

实用链

  • LLMChain → LCEL
  • SequentialChain → chain1 | chain2 | chain3
  • RouterChain → RunnableBranch

文档处理链

  • StuffDocumentsChain - 填充文档
  • MapReduceDocumentsChain - 映射归约
  • RefineDocumentsChain - 精炼

7. Callbacks (回调系统)

Callback Handlers (回调处理器)

  • 内置处理器
    • StdOutCallbackHandler - 标准输出
    • StreamingStdOutCallbackHandler - 流式输出
    • FileCallbackHandler - 文件记录
    • WandbCallbackHandler - W&B集成
    • LangChainTracer - LangSmith追踪

Callback Manager

  • CallbackManager
  • 管理多个回调处理器

自定义回调

  • BaseCallbackHandler
    • on_llm_start
    • on_llm_end
    • on_llm_error
    • on_tool_start
    • on_agent_action

Token计数和成本追踪

  • get_openai_callback
    • total_tokens
    • total_cost

8. 流式处理 (Streaming)

LLM Streaming

  • 同步流式
    • llm.stream()
  • 异步流式
    • llm.astream()

Chain Streaming

  • 基础流式
    • chain.stream()
  • 事件流 (更细粒度)
    • chain.astream_events()

流式类型

  • 字符串流 - StrOutputParser()
  • Token流 - 逐token输出
  • 事件流 - 完整事件信息

9. 批处理 (Batch Processing)

Batch Invocation

  • 同步批处理
    • chain.batch()
  • 异步批处理
    • chain.abatch()

配置选项

  • max_concurrency - 最大并发数
  • return_exceptions - 返回异常

10. LangServe (部署服务) 🔥

FastAPI 集成

  • add_routes()
  • path="/my-chain"
  • enabled_endpoints=["invoke", "batch", "stream"]

客户端调用

  • RemoteRunnable
    • invoke()
    • stream()
    • batch()

特性

  • ✅ 自动生成 Playground UI
  • ✅ OpenAPI文档 (Swagger)
  • ✅ 流式支持
  • ✅ 批处理支持
  • ✅ 异步支持

11. LangSmith (监控和调试) 🔥

Setup

  • LANGCHAIN_TRACING_V2=true
  • LANGCHAIN_API_KEY
  • LANGCHAIN_PROJECT

Tracing (追踪)

  • 自动追踪
    • 所有LLM调用
    • 链执行
    • Agent行为
    • 工具使用
  • 可视化
    • 调用链路图
    • 时间线
    • 输入输出

Evaluation (评估)

  • 创建数据集
  • 运行评估
  • 性能对比

Datasets (数据集)

  • 创建测试集
  • 版本管理
  • 团队共享

12. LangGraph (工作流编排) 🔥

基础概念

  • StateGraph
  • 定义状态
  • 添加节点
  • 添加边
  • 编译图

执行控制

  • 检查点 (Checkpointing)
    • 保存中间状态
    • 断点续传
    • 回滚
  • 人机协作 (Human-in-the-loop)
    • 等待人工确认
    • 修改中间结果
    • 干预决策

应用场景

  • 复杂Agent工作流
  • 多步骤任务编排
  • 状态机实现
  • 条件分支逻辑

13. 高级特性

Structured Output (结构化输出) 🔥

  • with_structured_output()
  • Pydantic模型
  • JSON Schema

Function Calling (函数调用)

  • bind_tools()
  • tool_calls
  • 并行调用

Caching (缓存)

  • InMemoryCache
  • RedisCache
  • SQLiteCache

Retry Logic (重试机制)

  • with_retry()
  • stop_after_attempt
  • wait_exponential_jitter
  • retry_if_exception_type

Fallbacks (降级策略)

  • with_fallbacks()
  • 主模型失败时使用备用模型

Configurable Fields (可配置字段)

  • configurable_fields()
  • ConfigurableField
  • 运行时配置

14. 实用工具

Token 计数

  • get_openai_callback()
    • total_tokens
    • prompt_tokens
    • completion_tokens
    • total_cost

调试工具

  • chain.get_graph().print_ascii()
  • chain.config_schema()
  • chain.input_schema.schema()
  • chain.output_schema.schema()

日志配置

  • logging.basicConfig()
  • langchain.debug = True

15. 性能优化

异步处理

  • ainvoke()
  • astream()
  • abatch()

批量优化

  • batch()
  • max_concurrency

缓存策略

  • LLM级别缓存
  • 嵌入模型缓存
  • 检索结果缓存

向量存储优化

  • 使用索引
  • 批量插入

16. 错误处理

异常捕获

  • OutputParserException
  • 通用异常处理

优雅降级

  • with_fallbacks()
  • with_retry()

超时控制

  • RunnableConfig
    • timeout=30

17. 最佳实践

提示词工程

  • 清晰的指令
  • 提供示例(Few-shot)
  • 使用分隔符
  • 指定输出格式
  • 测试和迭代

RAG优化

  • 文档处理
    • 合适的chunk_size
    • 适当的overlap
    • 元数据保留
  • 检索策略
    • 混合检索(向量+关键词)
    • 重排序(Reranking)
    • 过滤低相关性结果
  • 生成优化
    • 上下文压缩
    • 引用来源
    • 处理冲突信息

Agent设计

  • 工具描述清晰
  • 限制迭代次数
  • 添加人工审核
  • 错误处理完善

生产部署

  • 环境变量管理
  • 日志和监控
  • 限流和熔断
  • 成本控制
  • 版本管理

18. 版本迁移指南

从 0.x 到 1.x 的重大变化

Memory系统 🔥

  • ❌ ConversationBufferMemory
  • ✅ InMemoryChatMessageHistory + RunnableWithMessageHistory

Chain构建 🔥

  • ❌ LLMChain
  • ✅ LCEL (prompt | llm)

Agent创建 🔥

  • ❌ initialize_agent
  • ✅ create_*_agent()

工具加载 🔥

  • ❌ load_tools()
  • ✅ 直接导入工具类

弃用功能列表

  • ❌ langchain.memory.*
  • ❌ LLMChain
  • ❌ initialize_agent
  • ❌ load_tools()

新增功能

  • ✅ LCEL表达式语言
  • ✅ 结构化输出
  • ✅ LangGraph工作流
  • ✅ LangServe部署
  • ✅ 改进的流式API
  • ✅ 更好的类型支持

19. 常见使用模式

简单问答

  • ChatOpenAI + ChatPromptTemplate + StrOutputParser

带记忆的聊天

  • RunnableWithMessageHistory
  • InMemoryChatMessageHistory
  • MessagesPlaceholder

RAG应用

  • Document Loaders
  • Text Splitters
  • Vector Stores
  • Retrievers
  • RAG Chains

Agent应用

  • create_tool_calling_agent
  • AgentExecutor
  • Tools

多链条件路由

  • RunnableBranch
  • 条件分支

20. 生态系统和扩展包

核心包

  • langchain-core - 核心抽象
  • langchain-community - 社区集成
  • langchain - 主包

模型提供商包

  • langchain-openai - OpenAI GPT
  • langchain-anthropic - Claude
  • langchain-google-genai - Gemini
  • langchain-mistralai - Mistral
  • langchain-cohere - Cohere
  • langchain-huggingface - HuggingFace

工具包

  • langgraph - 工作流编排
  • langserve - API部署
  • langsmith - 监控调试

可选依赖

  • 向量数据库: chromadb, faiss-cpu, qdrant-client
  • 文档处理: pypdf, python-docx, unstructured
  • 工具: duckduckgo-search, wikipedia

21. 学习资源

官方资源

学习路径

  1. 基础概念 (1周)
    • LCEL语法
    • Runnables
    • Prompts和输出解析
  2. 核心功能 (2周)
    • LLM集成
    • 记忆系统(新架构)
    • RAG实现
  3. 进阶特性 (2周)
    • Agents开发
    • 工具创建
    • LangGraph工作流
  4. 生产部署 (1周)
    • LangServe
    • 监控和调试
    • 性能优化

实战项目建议

  • 📝 智能聊天机器人
  • 📚 文档问答系统
  • 🤖 多功能Agent助手
  • 🔍 知识库搜索引擎
  • 📊 数据分析助手

22. 快速参考

常用导入

  • 核心模块
  • LLM模块
  • 记忆模块
  • RAG模块
  • Agent模块
  • 工具模块

常用配置

  • 环境变量
  • LLM配置

调试技巧

  • 打印链结构
  • 详细日志
  • 回调

总结:1.2.2+ 核心变化

🔥 最重要的变化

  1. Memory → RunnableWithMessageHistory - 记忆系统完全重构
  2. LLMChain → LCEL - 推荐使用表达式语言
  3. Agent创建方式变更 - 新的create_*_agent函数
  4. 更好的流式支持 - astream_events
  5. 结构化输出 - with_structured_output

⭐ 推荐学习重点

  1. LCEL语法 - 核心表达式语言
  2. 新记忆系统 - RunnableWithMessageHistory
  3. RAG最佳实践 - 检索增强生成
  4. Agent开发 - 工具调用和编排
  5. LangGraph - 复杂工作流

🚀 下一步行动

  1. 安装最新版本: pip install -U langchain
  2. 阅读官方迁移指南
  3. 实践基础示例
  4. 构建自己的项目