今天是 langchain
Python 包发布到开源世界的两周年纪念日。两年时间说长也长,说短也短。一方面,在我们共同构建 LLM 应用的旅程中,现在仍然感觉非常早期。然而,在这段时间里也发生了如此多的变化。鉴于行业变化的快速步伐,我们主要埋头苦干进行构建。但在我们首次发布两周年之际,我们希望盘点并反思 langchain
的发展历程以及我们未来的发展方向。
新工具,相同的使命:赋能可以推理的应用
langchain
最初的标语是“将 LLM 连接到外部计算和数据源”。这早于“代理”一词,但这基本上就是这句简洁的描述。我们从一开始的使命就始终如一:我们希望尽可能轻松地构建上下文感知、代理式的应用程序。
然而,已经改变的是我们为完成该使命而提供的工具。首先,最初作为 Python/JS 开源库的 langchain
已经发展成为 LangChain 公司!虽然 langchain
仍然是我们最受欢迎的产品,但我们已经扩展了两个关键产品——LangGraph 和 LangSmith。
2022 年,开发者主要需要一种简单的方法来学习使用这项新技术进行构建并快速入门。如今,更大的挑战是创建高质量的应用程序,这些应用程序能够可靠地工作并产生实际影响。我们所有三个产品的演变都反映了这种转变。
生态系统的演变
两年前,整个生成式 AI 生态系统还处于起步阶段——ChatGPT 甚至还没有发布。langchain
的兴起是因为它为开发者提供了一个简单的入口点,可以快速构建 LLM 应用程序并跟上最新的研究。当时,我们拥有所有最流行的 LLM 集成(多达 3 个!)和现成的链,这使得只需 5 行代码即可开始使用并尝试常见的用例。
从那时起,生态系统在三个重要方面发生了演变
- 生态系统已经稳定下来。虽然我们仍然认为现在还处于早期阶段,但 GenAI 格局远没有两年前那么稚嫩。LLM 应用程序不再仅仅在黑客马拉松中构建——它们正在被交付到生产环境中。
- 生态系统已经爆炸式增长。当
langchain
首次发布时,大约有 3 个 LLM 提供商。如今,有超过 70 个模型提供商,以及无数的集成(文档加载器、向量存储等)——langchain
中总共有超过 700 种不同的集成。 - 最重要的是,生态系统已经成熟。对于企业和初创公司而言,重点已从简单地构建原型转向使其 LLM 应用程序准备好投入生产。
让我们深入探讨最后一点。我们最初的开源库 langchain
使得(并且仍然使得)只需几行代码即可轻松开始使用常见的 LLM 应用程序用例。但随着生态系统的成熟,很明显,易于入门 != 易于投入生产。
自然而然地,这促使我们提出疑问:是什么阻止了开发者将其应用程序交付给真实用户?
对 LangSmith 和 LangGraph 的需求
LangSmith:用于生产就绪型 LLM 应用程序的测试和可观测性
在我们与早期的 langchain
用户和合作伙伴的对话中,我们一直听到 LLM 的不可靠性是一个很大的障碍。对于大多数工程师来说,仅仅集成模型是不够的——要让 LLM 始终如一地做出正确的决策需要付出巨大的努力。反过来,提示工程演变成了自己的学科。
早在早期认识到这一点,我们在 2023 年初开始开发 LangSmith,以解决两个关键需求:可观测性 和 评估。添加可观测性有助于开发者查明他们的 LLM 应用程序在哪里出错,而评估可以防止回归并确保应用程序的持续改进。这两个支柱——识别 LLM 应用程序问题和系统地提高性能——仍然是 LangSmith 的核心。
在我们构建 LangSmith 的过程中,我们与 Moody's、Elastic、Podium 和 Rakuten 等客户紧密合作,以改进产品。在此过程中,我们继续收集 测试和评估 LLM 应用程序的最佳实践 ——我们看到 LangSmith 如何帮助 AI/ML 团队不仅深入了解他们的 AI 助手和聊天机器人交互,而且还采取行动快速测试和调试棘手的问题。
LangGraph:通过灵活编排实现代理控制
当我们与才华横溢的构建者、初创公司和企业合作时,另一个挑战出现了。到 2023 年初夏,很明显,LangChain 中更高级别的预构建结构不足以满足生产用例。我们不断听到现成的链过于僵化,并且预配置的代理缺乏开发者大规模所需的可靠性。
我们意识到,为了提高可靠性,开发者需要 更多地控制其应用程序的认知架构。受到所有反馈的启发,我们构建了 LangGraph——一个灵活的编排框架,使开发者能够在各种自主性范围内构建代理,从精确定义的工作流程到更自主、适应性更强的代理。LangGraph 为用户提供了一个灵活的架构,可以根据个人或业务需求自定义他们的代理。借助人工参与循环支持和审核循环,LangGraph 用户可以更好地控制其代理的行为,以确保可靠的输出。
我们已经看到了基于 LangGraph 构建的令人兴奋的用例——从 Replit 的编码代理 到 Unify 的销售代理 ——这些用例帮助我们验证了代理可靠地处理复杂任务的需求。
今天的 LangChain 开源
那么,这使得今天的 LangChain 开源软件包处于什么位置?与两年前相比,又发生了什么变化?如今,langchain
是
- 更稳定。随着生成式 AI 生态系统的稳定,
langchain
也变得更加稳定。我们在 2024 年初发布了我们的第一个稳定版本,此后我们只发布了两个具有重大更改的版本。 - 更全面。 随着 GenAI 的爆炸式增长,集成仍然是
langchain
的主要组成部分。在这里,我们是我们令人难以置信的社区的巨大受益者。有太多东西需要连接 LLM——从向量存储到检索器再到文档加载器——我们非常感谢每一位为我们的集成包做出贡献的人。我们现在还为我们的顶级合作伙伴提供了 专门的集成包,以及各种组件的标准化测试。 - 更适合生产环境。随着开发者将重点从原型转向生产应用程序,我们相应地调整了
langchain
。在构建 LangSmith 以提供一流的 LLM 应用程序可观测性和测试的同时,我们确保它与langchain
无缝集成。并且,当我们构建langgraph
框架以实现强大的自定义认知架构时,我们演示了如何集成langchain
组件并将旧的langchain
链迁移到更强大的 LangGraph 应用程序中。
随着 langchain
的发展,我们的社区也与我们一同成长。在过去一年中
- 我们在 LangChain(跨 Python 和 JS)中的贡献者数量翻了一番,从 2000 人增加到 4000 人
- 由 LangChain 驱动的应用程序数量翻了两番,从 3 万个增加到 13.2 万个。
- Python 和 JS 的 总下载量 从 2000 万次跃升至 1.3 亿次以上
特别鸣谢我们的 LangChain 社区冠军和大使,他们帮助我们消除了错误、解决了问题,并制作了教育内容,使每个人都能访问 LangChain 产品
Aditya Thomas (sepiatone), Allen Firstenberg (afirstenberg), Andres Torres, Christophe Bornet (cbornet), Clemens Peters (clemenspeters), Colin McNamara (colinmcnamara), Daniel Nastase (js_craft_hq), Eden Marco (emarco177), Francisco Ingham (fpingham), gbaian10, Greg Kamradt (gregkamradt), Harry Zhang (zhanghaili0610), Marlene Mhangami (marlenezw), Rick Garcia (gitmaxd), Tom Spencer, Virat Singh (virattt)
LangChain 的未来之路
当我两年前发布 langchain
时,目标是尽可能轻松地构建可以推理的 LLM 应用程序。现在作为一家公司,过去两年来的相同目标激励我们改进 langchain
并 创建正交产品以解决不同的需求。
我们认为这个领域仍处于早期阶段,并且需要构建大量的工具,以使开发者能够创建改变游戏规则的应用程序。我们认为 langchain
、LangGraph 和 LangSmith 是这个难题的关键部分——我们相信随着时间的推移,会出现更多的组件。在令人难以置信的社区的支持和反馈下,我们将继续推动 LangChain 向前发展,探索新的方向,同时忠实于最初启动 langchain
的愿景。
加入 LangChain 社区
我们希望您能加入我们的旅程,共同构建 LLM 应用程序的未来!以下是一些参与方式
- 加入 Slack 社区:langchain.com/join-community
- 为开源项目做贡献:python.langchain.com/docs/contributing/
- 参加活动:lu.ma/langchain
- 获取最新的产品更新:changelog.langchain.com
- 了解更多信息:langchain.com/community