
玄同 765
大语言模型 (LLM) 开发工程师 | 中国传媒大学 · 数字媒体技术(智能交互与游戏设计)
关于作者
- 深耕领域:大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调
- 技术栈:Python | RAG (LangChain / Dify + Milvus) | FastAPI + Docker
- 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案
「让 AI 交互更智能,让技术落地更高效」
欢迎技术探讨与项目合作,解锁大模型与智能交互的无限可能!
一、LangChain 1.0 框架介绍与核心价值
1.1 什么是 LangChain 1.0?
LangChain 是一个构建 LLM 应用的框架 ,目标是把 LLM 与外部工具、数据源和复杂工作流连接起来 ------ 支持从简单的 prompt 封装到复杂的 Agent(能够调用工具、做决策、执行多步任务)。它不仅仅是对LLM API的封装,而是提供了一套完整的工具和架构,让开发者能够更轻松地构建上下文感知 和具备推理能力的AI应用。
LangChain 1.0 版本在架构设计上进行了重大改进,以"统一智能体抽象 + 标准化内容表示 + 可插拔治理中间件"为设计骨干,以 LangGraph 为底座运行时,实现了"开发简单性"与"生产可控性"的完美兼顾。
1.2 LangChain 1.0 的核心价值
LangChain 1.0 版本把"Agent 的稳定化、结构化输出、可观测性与生产化"作为核心改进目标。其核心价值在于:
| 核心价值 | 具体体现 | 优势 |
|---|---|---|
| 简化开发 | 10行代码完成原本需要1000行代码的AI应用 | 开发效率提升100倍 |
| 企业级能力 | 自动获得状态持久化、人工干预、并发控制等能力 | 无需额外开发 |
| 统一抽象 | 统一智能体抽象 + 标准化内容表示 + 可插拔治理中间件 | 代码更简洁、可维护性更高 |
| 生产可控性 | 通过 LangGraph 为底座运行时 | 支持复杂工作流和状态管理 |
| 生态丰富 | 100+内置工具和插件 | 覆盖各种应用场景 |
1.3 LangChain 1.0 与其他框架对比
| 框架 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| LangChain 1.0 | 生态丰富、工具集成多、支持复杂工作流 | 学习曲线较陡 | 复杂AI应用 |
| OpenAI SDK | 轻量、简单 | 功能有限 | 简单聊天应用 |
| Hugging Face | 模型丰富 | 部署复杂 | 模型微调 |
| LlamaIndex | 专注RAG | 功能单一 | 知识检索应用 |
1.3 适用场景选择
plain
你要做什么AI应用?
│
├─ 只想简单调用模型聊天(翻译/问答)
│ └─> 直接用OpenAI SDK(更轻量,无需LangChain)
│
├─ 需要联网查资料、执行代码、操作数据库
│ └─> 用LangChain 1.0(快速搭建Agent)
│ └─> 参考:客服机器人、数据分析助手
│
├─ 流程很复杂(多人审批/定时任务/状态分支)
│ └─> 用LangGraph 1.0(精确控制每个步骤)
│ └─> 参考:自动化工作流、ERP系统集成
│
└─ 不确定,先试试想法
└─> 用LangChain 1.0快速验证,后期可无缝迁移到LangGraph
二、LangChain 1.0 生态系统与架构深度解析
2.1 生态系统分层架构
LangChain 1.0 采用分层架构设计,从应用层到底层运行时,每一层都有明确的职责和功能:
2.1.1 架构概览
LangChain 1.0 应用层
LangGraph 编排层
LCEL 运行时层
大语言模型API
2.1.2 应用层组件
应用层组件
create_agent
工具和中间件
Memory
Agent执行
2.1.3 编排层组件
编排层组件
StateGraph
Nodes
Edges
Checkpoints
状态管理
2.1.4 运行时层组件
运行时层组件
Runnable接口
|运算符
流式/批处理
异步执行
2.2 核心组件层详解
2.2.1 模型层(Models)
LangChain 1.0 的统一模型抽象层,为所有模型提供标准化调用,覆盖文本、多模态、Embedding、Rerank 等多类型模型,实现跨供应商一致体验。
| 模型类型 | 功能 | 适用场景 | 代表实现 |
|---|---|---|---|
| 文本模型 | 文本生成 | 对话、问答 | ChatOpenAI、ChatDeepSeek |
| 多模态模型 | 处理图像、音频 | 视觉问答、语音助手 | GPT-4o、Claude 3.5 Sonnet |
| Embedding模型 | 文本向量化 | 语义搜索、相似度计算 | OpenAIEmbeddings、HuggingFaceEmbeddings |
| Rerank模型 | 排序搜索结果 | 提高检索精度 | CohereRerank、BAAIRerank |
模型层的核心特性:
- 统一抽象:init_chat_model() 适配20+模型厂商
- 异步/流式/批处理:ainvoke(),stream(), batch()
- 执行方式:完全兼容 LCEL 与 LangGraph
- 扩展能力:with_structured_output()、Tool Calling、多模态 Content Blocks
2.2.2 工具层(Tools)
工具系统提供统一 Tool 抽象,支持所有主流模型的 Tool Calling,深度集成 LangGraph,构建可执行 agent 环境的关键能力层。工具层是智能体与外部世界交互的桥梁,使模型能够执行各种操作。
| 工具类型 | 功能 | 适用场景 | 代表工具 |
|---|---|---|---|
| 搜索工具 | 联网搜索信息 | 获取实时数据 | GoogleSearchTool、SerpAPI |
| 计算工具 | 执行数学计算 | 数据分析、财务计算 | CalculatorTool |
| 代码执行 | 执行Python代码 | 数据分析、算法实现 | PythonREPLTool |
| 文件操作 | 读写文件 | 文档处理、数据存储 | FileSystemTool |
| 数据库 | 操作数据库 | 数据查询、业务系统集成 | SQLDatabaseTool |
| API调用 | 调用外部API | 第三方服务集成 | RequestsTool |
工具开发方式:
- @tool装饰器:最简单的工具创建方式
- BaseTool类:更灵活的工具定义
- ToolNode:用于LangGraph的工具节点
- Toolkit:工具集合,如GitHub、Slack集成
2.2.3 记忆层(Memory)
记忆层提供统一 State 管理、对话记录、长期检索、多模态 Memory 等能力,支持持久化与复杂工作流状态流转。记忆层使智能体能够记住过去的交互,提供更连贯的用户体验。
| 记忆类型 | 存储方式 | 保留时间 | 适用场景 | 实现方式 |
|---|---|---|---|---|
| 短期记忆 | 内存/会话 | 单次对话 | 上下文理解 | InMemoryChatMessageHistory |
| 长期记忆 | 向量数据库 | 永久 | 知识检索 | Chroma、Pinecone |
| 会话记忆 | 数据库 | 跨会话 | 用户偏好 | Redis、SQL数据库 |
| 多模态记忆 | 混合存储 | 永久 | 图像、音频检索 | 向量数据库 + 文件存储 |
记忆层的核心功能:
- 消息历史管理:自动记录和管理对话历史
- 记忆检索:根据语义相似度检索相关记忆
- 记忆压缩:对长记忆进行压缩,减少上下文长度
- 状态持久化:跨会话保存状态,支持任务中断后恢复
2.2.4 Agent层(Agents)
LangChain 1.0 Agents系统实现从碎片化到标准化升级,以create_agent为核心接口,基于LangGraph构建统一Agent抽象,10行代码即可创建基础Agent,封装"模型调用→工具选择→执行→结束"闭环流程。Agent层是LangChain 1.0的核心创新之一,使智能体开发变得更加简单和标准化。
| Agent类型 | 特点 | 适用场景 | 实现方式 |
|---|---|---|---|
| 基础Agent | 简单的工具调用 | 单步骤任务 | create_agent() |
| 规划Agent | 多步骤规划 | 复杂任务 | create_planning_agent() |
| 协作Agent | 多Agent协作 | 复杂项目 | LangGraph多节点 |
| 检索增强Agent | 结合RAG | 知识密集型任务 | create_retrieval_agent() |
Agent层的核心组件:
- 核心API:create_agent() - 简化Agent创建
- 执行引擎:LangGraph Runtime - 提供状态管理和持久化
- 中间件:Middleware - 如HITL(人工干预)、压缩、路由
- 状态管理:AgentState - 统一的状态结构
Agent执行流程:
- 接收用户输入
- 模型分析任务需求
- 选择合适的工具
- 执行工具获取结果
- 模型总结并返回答案
2.2.5 工作流层(Workflows)
Workflows 体系实现从 线性链式(Chain)到图结构(Graph) 的范式转移,以 StateGraph 为核心画布,将业务逻辑解耦为 "节点(Node)+ 边(Edge)+ 状态(State)",原生支持循环(Loop)与条件分支,完美适配复杂任务编排、容错重试及长会话保持。
- 简单链:Chain(快速串联)
- 复杂图:LangGraph(条件分支、循环)
- 模板库:LangChain Hub(共享Agent模板)
2.2.6 调试监控层(Debugging)
LangChain 1.0 调试监控层实现了从 日志黑盒到全链路可观测性(Observability) 的质变,深度集成 LangSmith 平台,自动捕获链(Chain)与图(Graph)的每一步骤状态、Token 消耗及延迟,支持"Trace → Playground"一键回放调试,彻底解决复杂 Agent 逻辑难以排查的痛点。
- 本地日志:verbose=True
- 云端平台:LangSmith(可视化链路追踪)
- 评估工具:LangChain Evaluate(效果评估)
2.3 其他关键组件
- langgraph :底层的Agent 调度框架 (Agent Runtime),专注于解决复杂的"控制流"问题,用于构建健壮且有状态的多角色 LLM 应用程序。
- langserve :用于将任何 LangChain chain 或 agent 部署为 REST API 的包,方便快速将应用投入生产环境。
三、LangChain 1.0 模块化管理与依赖包解析
3.1 核心依赖包及作用
| 依赖包名称 | 核心作用 | 详细功能介绍 |
|---|---|---|
| langchain-core | 核心抽象层和 LCEL | 定义所有组件(如模型、消息、提示词模板、工具、运行环境)的标准接口和基本抽象。它包含了LangChain 表达式语言 (LCEL) ,这是构建链式应用的基础。这是一个轻量级 、不含第三方集成的基石包。 |
| langchain | 应用认知架构(主包) | 包含构建 LLM 应用的通用高阶逻辑,如 Agents (如新的 create_agent() 函数)、Chains 和通用的检索策略 (Retrieval Strategies)。它建立在 langchain-core 之上,是用于组合核心组件的"胶水"层。 |
| langchain-community | 社区第三方集成 | 包含由 LangChain 社区维护的非核心或不太流行的第三方集成,例如:大部分的文档加载器 (Document Loaders)、向量存储 (Vector Stores)、不太流行的 LLM/Chat Model 集成等。为了保持包的轻量,所有依赖项都是可选的。 |
| langchain-openai / langchain-[厂商名称] | 特定厂商深度集成 | 针对关键合作伙伴 的集成包(如 langchain-openai, langchain-anthropic)。它们被单独分离出来,以提供更好的支持、可靠性 和更轻量级的依赖。它们只依赖于 langchain-core。 |
| langchain-classic | 旧版本兼容 | 包含 LangChain v0.x 版本中的已弃用 (deprecated) 或旧版功能 ,如旧的 LLMChain、旧版 Retrievers、Indexing API 和 Hub 模块。它的主要作用是为用户提供一个平稳的迁移期,确保旧代码在升级到 v1.0 后仍能运行。 |
3.2 langchain-core:核心抽象层
- 包含内容:核心抽象与接口(LLM/ChatModel 抽象、Prompt 抽象、Chain/Agent 的基类、schema、消息格式等)
- 不包含内容:具体厂商的实现(例如没有 OpenAI client 的封装)
- 定位:构建 LangChain 应用生态的最小公共底座
3.3 langchain:主包
- 定位 :对外的主入口包,把
langchain-core的核心抽象与"常用实现"组合在一起 - 命名空间 :在 v1.0 中,
langchain的命名空间被显著精简,只保留构建 agent 的关键 API - 核心模块:
| 模块 | 核心内容 | 来源说明 |
|---|---|---|
langchain.agents |
create_agent, AgentState |
智能体创建核心 |
langchain.messages |
AIMessage, HumanMessage, trim_messages |
从langchain-core重新导出 |
langchain.tools |
@tool, BaseTool |
从langchain-core重新导出 |
langchain.chat_models |
init_chat_model, BaseChatModel |
统一模型初始化 |
langchain.embeddings |
init_embeddings |
嵌入模型管理 |
3.4 langchain-community:社区集成
- 定位:收集并维护社区/第三方贡献的集成
- 包含内容 :
- 数据库:MySQL, PostgreSQL, MongoDB, Neo4j等连接器
- 存储服务:AWS S3, 阿里云OSS, Google Cloud Storage
- 工具集成:Slack, Notion, GitHub, ArXiv, YouTube等API
- 向量数据库:Chroma, Pinecone, Qdrant, Milvus等
- 文档加载器:PDF, CSV, HTML, Markdown解析器
- 特点 :
- 质量参差不齐:社区贡献,需自行验证稳定性
- 更新滞后:依赖社区维护,响应速度慢于官方包
- 功能丰富:覆盖95%的第三方服务集成需求
3.5 厂商集成包:如 langchain-openai
- 定位:专门负责把特定厂商的 SDK 与 LangChain 抽象连接起来
- 主流厂商包 :
langchain-openai:OpenAI, Azure OpenAIlangchain-anthropic:Claude系列langchain-google:Gemini, Vertex AIlangchain-deepseek:DeepSeek模型langchain-ollama:本地Ollama部署
- 与社区包的区别:
| 维度 | langchain-openai |
langchain-community中的OpenAI |
|---|---|---|
| 维护方 | OpenAI官方 + LangChain团队 | 社区维护 |
| 更新频率 | 即时跟进API更新 | 延迟数周 |
| 功能完整性 | 支持所有新特性(如音频、视觉) | 仅基础功能 |
| 生产可用性 | ✅ 强烈推荐 | ⚠️ 谨慎使用 |
3.6 最佳实践
- 生产环境务必使用厂商包:享受最新功能
- 开发环境可用community:快速验证想法
- 多厂商切换用
init_chat_model:业务代码无需改动
四、快速入门示例
4.1 安装依赖
bash
# 安装核心包
pip install langchain
# 安装特定厂商包(根据需要选择)
pip install langchain-openai
pip install langchain-deepseek
# 安装社区包(可选)
pip install langchain-community
4.2 基本使用示例
python
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
# 1. 定义一个 Prompt
prompt = ChatPromptTemplate.from_template("Tell me a joke about {topic}")
# 2. 初始化模型
model = ChatOpenAI(model="gpt-4o-mini")
# 3. 创建链
chain = prompt | model
# 4. 执行
result = chain.invoke({"topic": "LangChain"})
print(result.content)
五、总结
LangChain 1.0 框架通过统一的抽象、标准化的接口和模块化的设计,为开发者提供了构建复杂AI应用的强大工具。它不仅简化了开发流程,还提供了企业级的能力和生产环境的可控性。通过本文的介绍,相信读者已经对 LangChain 1.0 框架有了全面的了解,为后续的实战开发打下了坚实的基础。
在接下来的博客中,我们将深入探讨 LangChain 1.0 的核心接口、模型集成、工具系统、记忆系统、Agent开发和工作流编排等具体主题,帮助开发者掌握框架的各个方面,构建更加复杂和强大的AI应用。