LangChain 中文课
返回体系图 文章库
第 06 课,共 7 课:Deep Agents

第 06 课,共 7 课

构建会规划的长程 Agent

使用 Deep Agents 预置的文件系统、上下文管理和子 Agent 能力,处理研究和编码等多步骤任务。

高级 30 分钟 Python
完成本课后

你应该能做到

  • 知道 Deep Agents 比普通 Agent 多了什么
  • 创建一个带自定义工具的 deep agent
  • 判断任务是否真的需要长程 Agent
01

先判断是否需要 Deep Agents

官方把 Deep Agents 定义为开箱即用的 Agent Harness。它组合 LangChain 和 LangGraph,并预置文件系统、上下文管理、任务规划和子 Agent。

一次工具调用或简单问答不需要 Deep Agents。研究、编码、长报告和需要拆解的多步骤任务才适合。

02

运行一个最小 Deep Agent

安装 deepagents,然后使用一个本地资料检索工具。这个示例不额外依赖搜索服务,但保留官方 create_deep_agent 的核心用法。

deep_agent.py
from deepagents import create_deep_agent
from langchain_deepseek import ChatDeepSeek


def search_notes(query: str) -> str:
    """搜索内部学习笔记。"""
    notes = {
        "langgraph": "LangGraph 负责状态、分支、持久化和人工介入。",
        "langsmith": "LangSmith 负责追踪、评估、部署和监控。",
    }
    return "\n".join(notes.values())


agent = create_deep_agent(
    model=ChatDeepSeek(model="deepseek-chat", temperature=0),
    tools=[search_notes],
    system_prompt="你是中文研究助手。先检索资料,再整理成分点报告。",
)

result = agent.invoke(
    {"messages": [{"role": "user", "content": "比较 LangGraph 和 LangSmith 的职责。"}]}
)
print(result["messages"][-1].content)
03

观察它的工作方式

Deep Agent 会根据任务决定是否调用工具,并在更复杂的任务中使用文件系统保存中间结果、管理上下文或委派子 Agent。

生产使用前必须加入工具权限、隔离执行、人工审批和追踪。自主程度越高,越需要明确的边界。

不要凭感觉结束

本课完成标准

  • 成功安装 deepagents
  • 最终回答能区分 LangGraph 和 LangSmith
  • 能说出普通 Agent 与 Deep Agent 的适用边界
遇到问题先看这里

常见错误

任何任务都使用 Deep Agents

简单任务先用 create_agent,只有长任务和上下文管理需求明确时再升级。

给长程 Agent 开放高风险工具

使用最小权限、隔离环境和人工审批,不让模型直接获得无限文件或系统权限。

内容来源

依据官方文档中文整理

代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。

固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d