Doubling down on DeepAgents

加大对 DeepAgents 的投入

3 分钟阅读

两个月前,我们写了关于 Deep Agents 的文章——我们创造了这个术语,用来指代那些能够在更长的时间跨度内完成复杂、开放式任务的智能体。我们推测,这些智能体具备四个关键要素:规划工具、文件系统访问、子智能体和详细的提示。

我们发布了 deepagents,作为一个 Python 包,它包含了所有这些基本要素,这样您只需提供自定义工具和自定义提示,即可轻松构建一个 Deep Agent。

我们看到了强烈的兴趣和广泛的应用,今天我们很高兴通过发布 0.2 版本来加大投入。在这篇博文中,我们将讨论 0.2 版本相比发布版有哪些新特性,以及何时使用 deepagents(相对于 langchainlanggraph)。

可插拔的后端

0.2 版本的主要新增功能是可插拔后端。以前,deepagents 访问的“文件系统”是一个“虚拟文件系统”,它使用 LangGraph 状态来存储文件。

在 0.2 版本中,我们引入了新的 Backend 抽象,允许您将任何内容作为“文件系统”插入。内置的实现包括:

  • LangGraph 状态
  • LangGraph 存储(跨线程持久化)
  • 实际的本地文件系统

我们还引入了“复合后端”的概念。这允许您有一个基础后端(例如本地文件系统),然后在某些子目录下在其之上映射其他后端。一个用例是增强长期记忆。您可以将本地文件系统作为基础后端,然后将 `/memories/` 目录下的所有文件操作映射到一个基于 S3 的“虚拟文件系统”,这样您的智能体就可以将内容添加到其中,并使其在您的计算机之外持久化。

您可以编写自己的后端,为任何您想要的数据库或数据存储创建“虚拟文件系统”。

您也可以继承现有后端,并添加关于可写入文件的护栏、这些文件的格式检查等。

0.2 版本中的其他改进

在 0.2 版本中,我们还为 deepagents 添加了许多其他改进。

何时使用 deepagents vs LangChain, LangGraph

这是我们正在投入的第三个开源库,但我们相信这三个库服务于不同的目的。为了区分这些目的,我们将把 deepagents 称为“智能体引擎(agent harness)”,langchain 称为“智能体框架(agent framework)”,langgraph 称为“智能体运行时(agent runtime)”。

如果您想构建工作流和智能体的组合,LangGraph 非常适合。

如果您想使用核心智能体循环而不带任何内置功能,并从头开始构建所有提示/工具,LangChain 非常适合。

DeepAgents 非常适合构建更自主、运行时间更长的智能体,您可以利用内置的规划工具、文件系统等功能。

它们是互相构建的——deepagents 构建在 langchain 的智能体抽象之上,而 langchain 又构建在 langgraph 的智能体运行时之上。

© . This site is unofficial and not affiliated with LangChain, Inc.