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

可以做什么

  • 构建 Retrieval-Augmented Generation(RAG)问答系统
  • 把 LLM 当作“Agent”去调用外部 API(搜索、数据库、文件系统)并返回任务结果
  • 组织 prompt → 模型 → 后处理 的可复用流水线(Chains)
  • 实现多轮对话带记忆(Memory)与长会话管理
  • 在生产中管理可观测性与评估(配合 LangSmith/LangGraph)

LangChain 生态

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

  • 统一抽象:init_chat_model() 适配20+模型厂商
  • 异步/流式/批处理:ainvoke(),stream(), batch()
  • 执行方式:完全兼容 LCEL 与 LangGraph
  • 扩展能力:with_structured_output()、Tool Calling、多模态 Content Blocks

工具层

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

  • 内置工具:搜索、计算、代码执行等100+工具
  • 自定义工具:@tool装饰器 / BaseTool / ToolNode
  • 工具包:Toolkit(如GitHub、Slack集成)

记忆层

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

Agent层

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

工作流层

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

调试监控层

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

其他关键组件

  • langgraph: 这是一个底层的Agent 调度框架 (Agent Runtime),是一个相对“低级”(Low-level)的编排框架,它专注于解决复杂的“控制流”问题,用于构建健壮且有状态的多角色 LLM 应用程序。LangChain 1.0 中的新 Agents (通过 create_agent()) 就是建立在 LangGraph 之上的。
  • langserve: 用于将任何 LangChain chain 或 agent 部署为 REST API 的包,方便快速将应用投入生产环境。

底层运行结构

# 简化版架构示意图
┌─────────────────────────────────────────┐
│        LangChain 1.0 应用层              │
│  (create_agent, 工具和中间件)            │
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        LangGraph 编排层                  │
│  (StateGraph, Nodes, Edges, Checkpoints)│
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        LCEL 运行时层                     │
│  (Runnable接口, |运算符, 流式/批处理)    │
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        大语言模型API(OpenAI/DeepSeek)    │
└─────────────────────────────────────────┘

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"}))

messages=[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   → Runnable
Model            → Runnable
Parser           → Runnable

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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐