LangChain
LangChain 是一个开源框架,可通过可替换的模型、工具、检索器和中间件构建 LLM 应用和智能体。
LangChain 是一个开源框架,用于基于大型语言模型(LLM)构建应用和 AI 智能体。它为各个模型提供商提供统一的消息、聊天模型、工具和检索器接口,因此应用只需更改模型名称,就能从一个提供商的模型切换到另一个提供商的模型;它还提供现成的智能体循环,以及与向量存储、文档加载器和 API 的数百种集成。Harrison Chase 于 2022 年 10 月将 LangChain 作为开源 Python 项目发布,比 ChatGPT 上线早了几周;它随后成为最广泛使用的工具包之一,可将提示、检索和模型调用串联起来,构建生成式 AI应用。LangChain 1.0 和 LangGraph 1.0 于 2025 年 10 月 22 日一同发布,并承诺在 2.0 版本之前不引入破坏性变更。
LangChain 生态系统#
如今,这个名称涵盖一系列可用于 Python 和 JavaScript 的软件包:
- langchain:以
create_agent为核心的智能体框架;它接收一个模型、一组工具和一条系统提示,并返回一个可运行的智能体。 - langchain-core 和集成包:为聊天模型、消息、嵌入、检索器和工具提供标准接口;此外还有 langchain-openai 和 langchain-anthropic 等用于实现这些接口的提供商软件包。
- LangGraph:LangChain 智能体运行其上的底层运行时。它将程序建模为由共享状态连接的一系列步骤组成的图,并可在每一步后对状态创建检查点,使长时间运行的任务能够经受重启,也能暂停以等待人工批准。
- LangSmith:提供托管平台,用于查看可观测性追踪记录、在数据集上进行智能体评估,以及部署智能体。
经典的 LangChain 应用由链构成:填入用户输入的提示模板、模型调用和输出解析器;这些组件可通过管道语法组合,就像提示链一样。最常见的链是检索增强生成(RAG):它加载文档,将文档拆分为文本块,把文本块的嵌入存入向量数据库,再将与每个问题最匹配的文本块加入模型的上下文窗口。
LangChain 智能体的运行方式#
使用 create_agent 构建的智能体会循环调用模型和工具,这与每个智能体运行框架执行的函数调用循环相同。中间件会挂接到每个步骤,以改变模型周围的处理过程:内置中间件可以总结较长的历史记录、隐藏个人数据,并在选定工具运行前暂停以等待人工批准。
为 LangChain 智能体添加视觉能力#
LangChain 的 @tool 装饰器会将 Python 函数转换为工具,从函数签名中读取参数类型,并从文档字符串中读取描述。这样封装 Ultralytics YOLO26,就能为智能体提供目标检测能力;Results.summary() 会将每项检测的类别名称、置信度和边界框作为模型可读取的数据返回:
from langchain_core.tools import tool
from langchain_core.utils.function_calling import convert_to_openai_tool
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
@tool
def detect_objects(image_url: str) -> list[dict]:
"""Detect objects in an image and return each one's class name, confidence, and box."""
results = model(image_url)
return results[0].summary()
# LangChain 根据签名和文档字符串推导出的架构,也就是模型接收的内容
print(convert_to_openai_tool(detect_objects))
# 智能体使用模型工具调用中的参数运行该工具
detections = detect_objects.invoke({"image_url": "https://ultralytics.com/images/bus.jpg"})
print(detections[0]["name"], detections[0]["confidence"])第一条打印结果展示了函数定义:其中包含一个 image_url 字符串参数,文档字符串则充当描述;LangChain 会将这些内容发送给模型。第二条展示了工具返回的第一项检测结果。将 tools=[detect_objects] 传给 create_agent,即可让任何受支持的聊天模型通过预测模式调用检测器。
LangChain 与相关工具的对比#
- 智能体工作流:LangGraph 图和 LangChain 智能体所实现的通用设计模式,例如路由、工具使用和评估器循环。
- 提供商 SDK:直接调用模型提供商的 API 无需框架,适合只使用单个模型的应用。应用涉及多个模型、工具或数据源时,LangChain 提供的统一接口、集成和智能体循环就能发挥作用。
- DSPy:一个能自动编写并优化多步骤 LLM 程序提示的框架,可根据示例数据上的某项指标调整提示。
- LlamaIndex:专注于摄取、索引和查询私有数据以实现 RAG 的框架。两者功能有所重叠,应用通常会在 LangChain 或 LangGraph 智能体内部使用 LlamaIndex 进行检索。










