DeepAgents 应用开发实战
DeepAgents 应用开发实战
《大模型Agent智能体开发》(12月班体验课)
Part 3. DeepAgents 应用开发实战
在前面的课程中,我们已经成功构建了一个具备实时联网检索能力的 DeepAgents 研究智能体。但是,当我们运行智能体时,往往只能看到最终的结果,而无法观察到智能体内部的执行过程。
在本课程中,我们将学习三种方法来可视化和应用DeepAgents的执行过程:
- LangGraph Studio 可视化:使用 LangGraph 官方提供的可视化界面,实时观察智能体的执行流程;
- DeepAgents UI 可视化:使用 DeepAgents 官方提供的可视化界面,实时观察智能体的执行流程;
- 代码打印中间结果:通过编程方式打印智能体的每一步执行过程,包括 AI 思考、工具调用和工具响应
这三种方法各有优势,LangGraph Studio 提供了图形化的界面,DeepAgents UI 则提供了用户友好的应用形态,而代码打印则是能帮助大家理解如何提取DeepAgents的执行过程用于外部应用程序的集成。
一、DeepAgents 运行环境准备
为了进行可视化调试,我们首先需要确保已经创建了 DeepAgents 智能体。这里我们复用前面课程中已经配置好的代码。
# 核心依赖导入
import os
from typing import Literal
from dotenv import load_dotenv
from tavily import TavilyClient
from deepagents import create_deep_agent
# 加载环境变量
load_dotenv(override=True)
# 读取配置
deepseek_api_key = os.environ.get("DEEPSEEK_API_KEY")
deepseek_base_url = os.environ.get("DEEPSEEK_BASE_URL", "https://api.deepseek.com")
tavily_key = os.environ.get("TAVILY_API_KEY")
print("环境变量加载完成")
环境变量加载完成
from langchain.chat_models import init_chat_model
# 使用模型字符串(LangChain 会自动识别供应商)
model = init_chat_model(
api_key=deepseek_api_key,
base_url=deepseek_base_url,
model_provider="deepseek",
model="deepseek-chat"
)
# 初始化 Tavily 客户端
tavily_client = TavilyClient(api_key=tavily_key)
def internet_search(
query: str,
max_results: int = 5,
topic: Literal["general", "news", "finance"] = "general",
include_raw_content: bool = False,
):
"""
运行网络搜索
这是一个用于网络搜索的工具函数,封装了 Tavily 的搜索功能。
参数说明:
- query: 搜索查询字符串,例如 "Python 异步编程教程"
- max_results: 最大返回结果数量,默认为 5
- topic: 搜索主题类型,可选 "general"(通用)、"news"(新闻)或 "finance"(金融)
- include_raw_content: 是否包含原始网页内容,默认为 False
返回:
- 搜索结果字典,包含标题、URL、摘要等信息
"""
try:
result = tavily_client.search(
query,
max_results=max_results,
include_raw_content=include_raw_content,
topic=topic,
)
return result
except Exception as e:
# 异常处理:返回错误信息而非抛出异常
# 这样 LLM 可以理解出错并尝试其他策略
return {"error": f"搜索失败: {str(e)}"}
print("搜索工具创建完成")
搜索工具创建完成
二、使用 LangGraph Studio 进行可视化
DeepAgents底层构建的是图结构,而图结构是由LangGraph支撑,大家可以思考一个问题:DeepAgents基于LangGraph框架可以开发出各种复杂的应用、Agent、Workflow等,那么这些应用、Agent、Workflow等在生产中如何部署和运行呢? 解决方案就是把它们部署成一个Server。 而对如何方便高效的把LangGraph的Graph部署成一个Server,LangGraph官方提供了LangGraph Platform,其完整架构如下所示:

-
LangGraph Studio:桌面版应用(
目前仅支持Mac)和本地运行(适用于所有操作系统); -
LangServer:最终构建出来的服务,提供
Assistant API接口; -
Python/JS SDK:通过接口可以直接和
LangServer提供的各个API接口连接; -
Remote Graph:类似于之前
LangServe的用法,可以直接用Graph的接口去调用,这样拿到的Graph就是一个Runable对象,就可以去调用它的invoke,batch等。LangGraph Studio是专为LangGraph图式代理打造的本地/云端IDE,具备可视化节点和状态及实时调试功能。LangGraph Studio在本地可视化运行时会自动把调用过程上传到LangSmith;而在LangSmith网页端查看任何Trace时,又能一键Run in Studio回放整条执行链,所以它是通过统一Trace SDK与LangSmith紧密集成。而LangGraph CLI则是构建这个项目的关键首先,我们需要安装 LangGraph CLI 工具:
# 安装 LangGraph CLI(如果尚未安装)
%pip install -qU langgraph-cli