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

创建深度代理

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
  • 处理复杂的多步骤任务,需要规划和分解
  • 通过文件系统工具和摘要功能管理大量上下文
  • 交换文件系统后端以使用内存状态、本地磁盘、持久存储、沙箱您自己的自定义后端
  • 通过 execute 工具执行 shell 命令(当使用沙箱后端时)
  • 将工作委托给专门的子代理以实现上下文隔离
  • 跨对话和线程持久化记忆
  • 通过声明性权限规则控制文件系统访问,限制代理可以读取或写入的文件
  • 通过人机协作工作流要求对敏感操作进行人工批准
  • 使用任何支持工具调用的模型——与提供商无关,涵盖前沿模型和开源模型
对于构建更简单的代理,请考虑使用 LangChain 的 createAgent 或构建自定义的 LangGraph 工作流。

核心功能

规划和任务分解

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

上下文管理

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

Shell 执行

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

可插拔的文件系统后端

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

子代理生成

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

长期记忆

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

文件系统权限

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

人机协作

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

技能

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

智能默认值

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

开始使用

SDK 快速入门

构建您的第一个深度代理

自定义

了解 SDK 的自定义选项

模型

配置模型和提供商

后端

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

权限

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

人机协作

为敏感操作配置批准

CLI

使用 Deep Agents CLI

参考

查看 deepagents API 参考