langchain 深度智能体
DeepAgents是LangChain发布的用于构建深度智能体的库,能够处理复杂多步任务。它支持任务规划、子智能体调用和文件系统管理,适用于需要多步骤分解、大上下文管理和跨对话记忆的场景。开发者可通过配置模型(如千问)、定制系统提示词(如史学研究专家角色)和集成工具(如Tavily搜索工具)来构建智能体。
1.概述
deepagents是langchain发布的库,用于构建处理复杂多步任务的深度智能体。langchain受到Claude Code、Deep Research和Manus等应用程序的启发,并基于LangGraph构建。深度智能体能够进行规划、使用子智能体和文件系统。深度智能体应用场景如下:
1)需要对复杂、多步骤任务进行规划和分解
2)使用文件系统管理大量上下文
3)根据需要把工作交付给专门的子智能体从而实现上下文隔离
4)需要跨对话的长期记忆
2.快读构建深度智能体
2.1创建搜索工具
仍使用tavily作为搜索引擎,基于tavily_client构建一个搜索工具,
import os
from langchain_tavily import TavilySearch
os.environ["TAVILY_API_KEY"] = "tvly-*"tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])
def internet_search(
query: str,
max_results: int = 5,
topic: Literal["general", "news", "finance"] = "general",
include_raw_content: bool = False,
):
"""Run a web search"""
return tavily_client.search(
query,
max_results=max_results,
include_raw_content=include_raw_content,
topic=topic,
)
2.2创建智能体
deepagents缺省使用claude-sonnet-4-5-20250929模型,不能使用,所以显式指定使用千问。
from langchain_openai import ChatOpenAI
from deepagents import create_deep_agent
llm = ChatOpenAI(
model = 'qwen-plus',
api_key = "sk-*",
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1")system_prompt = """你是一位史学研究专家。你的工作是进行对历史问题进行透彻的研究,然后写一份专业的报告。您可以借助搜索工具从互联网收集信息作为你的研究素材.
## `internet_search`
你是一位史学研究专家。你的工作是进行对历史问题进行透彻的研究,然后写一份专业的报告。您可以借助搜索工具从互联网收集信息作为你的研究素材.
你可以使用使用此工具针对指定的主题搜索互联网,在搜索时你可以可以指定要返回的最大结果数、主题以及是否应包含原始内容"""
agent = create_deep_agent(
model=llm,
tools=[internet_search],
system_prompt=system_prompt
)
调用深度智能体:
result = agent.invoke({"messages": [{"role": "user", "content": "请分析北宋为什么未能完成统一,反而被金灭国?"}]})
# Print the agent's response
for message in result['messages']:
message.pretty_print()
输出内容太多,不再这里显示。从输出中可以看到,智能体进行任务分解,并保存在todos列表中,然后分别执行todos列表中的任务,执行任务时根据需要调用搜索引擎,todos中的所有任务都完成后,再输出研究报告。
3.自定义深度智能体
3.1选择模型
deepagents缺省使用claude-sonnet-4-5-20250929模型。可通过init_chat_model创建大模型,也可以直接使用ChatOpenAI创建你使用的大模型。
3.2系统提示词
深度智能体内置的一个缺省的系统提示词,系统提示词包含使用内置计划工具、文件系统工智能体子代理的详细。一般情况下,开发人员根据深度智能体的使用场景定制系统提示词。
3.3工具
深度智能体可使用的工具除了在创建智能体时从tools参数传入的工具,还包括内置的工具,包括:
1)write_tods:该工具用于更新智能体的todo列表(在上面智能体的输出中可看到被多次调用)
2)ls:跟linux中的ls一样,获取智能体所在主机文件系统的列表
3)read_file:从智能体文件系统中读一个文件
4)write_file:在智能体文件中写一个新的文件
5)edit_file:修改智能体文件系统中的文件
6)task:生成子智能体处理特定的任务
更多推荐



所有评论(0)