← 返回 2026-05-12

用 Pi-Serini 重新思考智能体搜索:词法检索是否足够? Rethinking Agentic Search with Pi-Serini: Is Lexical Retrieval Sufficient?

Tz-Huan Hsu, Jheng-Hong Yang, Jimmy Lin 📅 2026-05-11 👍 5 2026-07-13 08:36
BM25 LLM工具使用 搜索智能体 检索增强生成 深度研究

BM25配好+深检索+强LLM,在BrowseComp-Plus上压过稠密检索智能体。

前置知识

BM25词法检索

BM25 (Best Matching 25) 是一种经典的基于词袋(bag-of-words)的排序函数,通过词频(TF)、逆文档频率(IDF)和文档长度归一化对文档打分。核心公式为 $\text{BM25}(q,d) = \sum_{t \in q} \text{IDF}(t) \cdot \frac{f(t,d) \cdot (k_1+1)}{f(t,d) + k_1 \cdot (1 - b + b \cdot \frac{|d|}{\text{avgdl}})}$,其中 $k_1$ 控制词频饱和度,$b$ 控制长度归一化强度。BM25 不依赖语义向量,计算快、可解释强,是 Lucene、Elasticsearch 等工业系统的默认检索器。

本文核心论点是「BM25 足够」,必须理解 BM25 的可调参数($k_1, b$)如何影响其在长文档场景下的表现,否则无法理解本文为何要重新调参。

ReAct 智能体循环

ReAct(Reasoning + Acting)是一种让 LLM 在多轮交互中交替进行「思考(reasoning)」和「工具调用(acting)」的范式。在每一轮中,模型先生成推理轨迹 $\tau_t$,再选择动作 $a_t$(如调用 search 工具),环境返回观察 $o_t$,形成轨迹 $H_T = (\tau_1, a_1, o_1, \ldots, \tau_T, a_T)$。这种循环让 LLM 能像人一样边想边查,逐步逼近答案。

PI-SERINI 本质上是一个 ReAct 智能体;论文的「agentic loop」概念建立在 ReAct 之上,是评估词法检索是否足够的核心实验载体。

BrowseComp-Plus 基准

BrowseComp-Plus 是 Chen 等人于 2025 年提出的深度研究评测基准,由 830 个查询和 100,195 个文档构成的固定语料库组成。平均每个查询关联 6.1 个证据文档和 2.9 个 gold 文档;每篇文档平均 5,179 词、32,296 字符,远长于普通段落检索场景。它专注于固定语料库下搜索智能体的公平对比,避免开放网络搜索的随机性。

本文所有核心实验都在 BrowseComp-Plus 上进行;理解该基准的「长文档、固定语料、深度推理」特性,是解读 PI-SERINI 为什么需要「深度检索」和「长文档 BM25 调参」的前提。

前缀缓存 (Prefix Cache)

现代 LLM 服务(如 OpenAI、Anthropic)会对请求的「前缀部分」做 KV-cache 复用——如果多个请求共享相同的对话前缀,缓存命中部分的 token 价格通常低至原价的 1/10 甚至 1/20。设计 agent loop 时,将稳定的系统提示 + 工具定义放在前缀,能显著降低多轮交互的总成本。

PI-SERINI 明确继承 PI 框架的「prefix-cache-friendly」循环结构,并指出 82–90% 的 token 是缓存命中的——这是它能将单次评测成本从 $400 压到 $94 的关键机制之一。

研究动机

在检索增强生成(RAG)和深度研究系统(deep research)领域,社区普遍把「检索器效果」当作整个系统的硬上限——认为只要检索器找不齐证据,后续 LLM 再强也回天乏术。这种信念推动了 Qwen3-embed、AgentIR-4B 等 reasoning-aware dense retriever 的研发热潮。然而作者观察到:在 BrowseComp-Plus 这类长文档、固定语料的评测中,已发布的 BM25 基线(如 o3+BM25 仅 50.8% 准确率、gpt-5+BM25 仅 58.3%)远落后于稠密检索版本(同模型 gpt-5+qwen3-embed-8b 可达 73.0%),这被业界普遍归因于「BM25 语义匹配能力不足」。但这种归因混淆了两个独立因素:(1) BM25 算法本身的容量上限,(2) BM25 在该任务上是否被「好好配置」(参数 $k_1, b$、检索深度 $k$、结果排序如何送入 LLM 上下文)。结果就是大家一窝蜂去做 dense retriever,而真正决定 BM25 表现的「配置与接口设计」维度几乎无人系统研究。

本文的目标是本文目标直白:把「BM25 的算法容量」与「BM25 的配置/接口设计」这两个变量拆开,在 BrowseComp-Plus 上重新评估 BM25。具体可量化目标包括:(1) 设计一个最小化的搜索智能体 PI-SERINI,使其能「托管」BM25 的检索状态,单独考察参数与检索深度的影响;(2) 验证「BM25 + 强 LLM」是否能在答案准确率上匹敌甚至超越 released dense-retriever agents;(3) 将单次完整评测成本从既有 dense baseline 的 $400–$2000 量级压到 $30–$300 量级,使深度研究评测对研究者更友好。

与已有工作不同的是,本文的独特切入角度是「把检索器的接口设计当作一等公民」。现有搜索智能体(如 Chen et al. 2025、Meng et al. 2026)普遍把 search 工具实现为「一次性返回 top-k=5 的整段文档」,把检索深度与上下文管理混为一谈;而本文设计的 PI-SERINI 把 search、browse、read 拆成三个工具,并允许 search 一次性拿回 1000 篇文档的 ranking 但只暴露前 5 篇预览,迫使 LLM 通过 paginated browse 选择性进入下一层。这种「缓存 ranking + 受控上下文」的接口,让作者能干净地做「参数调优消融」和「检索深度消融」,从而把 dense retriever 之前被高估的优势剥离出来——这是之前所有相关工作(SAGE、Sharifymoghaddam 等)都没系统做过的。

核心方法

PI-SERINI 的设计哲学是「最小化且可隔离」。它由一个 ReAct 风格的 LLM agent、一个检索控制器(retrieval controller)和一个 ANSERINI BM25 后端组成,三者通过三个细粒度工具解耦:search(提交原始词法查询,后端拿回最多 1000 篇 ranking,但只把前 5 篇送入上下文)、read_search_results(对已缓存的 ranking 做分页浏览,无需重新发起查询)、read_document(按行号分页读单篇文档)。这种「先搜索、再浏览、最后精读」的工作流,让 BM25 的 1000 文档 ranking 变成 LLM 可管理的二级记忆,而不是一次性塞满 context window。整套系统外加两个工程上的关键决策:(1) 把 BM25 参数调到 $k_1 = 25, b = 1$(明显偏离默认的 $0.9, 0.4$),适配长文档;(2) 用「时间预算(wall-clock timeout)」代替「迭代次数上限」作为终止条件,0.7T 时注入 submit-now 强提示,避免智能体在难查询上无限消耗算力。直觉上,PI-SERINI 把 BM25 想象成一个「超大但廉价的图书索引员」——索引员负责把所有可能相关的书摆上桌,但只让 LLM 先看书脊(preview),需要时再翻具体段落。

本文最核心的洞察是:「BM25 看上去不行」这件事,绝大多数责任不在 BM25,而在它周围的两层设计——参数配置与结果进入上下文的接口。dense retriever 在 BrowseComp-Plus 上拿到的优势,几乎全部可以用「BM25 调优 + 检索深度 + 缓存式 browse/read 工具」来反超。具体的反超路径有三个独立维度:(1) BM25 参数重调($k_1$ 从 0.9 跳到 25,$b$ 从 0.4 跳到 1)让长文档证据更靠前,accuracy 提升 18.0%、surfaced evidence recall 提升 11.1%;(2) 检索深度从 5 跳到 1000,surfaced recall 从 70.5% 跳到 95.8%;(3) 拆工具 + prefix-cache-friendly loop 让单查询成本降到原 dense baseline 的 1/3–1/10。本质上,这是把「RAG 的瓶颈」从「能不能找到」转移到「LLM 能不能用好被找到的东西」,并由此重新分配研究优先级。

方法步骤详情

PI-SERINI 的完整流程如下。**步骤 1(输入)**:接收一条 BrowseComp-Plus 查询 $q$,初始化 per-query 超时 $T = 300$ 秒,开启 ReAct 循环。**步骤 2(search)**:LLM 生成简短词法查询字符串(明确禁止长自然语言改写),调用 search 工具;控制器把请求发给 ANSERINI BM25 后端,取回最多 $k=1000$ 篇文档的 ranking,按 $k_1 = 25, b = 1$ 打分;ranking 缓存在 session-local 的 search_id(最多保留 32 个)下,但只有前 5 篇文档的 excerpt 被送入上下文。**步骤 3(browse)**:当 LLM 发现前 5 篇不够时,调用 read_search_results(search_id, offset=6, limit=10) 翻页浏览 ranking,每次最多再看 10 篇;该步不会触发新查询,纯本地 paginate。**步骤 4(read)**:当 ranking 中某篇文档看起来高度相关,LLM 调用 read_document(docid, offset=1, limit=200) 按行读这篇文档;可继续用 offset 翻页读后续 200 行。所有工具调用必须以 reason 字段开头(≤100 词),方便事后轨迹分析。**步骤 5(轨迹日志)**:每个 query 跑完后,系统记录四类文档集合——$D_{\text{surfaced}}$(search 返回的)、$D_{\text{previewed}}$(browse 展示过的)、$D_{\text{opened}}$(read_document 读过的)、$D_{\text{cited}}$(最终答案中引用的)。**步骤 6(时间预算触发)**:在 $0.7T = 210$ 秒时,控制器向 LLM 注入「submit-now steer」,要求立即用「Explanation / Exact Answer / Confidence」格式提交最终答案;之后所有工具调用被强制阻断。**步骤 7(兜底终止)**:若到 $T=300$ 秒仍未提交,强制结束并标为 timeout。**步骤 8(评测)**:用 gpt-5.3-codex 做 gold-answer LLM judge,判定 extracted_final_answer 与 ground truth 语义等价性。

技术新颖性

从技术新颖性看,PI-SERINI 没有任何「算法发明」——BM25、ReAct、prefix cache 都是成熟技术。它的贡献是一种「系统视角的翻新」:第一,把「retriever effectiveness」这个一直被视为外生变量的东西,通过固定的 search/browse/read 工具接口重新内生化到 agent 设计中,让 ablation 变得干净可控;第二,通过网格搜索证明 BM25 默认参数在长文档场景下严重 underfit($k_1=25, b=1$ 才合适),这是 ANSERINI 等老牌工具在新的 LLM agent 时代被忽视的盲点;第三,引入「wall-clock time budget steering + prefix-cache-friendly loop」这套成本控制组合拳,把深度研究评测从「奢侈品(每次 $1000+)」拉回「日用品(每次 $30–$300)」,对学术研究有直接的经济意义。相比 Meng et al. (2026) 研究 reranking、Sharifymoghaddam & Lin (2026) 研究排序成本,本文是第一个把「BM25 配置 + 检索深度 + 工具接口设计」三者打包成系统性证据的工作。

System architecture of PI-SERINI.
Figure 4: System architecture of PI-SERINI.

实验结果

本文核心结果可分四块。**(1) 答案质量**:在 BrowseComp-Plus 上,PI-SERINI + gpt-5.5 + BM25 拿到 83.1% 准确率(Table 1 第 m 行),是整张表中最高分,超过所有 released dense-retriever baseline;其中同样使用 gpt-5 时,PI-SERINI 把 accuracy 从原 baseline 的 58.3%(行 c)提升到 74.6%(行 i),甚至略超 gpt-5 + qwen3-embed-8b 的 73.0%(行 d)。更具说服力的是 gpt-5.2 上的同模型对比:Meng et al. (2026) 用 gpt-5.2 + qwen3-embed-8b 只拿到 45.1%(行 e),而 PI-SERINI 用 BM25 拿到 70.5%(行 j),差距高达 25.4 个百分点。**(2) 检索行为**:所有 PI-SERINI 变体的 surfaced evidence recall 都超过 90%,gpt-5.5 + BM25 达到 94.7% evidence / 94.4% gold(行 m),显著高于 released dense baseline 的 79.0% / 81.3%(行 d)。但 surfaced 到 previewed 之间存在大 gap,例如 gpt-5 + BM25 的 previewed recall 仅 62.7% / 70.0%(行 i),说明剩下的问题不在检索而在「LLM 看不看」。**(3) 成本**:单次完整 830 query 评测,released gpt-5 + BM25 baseline 耗资 $400.4,PI-SERINI 同配置降到 $94.9(行 c vs i),deepseek-v4-flash 版本更是只要 $28.9(行 n);gpt-5.5 最高 $291.6 也低于 gpt-5 dense baseline 的 $360.7(行 d vs m)。**(4) 消融**:(a) BM25 调优把 accuracy 从 64.0% 提升到 82.0%(+18.0 pp),surfaced recall 从 84.6% 提升到 95.7%(+11.1 pp),见 Table 3;(b) 检索深度 $k$ 从 5 提到 100 让 surfaced recall 从 70.5% 跳到 86.2%,到 1000 时进一步升到 95.8%(Figure 2);(c) 网格搜索显示 BM25 默认 $(k_1=0.9, b=0.4)$ 处于性能低谷,最佳在 $(k_1 \approx 16, b=1)$ 附近(Figure 3)。**(5) 行为差异**:trajectory 分析显示,gpt-5.5 与 claude-opus-4.7 在面对弱线索时表现迥异——前者会「撤回错误候选」(如放弃 Ichiran 这类直觉假设),后者会「过早分支承诺(premature branch commitment)」,持续在错误假设下加查询词。

Answer quality, retrieval behavior, and cost on BrowseComp-Plus.
Table 1: Answer quality, retrieval behavior, and cost on BrowseComp-Plus.
Average tool calls per query for all systems.
Table 2: Average tool calls per query for all systems.
Performance, cost, and tool-use comparison between default/tuned BM25 under different termination policies (PI-SERINI with gpt-5.4).
Table 3: Performance, cost, and tool-use comparison between default/tuned BM25 under different termination policies (PI-SERINI with gpt-5.4).
Accuracy vs. Cost trade-off on BrowseComp-Plus.
Figure 1: Accuracy vs. Cost trade-off on BrowseComp-Plus.
Effect of the number of documents (k) returned by the search tool in PI-SERINI with gpt-5.4.
Figure 2: Effect of the number of documents (k) returned by the search tool in PI-SERINI with gpt-5.4.
Grid search results of BM25 tuning over different k1 and b combinations.
Figure 3: Grid search results of BM25 tuning over different k1 and b combinations.
查看结构化数据
任务指标本文基线提升
BrowseComp-Plus 答案准确率(Answer Accuracy) LLM-judged 语义等价正确率 PI-SERINI + gpt-5.5 + BM25: 83.1% gpt-5 + qwen3-embed-8b (Chen et al. 2025): 73.0%; gpt-5.2 + qwen3-embed-8b (Meng et al. 2026): 45.1% 相对 dense baseline 在同 LLM 上 +10.1 pp(gpt-5);在 gpt-5.2 上 +25.4 pp
Surfaced Evidence Recall(首轮搜索召回) D_surfaced 中含 evidence doc 的比例 PI-SERINI + gpt-5.5: 94.7%(evidence)/ 94.4%(gold) released gpt-5 + qwen3-embed-8b: 79.0%(evidence)/ 81.3%(gold) +15.7 pp(evidence)/ +13.1 pp(gold)
BM25 参数调优消融(100 query 子集) Accuracy / Surfaced Recall 调优后 (k1=25, b=1): Accuracy 82.0%, Surfaced 95.7% 默认 BM25 (k1=0.9, b=0.4): Accuracy 64.0%, Surfaced 84.6% Accuracy +18.0 pp, Surfaced Recall +11.1 pp
检索深度 k 消融(PI-SERINI + gpt-5.4) Surfaced Recall / Previewed Recall k=1000: Surfaced 95.8% / Previewed 约 74.7% (峰值) k=5: Surfaced 70.5% / Previewed 70.5% Surfaced Recall +25.3 pp
单次评测总成本 830 query 完整运行总花费(USD) PI-SERINI + gpt-5 + BM25: $94.9; + gpt-5.5: $291.6; + deepseek-v4-flash: $28.9 released gpt-5 + BM25: $400.4; + qwen3-embed-8b: $360.7; gpt-5.2 + dense (Meng et al.): $1000–$2000 3.3×–10× 成本下降
工具调用效率(同 gpt-5 + BM25 配置) 每 query 平均工具调用总数 PI-SERINI: 15.2 (search 11.1, read 3.9, browse 0.2) released gpt-5 + BM25: 23.2(全 search) -34.5% 调用次数

局限与改进

作者明确承认三点局限:第一,PI-SERINI 对缓存 ranking 的「导航接口」仍然很原始——surfaced recall 可达 94%+,但 previewed recall 一般只有 60–73%,behavior recall(opened ∪ cited)更低(30–58%),意味着 ranking 拿到了但 LLM 不一定看、用得上;第二,评测局限于 BrowseComp-Plus 这一份英文、固定语料基准,结论能否推广到多语言查询(如 BrowseComp-ZH)、领域特定语料库、开放网络搜索仍未知;第三,固定 300 秒时间预算对所有 query 一刀切,简单题浪费算力、难题又可能不够——理想应按 query 复杂度自适应分配。作者未明确指出但读者可观察到的还有:(a) 实验 LLM 全是 frontier 模型(gpt-5 系列、claude-4.5/4.7、deepseek-v4),结论是否适用于开源中等模型(如 Llama-3、Qwen2.5-7B)未验证;(b) gpt-5.5 的 accuracy 比 gpt-5.4 高近 10 pp,但 calibration error 也从 9.2% 升到 15.7%,说明 frontier 模型越自信越可能误信;(c) Figure 1 引用的 Cao et al. (2026) 和 Li et al. (2026) 的 coding-agent 数据是基于 sampled evaluation,与全量不可直接对比,只能作为参考。

独立分析的弱点

独立分析有四个值得关注的弱点及对应改进方向。**(1) Surfaced→Previewed→Behavior 的漏斗过深**:PI-SERINI 把 1000 篇 ranking 摆上桌,但 LLM 实际精读并引用的不到 60%;作者归因于 browse 接口太简单(仅 rank pagination)。改进方向是为 read_search_results 加入语义摘要或 LLM 自助筛选,让 agent 用更少 tool call 找到真正的 evidence。**(2) Wall-clock timeout 不分难度**:300 秒对简单题(如直接查人名)明显过宽,会让平均成本虚高。改进方向是引入 early-stop 信号(如 agent 自报 confidence ≥ 95% 即提前提交),或对 query 做难度预估后分级配 budget。**(3) 评测语料单一**:BrowseComp-Plus 是英文、固定语料,无法验证 PI-SERINI 在多语言、动态网页、长尾领域(如医学、法律)的鲁棒性。改进方向是补做 BrowseComp-ZH 和至少一个领域特定 benchmark(如 biomedical QA)。**(4) 缺少对 reasoning-aware dense retriever 的深入对比**:只对比了 qwen3-embed-8b 和 AgentIR-4B,没有和 ReasonIR、SAGE 等更先进的 retriever 正面交锋;同时也没测「BM25 + reranker」组合是否还能压过最强 dense retriever——这是该工作最大的实验空白,限制了「BM25 足够」结论的普适性边界。

未来方向

作者在文末明确指出一条主线:从「Can the retriever find the evidence?」转向「Can the agent recognize and spend context on the evidence it has already been given?」。由此衍生的未来方向包括:(a) 设计更智能的 browse/read 工具(如带 snippet relevance scoring、self-rerank on the fly),缓解 surfaced→previewed 的漏斗;(b) 研究 PI-style prefix-cache-friendly loop 的形式化理论框架,量化 cache 命中率与答案质量的 Pareto 边界;(c) 把 BM25 + 检索深度结论拓展到多语种、动态网络场景;(d) 探索 hybrid 配置——用 BM25 做初筛 + 一个小 reranker 做精排,看是否能再压低 30% 成本而不损失 accuracy。此外,社区层面的延伸方向:基于本研究思路重新审视其他「被判死刑」的经典 IR 技术(如 BM25F、RM3、PRF)在 LLM agent 时代是否被错误低估;以及把这些消融方法论(参数 + 深度 + 接口拆解)推广到 dense retriever 自身,避免重蹈「dense retriever 也被错误配置」的覆辙。

复现评估

复现性评估非常友好。**(1) 代码开源**:作者明确在摘要给出 https://github.com/justram/pi-serini,对应 commit 68c5e0f,附录 A 完整记录系统提示、三个工具的 schema、ANSERINI 后端配置、spill-file 行为、time-budget 策略、gold-answer LLM judge 的 prompt 和命令行调用方式。**(2) 数据**:BrowseComp-Plus 是公开 benchmark(830 query、100,195 文档),ground-truth 文件路径已在附录给出(data/browsecomp-plus/ground-truth/browsecomp_plus_decrypted.jsonl)。**(3) 算力门槛**:最便宜的复现配置是 PI-SERINI + deepseek-v4-flash,只需 $28.9 即可跑完整 830 query;用本地 Ollama + Llama-3-8B 替换 deepseek 还可进一步压成本。**(4) 难度**:中等偏低——主要是工程装配而非算法创新,需要装 ANSERINI(Java)、配置 ANSERINI-bm25 over TCP/stdio 后端、装 PI(Node.js agent harness,Zechner 维护),按附录 A.1 prompt 模板替换 placeholder 即可跑通。唯一门槛是 PI 框架本身的 LLM API 配置(支持 OpenAI、Anthropic、DeepSeek 等多家),需要申请对应 API key。Table 4 列出了所有模型的 token 报价,可直接复算成本。