第 06 课,共 7 课
构建会规划的长程 Agent
使用 Deep Agents 预置的文件系统、上下文管理和子 Agent 能力,处理研究和编码等多步骤任务。
完成本课后
你应该能做到
- 知道 Deep Agents 比普通 Agent 多了什么
- 创建一个带自定义工具的 deep agent
- 判断任务是否真的需要长程 Agent
先判断是否需要 Deep Agents
官方把 Deep Agents 定义为开箱即用的 Agent Harness。它组合 LangChain 和 LangGraph,并预置文件系统、上下文管理、任务规划和子 Agent。
一次工具调用或简单问答不需要 Deep Agents。研究、编码、长报告和需要拆解的多步骤任务才适合。
运行一个最小 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)
观察它的工作方式
Deep Agent 会根据任务决定是否调用工具,并在更复杂的任务中使用文件系统保存中间结果、管理上下文或委派子 Agent。
生产使用前必须加入工具权限、隔离执行、人工审批和追踪。自主程度越高,越需要明确的边界。
本课完成标准
- 成功安装 deepagents
- 最终回答能区分 LangGraph 和 LangSmith
- 能说出普通 Agent 与 Deep Agent 的适用边界
常见错误
简单任务先用 create_agent,只有长任务和上下文管理需求明确时再升级。
使用最小权限、隔离环境和人工审批,不让模型直接获得无限文件或系统权限。
内容来源
依据官方文档中文整理
代码和概念来自 LangChain 官方固定提交。中文解释用于降低学习门槛,英文原文只作为核对入口。
Deep Agents overview
src/oss/deepagents/overview.mdx
Deep Agents quickstart
src/oss/deepagents/quickstart.mdx
固定提交 08ae2610bd712a4a340d59f27122bea97a0a598d