下面提供3 个梯度的可运行代码示例,从最简入门 → 内置规划 / VFS → 子代理 + 人机介入,覆盖 Deep Agents 核心用法,同时结合你之前的Skill/Tool概念。
环境说明
- Python 3.9+
- 依赖安装
bash
运行
pip install langchain langchain-openai langchain-deepagents python-dotenv根目录新建
.env,填入模型密钥:
env
OPENAI_API_KEY=sk-xxx一、示例 1:最简入门(基础调用)
演示:创建基础Deep Agent,执行普通文本任务,体会开箱即用特性。
python
运行
from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain_deepagents import create_deep_agent load_dotenv() # 1. 初始化大模型 llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0) # 2. 创建 Deep Agent(默认内置规划、上下文管理、基础运行时) agent = create_deep_agent( llm=llm, system_prompt="你是专业文档助手,回答简洁、条理清晰。" ) # 3. 执行任务 if __name__ == "__main__": res = agent.run("总结 Deep Agents 的 3 个核心作用") print("===== 执行结果 =====") print(res)要点说明
- 无需手动写 Agent 循环、记忆、Prompt 编排;
- 底层自动启用Planner 规划,复杂问题会自动拆解步骤;
- 基于 LangGraph 做状态管理。
二、示例 2:结合 VFS 虚拟文件系统 + 自定义 Tool
演示 Deep Agents标志性能力:VFS 虚拟文件,同时接入自定义外部 Tool,区分Skill和Tool。 场景:
- 先用 Skill(模型原生能力)整理文本;
- 写入 VFS 虚拟文件;
- 用自定义 Tool 读取并二次加工。
python
运行
from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.tools import tool from langchain_deepagents import create_deep_agent load_dotenv() llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0) # ===================== 1. 定义 Skill(模型原生能力,纯推理) ===================== @tool def text_sort_skill(raw_text: str) -> str: """ Skill:文本要点梳理(大模型原生能力,无外部调用) Args: raw_text: 原始文本 """ prompt = f"将以下内容梳理为条理清晰的要点:\n{raw_text}" return llm.invoke(prompt).content # ===================== 2. 定义 Tool(外部操作能力) ===================== @tool def file_analysis_tool(file_content: str) -> str: """ Tool:文件内容分析(模拟外部工具) Args: file_content: 从VFS读取的文件内容 """ return f"【工具分析结果】内容总字数:{len(file_content)},核心主题:智能体Harness架构" # ===================== 3. 创建 Deep Agent ===================== agent = create_deep_agent( llm=llm, system_prompt="你可以使用文本梳理技能和文件分析工具,优先把长内容存入虚拟文件。", tools=[text_sort_skill, file_analysis_tool] ) if __name__ == "__main__": task = """ Deep Agents 是 LangChain 官方生产级 Harness,内置任务规划、虚拟文件系统、子代理、安全沙箱。 它基于 LangGraph 作为运行时,解决普通智能体上下文超限、任务混乱、无法长期运行的问题。 广泛用于长文档处理、项目开发、复杂报告生成等场景。 """ res = agent.run(f"梳理下面内容,存入虚拟文件,并调用工具分析文件:\n{task}") print("===== 最终输出 =====") print(res)核心看点
- VFS 自动生效:长文本会被 Agent 主动写入内存虚拟文件,不占用对话上下文;
- 严格区分:
text_sort_skill:模型内生能力 →Skillfile_analysis_tool:外部功能封装 →Tool
- Deep Agents自动调度「规划 → Skill 处理 → VFS 存文件 → Tool 读取分析」全流程。
三、示例 3:子代理 (Subagent) + 人机介入 (HITL)
演示两大企业级核心能力:分层子代理、人工审批,模拟多角色协作。 角色分工:
- 主代理:总调度
- 调研子代理:收集、整理信息
- 写稿子代理:生成正式文案
- 关键步骤触发人工确认
python
运行
from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain_deepagents import create_deep_agent load_dotenv() llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0) # 创建 Deep Agent,指定子代理角色 + 开启人机介入 agent = create_deep_agent( llm=llm, system_prompt="你是项目总负责人,协调调研代理和文案代理完成工作,重要内容必须等待人工确认。", # 内置子代理:分工协作,上下文互相隔离 subagents=["researcher", "writer"], # 开启人机在回路(关键步骤暂停,等待人工输入) human_in_the_loop=True ) if __name__ == "__main__": print("任务开始:制作一份 Deep Agents 技术简介文案") result = agent.run("先调研 Deep Agents 核心组件,再编写对外技术简介文案") print("\n===== 全部任务完成 =====") print(result)运行交互说明
- Agent 自动拆分任务:先派
researcher子代理调研信息; - 调研完成后,切换到
writer子代理撰写文案; - 到达输出最终文案节点时,程序暂停,控制台提示人工输入:
plaintext
[Human Input] 请审核内容,可修改/补充,输入完成后回车继续: - 人工确认 / 修改后,任务继续并收尾。
核心概念对应
subagents:Deep Agents分层协作能力,各司其职、上下文隔离;human_in_the_loop=True:企业合规必备 HITL 人机介入;- 整体运行在 LangGraph 之上,状态自动持久化。
四、补充:关键 API 与参数释义
1.create_deep_agent常用参数
表格
| 参数 | 作用 |
|---|---|
llm | 绑定大模型,智能核心 |
system_prompt | 全局角色与规则,统一所有子代理行为 |
tools | 挂载自定义 Skill / Tool 列表 |
subagents | 声明内置子代理角色,自动创建分工单元 |
human_in_the_loop | 开启 / 关闭人机介入 |
enable_vfs | 开关虚拟文件系统(默认True) |
enable_planning | 开关显式任务规划(默认True) |
2. 内置默认工具(开箱即用)
Deep Agents 自带一组基础工具,无需手动定义:
- 文件类:
read_file/write_file/ls(操作 VFS) - 任务类:
write_todo/update_todo(管理待办计划) - 子代理:
spawn_subagent(动态创建子代理)
五、架构链路总结(结合代码)
plaintext
用户任务 ↓ Deep Agents Harness ├─ Planner 规划器 → 拆解待办 ├─ 分发任务 │ ├─ 本地执行 → Skill(模型推理) │ ├─ 外部操作 → Tool + Sandbox │ └─ 专项任务 → Subagent 子代理(独立上下文) ├─ VFS 虚拟文件 → 存储大内容,减负上下文 ├─ HITL 人机介入 → 关键节点人工审核 └─ LangGraph Runtime → 状态持久、断点续跑六、拓展落地建议
- 私有化部署:VFS 可对接本地磁盘 / 对象存储,把虚拟文件落地持久化;
- 对接 MCP:自定义 Tool 中封装 MCP 调用,实现
Agent → MCP → 外部系统标准链路; - 结合 A2A:多个 Deep Agents 之间通过 A2A 协议互通,构建大规模多智能体集群;
- 权限管控:在 Tool/Sandbox 中增加白名单、权限校验,适配企业安全规范。