📌 所属章节:第一阶段 - LangChain 框架介绍

📚 系列目录 | 下一篇:LangChain 模块化管理 - langchain-core →


📋 摘要

本文详细讲解了 LangChain 框架介绍,包括核心概念、实战代码示例和最佳实践。通过本文的学习,你将掌握 LangChain 1.0 的核心技术要点,能够快速构建基于大模型的 AI 应用。

适合人群

  • 想系统学习 LangChain 1.0 的开发者
  • 需要构建 AI Agent 应用的工程师
  • 对 LLM 应用开发感兴趣的技术爱好者

LangChain 1.0 框架基础入门实战

第一阶段、LangChain 框架介绍

  LangChain 是一个构建 LLM 应用的框架,目标是把 LLM 与外部工具、数据源和复杂工作流连接起来 —— 支持从简单的 prompt 封装到复杂的 Agent(能够调用工具、做决策、执行多步任务)。它不仅仅是对LLM API的封装,而是提供了一套完整的工具和架构,让开发者能够更轻松地构建上下文感知具备推理能力的AI应用。LangChain 1.0 版本把“Agent 的稳定化、结构化输出、可观测性与生产化”作为核心改进目标。

1.1 用 LangChain 能做什么?

  • 构建 Retrieval-Augmented Generation(RAG)问答系统

  • 把 LLM 当作“Agent”去调用外部 API(搜索、数据库、文件系统)并返回任务结果

  • 组织 prompt → 模型 → 后处理 的可复用流水线(Chains)

  • 实现多轮对话带记忆(Memory)与长会话管理

  • 在生产中管理可观测性与评估(配合 LangSmith/LangGraph)

  核心价值:让开发者用10行代码完成原本需要1000行代码的AI应用,并且自动获得状态持久化、人工干预、并发控制等企业级能力。

  1.0 的架构风格可以用一句话概括:以“统一智能体抽象 + 标准化内容表示 + 可插拔治理中间件”为设计骨干,以 LangGraph 为底座运行时,实现“开发简单性”与“生产可控性”的兼顾。它一方面通过 create_agent 提供低门槛的构建入口,另一方面保留足够的钩子点与下探能力,以满足复杂工作流与高标准治理的需求。

你要做什么AI应用?
│
├─ 只想简单调用模型聊天(翻译/问答)
│   └─> 直接用OpenAI SDK(更轻量,无需LangChain)
│
├─ 需要联网查资料、执行代码、操作数据库
│   └─> 用LangChain 1.0(快速搭建Agent)
│       └─> 参考:客服机器人、数据分析助手
│
├─ 流程很复杂(多人审批/定时任务/状态分支)
│   └─> 用LangGraph 1.0(精确控制每个步骤)
│       └─> 参考:自动化工作流、ERP系统集成
│
└─ 不确定,先试试想法
    └─> 用LangChain 1.0快速验证,后期可无缝迁移到LangGraph

1.2 LangChain 生态概览

模型层(Models)

LangChain 1.0 的统一模型抽象层,为所有模型提供标准化调用,覆盖文本、多模态、Embedding、Rerank 等多类型模型,实现跨供应商一致体验

  • 统一抽象:init_chat_model() 适配20+模型厂商

  • 异步/流式/批处理:ainvoke(),stream(), batch()

  • 执行方式:完全兼容 LCEL 与 LangGraph

  • 扩展能力:with_structured_output()、Tool Calling、多模态 Content Blocks

工具层(Tools)

工具系统提供统一 Tool 抽象,支持所有主流模型的 Tool Calling,深度集成 LangGraph,构建可执行 agent 环境的关键能力层

  • 内置工具:搜索、计算、代码执行等100+工具

  • 自定义工具:@tool装饰器 / BaseTool / ToolNode

  • 工具包:Toolkit(如GitHub、Slack集成)

记忆层(Memory)

记忆层提供统一 State 管理、对话记录、长期检索、多模态 Memory 等能力,支持持久化与复杂工作流状态流转

  • 短期记忆:消息历史自动管理

  • 长期记忆:向量数据库存储(Chroma, Pinecone)

  • 存储接口:Store(跨会话持久化)

Agent层(Agents)

LangChain 1.0 Agents系统实现从碎片化到标准化升级,以create_agent为核心接口,基于LangGraph构建统一Agent抽象,10行代码即可创建基础Agent,封装"模型调用→工具选择→执行→结束"闭环流程

  • 核心API:create_agent()

  • 执行引擎:LangGraph Runtime(自动持久化)

  • 中间件:Middleware(HITL、压缩、路由)

工作流层(Workflows)

Workflows 体系实现从 线性链式(Chain)到图结构(Graph) 的范式转移,以 StateGraph 为核心画布,将业务逻辑解耦为 “节点(Node)+ 边(Edge)+ 状态(State)”,原生支持循环(Loop)与条件分支,完美适配复杂任务编排、容错重试及长会话保持。

  • 简单链:Chain(快速串联)

  • 复杂图:LangGraph(条件分支、循环)

  • 模板库:LangChain Hub(共享Agent模板)

调试监控层(Debugging)

LangChain 1.0 调试监控层实现了从 日志黑盒到全链路可观测性(Observability) 的质变,深度集成 LangSmith 平台,自动捕获链(Chain)与图(Graph)的每一步骤状态、Token 消耗及延迟,支持"Trace → Playground"一键回放调试,彻底解决复杂 Agent 逻辑难以排查的痛点。

  • 本地日志:verbose=True

  • 云端平台:LangSmith(可视化链路追踪)

  • 评估工具:LangChain Evaluate(效果评估)

其他关键组件 (LangGraph & LangServe)
  • langgraph: 这是一个底层的Agent 调度框架 (Agent Runtime),是一个相对“低级”(Low-level)的编排框架,它专注于解决复杂的“控制流”问题,用于构建健壮且有状态的多角色 LLM 应用程序。LangChain 1.0 中的新 Agents (通过 create_agent()) 就是建立在 LangGraph 之上的。

  • langserve: 用于将任何 LangChain chain 或 agent 部署为 REST API 的包,方便快速将应用投入生产环境。

1.3 LangChain 1.0 底层运行架构

# 简化版架构示意图
┌─────────────────────────────────────────┐
│        LangChain 1.0 应用层              │
│  (create_agent, 工具和中间件)            │
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        LangGraph 编排层                  │
│  (StateGraph, Nodes, Edges, Checkpoints)│
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        LCEL 运行时层                     │
│  (Runnable接口, |运算符, 流式/批处理)    │
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        大语言模型API(OpenAI/DeepSeek)    │
└─────────────────────────────────────────┘
  • LCEL:提供Runnable接口(invoke, stream, batch)和组合原语(|运算符),是无状态的函数式编排,构建“流水线(pipeline)”的工具

  • LangGraph:在LCEL基础上增加状态管理(State)、循环控制(Cycles)、持久化(Checkpoints),是有状态的图结构编排,构建“流程图(workflow/graph)”的工具

1.4 Runnable底层执行引擎

Runnable 是 LangChain 1.0 的“统一接口标准”,任何可以运行的组件——模型、Prompt、工具、解析器、Memory、Graph 节点——在 1.0 中都被抽象为 Runnable。

Runnable 使所有 LangChain 组件能够以统一接口组合、执行、链式调用,并支撑 LCEL(LangChain Expression Language)的整个运行语义,支撑可组合、可并行、可路由的链式执行,是 LangChain 1.0 的核心底座之一。

核心思想:Runnable 抽象与可组合链(Composable Chains)

  • LangChain 1.0 将所有链式元素统一为 Runnable(执行模型):
  • LLM(OpenAI、vLLM、Ollama……)

  • Prompt

  • Parser

  • Retriever

  • Tool

  • Agent

  • 自定义函数

所有对象都可以 .invoke()、.batch()、.stream()、.astream_events(),这实现了真正的统一调用接口。

  • 工程价值:

    • 链路清晰。

    • 任意组件之间可无缝组合。

    • 所有执行方式(同步 / 异步 / 批处理 / 事件流)统一。

    • 这是 LangChain 1.0 最具革命性的改变,使其成为“模型调用管道”的事实标准。

Prompt Runnable
from langchain_core.prompts import ChatPromptTemplate

# 1. 定义一个 Prompt (Runnable)
prompt = ChatPromptTemplate.from_template("Tell me a joke about {topic}")

# Prompt 也可以调用 invoke/stream
print(prompt.invoke({"topic": "ice cream"})) 

输出结果:

[HumanMessage(content='Tell me a joke about ice cream', additional_kwargs={}, response_metadata={})]

Tool Runnable
from langchain_core.tools import tool

# 2. 定义一个简单的 Tool (Runnable)
@tool
def multiply(a: int, b: int) -> int:
    """Multiplies a and b."""
    return a * b

# Tool 也可以调用 invoke/batch
print(multiply.invoke({"a": 2, "b": 3})) 

# Tool 也可以调用 batch (自动并行)
print(multiply.batch([{"a": 2, "b": 3}, {"a": 4, "b": 5}]))
# 输出: [6, 20]

输出结果:

6
[6, 20]

Runnable = LCEL 的语法基础

LCEL(| 运算符)是由 Runnable 定义的组合语义:

chain = prompt | model | StrOutputParser()
output = chain.invoke({"topic": "LangChain"})

这三者本质都是 Runnable:

[PromptTemplate](06_messages_prompt.md)   → Runnable
Model            → Runnable
Parser           → Runnable

任何 LCEL chain = 多个 Runnable 的组合。

技术 在 LangChain 1.0 的角色
LangChain 构建 LLM + prompt + tool + outputparser 的组件生态
LangGraph 构建 Agent / 多步工作流 / 状态机的框架
LCEL / Runnable LangChain 的底层执行引擎,依然核心

🎯 总结

本文详细介绍了 LangChain 框架介绍 的核心概念和实战技巧。希望这些内容能帮助你更好地理解和使用 LangChain 1.0!

如果你有任何问题或建议,欢迎在评论区留言交流!💬


📚 系列目录 | 下一篇:LangChain 模块化管理 - langchain-core →


🏷️ 标签LangChain AI开发 大模型应用

💝 感谢阅读!如果觉得有帮助,记得点赞收藏关注哦!


本文为原创内容,版权归作者所有,转载需注明出处。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐