Skip to main content
create_deep_agent 具有以下核心配置选项:
有关更多信息,请参阅 create_deep_agent API 参考。

连接弹性

LangChain 聊天模型会自动重试失败的 API 请求,并采用指数退避策略。默认情况下,模型会针对网络错误、速率限制(429)和服务器错误(5xx)最多重试 6 次。像 401(未授权)或 404 这样的客户端错误不会重试。 您可以在创建模型时调整 max_retries 参数,以便根据您的环境调整此行为:
对于在不可靠网络上运行的长时间运行代理任务,建议将 max_retries 增加到 10–15,并将其与 检查点器 配对,以便在故障之间保留进度。

模型

默认情况下,deepagents 使用 claude-sonnet-4-6。您可以通过传递任何支持的 LangChain 模型对象 来自定义模型。
使用 provider:model 格式(例如 openai:gpt-5)可以快速切换模型。
👉 阅读 OpenAI 聊天模型集成文档

工具

除了用于规划、文件管理和子代理生成的 内置工具 之外,您还可以提供自定义工具:

系统提示

Deep Agents 自带内置系统提示。默认系统提示包含使用内置规划工具、文件系统工具和子代理的详细指令。 当中间件添加特殊工具(如文件系统工具)时,它们会被附加到系统提示中。 每个深度代理还应包含针对其特定用例的自定义系统提示:

中间件

默认情况下,Deep Agents 可以访问以下 中间件 如果您正在使用记忆、技能或人机回环,还包括以下中间件:
  • MemoryMiddleware:当提供 memory 参数时,跨会话持久化和检索对话上下文
  • SkillsMiddleware:当提供 skills 参数时启用自定义技能
  • HumanInTheLoopMiddleware:当提供 interruptOn 参数时,在指定点暂停以获取人类批准或输入

预构建中间件

LangChain 暴露了其他预构建中间件,让您能够添加各种功能,如重试、降级或 PII 检测。有关更多信息,请参阅 预构建中间件 deepagents 库还暴露了 create_summarization_tool_middleware,使代理能够在适当的时候触发摘要——例如在任务之间——而不是在固定的令牌间隔。有关更多详细信息,请参阅 Harness 中的摘要

自定义中间件

您可以提供额外的中间件来扩展功能、添加工具或实现自定义钩子:
初始化后不要修改属性如果您需要在钩子调用之间跟踪值(例如计数器或累积数据),请使用图状态。 图状态按设计是针对线程范围的,因此更新在并发下是安全的。这样做:
不要这样做:
就地修改,例如在 before_agent 中修改 self.x 或在钩子中更改其他共享值,可能会导致细微的错误和竞态条件,因为许多操作是并发运行的(子代理、并行工具和不同线程上的并行调用)。有关使用自定义属性扩展状态的完整详细信息,请参阅 自定义中间件 - 自定义状态模式。 如果您必须在自定义中间件中使用修改,请考虑当子代理、并行工具或并发代理调用同时运行时会发生什么。

子代理

为了隔离详细工作并避免上下文膨胀,请使用子代理:
有关更多信息,请参阅 子代理

后端

深度代理工具可以使用虚拟文件系统来存储、访问和编辑文件。默认情况下,Deep Agents 使用 StateBackend 如果您正在使用 技能记忆,您必须在创建代理之前将预期的技能或记忆文件添加到后端。
存储在 langgraph 状态中的临时文件系统后端。此文件系统仅 在一个线程内 持久存在。
有关更多信息,请参阅 后端

沙箱

沙箱是专门的 后端,它们在具有自己的文件系统和用于 Shell 命令的 execute 工具的隔离环境中运行代理代码。 当您希望深度代理写入文件、安装依赖项和运行命令而不更改本地机器上的任何内容时,请使用沙箱后端。 您可以通过在创建深度代理时将沙箱后端传递给 backend 来配置沙箱:
有关更多信息,请参阅 沙箱

人机回环

某些工具操作可能很敏感,需要执行前获得人类批准。 您可以为每个工具配置批准:
您还可以为代理和子代理配置工具调用期间以及工具调用内部的中断。 有关更多信息,请参阅 人机回环

技能

您可以使用 技能 为您的深度代理提供新的能力和专业知识。 虽然 工具 通常涵盖低级功能,如原生文件系统操作或规划,但技能可以包含完成任务的详细指令、参考信息和其他资源,例如模板。 这些文件仅在代理确定该技能对当前提示有用时才由代理加载。 这种渐进式披露减少了代理在启动时必须考虑的令牌和上下文数量。 有关示例技能,请参阅 深度代理示例技能 要将技能添加到您的深度代理,请将它们作为参数传递给 create_deep_agent

记忆

使用 AGENTS.md 文件 为您的深度代理提供额外上下文。 您可以在创建深度代理时将一个或多个文件路径传递给 memory 参数:

结构化输出

Deep Agents 支持 结构化输出。 您可以通过将所需的结构化输出模式作为 response_format 参数传递给 create_deep_agent() 调用来设置它。 当模型生成结构化数据时,它会被捕获、验证,并返回在深度代理状态的 ‘structured_response’ 键中。
有关更多信息和示例,请参阅 响应格式