引言

LangChain从2022年的一个LLM调用库,发展到2026年的完整AI应用平台。LangGraph、LangSmith、LangServe构成了LangChain生态系统。本文将全面介绍2026年LangChain的演进。

LangChain 2026架构

LangChain生态系统
├── LangChain (核心库)
│   ├── Models (模型抽象)
│   ├── Prompts (提示管理)
│   ├── Chains (链式调用)
│   ├── Agents (智能体)
│   ├── Memory (记忆)
│   ├── Retrievers (检索器)
│   └── Tools (工具集)
├── LangGraph (Agent编排)
│   ├── State Graph (状态图)
│   ├── Checkpointing (检查点)
│   └── Human-in-loop (人机协作)
├── LangSmith (可观测性)
│   ├── Tracing (追踪)
│   ├── Evaluation (评估)
│   └── Monitoring (监控)
└── LangServe (部署)
    ├── API Server
    └── Streaming (流式)

LangChain核心库

模型抽象

from langchain_community.llms import Ollama
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic

# 统一接口,不同后端
models = {
    "gpt5": ChatOpenAI(model="gpt-5"),
    "claude4": ChatAnthropic(model="claude-4-opus"),
    "glm5": Ollama(model="glm-5:32b"),
}

# 统一调用
for name, model in models.items():
    response = model.invoke("你好")
    print(f"{name}: {response.content}")

提示管理

from langchain.prompts import ChatPromptTemplate

# 提示模板
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个{role}。"),
    ("human", "{question}")
])

# 链式调用
chain = prompt | model | output_parser
response = chain.invoke({"role": "数学老师", "question": "1+1=?"})

RAG

from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter

# 文档处理
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_text(document)

# 嵌入和存储
embeddings = OllamaEmbeddings(model="bge-large-zh")
vectorstore = Chroma.from_texts(chunks, embeddings)

# RAG链
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
rag_chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | model
    | output_parser
)

LangGraph

2026年最重要的Agent编排工具:

状态图

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated

class AgentState(TypedDict):
    messages: Annotated[list, add_messages]
    tool_results: list
    next_action: str

def call_model(state: AgentState):
    response = model.invoke(state["messages"])
    return {"messages": [response]}

def should_continue(state: AgentState):
    last_message = state["messages"][-1]
    if last_message.tool_calls:
        return "tools"
    return END

# 构建图
workflow = StateGraph(AgentState)
workflow.add_node("agent", call_model)
workflow.add_node("tools", call_tools)
workflow.set_entry_point("agent")
workflow.add_conditional_edges("agent", should_continue)
workflow.add_edge("tools", "agent")

app = workflow.compile()

检查点

from langgraph.checkpoint import MemorySaver

# 支持对话中断和恢复
checkpointer = MemorySaver()
app = workflow.compile(checkpointer=checkpointer)

# 使用线程ID,可以中断和恢复
config = {"configurable": {"thread_id": "thread-1"}}
response = app.invoke({"messages": [("user", "你好")]}, config)

人机协作

def human_review(state: AgentState):
    """人工审核节点"""
    # 暂停执行,等待人工输入
    pass

workflow.add_node("human_review", human_review)
# 在关键步骤加入人工审核

LangSmith

追踪

import langsmith

# 自动追踪所有LangChain调用
with langsmith.trace("my_chain") as run:
    response = chain.invoke({"question": "什么是AI?"})
    # 所有中间步骤都被追踪

评估

from langsmith import Client

client = Client()

# 创建评估数据集
dataset = client.create_dataset("QA评估集")
client.create_examples(
    inputs=[{"question": "1+1=?"}, {"question": "什么是AI?"}],
    outputs=[{"answer": "2"}, {"answer": "AI是人工智能"}],
    dataset_id=dataset.id
)

# 运行评估
results = client.run_on_dataset(
    dataset_name="QA评估集",
    llm_or_chain_factory=chain,
    evaluation=eval_config
)

LangServe

API部署

from langserve import add_routes
from fastapi import FastAPI

app = FastAPI()

# 添加API路由
add_routes(app, chain, path="/chat")
add_routes(app, rag_chain, path="/rag")

# 自动生成OpenAPI文档
# 访问 /docs 查看API文档

流式输出

from langserve import add_routes

# 流式输出
add_routes(app, chain, path="/chat/stream", stream=True)

2026年新特性

1. LangGraph Studio

可视化Agent编排工具:

  • 拖拽式节点编辑
  • 实时调试
  • 状态可视化
  • 性能分析

2. LangSmith Hub

提示和链的共享平台:

  • 浏览社区共享的提示
  • 一键使用
  • 版本管理
  • 评价和讨论

3. 多模态支持

from langchain_core.messages import HumanMessage

# 图像输入
message = HumanMessage(
    content=[
        {"type": "text", "text": "描述这张图"},
        {"type": "image_url", "image_url": "data:image/jpeg;base64,..."}
    ]
)
response = model.invoke([message])

4. 评估自动化

# 自动评估链的性能
from langsmith.evaluation import LangChainStringEvaluator

evaluator = LangChainStringEvaluator("qa_correctness")
results = evaluator.evaluate_chain(
    chain=chain,
    dataset="qa_test_set"
)

性能优化

异步支持

# 异步调用
response = await model.ainvoke("你好")

# 批量异步
responses = await model.abatch(["问题1", "问题2", "问题3"])

缓存

from langchain.globals import set_llm_cache
from langchain.cache import InMemoryCache

# 启用缓存
set_llm_cache(InMemoryCache())

# 相同输入只调用一次
response1 = model.invoke("你好")  # 调用LLM
response2 = model.invoke("你好")  # 从缓存读取

流式输出

# 流式输出
async for chunk in model.astream("写一首诗"):
    print(chunk.content, end="", flush=True)

集成生态

LangChain 2026支持:

  • 100+ LLM提供商
  • 50+ 向量数据库
  • 30+ 文档加载器
  • 20+ Agent工具
  • 15+ 评估框架

结语

LangChain在2026年已经从LLM框架进化为完整的AI应用平台。LangGraph的Agent编排、LangSmith的可观测性、LangServe的部署能力,三者构成了从开发到生产的完整工具链。

记住:LangChain不只是工具,更是一种AI应用开发的范式。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。