LangChain是什么

LangChain 是一个开源框架,用于构建基于大语言模型(LLM)的应用程序。它提供了工具和组件,帮助开发者更轻松地将语言模型与外部数据、工具和记忆上下文结合,创建智能、上下文感知的应用程序。

LangChain 简化了 LLM 应用程序生命周期的每个阶段:

  • 开发:使用 LangChain开源的构建模块、组件和第三方集成构建应用程序。 使用LangGraph构建具有一流流式处理和人机协作支持的有状态代理。

  • 生产化:使用LangSmith检查、监控和评估构建的链,以便可以持续优化并部署。

  • 部署:使用LangGraph Cloud将 LangGraph 应用程序转变为生产就绪的 API 和助手。

     LangChain 生态系统组件图
    LangChain 生态系统组件图
  • LangGraph Cloud:属于商业(COMMERCIAL)产品,提供云端服务支持,便于用户在云端部署基于 LangChain 或 LangGraph 开发的应用程序,可简化部署流程并提供稳定运行环境。

  • Integrations(集成):采用开源(OSS)模式,用于整合各类外部工具、数据源和大语言模型,使开发者能将不同资源与 LangChain 和 LangGraph 结合,拓展功能边界。

  • LangChain:开源(OSS)的用于开发大语言模型驱动应用的框架,提供模块化组件,方便开发者快速构建应用,如聊天机器人、问答系统等。

  • LangGraph:开源(OSS),通过图结构组织语言处理任务,清晰展现任务间的关系和数据流向,适合复杂语言处理流程建模。

  • LangSmith:商业(COMMERCIAL)工具套件,包含调试(Debugging)、交互式测试环境(Playground)、提示词管理(Prompt Management)、注释(Annotation)、测试(Testing)和监控(Monitoring)等功能,用于提升大语言模型应用开发和管理的效率与质量。

  • 具体来说,该框架由以下开源库组成:

    • langchain-core: 基础抽象和LangChain表达式 (LCEL)。

    • langchain-community: 第三方集成。

    • 集成包(例如 langchain-openailangchain-anthropic 等):一些集成已进一步拆分为自己的轻量级库,仅依赖于 langchain-core

    • langchain: 组成应用程序认知架构的链、代理和检索策略。

    • langchain-community:由社区维护的第三方集成

    • langgraph: 通过将步骤建模为图中的边和节点,构建强大且有状态的多参与者应用程序。与LangChain无缝集成,但也可以单独使用。

    • langserve: 将langchain链部署为REST API。

    • langsmith: 一个开发者平台,让您调试、测试、评估和监控LLM应用程序。

LangChain的六个module

LangChain由6个module组成,分别是Model IO、Retrieval、Chains、Memory、Agents和Callbacks。

LangChain六大模块
  • Model IO:AI应用的核心部分,LangChain与大模型交互的接口。主要的实现手段为:Prompt(输入)、Language model(处理)、Output Pasers(输出)

  • Retrieval:“检索“——该功能与向量数据密切库相关,是在向量数据库中搜索与问题相关的文档内容。该功能经常被应用于构建一个“私人的知识库”,构建过程更多的是将外部数据存储到知识库中。

  • Memory:为对话形式的模型存储历史对话记录,在长对话过程中随时将这些历史对话记录重新加载,以保证对话的准确度。

  • Chains:虽然通过Model IO、Retrieval和Memory这三大模块可以初步完成应用搭建,但是若想实现一个强大且复杂的应用,还是需要将各模块组合起来,这时就可以利用Chains将其连接起来,从而丰富功能。

    • Foundational LLM:基础大型语言模型,用于文本处理。

    • Conversational QA:对话式问答,用于处理对话中的问题和答案。

    • Retrieval QA:检索式问答,用于从文档或数据库中检索信息并回答问题。

    • Document:文档链,用于处理文档相关任务。

    • Sequential:顺序链,用于按顺序执行多个任务。

  • Agents:它可以通过用户的输入,理解用户的意图,返回一个特定的动作类型和参数,从而自主调用相关的工具来满足用户的需求,将应用更加智能化。Agents=LLM(决策)+Memory(记忆)+Tools(执行)。

  • Callbacks: 回调机制可以调用链路追踪,记录日志,帮助开发者更好的调试LLM模型。就是一个回调函数,这个函数允许我们在LLM的各个阶段使用各种各样的“钩子”,从而达实现日志的记录、监控以及流式传输等功能。

Langchain和LangGraph

  1. 生态系统的组成部分
    LangGraph 是 LangChain 生态系统中的一个扩展库,专注于增强 LangChain 的功能,特别是在复杂工作流和多智能体协作方面。它并非独立框架,而是与 LangChain 的链(Chain)、代理(Agent)等组件无缝集成。

  2. 互补性功能
    LangChain 提供基础模块(如链、工具集成、内存管理),而 LangGraph 在此基础上支持更动态的交互,例如循环、状态管理和多智能体协作,填补了 LangChain 在复杂流程控制上的不足。

  3. 核心区别

    维度

    LangChain

    LangGraph

    架构设计

    基于有向无环图(DAG),任务按顺序单向执行

    基于图结构,支持循环、回溯和分支逻辑

    状态管理

    无内置状态管理,依赖链式传递上下文

    提供中央状态管理,支持动态更新和持久化

    适用场景

    顺序明确的简单任务(如数据检索、内容总结)

    复杂交互(如多轮对话、多智能体协作)

    灵活性

    模块化但流程固定

    高度灵活,允许自定义节点和条件分支

    核心组件

    链(Chain)、工具(Tool)、代理(Agent)

    状态图(StateGraph)、节点(Node)、边(Edge)

    详细说明
    1. 应用场景

      • LangChain 适合标准化任务:

        • 文档问答、单次 API 调用、简单数据增强。

      • LangGraph 适合复杂交互:

        • 多智能体协作(如任务分配系统)、动态决策(如游戏 AI)、需循环处理的任务(如持续监控系统)

    2. 状态管理

      • LangChain:上下文通过链传递,难以处理需要长期记忆的场景(如多轮对话)。

      • LangGraph:通过 StateGraph 维护全局状态,节点可修改状态并影响后续流程。例如,在客服系统中记录用户历史问题以优化回答。

    3. 架构与流程控制

      • LangChain:通过“链”将多个 LLM 调用或工具按顺序串联,适用于线性任务(如问答系统)。例如,先检索文档再生成回。

      • LangGraph:通过图结构定义工作流,支持循环和条件分支。例如,在对话系统中,根据用户输入动态选择下一步操作,甚至允许人工干预(Human-in-the-loop)。

  4. 选择建议

    选择 LangChain:若需求为预定义流程(如从 API 获取数据后生成报告),或需要快速集成模块化组件。

    选择 LangGraph:若需处理动态交互(如聊天机器人)、多智能体协作,或需要循环和状态管理(如实时数据分析)。

  5. 典型案例

    LangChain:构建一个问答系统,链式调用检索工具和 LLM,生成答案。

    LangGraph:实现客服系统,根据用户意图路由到不同专家模块,并在对话中维护上下文。

Logo

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

更多推荐