Skip to main content
开始构建由 LLM 驱动的代理和应用程序的最简单方式——内置任务规划、用于上下文管理的文件系统、子代理生成和长期记忆功能。 您可以将 deep agents 用于任何任务,包括复杂的多步骤任务。 我们将 deepagents 视为一种 “代理工具集”。它与其他代理框架具有相同的核心工具调用循环,但内置了工具和功能。 deepagents 是一个独立库,构建在 LangChain 的代理核心构建块之上,并使用 LangGraph 的工具在生产环境中运行代理。 deepagents 仓库 包含:
  • Deep Agents SDK:一个用于构建能够处理任何任务的代理的包
  • Deep Agents CLI:一个基于 Deep Agents SDK 构建的终端编码代理
  • ACP 集成:一个代理客户端协议连接器,用于在 Zed 等代码编辑器中使用 deep agents
LangChain 是为您的代理提供核心构建块的框架。 要了解更多关于 LangChain、LangGraph 和 Deep Agents 之间的区别,请参阅 框架、运行时和工具集

创建一个 deep agent

import * as z from "zod";
// npm install deepagents langchain @langchain/core
import { createDeepAgent } from "deepagents";
import { tool } from "langchain";

const getWeather = tool(({ city }) => `It's always sunny in ${city}!`, {
  name: "get_weather",
  description: "Get the weather for a given city",
  schema: z.object({
    city: z.string(),
  }),
});

const agent = createDeepAgent({
  tools: [getWeather],
  systemPrompt: "You are a helpful assistant",
});

console.log(
  await agent.invoke({
    messages: [{ role: "user", content: "What's the weather in Tokyo?" }],
  }),
);
请参阅 快速入门自定义指南,开始使用 Deep Agents 构建您自己的代理和应用程序。
使用 LangSmith 追踪请求、调试代理行为并评估输出。设置 LANGSMITH_TRACING=true 和您的 API 密钥即可开始。

何时使用 Deep Agents

当您想要构建能够执行以下操作的代理时,请使用 Deep Agents SDK
  • 处理复杂的多步骤任务,这些任务需要规划和分解
  • 管理大量上下文,通过文件系统工具和摘要
  • 切换文件系统后端,以使用内存状态、本地磁盘、持久化存储、沙箱您自己的自定义后端
  • 执行 shell 命令,通过 execute 工具(在使用沙箱后端时)
  • 委派工作给专门的子代理以实现上下文隔离
  • 跨对话和线程持久化记忆
  • 控制文件系统访问,使用声明式权限规则限制代理可以读取或写入的文件
  • 需要人工批准敏感操作,通过Human in the Loop工作流
  • 使用任何模型——与提供商无关,支持前沿模型和开源模型
对于构建更简单的代理,请考虑使用 LangChain 的 createAgent 或构建自定义 LangGraph 工作流。

核心功能

规划与任务分解

Deep Agents 包含一个内置的 write_todos 工具,使代理能够将复杂任务分解为离散步骤、跟踪进度,并在新信息出现时调整计划。

上下文管理

文件系统工具(lsread_filewrite_fileedit_file)允许代理将大量上下文卸载到内存或文件系统存储,防止上下文窗口溢出,并能够处理可变长度的工具结果。自动摘要功能在上下文窗口变长时压缩较旧的对话消息,使代理在长时间会话中保持有效。

Shell 执行

当使用沙箱后端时,代理会获得一个 execute 工具来运行 shell 命令,用于测试、构建、git 操作和系统任务。沙箱后端提供隔离,因此代理可以执行代码而不会危及您的主机系统。

可插拔的文件系统后端

虚拟文件系统由可插拔后端驱动,您可以根据用例进行切换。可选择内存状态、本地磁盘、用于跨线程持久化的 LangGraph 存储、用于隔离代码执行的沙箱(Modal、Daytona、Deno),或使用组合路由组合多个后端。您也可以实现自己的自定义后端。

子代理生成

一个内置的 task 工具使代理能够生成专门的子代理以实现上下文隔离。这保持了主代理上下文的清晰,同时仍然能够深入处理特定子任务。

长期记忆

使用 LangGraph 的内存存储扩展代理,实现跨线程的持久化记忆。代理可以保存和检索先前对话中的信息。

文件系统权限

声明权限规则,控制代理可以读取或写入的文件和目录。子代理可以继承或覆盖父级的规则。

Human in the Loop

使用 LangGraph 的中断功能配置敏感工具操作的人工批准。控制哪些工具在执行前需要确认。

技能

使用可重用的技能扩展代理,这些技能提供专门的工作流、领域知识和自定义指令。

智能默认值

附带经过深思熟虑的系统提示,教导模型如何有效使用其工具——行动前规划、验证工作并管理上下文。根据需要自定义或替换默认值。

开始使用

快速入门

构建您的第一个 deep agent

自定义

了解自定义选项

模型

配置模型和提供商

后端

选择和配置可插拔的文件系统后端

权限

使用权限规则控制文件系统访问

Human in the Loop

配置敏感操作的批准

CLI

使用 Deep Agents CLI

参考

查看 deepagents API 参考