从“浅层”到“深层”:LangChain Deep Agents 实战指南 随着 AI Agent 技术的演进传统的“浅层”Agent 因缺乏灵活性而难以应对复杂任务。本文基于 LangChain 的 Deep Agents 框架通过构建一个“会议准备助手”的实战案例系统性地介绍了 Deep Agents 的核心能力。文章详细阐述了如何利用规划工具、文件系统、子 Agent 分工、自定义工具、持久化记忆以及人机交互审批等六大特性逐步将一个简单的脚本升级为具备自主规划与适应能力的智能体。本文旨在为开发者提供一套可落地的构建方法论帮助理解 Deep Agents 与传统工作流如 LangGraph的区别及适用场景。为什么我们需要“深层”Agent在构建 AI 应用时我们常遇到一种“浅层”Agent它们遵循固定的线性工作流。例如一个会议准备脚本可能只会机械地执行“搜索领英 - 搜索公司 - 搜索新闻 - 生成摘要”的步骤。这种模式的问题在于缺乏适应性。如果目标人物不在领英上怎么办如果会议是内部的不需要公司背景调查怎么办浅层 Agent 无法处理这些异常。Deep Agents深层 Agent的出现正是为了解决这一问题。与 LangGraph 提供的完全可控但需手动定义状态流转的模式不同Deep Agents 更加灵活。它允许 Agent 自主规划、根据发现的信息调整策略并管理自身的上下文。对于研究、编码辅助、数据分析等无法预知确切工作流的复杂场景Deep Agents 是更自然的选择。实战七步构建智能会议助手我们将通过七个步骤从零开始构建一个能够自主调研、撰写并发送会议简报的 Deep Agent。1. 基础构建赋予 Agent “眼睛”首先我们需要安装deepagents和搜索工具tavily-python。最基础的 Agent 只需要具备联网搜索的能力。python1from deepagents import create_deep_agent 2from tavily import TavilyClient 3import os 4 5# 初始化搜索工具 6tavily TavilyClient(api_keyos.environ[TAVILY_API_KEY]) 7 8def web_search(query: str): 9 return tavily.search(query, max_results5) 10 11# 创建基础 Agent 12agent create_deep_agent( 13 tools[web_search], 14 system_prompt你是一个会议助手。当被问及即将到来的会议时请调研参会者及其公司确保用户做好充分准备。 15) 16 17# 调用示例 18result agent.invoke({ 19 messages: [{role: user, content: 我明天要和 DataFlow Inc. 的工程副总裁 Sarah Chen 开会帮我准备一下。}] 20})即使是这个基础版本Agent 也能自主决定搜索什么内容并在找不到信息时尝试其他关键词这比硬编码的脚本灵活得多。2. 引入规划让思考有迹可循面对复杂任务Agent 容易迷失方向。Deep Agents 内置了规划工具write_todos,read_todos。我们只需在提示词中要求 Agent 使用待办清单它就能将大任务拆解为小步骤并逐一勾选完成。python1agent create_deep_agent( 2 tools[web_search], 3 system_prompt你是一个会议助手。在开始研究前请创建一个待办清单\n- 人物背景\n- 公司信息\n- 谈话要点\n\n按顺序执行完成后标记为完成。 4)这种显式的规划能力能显著提升 Agent 的专注度使其在面对突发信息如发现人物刚跳槽时能动态调整计划而非死板执行。3. 文件存储突破上下文限制当调研深入时搜索结果、新闻摘要等上下文会迅速耗尽模型的 Token 限额。Deep Agents 提供了文件系统工具write_file,read_file允许 Agent 将中间信息写入磁盘保持“工作记忆”的清爽。python1agent create_deep_agent( 2 tools[web_search], 3 system_prompt在研究过程中请将发现保存到文件\n- 人物信息保存至 /notes/person.md\n- 公司信息保存至 /notes/company.md\n\n这能帮你处理更大型的研究任务。 4)4. 子 Agent 分工术业有专攻调研和写作是两种截然不同的思维模式。我们可以创建子 Agent 来实现“术业有专攻”。主 Agent 负责协调将调研任务委派给“研究员”子 Agent将简报撰写委派给“撰稿人”子 Agent。python1# 定义子 Agent 2research_subagent { 3 name: researcher, 4 description: 深入调研人物和公司, 5 system_prompt: 你是专家研究员请多渠道交叉验证信息..., 6 tools: [web_search], 7} 8 9briefing_subagent { 10 name: briefing_writer, 11 description: 撰写简报, 12 system_prompt: 你负责撰写一页纸的会议简报结构为关键事实 谈话点 问题..., 13 tools: [], 14} 15 16# 主 Agent 协调工作 17agent create_deep_agent( 18 tools[web_search], 19 subagents[research_subagent, briefing_subagent], 20 system_prompt你是协调员。1. 委派人物调研给 researcher2. 委派公司调研给 researcher3. 将结果给 briefing_writer 生成文档。 21)子 Agent 的核心价值在于上下文隔离。所有的搜索细节都保留在子 Agent 内部主 Agent 只接收最终摘要从而极大地节省了主上下文的 Token。5. 自定义工具连接内部系统仅靠公开网络搜索是不够的Agent 还需要访问企业内部数据。通过tool装饰器我们可以轻松接入 CRM、日历等系统。python1from langchain_core.tools import tool 2 3tool 4def get_crm_history(person_email: str) - str: 5 查询 CRM 中与该人的过往互动记录 6 return CRM 查询结果... 7 8tool 9def check_calendar(date: str) - str: 10 检查特定日期的日历空闲情况 11 return 日历空闲情况... 12 13# 添加工具 14agent create_deep_agent( 15 tools[web_search, get_crm_history, check_calendar], 16 subagents[research_subagent, briefing_subagent], 17 system_prompt你可以访问网络、CRM 和日历。请优先检查 CRM因为过往互动比网络调研更有价值。 18)6. 持久化记忆拒绝重复劳动对于季度复盘或长期客户我们不需要每次都从头调研。通过配置CompositeBackendAgent 可以拥有持久化记忆。python1from deepagents.backends import CompositeBackend, StateBackend, StoreBackend 2from langgraph.store.memory import InMemoryStore 3 4# 设置持久化存储 5persistent_store InMemoryStore() 6backend CompositeBackend( 7 defaultStateBackend(), # 临时文件 8 routes{ 9 /contacts/: StoreBackend(storepersistent_store), # 联系人档案持久化 10 /meetings/: StoreBackend(storepersistent_store), # 会议历史持久化 11 }, 12) 13 14agent create_deep_agent( 15 # ... 其他配置 16 backendbackend, 17 system_prompt在调研新人前先检查 /contacts/ 下是否有现有档案。准备完简报后更新档案。 18)7. 人机交互安全阀门在涉及发送邮件等敏感操作时必须引入“人机回路”Human-in-the-loop。Deep Agents 支持在执行特定工具前暂停等待人类审批。python1agent create_deep_agent( 2 # ... 其他配置 3 interrupt_on{ 4 send_briefing_email: { 5 allowed_decisions: [approve, edit, reject] 6 }, 7 }, 8 system_prompt研究并创建简报后提供发送邮件选项。注意发送邮件需要人工审批。 9)总结与启示通过这七个步骤我们将一个简单的搜索脚本进化为了一个具备高度自主性的智能体。回顾整个过程有以下几点关键启示适应性是核心Deep Agents 最大的优势在于能根据环境变化调整策略而非死板执行预设脚本。规划即思考强制 Agent 写下待办清单Todo List看似简单却是提升其逻辑连贯性的最有效手段。上下文隔离利用子 Agent 处理复杂子任务是解决长文本上下文限制、保持主 Agent 专注的关键架构模式。渐进式构建不要试图一步到位。从基础工具开始遇到瓶颈如上下文不足、任务太杂时再引入文件存储或子 Agent是更稳健的开发路径。Deep Agents 代表了 AI 应用开发从“自动化脚本”向“自主智能体”的重要跨越。掌握这一模式将帮助我们在处理复杂、非结构化任务时构建出更强大的 AI 解决方案。