AI 应用评测 / 检索工程

RAG 检索与 Agentic 工作流评测台

基于 Node.js 固定语料和查询标签,比较 BM25、显式查询扩展、字符检索、RRF 与有状态自适应检索,并验证 ACL、拒答、预算和单位正确成本。

2026-07 - 持续迭代当前代码
  • Node.js
  • BM25
  • Character n-grams
  • Reciprocal Rank Fusion
  • Node Test Runner
  • JSON

Reuse contract

复用合同

已独立复现JSON 清单
最近核验
2026/07/18
固定版本
83952b3bae58
代码入口
project-kits/rag-knowledge-base/README.md公开副本固定源码

输入

  • 带稳定 ID、正文、标签与租户可见性的 JSON corpus
  • 带 relevant 文档、期望 answer/abstain、tenant 与 scope 的查询标签
  • 固定检索方法、支持阈值、ACL、步骤预算和合成成本模型

输出

  • Recall@3、MRR@10、相关文档 micro recall、路由与拒答指标
  • 逐查询排名、状态转移、停止原因、ACL 检查与失败归因
  • 平均检索步骤、工作量、unit accepted cost 与方法间 delta

可执行命令

rag-retrieval-test测试
npm run lab:rag:test
平台
macOS、Linux 或 Windows;离线 Node.js
权威输出
TAP stdout;tokenizer、扩展、RRF、指标、输入 schema/hash 与工件 replay
副作用
会修改运行环境
前置条件
  • Node.js >=22.12.0
  • 仓库根目录中的固定 corpus、queries 与结果工件
rag-retrieval-capture采集
npm run lab:rag:capture -- --corpus labs/rag-retrieval-eval/data/corpus.json --queries labs/rag-retrieval-eval/data/queries.json
平台
macOS 或 Linux;离线 Node.js
权威输出
/tmp/younis-ai-lab-rag-results.json;含输入字节数/SHA-256、排序指标、失败样本和逐查询排名
副作用
会修改运行环境
前置条件
  • Node.js >=22.12.0
  • POSIX /tmp 可写
agentic-rag-test测试
npm run lab:agentic-rag:test
平台
macOS、Linux 或 Windows;离线 Node.js
权威输出
TAP stdout;路由、ACL、状态机、预算、输入 schema/hash 与工件 replay
副作用
会修改运行环境
前置条件
  • Node.js >=22.12.0
  • 仓库根目录中的固定多租户 corpus、queries 与结果工件
agentic-rag-capture采集
npm run lab:agentic-rag:capture -- --corpus labs/agentic-rag-eval/data/corpus.json --queries labs/agentic-rag-eval/data/queries.json
平台
macOS 或 Linux;离线 Node.js
权威输出
/tmp/younis-ai-lab-agentic-rag-results.json;含输入身份、逐查询 trace、终态、ACL、预算与成本
副作用
会修改运行环境
前置条件
  • Node.js >=22.12.0
  • POSIX /tmp 可写

可直接复用

  • 在更换 tokenizer、query expansion、retriever 或 reranker 前建立回归基线
  • 为多租户知识库验证 ACL 在每次检索和最终上下文中均未泄漏
  • 比较一次检索与自适应检索带来的正确率收益和额外工作量

明确边界

  • 两组数据都是小型合成策略库,不能代表真实知识库的语言、噪声、更新和权限分布。
  • 基础 lab 不含 embedding、向量数据库、reranker 或 LLM;Agentic lab 的答案决策和成本也是确定性模拟。
  • 当前结果不包含在线并发、真实模型 token、延迟、人工满意度或生产数据治理。

固定结果工件

  • 词法检索与 RRF 固定结果rag-retrieval-result
    仓库路径
    labs/rag-retrieval-eval/results/2026-07-13-results.json
    SHA-256
    a48b4a9bd64f87d9e70dc9ff562d5aa35b5181249a9ea221262a0e16303dbe5b
    生成/验证命令
    rag-retrieval-capture
  • Agentic RAG 状态机固定结果agentic-rag-result
    仓库路径
    labs/agentic-rag-eval/results/2026-07-15-results.json
    SHA-256
    7ea15ce227bcb1428bcf693941197ff477e5b9d3567dbe0707795a487d668efa
    生成/验证命令
    agentic-rag-capture

从“知识库 Demo”改成可核验评测台

仓库没有 Python、FastAPI、LangChain、Chroma 或真实问答服务,因此本项目不再声称已经实现这些组件。当前可运行资产是两个 Node.js 评测 lab:一个校准检索排序,一个校准有状态 RAG 决策。它们可以成为后续向量检索或模型回答系统的验收基线,但本身不是完整知识库产品。

这种划分先固定“输入、相关性标签、决策和失败怎样评分”,再接入新检索器或生成模型。否则一次看起来合理的回答无法判断收益来自切分、召回、重排、提示词还是偶然生成。

基础检索评测

labs/rag-retrieval-eval/ 读取 12 条合成中文策略文档和 12 条查询,其中 10 条有相关文档、2 条应拒答。评测器比较原始 BM25、显式领域扩展 BM25、字符 3-gram cosine,以及 expanded BM25 与字符排序的 RRF。

固定结果中,原始 BM25 的 Recall@3 为 1、MRR@10 为 0.95;显式扩展将 MRR@10 提到 1。过滤零分候选后,hybrid 同样为 1,却没有超过 expanded BM25,说明增加融合步骤在这组数据上没有增量。字符方法的 Recall@3 为 0.8、MRR@10 为 0.75。阈值 5 的拒答准确率为 1。

这个 lab 的复用点不是这些数值,而是稳定文档 ID、查询相关性标签、无答案样本、逐查询排名和失败列表。替换语料或策略时可以沿用同一输出合同并生成新工件。

Agentic RAG 决策评测

labs/agentic-rag-eval/ 将数据扩展为 24 条多租户查询,比较 fixedOneShotadaptiveStateful。状态机在固定预算内执行路由、检索、证据支持判断、查询改写、拒答或回答,并在每一步执行 tenant/ACL 过滤。

冻结结果显示,答案决策准确率从 0.625 提升到 0.875,相关文档 micro recall 从 0.736842 提升到 0.947368;两种方法的 ACL leakage 都为 0。收益伴随更多检索步骤、更高 latency work units 和更高单位 accepted cost,组合问题与两类错误作答仍保留在失败样本中。

这里的 latency 和 cost 是确定性工作量单位,不是实际毫秒、token 或供应商账单。它用于比较状态分支的相对代价,不能换算成生产 TCO。

复现与扩展

npm run lab:rag:test
npm run lab:agentic-rag:test

需要重算结果时使用各自的 capture 命令,将新 JSON 写入 /tmp。只有输入、评测器和协议版本完全相同的确定性字段才适合结构化 diff;任何语料、标签、ACL、阈值或状态机变化都应生成新的结果文件并说明变更。

下一步接入 embedding 或 reranker 时,应保留相同 query ID、相关文档标签、拒答样本和 ACL 断言,再新增模型 identity、索引 revision、在线延迟和 token 成本。接入答案模型后还需独立答案 rubric,不能用“检索到相关文档”替代“最终答案正确”。

证据边界

两个 lab 都是仓库内合成数据上的 reproduced 结果。它们证明评测器在固定输入下能够区分方法和失败类别,不证明对真实企业文档、长文档切分、增量索引、多语言、模型幻觉或并发服务有效。任何生产采用都需要用授权后的真实任务分布重新冻结数据与验收门槛。

Research links

关联文章

这些文章分别提供问题背景、设计依据、实验验证或运行证据。

  1. 发布 2026/06/30

    本文梳理文档处理、召回、重排和答案生成主链路;本项目把其中检索与决策部分收紧为可重放评测合同。

  2. 本文使用 12 条策略文档和 12 条查询比较四种词法策略,固定排序指标、拒答决策和失败样本。

  3. 本文在 24 条多租户查询上比较固定单次检索与自适应状态机,验证 ACL、预算、答案决策和单位 accepted 成本。