Skip to content

Latest commit

 

History

History
115 lines (69 loc) · 6.58 KB

File metadata and controls

115 lines (69 loc) · 6.58 KB

5. LangChain 的理念(Philosophy)

原文链接: https://docs.langchain.com/oss/python/langchain/philosophy

LangChain 的存在目标,是在 尽可能方便开发者开始使用 LLM 构建应用 的同时,依然保持足够的灵活性和可用于生产环境的可靠性。

LangChain 的设计由几条核心信念驱动:

  • LLM 是一种强大且全新的技术。
  • 当 LLM 与外部数据源结合使用时,会变得更强大。
  • LLM 将重塑未来应用的形态,未来的应用会越来越具“智能体(agentic)”特征。
  • 我们目前仍处在这种变革的早期阶段。
  • 虽然做一个“原型级”的智能体应用很容易,但要做出足够可靠、可真正投入生产的智能体依然非常困难。

基于此,LangChain 有两个核心关注点:

  1. 让开发者可以方便地使用“最好的模型”。

    不同提供商暴露出的 API 各不相同,包括模型参数、消息格式等。标准化这些模型输入与输出是 LangChain 的核心目标之一,这样开发者就可以轻松切换到最新、最先进的模型,而不被某个厂商锁定。

  2. 让开发者更容易用模型来编排复杂流程,并与其他数据和计算进行交互。

    模型不应仅仅用于 文本生成,它还应该被用来编排更复杂的流程,这些流程会与其他数据源交互。LangChain 让你可以轻松定义供 LLM 动态调用的工具,同时也帮助解析和访问非结构化数据。


历史沿革(History)

由于这一领域变化极快,LangChain 本身也在持续演进。下面是一个简要时间线,展示了 LangChain 如何随着 “用 LLM 构建应用” 这一概念的演变而变化:

2022-10-24 — v0.0.1

在 ChatGPT 推出前一个月,LangChain 以 Python 包的形式发布。它最初包含两个主要组件:

  • LLM 抽象层
  • “Chains”:为常见用例预先设定的一系列计算步骤。例如:RAG(检索增强生成)包含“先检索,再生成”两个步骤。

“LangChain” 这个名字来源于 “Language”(语言/语言模型) 和 “Chains”(链式调用)。

2022-12

第一批通用智能体被加入 LangChain。
这些通用智能体基于 ReAct 论文(ReAct = Reasoning and Acting,推理与行动)。它们使用 LLM 生成代表工具调用的 JSON,然后解析这段 JSON 来决定实际要调用哪些工具。

2023-01 — Chat Completion API

OpenAI 发布 “Chat Completion” API。
在此之前,模型只接受字符串并返回一个字符串;在 ChatCompletions API 中,模型演进为接受“消息列表”并返回一条消息。其他模型提供商很快跟进,LangChain 也随之更新以支持基于消息列表的交互方式。

2023-01 — JavaScript 版本

LangChain 发布 JavaScript 版本。
LLM 和智能体正在改变应用的构建方式,而 JavaScript 则是应用开发者最常用的语言之一。

2023-02 — LangChain Inc. 成立

LangChain Inc. 公司围绕开源的 LangChain 项目成立。
其主要目标是“让智能体无处不在”。团队意识到,LangChain 虽然是关键一环(它让使用 LLM 入门变得简单),但要做到这一点,还需要更多配套组件。

2023-03 — 函数调用(Function Calling)

OpenAI 在 API 中发布 “function calling” 功能。
这使得 API 可以显式生成表示工具调用的 payload。其他模型提供商也陆续支持,LangChain 更新后,把这种方式作为调用工具的首选方案(取代之前解析 JSON 的方式)。

2023-06 — LangSmith 发布

LangSmith 以闭源平台形式发布,由 LangChain Inc. 提供,用于可观测性与评估(evals)。
构建智能体的最大难题是“可靠性”,LangSmith 正是为解决这一需求而生,它提供了可观测性和评估能力。LangChain 也更新以便无缝集成 LangSmith。

2024-01 — v0.1.0

LangChain 发布 0.1.0,这是其首个非 0.0.x 版本。
随着行业从“原型阶段”走向“生产阶段”,LangChain 也更加重视稳定性。

2024-02 — LangGraph 发布

LangGraph 以开源库形式发布。
最初的 LangChain 有两个重点:LLM 抽象层,以及用于快速上手常见应用的高级接口;但它缺少一个“低层级的编排层”,让开发者可以精细控制智能体的执行流程。LangGraph 正是为此而生。

在构建 LangGraph 时,团队基于构建 LangChain 所获得的经验,引入了他们发现必需的功能:流式传输、持久执行、短期记忆、人在回路等。

2024-06 — 超过 700 个集成

LangChain 拥有超过 700 个集成。
这些集成从核心 LangChain 包中拆分出来,核心集成迁移到各自独立的包,其他集成则迁移到 langchain-community

2024-10 — LangGraph 成为首选编排方式

对于任何超出“单次 LLM 调用”的 AI 应用,LangGraph 成为推荐的构建方式。
当开发者尝试提升应用的可靠性时,他们需要比高层接口更细粒度的控制。LangGraph 提供了这种低层级的灵活性。
在 LangChain 中,大多数 chains 和 agents 被标记为已弃用,并提供了迁移到 LangGraph 的指南。
但在 LangGraph 中仍保留了一个高层抽象:智能体抽象。它基于低层的 LangGraph 构建,并且与 LangChain 中最初的 ReAct 智能体接口保持一致。

2025-04 — 模型 API 走向多模态

模型开始支持文件、图像、视频等多种输入。
我们据此更新了 langchain-core 的消息格式,以便开发者可以用统一的方式指定这些多模态输入。

2025-10-20 — v1.0.0

LangChain 发布 1.0 版本,带来两项重大变化:

  1. langchain 中所有 chains 和 agents 完全重构。
    所有原有的 chains 和 agents 被统一为一个高层抽象:基于 LangGraph 构建的智能体抽象
    这个抽象最初在 LangGraph 中创建,如今被迁移回 LangChain。
    对于仍然使用旧版 LangChain chains/agents 且暂时不想升级的用户(仍然推荐升级),可以通过安装 langchain-classic 继续使用旧版。

  2. 标准化消息内容格式。
    模型 API 从“返回简单字符串内容的消息”逐步演进为返回更复杂的输出类型——推理块、引用信息、服务端工具调用等。
    LangChain 也相应演进其消息格式,以在不同提供商之间对这些复杂结构进行标准化。


本文档由 LangChain 官方文档翻译而来,原文见 Philosophy