Skip to main content

Documentation Index

Fetch the complete documentation index at: https://nvd-54.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

本指南将引导你使用规划、文件系统工具和子 Agent 功能来创建你的第一个 Deep Agent。你将构建一个能够进行研究并撰写报告的研究 Agent。
正在使用 AI 编程助手?

前置条件

开始之前,请确保你有一个模型提供商的 API 密钥(例如 Gemini、Anthropic、OpenAI)。
Deep Agents 需要支持工具调用的模型。参阅自定义配置了解如何配置你的模型。

步骤 1:安装依赖

npm install deepagents langchain @langchain/core @langchain/tavily
本指南使用 Tavily 作为示例搜索提供商,但你可以替换为任何搜索 API(例如 DuckDuckGo、SerpAPI、Brave Search)。

步骤 2:设置 API 密钥

export GOOGLE_API_KEY="your-api-key"
export TAVILY_API_KEY="your-tavily-api-key"

步骤 3:创建搜索工具

import { tool } from "langchain";
import { TavilySearch } from "@langchain/tavily";
import { z } from "zod";

const internetSearch = tool(
  async ({
    query,
    maxResults = 5,
    topic = "general",
    includeRawContent = false,
  }: {
    query: string;
    maxResults?: number;
    topic?: "general" | "news" | "finance";
    includeRawContent?: boolean;
  }) => {
    const tavilySearch = new TavilySearch({
      maxResults,
      tavilyApiKey: process.env.TAVILY_API_KEY,
      includeRawContent,
      topic,
    });
    return await tavilySearch._call({ query });
  },
  {
    name: "internet_search",
    description: "Run a web search",
    schema: z.object({
      query: z.string().describe("The search query"),
      maxResults: z
        .number()
        .optional()
        .default(5)
        .describe("Maximum number of results to return"),
      topic: z
        .enum(["general", "news", "finance"])
        .optional()
        .default("general")
        .describe("Search topic category"),
      includeRawContent: z
        .boolean()
        .optional()
        .default(false)
        .describe("Whether to include raw content"),
    }),
  },
);

步骤 4:创建 Deep Agent

传入 provider:model 格式的 model 字符串,或一个已初始化的模型实例。所有提供商请参阅支持的模型,经过测试的推荐请参阅推荐模型
import { createDeepAgent } from "deepagents";

// 通过 system prompt 引导 Agent 成为专业研究员
const researchInstructions = `You are an expert researcher. Your job is to conduct thorough research and then write a polished report.

You have access to an internet search tool as your primary means of gathering information.

## \`internet_search\`

Use this to run an internet search for a given query. You can specify the max number of results to return, the topic, and whether raw content should be included.
`;

const agent = createDeepAgent({
  model: "google-genai:gemini-3.1-pro-preview",
  tools: [internetSearch],
  systemPrompt: researchInstructions,
});

步骤 5:运行 Agent

const result = await agent.invoke({
  messages: [{ role: "user", content: "What is langgraph?" }],
});

// 打印 Agent 的响应
console.log(result.messages[result.messages.length - 1].content);
使用 LangSmith 追踪你的 Agent 的规划步骤、工具调用和子 Agent 委托。按照可观测性快速开始进行设置。

它是如何工作的?

你的 Deep Agent 会自动执行以下操作:
  1. 规划方法,使用内置的 write_todos 工具将研究任务分解。
  2. 进行研究,通过调用 internet_search 工具收集信息。
  3. 管理上下文,使用文件系统工具(write_fileread_file)来卸载大型搜索结果。
  4. 生成子 Agent,根据需要将复杂子任务委托给专门的子 Agent。
  5. 合成报告,将研究发现整合为连贯的响应。

示例

有关使用 Deep Agents 构建的 Agent、模式和应用,请参阅示例

Streaming

Deep Agents 内置了 Streaming 功能,可以使用 LangGraph 从 Agent 执行中获取实时更新。 这让你可以渐进式地观察输出,并审查和调试 Agent 及子 Agent 的工作,例如工具调用、工具结果和 LLM 响应。

后续步骤

现在你已经构建了第一个 Deep Agent:
  • 自定义你的 Agent:了解自定义选项,包括自定义系统提示词、工具和子 Agent。
  • 添加长期记忆:启用跨对话的持久化记忆
  • 部署到生产环境:使用托管 Deep Agents 在 LangSmith 中创建、运行和管理 Deep Agents。