Deep Research 怎么才算 "Deep"

Deep Research 怎么才算 "Deep"

需求分析

在开发Deep Research系统时,遇到了一个核心问题:如何真正体现"Deep"的含义?通过分析现有的研究系统,发现"深度"主要体现在两个方面:

第一个方面:LLM对问题的理解深度

在反思阶段,LLM需要能够深入理解问题,准确识别研究中的不足之处。这不仅仅是简单的关键词匹配,而是需要对问题本质有深刻的理解,能够发现研究过程中的盲点和需要补充的方向。

第二个方面:资料搜索的深度

在搜索阶段,需要找到足够多、足够相关的资料。这里的"深"不仅指搜索范围要广,更重要的是围绕当前研究主题要足够深入。简单来说,不仅要找到相关的资料链接,还要能够深入提取每个链接中的关键信息。

技术选型

基于对需求的分析,选择了以下技术方案来实现深度搜索:

选择了Tavily Search来保证搜索涵盖的范围足够广。Tavily Search能够返回大量的资料链接和链接内容总结,这为后续的深度提取提供了基础。

选择理由:

  • 搜索覆盖面广,能够找到大量相关资源
  • 提供链接摘要,便于快速判断相关性
  • API接口稳定,易于集成

搜索深度:Tavily Extract

选择了Tavily Extract来保证搜索涵盖的资料足够深。Searcher Agent通过判断Search到的链接summary,能够知道是否需要对链接内容进行进一步的提取。

工作流程:

  1. 通过Tavily Search获取大量链接和摘要
  2. Searcher Agent分析摘要,判断哪些链接需要深度提取
  3. 对需要深度提取的链接调用Tavily Extract
  4. 获取完整的页面内容,提取关键信息

选择理由:

  • 能够深入提取页面完整内容
  • 与Tavily Search配合,形成"广度+深度"的搜索策略
  • 支持按需提取,避免不必要的资源消耗

多模态资料处理

在搜索过程中,会遇到图片、音视频等多模态资料。对于这些资料,需要判断哪些是有效的,哪些需要进一步处理。

图片处理策略:

对于图片,需要判断哪些图片需要做OCR处理。判断依据包括:

  1. 图片的caption:如果图片有说明文字,说明图片可能包含重要信息
  2. 围绕图片的文本描述:如果图片周围的文本提到了图片内容,说明图片可能相关
  3. 预置网站固定位置的图片:比如文章中的图片,而不是网站icon。这需要识别图片在页面中的位置和上下文

实现思路:

对于网站多媒体资料的有效性判断,可以通过指定的知识库来保证。当需要判断时,根据网站host召回有效位置的描述信息。这样可以为不同网站定制不同的判断规则,提高判断准确性。

技术选型:

  • 只保留文本资料:对于音视频等无法直接处理的资料,暂时跳过
  • 图片OCR:对于判断为有效的图片,使用OCR技术提取文本内容
  • 知识库支持:通过RAG技术描述网站结构信息,辅助判断

网站结构信息支持:RAG

为了帮助Searcher Agent判断哪些链接或页面信息是有效的,哪些链接是无效的,设计了RAG机制来描述某些网站的结构信息。

设计思路:

通过RAG技术,可以为常见网站建立结构信息知识库。当Searcher Agent遇到这些网站时,可以查询知识库获取网站结构信息,从而更准确地判断:

  • 哪些链接是导航链接(通常无效)
  • 哪些链接是内容链接(通常有效)
  • 哪些页面区域包含主要内容
  • 哪些页面区域是广告或无关信息

实现优势:

  • 提高链接有效性判断的准确性
  • 减少无效内容的提取和处理
  • 可以根据网站特点定制提取策略

架构设计

基于以上技术选型,设计了以下架构:

整体架构

graph TB A[用户查询] --> B[Reflection Agent
反思阶段] B --> C[理解问题深度] C --> D[Searcher Agent
搜索阶段] D --> E[Tavily Search
广度搜索] E --> F[链接摘要分析] F --> G{需要深度提取?} G -->|是| H[Tavily Extract
深度提取] G -->|否| I[多模态资料判断] H --> I I --> J{是否为有效图片?} J -->|是| K[OCR处理] J -->|否| L[网站结构RAG查询] K --> M[提取文本内容] L --> N[判断链接有效性] N --> M M --> O[整合搜索结果] O --> P[返回深度搜索结果] style B fill:#e3f2fd style D fill:#fff3e0 style E fill:#f3e5f5 style H fill:#e8f5e9 style L fill:#fce4ec

核心组件设计

1. Reflection Agent(反思阶段)

职责:

  • 深入理解用户查询的问题本质
  • 识别研究中的不足之处
  • 生成深度搜索策略

设计要点:

  • 使用高质量的LLM模型,确保理解能力
  • 设计反思提示词,引导模型深入思考
  • 支持多轮反思,逐步深入
2. Searcher Agent(搜索阶段)

职责:

  • 执行广度搜索(Tavily Search)
  • 分析链接摘要,判断是否需要深度提取
  • 执行深度提取(Tavily Extract)
  • 判断多模态资料的有效性
  • 查询网站结构信息

设计要点:

  • 工具函数设计:tavily_search(), tavily_extract(), check_image_validity(), query_site_structure()
  • 决策逻辑:基于链接摘要和网站结构信息,智能判断是否需要深度提取
  • 资源优化:避免对无效链接进行深度提取
3. 多模态资料处理模块

职责:

  • 识别页面中的图片、音视频等资料
  • 判断资料的有效性
  • 对有效图片进行OCR处理

设计要点:

  • 图片有效性判断:基于caption、上下文文本、网站结构信息
  • OCR处理:使用OCR服务提取图片中的文本
  • 知识库支持:通过RAG查询网站结构信息
4. 网站结构RAG模块

职责:

  • 存储常见网站的结构信息
  • 根据网站host查询结构信息
  • 辅助Searcher Agent判断链接和内容有效性

设计要点:

  • 知识库设计:为每个网站存储结构描述信息
  • 查询接口:根据host快速查询结构信息
  • 扩展性:支持动态添加新网站的结构信息

实现过程

阶段1:基础搜索功能

首先实现了基础的搜索功能,使用Tavily Search获取大量链接和摘要。这个阶段主要验证了搜索API的可用性和返回数据的质量。

遇到的问题:

  • 返回的链接数量过多,需要筛选
  • 链接摘要质量参差不齐,有些摘要无法准确反映内容

解决方案:

  • 设计链接相关性评分机制
  • 基于摘要质量进行初步筛选
  • 为后续深度提取做准备

阶段2:深度提取功能

在基础搜索的基础上,实现了深度提取功能。Searcher Agent分析链接摘要,判断哪些链接需要深度提取。

遇到的问题:

  • 如何准确判断是否需要深度提取?
  • 深度提取会消耗更多资源,如何平衡?

解决方案:

  • 设计判断规则:基于摘要长度、关键词匹配度、网站类型等
  • 设置提取阈值:只对高相关性的链接进行深度提取
  • 实现缓存机制:避免重复提取相同链接

阶段3:多模态资料处理

实现了多模态资料的处理功能,特别是图片的有效性判断和OCR处理。

遇到的问题:

  • 如何准确判断图片是否有效?
  • OCR处理成本较高,如何优化?

解决方案:

  • 设计多维度判断:caption、上下文文本、网站结构信息
  • 实现知识库支持:为常见网站建立结构信息
  • 优化OCR调用:只对判断为有效的图片进行OCR处理

阶段4:网站结构RAG支持

最后实现了网站结构RAG支持,帮助Searcher Agent更准确地判断链接和内容有效性。

遇到的问题:

  • 如何描述网站结构信息?
  • 如何快速查询和匹配?

解决方案:

  • 设计结构描述格式:使用结构化数据描述网站布局
  • 实现RAG查询:根据host快速召回结构信息
  • 支持动态扩展:可以随时添加新网站的结构信息

关键技术细节

链接深度提取判断逻辑

设计了以下判断逻辑来决定是否需要深度提取:

  1. 摘要质量评估

    • 摘要长度:过短的摘要可能信息不足
    • 关键词匹配:摘要中是否包含查询关键词
    • 摘要完整性:摘要是否完整描述了页面内容
  2. 网站类型判断

    • 新闻网站:通常需要深度提取
    • 博客网站:根据摘要质量决定
    • 文档网站:通常需要深度提取
    • 社交媒体:通常不需要深度提取
  3. 相关性评分

    • 计算摘要与查询的相关性评分
    • 设置阈值,只对高相关性链接进行深度提取

图片有效性判断逻辑

设计了多维度判断机制:

  1. Caption检查

    • 检查图片是否有说明文字
    • 分析caption与查询的相关性
  2. 上下文文本分析

    • 分析图片周围的文本内容
    • 判断文本是否提到了图片内容
    • 评估文本与查询的相关性
  3. 网站结构信息

    • 查询网站结构知识库
    • 判断图片在页面中的位置
    • 识别是否为文章内容图片
  4. 预置规则

    • 为常见网站设置固定规则
    • 例如:文章中的图片通常有效,导航栏图片通常无效

网站结构RAG设计

知识库结构:

为每个网站存储以下信息:

  • Host信息:网站域名
  • 页面结构:主要内容区域、导航区域、广告区域等
  • 链接规则:哪些链接是内容链接,哪些是导航链接
  • 图片规则:哪些位置的图片通常是有效的

查询机制:

当Searcher Agent遇到某个网站时:

  1. 提取host信息
  2. 查询知识库获取结构信息
  3. 根据结构信息判断链接和内容有效性
  4. 如果没有找到结构信息,使用默认规则

遇到的问题和解决方案

问题1:搜索范围与深度的平衡

问题描述: 在实现过程中,发现如果对所有链接都进行深度提取,会消耗大量资源,而且很多链接可能并不相关。但如果只进行广度搜索,又可能遗漏重要信息。

解决方案: 设计了分层搜索策略:

  1. 第一层:广度搜索,获取大量链接和摘要
  2. 第二层:智能筛选,基于摘要质量判断是否需要深度提取
  3. 第三层:深度提取,只对高相关性链接进行完整内容提取

这样既保证了搜索的广度,又保证了关键信息的深度。

问题2:多模态资料处理成本

问题描述: OCR处理成本较高,如果对所有图片都进行OCR,会大幅增加系统成本。

解决方案: 设计了智能判断机制:

  1. 先判断图片是否有效
  2. 只对判断为有效的图片进行OCR处理
  3. 使用知识库和上下文信息提高判断准确性
  4. 实现OCR结果缓存,避免重复处理

问题3:网站结构信息的维护

问题描述: 不同网站的结构差异很大,如何维护网站结构信息是一个挑战。

解决方案: 设计了可扩展的知识库机制:

  1. 为常见网站建立结构信息
  2. 支持动态添加新网站的结构信息
  3. 使用RAG技术,可以根据网站特点自动学习结构信息
  4. 提供默认规则,对于未知网站使用通用规则

优化方向

短期优化

  1. 提高判断准确性

    • 优化链接深度提取的判断逻辑
    • 改进图片有效性判断的准确性
    • 完善网站结构信息的描述
  2. 性能优化

    • 实现更智能的缓存机制
    • 优化OCR调用频率
    • 减少不必要的深度提取
  3. 扩展性提升

    • 支持更多类型的多模态资料
    • 扩展网站结构知识库
    • 支持自定义判断规则

长期优化

  1. 智能化提升

    • 使用机器学习模型优化判断逻辑
    • 自动学习网站结构信息
    • 根据历史数据优化搜索策略
  2. 多模态支持

    • 支持音视频内容的处理
    • 支持更多类型的多媒体资料
    • 实现多模态内容的智能提取
  3. 知识库扩展

    • 建立更完善的网站结构知识库
    • 支持社区贡献结构信息
    • 实现知识库的自动更新机制
相关推荐
Oflycomm2 小时前
高通推出新一代机器人全栈技术,加速家用与人形机器人物理 AI 落地
人工智能·高通·wifi7模块·ces2026·qogrisys·欧飞信
沙漠的浪人2 小时前
多Agent系统中的用户干预(Human-in-the-Loop)设计
人工智能·agent
Android技术之家2 小时前
在手机上跑大模型?Google AI Edge Gallery 开源项目深度解析
前端·人工智能·edge·开源
2301_800256112 小时前
【人工智能引论期末复习】第4章 机器学习1-基础知识
人工智能·算法·机器学习
quintin-lee2 小时前
现代 Neovim 插件全景图:从底层基建到 AI 驱动
人工智能·vim
3***g2052 小时前
Anaconda加速AI模型训练的技术文章大纲环境配置与优化
人工智能
郝学胜-神的一滴2 小时前
机器学习特征预处理:缺失值处理全攻略
人工智能·python·程序人生·机器学习·性能优化·sklearn
小小呱呱蛙2 小时前
OpenSpec 到底干了啥
人工智能·ai编程
独处东汉2 小时前
AI辅助Stm32l031项目开发基础准备
人工智能·stm32·嵌入式硬件