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

我们发布了 deepagents,作为一个 Python 包,它包含了所有这些基本要素,这样您只需提供自定义工具和自定义提示,即可轻松构建一个 Deep Agent。
我们看到了强烈的兴趣和广泛的应用,今天我们很高兴通过发布 0.2 版本来加大投入。在这篇博文中,我们将讨论 0.2 版本相比发布版有哪些新特性,以及何时使用 deepagents(相对于 langchain 或 langgraph)。
可插拔的后端
0.2 版本的主要新增功能是可插拔后端。以前,deepagents 访问的“文件系统”是一个“虚拟文件系统”,它使用 LangGraph 状态来存储文件。
在 0.2 版本中,我们引入了新的 Backend 抽象,允许您将任何内容作为“文件系统”插入。内置的实现包括:
- LangGraph 状态
- LangGraph 存储(跨线程持久化)
- 实际的本地文件系统
我们还引入了“复合后端”的概念。这允许您有一个基础后端(例如本地文件系统),然后在某些子目录下在其之上映射其他后端。一个用例是增强长期记忆。您可以将本地文件系统作为基础后端,然后将 `/memories/` 目录下的所有文件操作映射到一个基于 S3 的“虚拟文件系统”,这样您的智能体就可以将内容添加到其中,并使其在您的计算机之外持久化。
您可以编写自己的后端,为任何您想要的数据库或数据存储创建“虚拟文件系统”。
您也可以继承现有后端,并添加关于可写入文件的护栏、这些文件的格式检查等。
0.2 版本中的其他改进
在 0.2 版本中,我们还为 deepagents 添加了许多其他改进。
- 大型工具结果逐出:当大型工具结果超过特定 token 限制时,自动将其转储到文件系统。
- 对话历史摘要:当 token 使用量变大时,自动压缩旧的对话历史。
- 悬空工具调用修复:修复工具调用在执行前被中断或取消时的消息历史。
何时使用 deepagents vs LangChain, LangGraph
这是我们正在投入的第三个开源库,但我们相信这三个库服务于不同的目的。为了区分这些目的,我们将把 deepagents 称为“智能体引擎(agent harness)”,langchain 称为“智能体框架(agent framework)”,langgraph 称为“智能体运行时(agent runtime)”。

如果您想构建工作流和智能体的组合,LangGraph 非常适合。
如果您想使用核心智能体循环而不带任何内置功能,并从头开始构建所有提示/工具,LangChain 非常适合。
DeepAgents 非常适合构建更自主、运行时间更长的智能体,您可以利用内置的规划工具、文件系统等功能。
它们是互相构建的——deepagents 构建在 langchain 的智能体抽象之上,而 langchain 又构建在 langgraph 的智能体运行时之上。
