news 2026/4/16 14:48:09

DeepAgents框架详解:让AI Agent具备任务规划与长期记忆能力!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepAgents框架详解:让AI Agent具备任务规划与长期记忆能力!

引言

随着AI Agent任务复杂度每7个月翻倍,传统的"LLM循环调用工具"模式开始显露出成本高、可靠性差的问题。LangChain DeepAgents应运而生——一个开源的Agent框架,让开发者能够构建类似Claude Code的强大Agent。

什么是DeepAgents?

DeepAgents是LangChain推出的一个Agent框架(agent harness),它基于LangGraph构建,专为处理复杂、多步骤、长时程任务而设计。它的核心理念源自行业领先的Agent应用,但完全开源且高度可定制。

核心特点一览

特性说明
任务规划内置TODO工具,能自动分解复杂任务
文件系统虚拟或真实的文件系统后端,管理大量上下文
子Agent委托可生成专门的子Agent处理特定子任务
长期记忆支持跨会话的持久化存储
人机协同敏感操作可暂停等待人工批准
高度可扩展通过中间件机制轻松添加自定义功能

架构设计:三层构建哲学

DeepAgents采用了清晰的分层架构,让开发者可以在不同抽象层次上进行定制:

┌─────────────────────────────────┐│ DeepAgents (Agent Harness) │ ← 内置规划、文件系统、子Agent│ │├─────────────────────────────────┤│ LangChain (Agent Framework)│ ← Agent核心循环、工具抽象│ │├─────────────────────────────────┤│ LangGraph (Agent Runtime) │ ← 图执行引擎、状态管理└─────────────────────────────────┘

三者的关系:

  • LangGraph: 提供底层的图执行和状态管理能力
  • LangChain: 提供Agent的基础循环逻辑和工具集成
  • DeepAgents: 在前两者基础上,提供开箱即用的高级能力(规划、文件系统、子Agent等)

何时选择DeepAgents?

场景推荐框架
需要工作流与Agent混合LangGraph
从零构建所有prompt和工具LangChain
需要自主、长期运行的复杂AgentDeepAgents

核心能力深度剖析

1. 智能任务规划

DeepAgents内置了write_todosread_todos工具。有趣的是,这个工具本质上是个"no-op"(不执行实际操作),但它却能显著提升Agent的任务分解能力。

工作原理:

  • Agent在执行前先创建TODO列表
  • 将复杂任务分解为离散步骤
  • 跟踪进度并动态调整计划
  • 在完成后标记任务

这种"自我规划"机制让Agent能够处理跨越数十次工具调用的长期任务。

2. 灵活的文件系统后端

DeepAgents支持多种文件系统后端,解决了上下文窗口溢出的难题:

后端类型特点适用场景
StateBackend临时存储在Agent状态中默认,适合短期任务
FilesystemBackend真实的磁盘操作需要持久化或访问本地文件
StoreBackend基于LangGraph Store持久化跨会话的长期记忆
CompositeBackend混合路由不同后端同时需要临时和持久存储

实战案例:

from deepagents import create_deep_agentfrom deepagents.backends import CompositeBackend, StateBackend, StoreBackend# 混合后端:工作文件临时,记忆持久化agent = create_deep_agent( backend=CompositeBackend( default=StateBackend(), # 默认临时存储 routes={"/memories/": StoreBackend()} # /memories/下持久化 ))

3. 子Agent委托机制

通过内置的task工具,主Agent可以生成专门的子Agent来处理特定子任务,实现上下文隔离并行执行

生命周期:

主Agent → 生成子Agent → 子Agent独立执行 → 返回结果 → 主Agent整合

自定义子Agent示例:

research_subagent = { "name": "research-agent", "description": "用于深度研究问题", "system_prompt": "你是一个专业研究员...", "tools": [internet_search], "model": "openai:gpt-4o" # 可选,默认使用主Agent模型}agent = create_deep_agent(subagents=[research_subagent])

4. 长期记忆能力

通过CompositeBackendStoreBackend的组合,Agent可以跨会话保持记忆:

# 用户偏好持久化示例agent = create_deep_agent( backend=CompositeBackend( default=StateBackend(), routes={ "/memories/": StoreBackend(store=InMemoryStore()), "/preferences/": StoreBackend(), "/knowledge/": StoreBackend() } ))

应用场景:

  • 跨会话保存用户偏好
  • 构建知识库
  • 基于反馈自我改进
  • 保持研究进展

内置工具矩阵

DeepAgents开箱即带12+个专业工具,全部由中间件自动注入:

工具名称功能提供者
write_todos/read_todos任务规划与跟踪TodoListMiddleware
ls/read_file/write_file文件操作FilesystemMiddleware
edit_file精确字符串替换编辑FilesystemMiddleware
glob/grep文件搜索与内容查找FilesystemMiddleware
execute*执行Shell命令(需沙箱支持)FilesystemMiddleware
task委托给子AgentSubAgentMiddleware

自动功能:

  • 大结果(>20K tokens)自动保存到文件
  • 上下文超170K自动摘要(保留最后6条消息)
  • Anthropic模型自动启用Prompt缓存

快速上手:5分钟构建研究Agent

# 1. 安装pip install deepagents tavily-python# 2. 定义工具import osfrom deepagents import create_deep_agentfrom tavily import TavilyClienttavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])def internet_search(query: str, max_results: int = 5): """运行网络搜索""" return tavily_client.search(query, max_results=max_results)# 3. 创建Agentagent = create_deep_agent( tools=[internet_search], system_prompt="进行深度研究并撰写专业报告。",)# 4. 执行任务result = agent.invoke({ "messages": [{"role": "user", "content": "LangGraph是什么?"}]})

就这么简单!Agent会自动:

  • 规划研究步骤(使用TODO工具)
  • 搜索多个来源
  • 将大量结果保存到文件
  • 必要时生成子Agent进行深度分析
  • 最终整合成报告

高级定制技巧

自定义系统Prompt

DeepAgents的系统Prompt采用分层设计

┌──────────────────────────────────┐│ 中间件自动注入的默认指令 │ ← 工具使用说明、最佳实践├──────────────────────────────────┤│ 你的自定义system_prompt │ ← 领域特定工作流、示例└──────────────────────────────────┘

编写自定义Prompt的原则:

应该做:

  • 定义特定领域的工作流(如研究方法论)
  • 提供具体用例的示例
  • 添加专业指导(如"将相似研究任务批处理到单个TODO")
  • 定义停止标准和资源限制
  • 解释工具如何在你的工作流中协同

不应该做:

  • 重复解释标准工具功能(已由中间件覆盖)
  • 复制中间件已有的工具使用指令
  • 与默认指令相矛盾

人机协同工作流

对于敏感操作(如文件删除、API调用),可配置人工审批:

@tooldef delete_file(path: str) -> str: """删除文件""" os.remove(path) return f"已删除 {path}"agent = create_deep_agent( tools=[delete_file], interrupt_on={ "delete_file": { "allowed_decisions": ["approve", "edit", "reject"] } })

Agent会在执行敏感工具前暂停,等待用户的approve/edit/reject决策。

自定义中间件

通过中间件扩展Agent能力:

from langchain_core.tools import toolfrom deepagents import create_deep_agentfrom langchain.agents.middleware import AgentMiddleware@tooldef get_weather(city: str) -> str: """获取城市天气""" returnf"{city}的天气晴朗。"class WeatherMiddleware(AgentMiddleware): tools = [get_weather] def before_call(self, state): # 在每次LLM调用前执行 print("准备查询天气...") return stateagent = create_deep_agent(middleware=[WeatherMiddleware()])

实战应用场景

1. 深度研究Agent

research_agent = create_deep_agent( tools=[internet_search, web_fetch], system_prompt=""" 你是专业研究员。 1. 使用write_todos规划多步研究 2. 并行搜索多个来源 3. 将原始数据保存到/research/目录 4. 生成research-agent子Agent进行深度分析 5. 整合成结构化报告 """, subagents=[deep_research_subagent])

2. 代码助手Agent

coding_agent = create_deep_agent( backend=FilesystemBackend(root_dir="/workspace"), tools=[run_tests, format_code], system_prompt=""" 你是高级编程助手。 - 使用ls和read_file理解项目结构 - 用edit_file进行精确代码修改 - 执行测试验证更改 - 在/workspace操作真实文件 """)

3. 数据分析Agent

analysis_agent = create_deep_agent( tools=[query_database, plot_chart], system_prompt=""" 你是数据科学家。 1. 规划分析步骤(EDA → 建模 → 可视化) 2. 将中间结果保存到/data/目录 3. 生成可复现的分析报告 """)

与其他框架的对比

特性DeepAgentsLangChain AgentAutoGPTCrewAI
任务规划内置TODO需自建自动内置
文件系统多后端真实文件
子Agent灵活委托角色协作
长期记忆可配置需自建向量存储有限
人机协同内置需自建
可扩展性中间件工具有限中等
学习曲线中等中等

技术亮点与设计哲学

1. 中间件驱动架构

DeepAgents的所有核心功能都通过中间件实现,这种设计带来了:

  • 模块化: 每个功能独立,易于理解和维护
  • 可组合性: 自由组合不同中间件
  • 可扩展性: 第三方可轻松开发新中间件

2. "信任LLM"安全模型

与传统的"不信任LLM"方法不同,DeepAgents采用:

  • 边界在工具层:安全检查在工具和沙箱层面实施
  • 不期望LLM自我审查:LLM可执行任何工具允许的操作
  • 适合受控环境:适用于企业内部、个人项目等可信场景

3. 上下文管理策略

通过三层机制解决上下文窗口限制:

  1. 文件系统卸载: 大结果自动保存到文件(>20K tokens)
  2. 自动摘要: 上下文超170K时压缩历史(保留最近6条)
  3. 子Agent隔离: 通过子Agent实现上下文分片

性能与成本优化

DeepAgents内置多项优化措施:

优化项机制效果
Prompt缓存AnthropicPromptCachingMiddlewareClaude模型成本降低90%
自动摘要SummarizationMiddleware防止上下文溢出
并行执行子Agent并发研究类任务提速3-5倍
上下文卸载自动保存大结果到文件节省token消耗

最佳实践

DO(推荐做法)

  1. 批量实现变更: 将相关修改组织成3-10个一批,方便调试
  2. 使用子Agent隔离: 复杂子任务委托给专门子Agent
  3. 定义清晰停止标准: 在system_prompt中明确任务完成条件
  4. 利用文件系统: 将中间结果持久化,避免重复计算
  5. 配置人工审批: 敏感操作使用interrupt_on

DON’T(避免做法)

  1. 不要重复中间件指令: 默认指令已覆盖工具使用
  2. 不要过度依赖LLM自我限制: 安全边界应在工具层
  3. 不要在系统Prompt中硬编码示例: 使用few-shot示例功能
  4. 不要忽略批处理: 大量修改应分批执行
  5. 不要混淆LangGraph与DeepAgents: 前者是底层,后者是高层抽象

社区资源

  • GitHub仓库: langchain-ai/deepagents
  • 官方文档: docs.langchain.com/deepagents
  • 快速示例: deepagents-quickstarts
  • CLI工具: 提供交互式命令行界面
  • LangSmith集成: 支持可观测性与部署

结语

DeepAgents的出现,标志着AI Agent从"工具执行者"向"自主规划者"的进化。它不仅是一个框架,更是一种构建复杂Agent的方法论

如果你正在构建需要深度思考、多步骤推理的AI应用,DeepAgents绝对值得一试。它开源、灵活、强大,让每个开发者都能打造属于自己的"Claude Code"。

如何学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份LLM大模型资料分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以扫描下方二维码领取🆓↓↓↓

学习路线

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:22:11

如何用 Playwright 实现跨浏览器 UI 测试零失败?

一、跨浏览器测试的挑战与 Playwright 的崛起UI 自动化测试的终极痛点在于‌环境差异‌:不同浏览器引擎(Chromium/Firefox/WebKit)对 CSS 渲染、JavaScript 执行的细微差别,以及不同操作系统和分辨率的组合,导致传统测…

作者头像 李华
网站建设 2026/4/16 10:22:09

自动化测试框架选型:Cypress vs Playwright vs Selenium

在当今快速迭代的软件开发环境中,自动化测试已成为提升效率、保障质量的核心手段。Cypress、Playwright和Selenium作为主流框架,各有千秋,但选型错误可能导致资源浪费和项目延误。本文旨在为软件测试从业者提供深度比较,基于易用性…

作者头像 李华
网站建设 2026/4/15 16:05:34

前端频繁触发OPTIONS?深入剖析PHP跨域预检请求底层原理

第一章:前端频繁触发OPTIONS?深入剖析PHP跨域预检请求底层原理在现代前后端分离架构中,前端应用与后端API常部署在不同域名下,从而引发浏览器的同源策略限制。当发起跨域请求时,若请求属于“非简单请求”,浏…

作者头像 李华
网站建设 2026/4/16 12:26:25

JAVA赋能台球室:无人自助约球社交畅

JAVA通过高并发架构、智能硬件集成与社交化运营,为台球室打造了无人自助约球社交新体验,显著提升运营效率与用户体验。以下是具体实现方式与核心优势:一、技术实现:高并发与智能化支撑微服务架构模块拆分:基于Spring B…

作者头像 李华
网站建设 2026/4/16 11:16:00

小白也能上手!图文详解GLM-TTS Web界面操作流程

小白也能上手!图文详解GLM-TTS Web界面操作流程 在内容创作和智能交互日益依赖语音输出的今天,你是否曾想过:只需一段几秒钟的录音,就能让AI“学会”你的声音,为你朗读任意文字?这不再是科幻电影的情节——…

作者头像 李华