面向科学装置的纠错式智能混合RAG与运维实测评测体系
arXiv原文链接:https://arxiv.org/html/2607.24663v1
摘要
大型科学用户设施数十年运维知识分散存储于电子日志、技术手册、内部维基、运维聊天、工单、设备停机记录、实时控制系统等异构数据源,传统单一检索系统无法统一整合。本文设计并落地APS-RAG平台——面向先进光子源(APS)的检索增强生成系统,支持自然语言查询全机构运维知识库;同时配套一套贴合真实运维场景的标准化评测框架。
检索引擎融合稠密向量、稀疏BM25、知识图谱三路召回,基于查询类型自适应 reciprocal-rank 融合;内置LangGraph实现纠错式智能迭代回路;基于Model Context Protocol(MCP)搭建原生ReAct工具执行层,可调用EPICS实时设备时序数据。
本文构建APS-Bench评测集,共50道基于真实运维语料生成的问答,每道题目附带人工校验标准答案与关键证据片段标注。基线朴素BM25检索严格关键信息召回率仅63.8%,完整纠错式智能图谱RAG方案可达70.3%。实验证明跨编码器重排器是性能决定性组件,移除后严格关键召回率暴跌32.8%;知识图谱、纠错迭代回路可小幅提升效果,但增益不具备统计显著性。
本文完整开源评测集、六分层评测工具、MCP检索技能代码,可为同步辐射、加速器等大型科研装置搭建知识库问答系统提供可复用工程范式。
关键词:RAG;Agentic智能检索;纠错式CRAG;知识图谱检索;MCP工具协议;加速器运维;评测基准;科学设施知识库

一、引言
大型加速器、同步辐射类科学装置常年连续运行,运维经验分散在多套独立系统:
操作人员排查故障、实验人员查阅历史方案时,需要切换多套系统、记忆各类查询语法,学习成本极高;资深员工离职会带走大量隐性运维经验。仅依靠大模型无检索直接生成回答极易产生无依据幻觉,检索增强生成(RAG)可将回答锚定真实文档、每条结论附带原文引用,解决事实性错误问题。
现有领域RAG工作存在短板:仅做基础稠密/稀疏混合检索,缺少故障链路知识图谱、迭代纠错智能回路,且缺少贴合加速器运维的专用评测数据集(通用QA基准无法衡量设备故障、时序、多步骤流程类问题效果)。
本文核心贡献:
二、相关工作

2.1 通用RAG、智能RAG、纠错CRAG体系
本文在通用架构基础上创新:自适应权重RRF三路融合(稠密/稀疏/图谱)+ 专用运维知识图谱 + MCP实时设备数据工具链。
2.2 加速器领域LLM知识库系统
已有CALMS(阿贡)、GAIA(DESY欧洲XFEL)、电子离子对撞机RAG、日志检索工具等同类系统,但存在共同缺陷:
APS-RAG填补以上空白,同时配套完整可复现定量评测框架。
2.3 评测基准相关研究
miniF2F、SQuAD等通用问答基准侧重文本抽取,不匹配加速器多跳、时序、故障类查询;InPars提出基于文档自动生成问答对的数据集构建方法,本文基于该思路改造为运维专用生成流水线,新增难度分层、查询类型约束、关键证据标注模块。
三、APS-RAG系统整体架构
3.1 APS八大知识库数据源
系统预索引7类静态文档,EPICS PV实时数据通过MCP动态调用,各数据源文档规模统计:
| BELY运行日志 | 4.5k | 14.0M | 4.2M |
| ICMS技术文档 | 5.8k | 72.0M | 20.6M |
| 运维工单Work Requests | 17.3k | 3.0M | 0.8M |
| Teams运维聊天 | 9.4k | 2.4M | 0.8M |
| 内部维基 | 0.2k | 0.8M | 0.1M |
| MCR停机记录 | 103.0k | 7.9M | 1.9M |
| SDDS控制工具文档 | 0.6k | 1.4M | 0.4M |
| OAG操作界面文档 | 0.7k | 0.8M | 0.2M |
数据源处理规范
3.2 整体检索生成流水线
用户输入自然查询后完整链路:
7 LLM生成带原文ID内联引用的可验证回答。
3.3 自适应三路RRF融合公式
RRF(d)=∑cwck+rc(d),k=60\\mathrm{RRF}(d)=\\sum_{c}\\frac{w_{c}}{k+r_{c}(d)},\\quad k=60RRF(d)=c∑k+rc(d)wc,k=60
ccc为检索通道(稠密/稀疏/图谱),wcw_cwc为对应权重,rc(d)r_c(d)rc(d)为文档ddd在通道内排名。
8类查询预设固定权重(人工基于运维经验调优):
| factual事实查询 | 0.2 | 0.5 | 0.3 | BM25(设备PV、编号精确匹配) |
| value数值查询 | 0.1 | 0.6 | 0.3 | BM25 |
| temporal时序查询 | 0.3 | 0.5 | 0.2 | BM25(日期/班次) |
| troubleshooting故障排查 | 0.3 | 0.2 | 0.5 | 知识图谱(故障链路) |
| multi_hop多跳推理 | 0.3 | 0.2 | 0.5 | 知识图谱 |
| comparative对比类 | 0.4 | 0.3 | 0.3 | 均衡三路 |
| code控制代码 | 0.5 | 0.5 | 0.0 | 稠密+BM25 |
| general通用咨询 | 0.4 | 0.3 | 0.3 | 均衡三路 |

3.4 纠错式Agentic循环(LangGraph状态机实现)
1)打分公式(人工调优固定系数)
s=0.4ρ+0.3g+0.3c−0.05nKGs=0.4\\rho+0.3g+0.3c-0.05n_{\\text{KG}}s=0.4ρ+0.3g+0.3c−0.05nKG
- ρ\\rhoρ:检索片段相关性;
- ggg:回答原文锚定程度;
- ccc:答案完整度;
- nKGn_{\\text{KG}}nKG:无法通过图谱验证实体数量惩罚项。
2)执行逻辑
设定阈值τ=0.4\\tau=0.4τ=0.4,得分低于阈值触发重检索:

3.5 故障专用知识图谱构建
实体类型
Fault故障、Component设备、System子系统、LogEntry日志、WorkRequest工单、Procedure处置流程、Person运维人员。
核心关系
CAUSED_BY故障诱因、RESOLVED_BY处置方案、HAS_FAULT设备故障、FOLLOWS_PROCEDURE执行流程。
图谱能力
Cypher最短路径查询,自动串联「现象→根因→历史处置工单」完整故障链,普通向量检索无法跨文档串联因果,是故障排查类查询核心增益来源。
图谱数据从8套语料LLM两阶段抽取,共96517节点、84222条边存入Neo4j社区版。

3.6 MCP工具层 + ReAct原生调用
搭建4组独立FastMCP服务,提供8类工具:
MCP持久会话池减少模型、索引反复加载开销,工具调用标准化错误封装;同时对外暴露aps-rag独立MCP技能,可在Claude Code、Codex等编码智能体直接调用知识库检索。

3.7 前端交互界面
基于OpenWebUI实现聊天界面,三种运行模式:
回答内联文档ID引用(BELY_xxxx / WRQ_xxxx),点击直达原始运维记录,附带时序、图片、计算工具快捷入口。
四、评测基准APS-Bench与六分层评测方案
4.1 APS-Bench数据集构建流程(共50道问答,1道不可回答样例)
数据集完整元数据、生成脚本开源,每道题目附带溯源哈希、提示词模板记录。
4.2 六层完整评测指标体系
4.3 评测打分规则
生成模型统一使用GPT-5.4(ARGO网关),评判模型固定选用不同厂商Claude Opus避免自偏好偏差,Gemini二次交叉校验;
统计采用95%配对bootstrap置信区间,10000次重采样;多组对比使用Holm/Bonferroni多重检验校正控制假阳性。
五、实验结果与消融分析
5.1 全系统整体性能(5种RAG方案对比)
| Naive BM25 朴素RAG | 63.8% | 11.2% | 58.8% | 63.1% |
| Hybrid 稠密+BM25 | 65.5% | 9.4% | 65.0% | 73.1% |
| Agent 无图谱 | 66.1% | 7.9% | 60.6% | 67.1 |
| Graph 无纠错循环 | 69.1% | 11.3% | 61.9% | 69.2 |
| Agentic GraphRAG(完整APS-RAG) | 70.3% | 8.7% | 64.1% | 71.2 |
结论:所有增强方案均优于朴素BM25;完整系统取得最高关键召回,纠错循环显著降低幻觉。
5.2 检索指标对比
| Naive | 80.7 | 69.6 | 63.5 | 67.3 | 71.2 |
| Hybrid | 89.0 | 73.6 | 62.6 | 70.4 | 76.3 |
| Agent | 83.8 | 71.0 | 67.8 | 76.5 | 74.0 |
| Graph | 87.0 | 73.3 | 61.9 | 69.1 | 76.7 |
| Full APS-RAG | 85.6 | 72.2 | 62.1 | 69.1 | 75.1 |
| 稠密+BM25混合检索一阶排序效果最优,完整系统依靠纠错回路弥补排序小幅劣势。 |
5.3 核心组件消融实验(19道高难度子集)
移除各组件后的严格召回变化:
| 完整系统 | 64.5% | 7.7% | — |
| 移除纠错循环 | 57.9% | 7.1% | -6.6 [-21.4, 6.2] |
| 移除知识图谱 | 58.1% | 8.2% | -6.4 [-20.7, 5.0] |
| 固定RRF权重 | 61.0% | 9.5% | -3.5 [-16.8, 6.7] |
| 移除预校验门控 | 64.9% | 11.4% | +0.4 [-15.8, 10.9] |
| 替换重排器为LLM打分 | 31.8% | 30.0% | -32.8 [-47.4, -19.1](p<1e-4显著) |
| 移除时序解析 | 57.9% | 6.9% | -6.7 [-20.7, 3.9] |
| 移除同义词扩展 | 58.2% | 9.1% | -6.3 [-19.7, 3.9] |
| 移除缩写展开 | 58.2% | 9.4% | -6.4 [-18.9, 2.9] |
| 移除多查询生成 | 61.8% | 10.0% | -2.8 [-15.8, 6.4] |
关键结论
5.4 细分难度性能差异
- Easy简单(15题):严格召回77.9%,幻觉仅3.4%;
- Medium中等(24题):严格召回64.5%,幻觉10.1%;
- Hard高难(10题):严格召回72.6%,幻觉21.6%;
中等难度样本证据分散在多份文档,最容易出现信息缺失;高难多为规范手册长推理,幻觉率最高。
5.5 知识图谱适用场景分析
图谱对故障排查、多跳因果类查询提升明显;但会稀释通用查询排序精度,因此采用自适应权重动态平衡收益与损耗。仅搭配纠错循环时,图谱的完整故障链路价值才能充分发挥;单独开启图谱无纠错会提升幻觉率至11.3%。
5.6 嵌入模型、纠错轮次、生成模型消融
六、系统工程落地建议
七、研究局限性
八、结论
本文搭建APS-RAG面向加速器运维纠错式智能混合RAG平台,融合稠密/稀疏/知识图谱三路自适应检索、LangGraph纠错智能回路、MCP实时设备工具层,配套完整运维专用评测基准APS-Bench。
消融实验证明跨编码器重排是系统性能核心保障;知识图谱、迭代纠错可小幅提升故障类问题完备度、降低幻觉。整套代码、评测数据集、MCP检索技能全部开源,可为各类大型科学装置构建自然语言运维知识库提供可直接复用的完整工程方案。
附录 配套资源与部署脚本
1. 资源下载链接
2. MCP服务启动配置示例(S1补充材料)
四组FastMCP服务配置片段:
{
"mcpServers": {
"archiver": {
"command": "python",
"args": ["archiver_mcp_server.py"],
"transport": "stdio"
},
"graph": {
"command": "python",
"args": ["graph_mcp_server.py"],
"compute": {"calculator","code_executor","data_analysis"},
"image": {"image_search"}
}
}
}
可用工具:channel_find、channel_read、graph_search、计算器、沙盒数据分析、图文检索。
3. 一键部署启动脚本(Linux/Kali/服务器通用)
# 1. 拉取代码仓库
git clone https://内部项目仓库地址
cd aps-rag
# 2. 安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 3. 启动Neo4j、Elasticsearch、Qdrant容器
docker-compose up -d vector es neo4j
# 4. 执行增量索引构建(每日定时任务)
python ingest_pipeline.py –daily-diff-update
# 5. 启动MCP后台服务
python mcp_archiver.py &
python mcp_graph.py &
# 6. 启动APS-RAG主服务
python main_server.py –ip 0.0.0.0 –port 8080
# 7. 批量运行APS-Bench评测
python eval_runner.py –bench APS-Bench.json –output result.csv
4. 系统延时参考(补充S2)
| Gemini 2.5 Flash | 88.8s | 65.1s | 18.2s | 6.5s |
| GPT-5.4 | 105.9s | 60.0s | 18.8s | 8.5s |
| Claude Opus 4.6 | 140.4s | 109.7s | 18.8s | 8.5s |
| 检索多路并行占用绝大部分延迟,纠错轮次会显著拉长耗时。 |
5. 数据集JSON标准Schema(S6)
统一分块存储结构,所有数据源归一化为同一字段标准:
{
"$schema": "corpus_v2",
"doc_id": "bely_10635__chunk_0",
"title": "9-BM二维扫描PV配置",
"collection": "bely_logbook",
"system": "9-BM光束线",
"creation_datetime": "2026-02-06T14:34:06",
"content": "扫描相关操作记录、PV参数说明"
}
6. 评测指标计算脚本片段(S5)
Token F1、语义Accuracy计算核心代码
def compute_f1(pred_tokens, gold_tokens):
common = set(pred_tokens) & set(gold_tokens)
p = len(common)/len(pred_tokens) if pred_tokens else 0
r = len(common)/len(gold_tokens) if gold_tokens else 0
return 2*p*r/(p+r) if p+r>0 else 0
def judge_accuracy(question, gold_ans, pred_ans):
# 调用独立评判LLM返回0/1语义匹配
judge_prompt = f"""问题:{question}
标准答案:{gold_ans}
模型回答:{pred_ans}
仅输出1(包含正确核心信息)或0(关键信息缺失/错误)"""
resp = judge_llm(judge_prompt)
return int(resp.strip())
网硕互联帮助中心



评论前必须登录!
注册