每当大型语言模型(LLMs)变得更好时,同样的问题就会出现:“你还需要代理框架吗?”这是一个合理的问题。构建代理的最佳方式会随着模型变得更加高效和演进而改变,但从根本上讲,代理是一个围绕模型的系统,因此它们不会消失——它们只需要演进。
我们已经构建了三代代理框架,每一个都与前一个不同。因此,这是我们的信念:
这篇文章是关于这两个赌注的。
代理模式已经从链式调用(chaining)演进到工作流编排(workflow orchestration),再到工具循环调用(tool-calling-in-a-loop)与文件系统和内存。我们为所有这些构建了框架,并相信每种都有其用例。以下是它们的演进过程:
最初的 langchain 在 2023 年变得流行,因为很少有人知道如何实用地使用 LLMs。该框架提供了一种最简单的方法来连接基础模型与您的数据或 API,通过一组集成和核心抽象。它可以说在开始时过于武断——更多的是一个“易用按钮”(easy button),用于学习提示和 RAG,而不是一个生产就绪的工具。当第一波生成式 AI 开始在那年夏天安定下来时,代理框架毫无意义的批评声越来越大。
我们听到了批评,但很难与我们在实际使用中看到的现象相协调。绝大多数构建 LLM 应用的团队需要比完全独自前进更快的方法。好的框架:
因此,我们加倍努力。并且是基于不同的框架。
langgraph 是一个更低级别、更灵活的框架。它包括一个支持持久性和状态性的运行时,这被证明对于人机和机器间的协作非常重要。它解决了人们对 langchain 提出的许多控制问题。我们最终在 2025 年重写了原始的 langchain 以使其更加简化,但我们也认识到不同的问题需要不同的工具。
最近,我们构建了 deepagents:一个包含电池的代理组合框架,它更高效、更灵活。它支持长时间任务的规划、工具循环调用、上下文卸载到文件系统以及子代理编排。代理组合框架现在之所以有效,是因为 LLMs 在推理方面变得更好,您可以将更多决策委托给 LLM,而不是硬编码许多编排模式。它在概念上与 Claude Agent SDK 最为相似,但它是模型无关的。据我们所知,它是唯一一个不绑定到任何特定 LLM 或应用程序栈的代理组合框架。
今天,我们推荐这些不同的框架用于不同的用例。langchain 和 deepagents 都是建立在 langgraph 的运行时之上的,用于长时间执行。

听起来很戏剧化,但我们在三年内看到了三代代理:最初的 RAG 变成了代理工作流,然后演进成了更自治的工具循环调用代理。
对框架的最大批评是,AI 领域的发展太快,无法形成标准。这有一定的真实性。但我们也相信,等待事情安定下来然后才加入 AI 游戏是一种失败的策略。框架可以帮助您快速开始构建,增加成功的机会。即使知道这一点,工具也会不断变化。而且您也不需要为所有事情使用框架。如果这是一个简单的 LLM 请求,添加框架可能过于重量级。
早期,我们认识到质量是将代理推向生产的最大障碍。我们相信,并且仍然相信,专用代理可观察性和评估是工具包中必需的部分。
我们称之为 LangSmith,因为我们有一个直觉,即不会只有一个代理框架。即使有一个主导框架,它也必须以一种速度演进,使早期版本变得难以辨认。我们承认,并不是每个人都会使用我们的框架,但我们希望他们仍然能够使用这个平台。
因此,我们构建了 LangSmith,使其无论您是否使用 langchain、我们的其他框架或根本不使用框架,都能正常工作。这在当时并不是一个明显的决定。我们从像 Vercel 这样的公司中得到了启发,它支持除他们自己的 Next.js 之外的许多前端框架。
今天,LangSmith 与 多个框架无缝集成 —— AutoGen、Claude Agent SDK、CrewAI、Mastra、OpenAI Agents、PydanticAI、Vercel AI SDK 等。它支持 OpenTelemetry 基础的跟踪,因此任何发出 OTEL 规范的内容都可以被 LangSmith 接收。并且它可以与根本不使用任何框架构建的代理一起工作。许多 LangSmith 客户,包括 Clay、Harvey 和 Vanta,不使用我们的开源框架,但依赖 LangSmith 进行可观察性和评估。
无论您使用什么代理框架,跟踪都是理解代理行为的关键。我们一直在写关于 代理跟踪的重要性,因为它是代理调试、监控、评估等的基础。对于代理来说,您的应用逻辑是通过跟踪而不是代码来记录的。构建代理只是第一步。代理是非确定性系统,因此您无法知道在投入使用之前会有哪些输入或输出。这就是为什么调试、测试和监控是 代理工程 和构建过程本身的关键部分。
因此,如果您不使用我们的开源框架,我们想听听您为什么不使用!如果您不使用,请不要让它阻止您使用 LangSmith 来弄清楚您的代理为什么失败。