论文链接:Context as Infrastructure: Knowledge Compilation for Retrieval in Agentic Systems with Harnesses (arXiv:2610.41172) 发表时间:2026 年 10 月 30 日 机构:InfiniFlow Inc.(RAGFlow 开源项目背后的公司,上海)+ 华东师范大学(纯企业主导,仅一位高校作者) 领域标签:cs.IR / RAG / Agentic 检索系统 / 知识编译
引言
RAG 社区过去几年的默认动作是卷检索:更好的切块、更好的 embedding、更高的 Recall@k。这篇论文用一句话宣告这条路已经过时:检索是 harness 问题,不是索引问题。在他们的实验里,一个只有 BM25 和 grep 两个工具的 search harness,配上 MiniMax M3 做回答模型,不做任何编译索引、不建任何向量索引,就在 BrowseComp-Plus 上答对 85%,在多跳基准 FRAMES 上达到 91%——两个数字互不可比,但都足以说明精度问题大体上被 harness 解决了。
精度解决之后暴露的是另一个问题:上下文问题。一个没有纪律的 agentic 循环会重复写同样的查询、重读同样的文档、把一堆最终用不上的段落塞满窗口——过程消耗了 token,却没有变成答案。论文的答案是知识编译(knowledge compilation):在查询发生之前的 ingestion 阶段,用 LLM 把文档富化成类型化的工件——叶节点为原子主张加逐字证据的导航树、实体关系图、本体、wiki、时间线、思维导图、会话记忆。编译是供给侧,harness 是控制侧,工具是两者的接口。
两个开场数字值得先钉下来,因为全文的一切判断都建立在它们之上:BM25+grep+MiniMax M3 的组合在 FRAMES 达到 91%、在 BrowseComp-Plus 达到 85%——作者两次强调这两个数字互不可比(前者多跳、约 325k token 每题;后者单题深搜、约 300 万 token 每题),它们各自只证明一件事:精度在没有编译索引、没有向量索引的条件下已经可用。既然如此,任何编译层的精度空间都所剩无几——高精度反过来强化了负结果:精度不需要编译,编译就该去挣别的钱。
这篇论文最值得读的地方恰恰是它的反直觉:作者亲手测了自己全家桶里的几乎所有结构化工件,然后诚实报告它们在精度上全部无效——RAPTOR 式摘要树 neutral、PageIndex 目录小规模 neutral 大规模反而有害、LLM wiki neutral、实体图 neutral。唯一有可测收益的是主张-证据替换这一种机制。这种把负结果当一等公民、用空 ledger 发表方法论的文章,在满是 SOTA 呐喊的 arXiv 上是稀缺品。下面按七部分结构完整走一遍这篇论文。
还有一层时代背景值得点出。2026 年的 agent 系统里,检索正在从一次 API 调用变成一个由 LLM 驱动的探索循环,这个迁移把检索系统的设计重心从库内(索引、排序)搬到了库外(谁写查询、读什么、何时停)。当开源 RAG 项目纷纷把向量库当默认底座时,RAGFlow 团队却拆掉了向量索引并报告精度反而更好——这不是标新立异,而是顺着 harness 文献(Direct Corpus Interaction、Is Grep All You Need、Pi-Serini)的方向走到底的自然结果。理解了这一层,才能理解论文的供给-控制-契约三层架构不是修辞性的:它是对检索已被吸收、剩余问题在供给这一判断的工程落实。
一、题目与基本信息
- 作者:Zhichang Yu 等 17 人,InfiniFlow Inc.(14 人)+ 华东师范大学(1 人),Hai Jin、Yingfeng Zhang 等均在列
- 链接:arXiv:2610.41172,系统实现完全开源在 RAGFlow 项目
- 一句话:当 search harness 已经解决检索精度之后,系统缺失的层是知识编译——查询无关地把语料富化成带血统的类型化工件;结构化工件不带来精度,主张-证据替换带来可测的 token 经济性。
题目里的 Context as Infrastructure(上下文即基础设施)是全文的纲领:上下文不应当是每次查询临时拼装的产物,而应当是像数据库里的数据一样,被一次编译、版本化管理、按权限治理、按需供给的基础设施。副标题里的 Knowledge Compilation 点出机制,for Retrieval in Agentic Systems with Harnesses 则划清边界——一切结论都以存在一个称职的 search harness 为前提,harness 不行的系统不在此文射程内。
文章性质是立场论文加系统论文:既有 κ:D→A 的形式化定义、替换机制的经济模型推导,也有 RAGFlow 里实实在在跑着的六段流水线与五站 harness。按提取清单的评审预判,新颖性中高,负结果加经济模型加诚实 ledger 的组合有独特价值,适合 SIGIR/CIKM 或工业轨迹。
作者阵容的构成本身也是信息:15 人里 14 人来自 InfiniFlow——RAGFlow 开源项目背后的商业公司,唯一学术作者是华东师大的学生。这意味着论文里的每个部署主张背后都有一家公司在真实客户环境里验证的动力与压力,也解释了为什么论文对治理、审计、访问控制这些学术 RAG 论文罕见的关键词着墨如此之多——它们是商业合同里的硬需求。开源地址在论文首页脚注给出,六段流水线、五站 harness、九类工件模板都可以在仓库里对照源码读。
二、背景:从 RAG 到 search harness 的重心迁移
经典 RAG 把生成条件化在稀疏或稠密检索器返回的段落上;多跳问题的局限催生了迭代检索、自反思、自适应检索控制。harness 转向走得更远:agent 自己拥有搜索。ReAct 把推理与工具调用交织;企业 AgenticRAG 把检索分解为 SEARCH、FIND、OPEN 并证明 BM25 在循环内部就能变好;Direct Corpus Interaction 把检索化约为终端工具——grep、文件读取、shell 命令——在 BrowseComp-Plus 与多跳 QA 上超过了稠密、稀疏与重排基线;Is Grep All You Need 得到类似结论;预注册比较发现精确搜索已接近 LLM 编译 wiki;调优过的 BM25 配上有能力的 agent 在同一基准上达到 83.1%。SIRA 则用 LLM 生成的证据词汇富化索引,让迭代搜索坍缩为一次词法调用。
本文的态度是接受这批文献的结论而非争议它:如果 harness 内的词法搜索对精度已经足够,那么任何额外的编译层都必须在别的轴上证明自己。这篇论文问的就是:哪个轴,对应哪个工件。
与之并行的编译家族文献则提供了被审计的对象。预编译方向有四个家族:导航树——递归聚类加摘要 chunk 的摘要树(RAPTOR),把标题解析成目录的 PageIndex;wiki——把语料重写成可维护的链式文章;知识图——为全局摘要(GraphRAG)或结构化推理抽取实体关系。另一条线在查询时压缩上下文:LLMLingua 逐 token 或逐短语压缩 prompt,lost-in-the-middle 研究证明模型会低效使用长上下文中部的材料。论文对这条线的区分是:编译是语料级、查询无关的——压缩付一次、可复用、且保留指向源文精确区间的指针。证据中心 QA 长期把答案与支持 span 配对,引用评测同时要求正确与可归因;本文把这门纪律从答案端移到了索引端——每个主张都带着支持它的逐字证据入库。
定位的最后一层是术语澄清:论文里的 knowledge compilation 借自 Karpathy 提出的 LLM-wiki 模式(用 LLM 把语料编译成可维护、可阅读而非可检索的工件),与 Darwiche-Marquis 那条把逻辑理论编译为可 tractable 目标语言的形式化传统同名不同义。读者若带着后者的预期来读,会发现这里的编译产物不是逻辑目标语言,而是带血统链接的语义工件家族——树的叶子是主张-证据对,图的边是实体关系,本体的节点是类与约束。这个家族视图是全文分类学的基础:不同工件服务不同消费者、在不同 ledger 上受审,不存在一个统一的编译质量分数。
对向量索引的立场同样来自证据:在 search harness 内部,稠密检索腿不是中性添加物——作者实测加了稠密腿反而降低精度,方向与上述文献一致。理由是 harness 里的语义步骤已经由模型的查询改写承担了,稠密腿只是加了一个与 agent 已信任的词法锚点竞争的第二排序,代价却是多建一个要维护的索引。因此全文没有任何稠密检索腿,所有测量都在 BM25 加 grep 上进行。对习惯了向量库标配的读者,这个决定本身就需要适应。
这个立场有一个容易忽略的含意:它把 RAG 工程师多年的向量库运维经验(embedding 选型、索引调参、增量刷新)整体划入了在 harness 时代需要重新论证的投入。论文没有说向量索引在所有场景无用——8.8 节明确留下了反转条件——但它把举证责任调了个方向:以前是为什么不用向量检索,现在是为什么还要用。对资源有限的团队,这个方向的翻转本身就是省钱的。
把背景压缩成一句话:harness 文献证明精度饱和,编译家族文献提供待审工件,这篇论文把两者接起来并换了问题——不再问工件是否帮助检索,而是问在检索已解决的前提下每个工件在哪条 ledger 上创造价值。背景部分到此,接下来看论文自己的定位。
三、定位:负结果、经济模型与诚实 ledger 的三重贡献
这篇论文的贡献结构在 RAG 文献里相当罕见,可以拆成三层:
- 一个带机制的负结果:结构化编译在称职 harness 下不提升精度。这不是笼统的失败报告,而是同一 harness 下对两个导航树载体(去掉了主张叶的 RAPTOR 摘要树与 PageIndex 目录)、一个 LLM wiki、一个实体图逐一审计后的累积性结论,并给出了四个解释机制(后文详述)。更尖锐的是 PageIndex 目录在 FRAMES 规模上从 neutral 翻转为 negative——结构工件不仅可能无用,还可能成为负资产。
- 一个可测机制及其经济模型:主张-证据替换是全文唯一能量化因果的机制。命中时总 token 降 91%、未命中时仅升 1.9%,由此推出约 2% 的盈亏平衡充分率、FRAMES 上蕴含约 43% 的实测充分率、摊销公式与有限视野边界。一套式 4 到式 9 的完整经济学。
- 一套部署 ledger 方法论:对本体、图、wiki、时间线、记忆这些精度基准看不见的工件,论文不吹部署价值,而是给出带预注册目标、显血统分母、影子对照的测量协议——并诚实报告 ledger 当前每一行都是 no measured effect。
这三层贡献合在一起,实际上把论文变成了一个决策工具箱:如果你想给 RAG 系统加预加工层,它告诉你别在哪个方向花冤枉钱(结构、重述类工件换精度)、在哪个方向可能有真金白银(证据替换换 token)、以及如何在自己部署里验证(两条 ledger 加预注册协议)。讨论部分的五条设计规则可以当作箱底的速查卡:
- 编译证据不编译散文,每个主张保留逐字指针——摘要无法审计且不添事实,带 span 的主张才能回退、引用、审计;
- 证据平坦地全语料预取,绝不穿过小树,充分性对照无损回退判断;
- 测条件成本不测平均值,连延迟一起测——38% 均值掩盖着 91% 的 hit 与 1.9% 的 miss;
- 只编译部署会消费的东西,有限视野边界决定消费是否够;
- 默认不加稠密腿——harness 内模型自己改写,第二排名是要被循环调和的负担而非增益。
与已有工作的边界也清晰:此前的编译系工作问的是工件是否检索得更好,这篇问的是既然 harness 已经能检索,模型应该读什么、工件在哪里创造价值。第一个问题的答案是结构与精度的 null;第二个问题的答案是证据的巨大成本效应与其它工件的部署效应。RAPTOR、PageIndex、GraphRAG、LLM wiki 都不是被否定,而是被重新归类——它们各归各的 ledger。
四、问题定义:知识编译 κ:D→A 的形式化
论文把知识编译定义为一个查询无关的变换:
$$\kappa: D \longrightarrow A = \{a_1, \ldots, a_m\}$$其中 D 是语料,每个工件 $a_j$ 是源文档的类型化、版本化函数,并保留指向其派生来源精确区间的血统链接(lineage)。编译可以是确定性的(解析、切块)、基于模型的(主张、摘要、实体、本体标签)或两者混合。命名承袭 Karpathy 的 LLM-wiki 用法(把语料编译成可维护的链式工件),但定义覆盖整个语义富化操作家族;它也刻意区分于 Darwiche 与 Marquis 那条把逻辑知识库编译为可 tractable 查询目标语言的形式传统。
论文的范围声明同样构成问题定义的一部分:定量主张限于英语文本语料、BM25/grep harness 与问答任务;关于本体、图、wiki、时间线、思维导图、记忆的部署主张在另一张带命名指标与仪器的 ledger 上报告,不以基准精度呈现、不作为受控效应。第 8.8 节还预先声明了定量结论在何种条件下会反转。把有效性边界写进问题定义而非藏进讨论,是这个团队贯穿全文的习惯。
值得单独说的是论文对 chunking 的祛魅:传统 RAG 把切块质量当作检索质量的首要决定因素,这对朴素 RAG 成立——一次查找必须返回含答案的段落,边界决定什么能被找到。但在 harness 世界里,chunk 是召回单位而非意义单位,每个语料都要调 chunk 尺寸的不可能调参问题在 harness 面前消失了。正因为编译是富化 harness 已定位内容的供给层而非新检索几何,论文的对比实验在两个臂上固定同一个 chunker,编译不与切块混杂。
形式化之上,论文还有一个关键的架构区分:供给、控制、契约三层。知识编译是供给层(SUPPLY),harness 是控制层(CONTROL),工具是两者之间的契约(CONTRACT)。箭头流向是上下文的流动而非控制的流动——harness 决定哪个工件(如果有)进入窗口、循环何时停止,但从不替供给层判断证据是否充分。
还有一个容易被略过但很根本的规则:原始通道与派生通道严格分离。派生工件只读、类型化、绝不回写源文——模型读到主张时能回退到原始文本,审计者能看到主张是派生对象而非文档本身。这条规则防止 LLM 维护语料库最常见的失败:生成的摘要成为下一轮生成的源。论文指出这是在受监管场景使用编译的前提条件。另外要记住编译不是什么:它不替代搜索(不选查询、不排候选、不决定循环何时停),也不主张结构提升 recall——作者自己的测量说的恰恰相反;它更不是免费的,所以论文专门用一节推导它何时回本。
五、解法:六段流水线、七类模板与五站 harness
5.1 六段编译流水线
流水线六个阶段,每段可替换:
- Parse(解析):把 PDF、Office、HTML、Markdown、表格、日志转成保留标题、列表、表格、页面锚点的规范表示。
- Chunk(切块):在自然边界产出 chunk。chunker 可配置,基线 harness 看到同样的 chunk,编译不与切块混杂。
- Enrich(富化):模型在文档上下文中读每个 chunk,产出一个或多个工件:带证据的原子主张、摘要标签、实体与关系、事件与日期、本体标签或合成文章。全部实验的抽取器是 glm-4-flash——一个便宜的小模型。
- Validate(验证):把证据 span 对照源文检查、实体类型对照本体、日期对照文档、schema 对照模板。无效单元直接丢弃,不让模型修复。
- Assemble(组装):把主张聚成载体树、实体解析成图、事件排成时间线、文章链成 wiki。
- Register(注册):每个工件带着源版本、偏移、抽取器版本、验证状态与访问控制标签入库——这让回退、引用、审计与增量更新成为可能。
阶段之上是模板:Tree 模板产出主张-证据对并聚成导航树;Graph 模板产出实体关系;Ontology 模板加类、属性、约束;Wiki 模板合成文章;Timeline 模板排事件;Mind-map 模板把文档实体铺成导航图;Memory 模板从会话日志提取持久事实。模板共享解析器、验证器与注册器,一个语料可以同时带多种工件、一次部署切换模板无需重新 ingestion——法律集可以同时编译引用用的主张叶树与权限规则用的本体,客服集可以主张叶树加会话记忆。
表 1 把九类工件、查询时用法、FRAMES 结果与部署价值放在一起,最后两列刻意分开——基准测量固定问题分布上的精度与 token,部署测量领域专家能否找到、信任、治理一个答案:
| 工件 | ingestion 时添加 | 查询时用法 | FRAMES | 部署价值 |
|---|---|---|---|---|
| 导航树(主张-证据叶) | 叶为原子主张加逐字 span | 预取叶、替换、下钻 | 精度中性;token −38% | token 成本;审计;组织 |
| 导航树(RAPTOR 摘要节点,去主张) | 递归摘要节点 | 定向、粗到细浏览 | 精度中性 | 语料概览;增量维护(仅组织) |
| 导航树(PageIndex 目录,去主张) | 标题层级 | 路由到文档或章节 | 精度中性到负面 | 人工导航;文档问答(仅组织) |
| 实体-关系图 | 实体、别名、关系 | PageRank 排 chunk;取主张-证据 | 精度中性 | 相关来源发现;合规 |
| 本体 | 类、属性、约束、映射 | 类型化检索;查询扩展;验证 | 未测 | 词汇控制;整合;治理 |
| LLM wiki | 合成链式文章 | 背景阅读;综合 | 精度中性 | 上手引导;文档 |
| 时间线 | 事件与日期 | 时间定向 | 未测 | 审计轨迹;简报 |
| 思维导图 | 文档实体导航图 | 概念定向、浏览 | 未测 | 简报;导航 |
| 会话记忆 | 会话日志中的持久事实 | 个人与会话召回 | 未测 | 连续性;支持 |
注意两个只有载体没有载荷的行(去主张叶的两种导航树):读者能浏览、维护者能圈定变更范围,但它们自身不贡献证据,部署价值是组织性的而非证据性的。FRAMES 上未测不等于不重要——本体与时间线、记忆的账记在部署 ledger 上,精度基准天然看不见它们。
5.2 主张-证据对:唯一可测的机制
编译单元是主张-证据对 u = ⟨c, e, s, τ⟩:c 是规范化主张,e 是支持 c 的逐字证据 span,s 标识源 chunk 与字符偏移,τ 记录文档时间等有效性元数据。证据 span 从源文精确复制,无法定位 span 的主张不入库。原则一句话:编译证据,不编译散文。表示在散文上有损、在血统上无损,几百 token 的 chunk 对应的证据对通常只占原文一小部分——这就是后文 token 节省的来源。
构建三步:小模型逐 chunk 抽取(可并行、无需前沿模型);验证 span 在源文中精确存在(模型提议、源文裁决——这让小抽取器变得安全);组装时对主张嵌入做层级聚类,内部节点是导航标签而非摘要。便宜有三个来源:抽取可并行且查询无关;抽取器可以小,因为保护质量的是验证而非模型尺寸;工件增量更新——文档变了只重抽它的 chunk。
FRAMES 实验全部用 Tree 模板(Listing 1),配置本身就能读出设计哲学:parser 与 chunker 用默认值(基线 harness 看到同样的 chunk,编译不与切块混杂);extract 单元为 claim_evidence、模型 glm-4-flash、要求逐字 span;validate 用 span_match;树叶子是证据单元、内部节点是嵌入聚类、明确关闭摘要节点(summary_nodes: false)——连摘要这种免费可得的中间产物都刻意不要,因为摘要不是证据;serve 默认 evidence_substitution、回退 raw_chunk、门用 qwen-decision-model-preview。
三种服务模式各有适用场景,论文对三者的比较结论也值得记录:
| 模式 | 机制 | 适用 | 实测要点 |
|---|---|---|---|
| E1 证据优先检索 | 直接在主张文本上 BM25,锚定在词法已排序的 chunk 上 | 需要去掉文档路由额外一跳时 | 优于先定位文档再下钻树:文档通常找对、树内不消歧、多耗一轮 |
| E2 证据替换(默认) | 搜原始文本照旧,定位 chunk 后投影器在进窗口前替换为主张-证据对,门决定从证据作答或打开原文 | 保留已验证的检索行为、只改阅读成本 | RAGFlow 默认;hit −91% / miss +1.9% |
| E3 决策门控阅读 | 轻量决策模型看 chunk 与问题,决定是否深读 | 需要砍深读次数(控制何时读)而非读多少 | 无证据时省约 30% token;控制阅读深度而非候选排序 |
三个模式解决三个不同的成本:E1 省轮次、E2 省阅读量、E3 省深读频率——论文强调证据减少读多少、门减少何时读,两者机制正交。
5.3 五站检索 harness
查询顺序经过五个站点,默认顺序、只能显式配置跳过:
- 能力检查:模型见到任何工具之前,harness 先问语料有没有编译工件——没编译过的语料不值得结构性查询,导航、图、目录工具连描述都不暴露。这一步同时是安全机制:不暴露工具描述就省下了模型分心于无用工具的轮次与上下文。
- 证据预取:模型决定怎么搜之前,框架先做一次全语料证据召回(直接主张搜索或带替换的原始搜索),是平坦读取而非文档路由——小树路由有偏,会把所有问题送到同一两个文档。
- 证据门:按数量、来源多样性、问题覆盖检查充分性。够了就一次模型调用直接作答,循环不读任何原始文本;不够就整块丢弃而不是塞进 prompt——注意丢弃是彻底的,包括从 system prompt 与引用表里移除,窗口里不留尸体。
- 工具环:一轮内多个检索动作并行执行,步数上限与时钟预算让循环构造性收敛。循环可能过早停止(从第一个貌似合理的段落作答)或永不停止(累积证据直到预算耗尽),后者更贵;预算让两种失败都有界。
- 确定性收尾:循环异常终止时,框架用问题加已有证据组合出一个答案。每个查询以答案或显式失败结束,绝不悬空。
harness 的分工哲学很清楚:框架拥有不变量(证据预取、不充分即丢弃、无用的工具不暴露、预算下降级、引用编号在交付时分配而非模型生成、异常也有答案),模型拥有需要语义的判断(查询词、阅读顺序、相关性、还缺什么证据)。混掉两类职责——让模型执行预算、让引擎判断相关性——是不可靠 agent 的常见病根。与之配套的是零命中原则:零结果是工具属性而非语料事实,harness 在模型看到之前先解释零命中并沿回退梯子重试(放宽过滤器、切到原始词法、放宽时间窗),防止引擎故障被翻译成语义结论。
六个失效类别与工具的对应关系可以列成一张速查表,任何自建 agent 检索栈的人都可以按行核对:
| 失效 | 症状 | 对应工具 |
|---|---|---|
| 词汇错配 | 查询词与文档措辞对不上 | BM25、grep、主张级证据搜索 |
| 大规模定位 | 语料太大无从下手 | 目录与树导航、元数据范围 |
| 跨源关系 | 事实分散在多个来源 | 实体查找、图扩展、chunk 键控证据查找 |
| 时间歧义 | 版本与时点混乱 | 时间线、as-of 过滤、源版本注册 |
| 综合负担 | 原文太长读不完 | 证据投影、wiki 消费层 |
| 工具或语法错误 | 调用失败污染推理 | 确定性引擎包装器:错误变观察、当轮禁用 |
一个容易忽略的设计决定:反对自由工具选择。工具集大且语料陌生时,模型做不好工具选择决策——消耗轮次且产出自信但无用的计划。harness 决定哪些工具可准入,模型决定怎么用可准入的工具。
工具本身的组织方式也别出心裁:按失效原因组织而非按实现组织。每个工具有一个主失效、一个可观察症状、一个指标;两个工具若移除同一失效,则一个是另一个的配置;不指向命名失效的工具是 demo。覆盖的失效包括词汇错配(BM25、grep、主张级证据搜索)、大规模定位(目录与树导航加元数据范围)、跨来源关系(实体查找、图扩展、chunk 键控证据查找)、时间歧义(时间线、as-of 过滤、源版本注册)、综合负担(证据投影与 wiki 消费层)、工具或语法错误(确定性引擎包装器把错误变成观察并禁用当轮工具)。这套失效驱动的工具分类学本身就是一份可抄的系统设计清单。
E1 与 E2 的对比还揭示了一个反直觉:直接在证据单元上做词法检索优于先定位文档再下钻树——文档通常找对了,树却不能在文档内部消歧,多余一跳还消耗一轮。层级是载体不是检索器,全文检索自始至终是词法的:语义步骤是循环内模型的改写。
5.4 测量结果:token 经济学与负结果并存
先把测量设置交代清楚,因为这篇论文的数字口径很多:基准是 FRAMES——多跳问题、答案需要多篇 Wikipedia 文章的事实、自带实体链接证据,对充分性是个困难设定(很多问题无法从单个 chunk 回答,门理应经常回退);官方答案协议加 LLM 判官。每个条件同一 harness、同一抽取器(glm-4-flash)、同一门,变的只是工件或服务模式;回答模型全部固定。token 统计包括搜索调用、工具输出、证据、原始阅读与生成;tokenizer 相关所以除注明外报告相对变化。token 与精度数字测于 N=200 题,hit/miss 按门的判定逐查询切分;服务消融题数更少;延迟对比基于两臂都答出的 7 题。作者主动把这些样本量写出来,让读者自己掂量每个数字的分量。
主结果如下:
| 条件 | Δ tokens | 延迟 | 精度 vs 基线 |
|---|---|---|---|
| 未编译(BM25/grep) | 0% | 46.7 s | 91.0%(基线) |
| 证据充分(hit) | −91% | – | 无可靠变化 |
| 证据不足(miss) | +1.9% | – | 无可靠变化 |
| FRAMES 平均 | −38% | – | 无可靠增益 |
| 决策门(有证据,臂均值) | −52% | 140→30 s | 无可靠变化 |
| 决策门(无证据,臂均值) | −30% | – | 无可靠变化 |
结构化工件的精度审计同样干净:RAPTOR 摘要树(去主张叶)neutral——agent 拿摘要定向然后照样去 grep,摘要没加事实还多耗一轮;PageIndex 目录(去主张叶)小规模 neutral、FRAMES 规模 negative——抽取的层级不完整或错位,走错分支的代价高于开放搜索,自信的路由还把查询集中在少数文档上;LLM wiki neutral——综合流畅但血统有损、精确措辞丢失、重建昂贵;实体图 neutral——FRAMES 自带实体链接证据且多数问题不需要 join。主张叶树(装上主张)精度中性、token −38%——证据投影保留了 span 并减少阅读。每个变体只跑了一次,报告的是方向与失败模式而非点估计。作者特别说明:这张表是审计不是排行榜——目的是让负结果可累积:两个去掉主张叶的导航树载体、一个 wiki、一个图,同一 harness 下都没有可测精度增益;如果结构真的在加 recall,至少一个变体应该撼动精度端点,一个都没有。
四个机制解释为什么结构不涨精度:harness 已经自适应(grep 加阅读是按需构建的索引,静态分区只在比 agent 下一个查询更好时才赢,异质文本上通常不是);结构不是证据(摘要与目录只是重述,不添加事实);抽取误差复合(95% 正确率的分支因子 8 路由,在 10⁵ 文档上端到端只有约 75% 路由成功率,自信的错误分支比开放搜索更糟);结构增加选择负担(agent 得决定何时导航,消耗轮次与上下文)。
延迟代价也要单独立账:在两臂都答出的七题配对子集上,替换让 token 大约减半、端到端延迟大约翻三倍——机制是轮次而非 prompt 尺寸:每页携带证据切片更小就需要更多检索轮次才能收敛,judge 等待只占 claim 臂少量墙钟时间。替换是用轮次买 token,这是表示的性质而非配置的性质。
服务配置的选择性消融(以方向而非估计报告,因为目的是选配置不是估计总体)进一步收紧了默认配置。召回消融:锚定深度从 10 提到 20 个 chunk 改善命中、30 无进一步增益;chunk 锚定腿与主张文本腿的并集必要,任一单腿都漏命中。分页消融:按数量截断页面伤召回(16 与 32 的固定页上限把出现在后段的相关主张删掉了);翻倍上限不减少检索轮次、只让每轮更贵;按查询-主张词法分重排页面不提升命中率。最终保留的配置是 topN=20、k=100、双腿并集、无按数截断、行级决策过滤。没有向量深度消融可报,因为 harness 根本没有稠密腿可加宽。
六、知识反推:从论文数字还原作者的设计逻辑
把论文的数字倒过来读,能还原出一套设计决策链,这套链条本身比任何单个数字更有移植价值。先把经济模型的推导链条完整摆出来——式 3 给出 FRAMES 上的两个条件变化(相对未编译基线的 token 开销 T0):
- Δhit = −0.91:门判定投影证据充分(hit)时,总查询 token 降 91%;
- Δmiss = +0.019:门判定不充分(miss)时,token 升 1.9%——harness 为一次没够用的投影付了钱,然后照旧读 chunk。
为什么盈亏平衡点是 2% 而不是别的数? 把式 3 的两个条件变化 Δhit=−0.91、Δmiss=+0.019 代入期望变化 E[Δ] = ph(−0.91) + (1−ph)(0.019) = 0.019 − 0.929ph(式 4),令 E[Δ]<0 解出 ph > 0.019/(0.91+0.019) ≈ 2.0%(式 5)。这个数字低到近乎荒谬的根源在于不对称的成本结构:miss 只多付一次对 harness 已找到 chunk 的额外查看,hit 却把整块阅读换成几句证据句。分母里 0.91 远大于分子 0.019,所以只要投影偶尔成功就能回本。
为什么作者强调要仔细测 miss 率而非 hit 率? 敏感性分析给出了反直觉答案:miss 罚金 ±1.5 个百分点(0.4–3.4%)就把盈亏平衡率从约 0.4% 推到 3.6%,而 hit 节省同样 ±1.5 个百分点(89.5–92.5%)只让它从 2.0% 动到 2.1%。小数字的不确定性主导整个经济学——这是一个部署指令而不只是 caveat:团队该仔细测量的是投影失败频率,不是投影成功时省多少。
为什么 FRAMES 平均是 −38%? 由式 4 反解 ph = (0.38+0.019)/0.929 ≈ 43%(式 6)。这个充分率对多跳基准是合理的:很多问题要联合多个 chunk。平均由 ph 主导,而 ph 是部署属性——单 chunk 问题居多的语料 ph 更高、省得更多。所以 −38% 不是普适常数,是可以按自己语料的问题分布重算的函数。
为什么 2% 阈值不能直接当 license to compile everything? 式 8-9 给出有限视野修正:净收益 B(Q,c,ph) = Q(0.929ph−0.019) − c,编译要回本需要 ph > 2.0% + c/(0.929Q)。一个 Q=1000 次查询、编译成本 c=10 个查询等价物的试点需要 ph > 3.12% 而非 2%;在实测 ph=2.5% 时它仍然净亏 5.8 个查询等价物——渐近规则说编、有限规则说不编。摊销公式 N* = c/(0.929ph−0.019) 在 ph≈0.43 时约等于 2.6c:编译成本十个查询等价物的语料约 26 次查询回本,这也是便宜抽取器重要的原因——c 降一个数量级,回本视野同步降一个数量级。这一段数学对所有考虑预计算开销的 LLM 系统都适用:无限视野阈值永远低于有限视野阈值,差额 c/(0.929Q) 就是你的编译成本除以查询量,试点期的决策必须用后者而非前者。
为什么门控要选 Qwen 决策模型? 两个候选决策模型实测:Qwen 决策模型零失败组、总耗时 30.5 秒;StartLux 决策模型 18 个失败组、560.1 秒。两者都是专为判断证据块是否充分发布的小模型而非通用回答模型——门控这个角色就该用角色专用模型。实现里预取主张按文档/页序分组、由决策 judge 打分后才准入;judge 调用慢或失败时系统优雅降级,且不做按数截断的页面裁剪。
为什么 harness 要拥有不变量而不是全交给模型? 六条不变量构成可运营系统的底线:证据先于思考(编译证据在第一次模型调用前取到);不充分即整块丢弃(被拒的块从 system prompt 与引用表里彻底移除);工具门控(语料不支持或工具在此无用就不暴露);预算化调用(token 与时间预算内重试或降级);交付时分配引用(编号由框架指定而非模型生成);保证收尾(每个查询以答案或显式失败结束)。作者的原话是这些不变量毫不光鲜,而这正是要点——它们是偶尔能跑通的 demo 与可运营系统的差别。模型则保留真正需要语义的判断:查询词选择、阅读顺序、相关性、还缺什么。两类职责混装——让模型执行预算、让引擎判断相关——正是不可靠 agent 的惯常病因。
为什么 ph 不等于答案正确率? 8.6 节的辨析是全文方法论的高光:门实际产出的是接受率(可观测、无需标注),充分率是证据能否支持答案的判断(需要标注)。定义假接受率 φ 并给出估计式 φ = (aT−aA)/(aT−aF):若假接受比真接受差 35 个百分点,1 个百分点差距蕴含 φ≤2.9%,3 个百分点蕴含 8.6%——门可以在精度上看起来很精确、却仍把相当份额的查询路由到错误证据上。最小审计:100 个标注的接受查询在真实率约 10% 时二项区间约 4–16%,400 个标注收到约 7–13%;审计未跑之前式 11 未校准,论文不报告任何 φ 值。
为什么导航工具在 RAGFlow 里是可选的? 基准里最弱的选项恰恰是当下长上下文 RAG 流行的做法:让 harness 读目录树、让 LLM 挑文档——精度极低、token 成本极高,等于放弃了 search harness 快、准、省的核心价值。有编译导航树的语料上干脆不用导航工具,因为投影到搜索结果上的主张与证据加充分性门以低得多的 token 回答同样问题。
为什么其他工件各有各的账本而不是全部装进一个指标? 拆开看每个工件的消费者:时间线把事件与日期排成时间序,消费者是上下文窗口而非检索器;wiki 长于综合但除非每句回链否则短于血统,不重编就会过期,FRAMES 上 neutral,所以只当证据之上的消费层;记忆从会话日志而非文档提取持久状态——偏好、决定、承诺——把短暂交互变成可查询状态,评估维度是连续性而非多跳问答;图刻意不做 GraphRAG 式社区索引(社区报告碎片化知识且加一层 token 密集的生成文本),查询时用 PageRank 排 chunk、harness 优先取那些 chunk 的主张-证据对——图改善相关材料的 recall 而不为读原文付费,FRAMES 没奖励它是因为基准自带实体链接且多数问题不需要 join;本体是 schema——类、属性、约束、到源词汇表的映射——ingestion 时做三件平面抽取器做不了的事(把客户/客户方/账户统一为一个带别名的类;约束抽取——合同可以有义务而产品不行;跨源链接工件——条款与工单被识别为同一义务),查询时支持类型化检索、关系感知扩展与对答案中不被允许关系的验证,其价值是商业性的:跨系统术语一致、跨源整合、按类型控权、免重训的领域适配、合规官可读的审计轨迹。
为什么编译器与 harness 在实现上只共享窄接口? 两者在一小组服务路径上相遇:compile_kwd 的存在探针、chunk 锚定的主张查找、每工具三态服务策略(off、compiled-only、compiled-first 按需取原文)。证据门插在上下文可能进出模型的三个位置:预取准入(按单元数、来源多样性、实体覆盖给块打分,要么带引用准入要么整块丢弃)、工具结果准入(去重、验证、投影到单元)、交付(每个主张必须解析到已交付单元与活的源版本)。harness 从不问供给侧证据是否充分——那是门的决定,这让编译器可替换、门可以脱离编译器单独测试。存储侧每个编译单元带主张文本、逐字 span、源 chunk 标识与偏移、有效性元数据、抽取器版本与访问标签;存储版本化且内容寻址,主张能解析到产出它的精确文档版本并在源文中高亮。
为什么门的阈值要在影子流量上调? 门阈值不能在它拒绝的查询上直接调——那些查询的反事实答案没有被观测。RAGFlow 把门以哈希分桶跑在生产流量上:计算并记录决策但不执行,查询照走未编译路径。只有当接受分支精度非劣且达到 token 或延迟目标时,阈值才晋升为执行;否则门继续当记录器。这又是一条可泛用的上线纪律:任何会丢弃信息的门,其阈值调优都必须有影子对照,否则你优化的只是幸存者偏差。
七、通用灵感:带出实验室的六条原则
即使不做 RAG,这篇论文的思维方式也大量可迁移:
- 先问哪个约束已经不 binding,再投入。论文全部架构判断都建立在 harness 已解决精度这一经验事实上。任何系统的优化都该先做这个诊断——在已饱和的轴上继续加投入是 RAG 社区卷 embedding 的翻版。
- 结构不是证据,重述不产生新事实。摘要、目录、导航之所以无效,是因为它们只重排已有信息。想让预加工产生价值,要改变的是信息的粒度与血统(主张-证据对),不是信息的形状(树、图、wiki)。
- 条件拆分先于平均值。38% 的平均值背后是 91% 的 hit 与 1.9% 的 miss,决策相关的是条件数字而非均值。任何 A/B 报告若不按机制条件拆分,都会把完全不同的两个故事平均成一个误导性数字。
- 小数字的敏感性主导系统的经济学。盈亏平衡率对 miss 罚金远比对 hit 节省敏感。识别出自己系统里哪个参数是小分母,就把测量预算投给谁。
- 模型提议、源文裁决。验证 span 精确存在于源文才入库,让便宜的小模型做抽取变得安全。质量不靠模型尺寸兜底、靠对不可伪造 ground truth 的机械校验兜底——这个模式可以移植到任何 LLM 生成中间产物的流水线。
- 供给、控制、契约分层。编译器不判断充分性、门不依赖具体编译器、工具是窄接口。三层可独立替换与测试,这是把 LLM 系统从 demo 变成可运营系统的工程学分水岭。
- 零结果是工具属性,不是语料事实。harness 在模型看到零命中之前先解释并沿回退梯子重试,防止引擎故障被翻译成语义结论。任何 agent 系统里,让模型把 0 结果读成不存在,都是在把工程故障冒充成知识判断——零命中解释是控制消息而非证据,永远不配引用编号。
这七条里最反直觉的可能是第一条与第七条的合取:既然精度已不缺,那么系统真正的病根多半在过程纪律与供给质量,而这两样都不需要更聪明的模型,需要的是更老实的基础设施。
八、负结果的价值:部署 ledger 方法论
论文表 2 是一份值得单独精读的方法论文本。对精度基准看不见的工件(本体、图、wiki、时间线、记忆、导航树),论文没有退而求其次地讲故事,而是给出一张可操作的 ledger:每个工件配一个主要结局、一个带显式分母的指标、一个采集位置、一条上线决策规则。导航树看每正确答案的 token;图看关系型问题中至少 join 两个来源的比例;本体看实体映射到规范类的比例;wiki 看新用户答对十个领域问题的时间与引用点击率;时间线看重建事件顺序的时间与过期版本错误率;记忆看重复提问率与纠正率。全部工件共享一条审计不变量:交付主张中可解析 span 且源版本最新的比例必须 100%,否则阻断交付。
三条测量规则让 ledger 保持诚实:测量单位是集合(或评审团队)而非单个答案,因为逐答案均值会掩盖工件闲置的集合;设计是同一查询混合上的影子或 A/B 对照、按集合哈希启用工件,流量与问题难度不与处理混杂;目标在跑之前写好,null 就报成 null。
把六行主指标摘出来看协议的完整形状:
| 工件 | 主要结局 | 指标(分子/分母) | 上线规则 |
|---|---|---|---|
| 导航树(主张叶) | 更便宜的正确答案 | 每正确答案 token;每千查询接受答案数 | token 降且精度非劣才上 |
| 实体-关系图 | 相关来源发现 | ≥2 来源 join 的关系型问题占比;每关系答案 token | join 升且 token 降、无审计损失才上 |
| 本体 | 词汇控制 | 实体映射到规范类比例;未解析类型率 | 映射达标且非法关系下降才上 |
| LLM wiki | 上手与综合 | 新用户答 10 个领域问题用时;引用点击率 | 时间降且引用可追溯才上 |
| 时间线 | 时间定向 | 重建事件顺序用时;过期版本错误率 | 顺序正确升且过期错降才上 |
| 会话记忆 | 连续性 | 重复提问率;纠正后事实率;恢复既往决定用时 | 重复与纠正降才上 |
| 全部工件 | 可审计性 | 可解析 span 且源版本最新的交付主张占比 | 必须 100%,否则阻断交付 |
每行还配有采集仪器:导航树用按站点打标签的 harness token 台账加判官裁决;图用策展关系评测集加 PageRank 轨迹;本体用编译器审计日志加本体验证器;wiki 用任务研究与点击到源 span 的追踪;时间线用时间线验证器加查询日志;记忆用会话日志加用户纠正事件。
然后是全文最罕见的段落:ledger 当前没有任何一行达到过预注册目标,所以每一行都报为 no measured effect,没有一行晋升为一般性主张。作者把 ledger 作为结果列为空的协议发表,而不是填进方向性宣称。一次可报告的观察必须形如 C 个集合、Q 次查询、指标从 A 到 B(D%)、精度非劣、目标达成——且只在预注册目标在该集合上达到之后写下。第 7 节的影子运行正在产出这种带标注样本所需的材料,但尚无目标达成。
这张空表的价值论可以展开三点。其一,它把部署主张从营销语言变成了可证伪命题:每一行都有分母、有仪器、有决策规则,读者可以照抄协议去自己的部署里测。其二,它示范了基准与部署两种 ledger 的分离:FRAMES 测精度与 token 成本,部署测领域专家能否找到、信任、治理一个答案——两个榜单不可互相替代,用前者否定或用后者吹嘘工件都是范畴错误。其三,它对整个领域的方法论是一种纠偏:当负结果可以以空 ledger 的形式被诚实发表时,才可能有真正累积性的系统科学。
值得对照的是学术界的惯例处理:同类论文遇到基准测不出的价值,常见写法是构造一个新基准或引用客服满意度之类的软证据,把部署价值变成不可复核的叙事。这篇论文选择把叙事压回协议——每行主张都绑定一个可计算指标与预注册门槛,宁可在结果列留空也不填方向性词语。用作者自己的表述:部署主张在本文中的含义是命名的集合、预注册目标、带仪器的 before/after 或影子对照;没有这样的观察,表就声明测量设计并把每一行标为 no measured effect。这种自我约束让论文的可信度反而高于许多满页正号的实验报告——读者可以精确知道哪些结论有数、哪些还是信念。
对载体类工件的警告同样体现这种纪律:去掉主张叶的两个导航树行是只有载体没有载荷的工件——维护者可以用它们圈定变更范围、读者可以浏览,但它们自身不贡献任何证据,其部署价值是组织性的而非证据性的,绝不能当作独立的上线理由。论文甚至给表 1 加了脚注防止误读。这个区分对采购决策有直接意义:市面上以摘要树、目录树为卖点的产品,其证据能力取决于叶子装的是什么,不取决于树本身。
最后补一层方法论意义上的观察:这张空 ledger 与第 6 节的六条 harness 不变量互为表里。不变量保证的是控制侧的可运营性(每个查询有终态、引用可绑定、预算有界),ledger 保证的是供给侧的可证伪性(每个工件有指标、有门槛、有仪器)。两侧合起来,才是一个能被称为数据库的系统应有的治理结构——从这个角度看,论文的架构主张与它的报告纪律是同一件事的两个面。
九、开放问题
论文自己承认与未解的边界,加上笔者读出的缺口,至少有八条:
- 单基准、单次运行、无置信区间。全部定量结论来自 FRAMES 一个基准(N=200)、一个编译器(glm-4-flash)、一个回答模型;每个结构变体只跑一次,91%/1.9% 是测量操作点而非总体估计。BrowseComp-Plus 只做 harness 饱和度检查(85%、约 300 万 token 每题),规模太小不能验证 token 节省。8.8 节明确列出企业语料(表格、扫描件、行话)可能降低抽取质量、推高 miss 率、缩减节省。
- φ 审计已定义未执行。假接受率的分层审计(100 到 400 个标注接受查询)有完整规范但未在基准规模上运行,门的精度安全边际目前只有估计式没有测量值。
- 延迟- token 权衡未给出帕累托边界。替换用三倍延迟换一半 token 已被确认,但在什么延迟预算下该转向 evidence-first 或门控阅读,论文只给了定性规则没有定量曲线。
- PageIndex 退化是观察不是定律。10⁵ 文档上 75% 路由成功率是解析模型而非测量扫描,退化的真实规模阈值未标定。
- 部署 ledger 全空。本体、时间线、记忆、思维导图的部署价值目前是设计信念而非测量事实——包括作者最看好的本体(其价值主要在治理与整合,精度基准天然看不见)。
- harness 普适性的边界。论文结论以英语文本语料、BM25/grep harness、问答任务为条件,8.8 节明示存在结论反转的条件;稠密腿在什么语料或问题分布下会重新变得有益,是留给社区的问题。
- 门控与替换的组合收益未单独拆分。表 4 中决策门臂均值的 −52% 与条件拆分的 −91%/−38% 口径不同(臂均值 vs 条件均值、题数更少且未单独报告),论文也明确提醒不可互比;门在替换之上的边际贡献被描述为适度(证据已紧凑),缺一个三臂完全因子实验。
- 抽取质量对 miss 率的传导未建模。经济模型假设 Δmiss 是常数,但 miss 罚金本质上是抽取质量与语料难度的函数——不同抽取器、不同领域的 Δmiss 分布如何变化,决定 2% 盈亏平衡线的可信区间,这恰恰是论文敏感性分析里最敏感的那根轴。
结语
把这篇论文压缩成一句话:检索层正在被 search harness 吸收,连同在 recall 上打败词法搜索的旧目标;在称职的 harness 之下,结构化编译做不到这一点——而主张-证据对作为载体树的叶子装入后,在证据充分时砍掉 91% 的查询 token、不充分时只多付 1.9%,平均 38%,决策门把延迟从 140 秒压到 30 秒;节省是用轮次买的,延迟紧张时杠杆在门与 evidence-first 而非 token。
更广的主张是架构性的:知识编译不是一种技术而是一条可配置的 ingestion 流水线——主张管成本、树管组织、图管关系、本体管治理、wiki 管综合、时间线与思维导管定向、记忆管连续性——harness 决定什么进窗口,引擎做精确执行。当上下文被一次编译、类型化、版本化、治理,且每个工件在为它建造的 ledger 上受审时,上下文就成了基础设施。
论文想留给读者的词是 agent-native database,但它的实质是数据供给:一个系统若专职生产并移交高质量上下文——带逐字证据的主张、实体关系、时间线、本体标签,类型化、版本化、受治理——而不是排序返回一堆 chunk,它就是 agent 原生数据库。它不是关系数据库:没有查询语言、没有 schema 强制,harness 而非存储决定每个问题读什么。它也不是新检索范式,而是对检索系统欠 agent 什么的另一个回答——不是待阅读的排序段落清单,而是预先供给、像数据一样受治理的最小充分已验证事实集。
这个词能否流行尚未可知,但它描述的分工已经在发生:模型与循环负责找,存储与编译层负责供给,中间靠窄工具契约连接。当越来越多的 agent 框架把检索化约为 grep 与阅读,数据库一侧的差异化竞争就必然转向谁供给的上下文更小、更可验证、更可治理——这正是本文标题里基础设施一词的准确含义。
作者也坦率划定了结论的外延边界:一个编译器、一个回答模型,所以定性结论(证据帮成本、结构不帮 recall)是他们预期可泛化的部分,精确百分比不是;harness 不变量在一个系统里实现、由部署而非受控用户研究验证。换句话说,这篇文章交给我们的是方向、机制与量具,而不是一张可以照抄的参数表。
回到主线情境:RAG 供给侧重构。这篇论文在供给端的最终形态是一个分层工件市场——主张管成本、树管组织、图管关系、本体管治理、wiki 管综合、时间线与思维导管定向、记忆管连续性——每个工件在自己的 ledger 上明码标价,供给层与控制层通过窄契约衔接。它不承诺任何单一工件的魔法,承诺的是一套可核算的供给经济学。对正要把检索栈升级为 agent 基础设施的团队,这份账本比任何排行榜都实用。
在人人都在给 agent 加工具、加记忆、加推理轮次的当下,这篇论文指的方向恰好相反:把功夫花在查询发生之前,把上下文当作需要编译、验证、版本化的资产来经营。负结果告诉你别买什么,经济模型告诉你何时值得买,空 ledger 告诉你如何诚实地知道买对了。这大概就是基础设施思维与工具堆叠思维的差别。
一句话收尾:当检索成为循环、精度不再稀缺,上下文就是下一个需要工程化对待的稀缺资源——而这篇论文为它给出了第一套完整的供给经济学。