概述

本指南演示如何从零开始使用深度代理构建一个多步骤网络研究代理。该代理将研究问题分解为聚焦的任务,委派给专门的子代理,并将研究结果综合成一份全面的报告。 你将要构建的代理将能够:
  1. 使用可选的待办事项列表中间件进行研究规划
  2. 将聚焦的研究任务委派给具有隔离上下文的子代理
  3. 在收集信息的过程中评估搜索结果并规划下一步行动
  4. 将研究结果连同适当的引文综合成最终报告
生成的子代理将使用 Tavily 进行网络搜索,获取完整的网页内容进行分析。

核心概念

本教程涵盖:
  • 使用子代理进行并行、上下文隔离的研究
  • 用于网络搜索的自定义工具
  • 使用可选的规划工具进行多步骤规划

前提条件

需要以下 API 密钥:
  • Anthropic (Claude) 或 Google (Gemini)
  • Tavily 用于网络搜索(可选 - 免费层足够)
  • LangSmith 用于追踪(可选)

设置

1

创建项目目录

2

安装依赖项

npm
3

设置 API 密钥

构建代理

在项目目录中创建 agent.ts 文件:
1

添加工具

添加自定义搜索工具。tavily_search 工具使用 Tavily 进行 URL 发现,然后获取完整的网页内容,以便代理可以分析完整的来源,而不是摘要。
2

添加提示词

将编排工作流和子代理提示模板添加到 agent.ts:
3

启用任务规划

任务规划是可选的。研究工作流使用 write_todos 将问题分解为聚焦的任务,因此在创建代理时请传递 TodoListMiddleware。
在下一步创建代理时将包含此中间件。
4

创建代理

将模型初始化和代理创建添加到 agent.ts。包含 todoListMiddleware 以便规划工具可用:

运行代理

你可以同步运行代理,即等待完整结果然后打印出来,或者可以在结果流入时进行流式传输更新。 将相应标签页中的代码添加到 agent.ts 底部:
从项目根目录运行代理:
如果你在运行前设置了 LANGSMITH_API_KEY 环境变量,你可以在 LangSmith 中查看代理的追踪信息,以调试和监控多步骤行为。

完整代码

在 GitHub 上查看完整的深度研究示例。

后续步骤

既然你已经构建了代理,可以通过修改代理文件中的提示常量来自定义它,以调整工作流、委派策略或研究员行为。 你还可以调整委派限制,以允许更多的并行子代理或委派轮次。 要了解更多关于本教程中概念的信息,请查看以下资源: