搜索、检查、获取:利用布尔检索的深度研究代理
现有深度研究代理通常采用搜索-访问工作流,即检索并读取整个网页,却忽视了网页通过标题、章节和元数据暴露出的可寻址结构。这使得代理无法直接约束检索范围,并常将无关页面内容带入上下文。 我们提出 SIEVE,一种由字段化布尔检索 (BQL) 驱动的搜索-检查-获取界面。SIEVE 首先在文档字段上过滤候选,对符合条件的集合排序,展示结构丰富的结果卡片供用户检查,并仅获取选定的章节。 在三个 QA 集合 上,SIEVE 相比各集合上最准确的常规 Search-Visit 配置取得了更高准确率,同时减少 20.7-50.6% 的 token 用量。进一步分析表明,BQL 过滤 能提升所有测试的排序器,且该准确率-上下文优势在不同检索器与代理骨干中保持一致。 代码与数据已开源:https://github.com/ielab/skim-search-agent
论文精读
TL;DR SIEVE 让深度研究代理通过字段布尔检索精准筛选网页,仅拉取相关章节,以少至 50% 的 token 消耗实现更高问答准确率。
问题
问题背景
深度研究智能体(deep-research agents)通过多轮 Web 搜索与阅读来解决复杂问答,当前主流范式是 Search-Visit 工作流,即检索整篇网页并逐页通读,再基于全文内容推理答案。
现有方法局限
该范式存在两个关键局限:1)检索粒度粗,智能体只能以整页为最小单元进行召回,无法利用网页内标题(title)、段落(section)、元数据等结构化字段直接约束检索范围,导致大量无关内容进入上下文;2)Token 效率低,通读全文会将噪声段落加载到有限上下文窗口,既挤占推理预算,又可能引入误导信息。即便部分工程尝试加入摘要或分块,仍未将字段级布尔检索(fielded Boolean retrieval) 有效地融入智能体循环,难以在检索阶段就通过结构筛选提高信噪比。
技术挑战与重要性
随着复杂问答需要多步推理与长程证据整合,上下文预算 成为瓶颈:既要保证证据覆盖度,又要控制 Token 消耗以避免模型迷失在冗长文本中。引入结构化布尔的挑战在于,如何让语言模型自动生成语义准确的 BQL(Boolean Query Language) 查询,并搭配细粒度访问接口(分步检视、按段抓取),使智能体能够像人类一样先看目录再挑章节阅读。该问题直接关系到检索增强生成(RAG)及自主智能体的规模化落地,业界关注度持续攀升。
行业类比
如同代码智能体在大型仓库中通过符号搜索定位到特定函数而非读取所有源文件,Web 信息检索中的“字段级”定位 同样能大幅提升知识获取的效率与准确性。
核心洞察
- **结构化字段检索与分段获取范式** 实现了从传统 Search-Visit 整页阅读到字段级过滤与选择性章节获取的转变。网页的标题、章节等结构化信号在以往代理中被忽略,而 SIEVE 通过 BQL 支持字段约束,先布尔选择再排序,最后只获取相关段落,将无关内容隔绝在上下文之外。实验表明该范式在三个 QA 集合上准确率均超越最优全页基线,且 token 消耗降低 20.7–50.6%,证明了结构感知对深度搜索代理性能与效率的双重收益。
- **布尔过滤与排序解耦** 将候选选择独立于排序器,使检索过程更透明、可控且可迁移。传统方法常将布尔条件嵌入排序信号,耦合度高且难以调试。SIEVE 将 BQL 字段过滤作为独立前置步骤,缩减候选集后再接入任意排序器,分析显示这一过滤提升了所有受测排序器的准确率,且优势在不同排序器和代理主干间稳定复现。这种解耦让代理显式控制召回范围,为复杂多步推理提供了可解释的检索管道,易于工程化调试与扩展。
方法
输入与结构化源表示
SIEVE 将网页视为结构化的文档对象,而非纯文本块。预处理阶段,每个网页被解析为字段集合,包含标题 (title)、正文标题 (headings)、段落 (paragraphs)、列表 (lists)、表格 (tables) 和元数据 (metadata) 等。文档的每个字段支持独立的布尔检索,形成字段化的倒排索引。
核心流程:Search–Inspect–Fetch
Search(检索)
代理生成字段化布尔查询 (BQL),如title:reinforcement AND body:objective。查询先在字段级别进行布尔过滤,剔除不符合条件的候选文档,再对通过过滤的文档集执行稠密或稀疏排序,返回前 $k$ 个相关文档。这种“先过滤后排序”的模式将相关性信号与精确约束解耦,避免排序器被无关字段干扰。Inspect(检查)
排序结果以结构丰富的卡片呈现给代理,每张卡片显示标题、高亮命中字段的摘要、字段命中统计以及文档分段结构。代理无需打开全文就能评估文档的相关性和有用段落,从而决定下一步动作。Fetch(获取)
代理仅请求选定的文档分段(如某个章节),而非整页。系统返回该分段的完整内容,大幅减少上下文长度。代理可多次执行fetch,逐步收集证据,实现类似“略读”的信息采集。
输出与迭代
SIEVE 作为工具嵌入深度研究代理的 ReAct 循环:代理接收初始问题,生成 BQL 查询,通过 Search 获得候选卡片,经 Inspect 判断后 Fetch 关键分段,最终综合答案。整个过程对上下文窗口的压力远小于传统的全页访问模式。
与同类方法的差异
区别于 DCI(直接上下文注入)等全程加载整页的 Search–Visit 范式,SIEVE 通过结构感知的布尔检索和分段获取,将检索粒度从文档级细化到段落/章节级,在保持准确性的同时,token 消耗降低 20.7–50.6%,并且 BQL 过滤对多种排序器和代理主干均有稳健提升。
实验
实验设计
实验在三个复杂问答集合上评估 SIEVE:BrowseComp-Plus(网页集合)、BCP-S(按字段划分的版本)和 Wikipedia(重建版)。基线包括传统的 Search–Visit 代理(检索整个页面并全文阅读)及其变体。SIEVE 采用搜索–检查–抓取 流水线:先用字段化布尔查询(BQL) 筛选候选,然后排序,生成结构丰富的摘要卡片供代理检查,最后仅抓取选定的段落。主指标为准确率和上下文效率(token 消耗)。
关键发现
SIEVE 在所有三个集合上均超过了最准确的 Search–Visit 配置,同时 token 消耗减少 20.7–50.6%。BQL 过滤对所有测试排序器 均有提升,且准确率-效率优势在不同检索器 和 代理骨干模型 间稳健迁移。消融分析表明,结构感知的逐段访问是效率的核心来源,而仅依赖初始片段或省略检索均会导致性能下降。
与基线对比解读
传统代理无视网页的可寻址结构(标题、段落、元数据),必须处理整页噪声,限制了上下文利用效率。SIEVE 通过显式利用字段化布尔检索,实现了与文档结构的直接交互,将查询约束到特定字段,从而在更小的上下文中引入更相关的信息。这类似于将搜索从“全文扫描”升级为“结构化过滤+按需读取”,显著降低了无关内容干扰。实验证实,在代理框架中融入经典 IR 技术(如布尔检索)不仅可以提升答案质量,还能大幅削减搜索成本,为构建经济高效的深度研究代理提供了清晰路径。
行业影响
落地场景
SIEVE 的工作流——结构化布尔检索 + 字段级片段获取——直接适配需要从海量文档中精准定位信息的场景。典型落地包括:企业级知识库问答系统(如法律合同审查、金融研报分析)、学术文献深度搜索(PubMed 风格的结构化字段过滤),以及电商产品信息检索(利用标题、参数、评论分字段匹配)。任何依赖“搜索→阅读大段页面”的 Deep-Research Agent(如 Perplexity、You.com 的深度研究模式)均可从中获益。
商业价值
核心价值在 降低推理成本 与 提升答案准确率 的双重增强。SIEVE 通过字段级布尔过滤和选择性获取段落,将上下文 token 用量减少 20.7–50.6%,直接降低 LLM API 调用开销。同时,结构化检索过滤了无关噪音,端到端问答准确率优于传统“搜索+全页访问”的 top 配置。对 SaaS 产品而言,这意味着更低的单次查询成本与更高的用户信任度,可作为差异化收费功能。
与现有产品/工作流的接口
SIEVE 可作为增强型检索器插入现有的 RAG 堆栈:
- 检索端:替代或包裹当前的稠密/稀疏检索器,先执行 BQL 字段过滤,再对候选集重排序,对外暴露统一的
search(query, fields)接口。 - 阅读端:将原有“访问全文”的步骤替换为
fetch(section_ids),只拉取最相关的结构片段,减少下游 LLM 的上下文填充。 - Agent 框架:可集成至 LangChain、LlamaIndex 等工具,新增
Search–Inspect–Fetch工具链,通过 prompt 指令让 Agent 自主生成结构化查询。
具体用例
- 电商客服问答:用户询问“请对比型号 X 和 Y 的续航与价格”,传统搜索可能返回大量产品介绍页。SIEVE 可只抽取
specs.battery和price字段,大幅降低 token 成本并避免信息混淆,提升回答的准确性。 - 医疗文献助手:研究人员查询“2024 年后 RCT 研究中某靶点的副作用”,SIEVE 可限制在
title,abstract,methods.section,adverse_effects等字段进行布尔检索,仅提取相关段落,避免整篇全文填入上下文,使深度研究 Agent 在一次对话中就能完成跨数十篇论文的整理。
局限
- **对网页结构质量的依赖性强**:SIEVE 的性能高度依赖于源文档字段(标题、章节、元数据)的完整性和一致性。在非结构化或半结构化网页上,布尔过滤和选择性获取的增益会降低,而当前实验仅在三个受控 QA 集合上验证,其中网页结构经过预处理或本身质量较高(如 Wikipedia),未充分评估在嘈杂开放网络下的鲁棒性。当页面缺乏清晰的字段标记时,布尔召回可能不完整,结构卡片也无法生成,整体准确率下降的风险未被量化分析。
- **需要领域特定的索引配置与查询设计**:方法要求为每个数据集合预定义字段索引并设计 BQL 查询策略,代理在交互中需按规范生成布尔查询。这增加了部署到新领域时的工程复杂度,且当前实验未能展示零样本或跨集合的泛化能力;同时,代理生成 BQL 的能力依赖底层语言模型,论文仅泛泛提及查询失败案例,未测试不同 LLM 在 BQL 生成上的系统性影响,这使得在模型升级或领域切换时需重新调优,提升了持续维护成本。
- **与复杂推理管线对比不足**:论文主要对比基础 Search–Visit 工作流,未与使用多步骤推理、工具调用或记忆机制的最新代理框架进行直接比较。尽管 token 效率表现突出,但缺少与更全面的深度研究系统(如结合动态规划或自适应检索的架构)在同预算下的精度-成本权衡分析,可能削弱其作为通用接口的说服力。此外,实验仅在有限的 QA 任务上展开,未涉及多模态或多轮对话场景,应用范围有待拓宽。