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:生成子智能体处理特定的任务

        

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐