导读
如果你问 ChatGPT"我肝脏不舒服还腹胀,该吃什么药?",它可能会给你一个看似合理、实则危险的回答——这在肝病领域尤其致命。肝病年死亡约 200 万人,临床决策容错率极低。
标准 RAG(检索增强生成)虽然能给 LLM"开卷考试"的机会,但它检索的非结构化文本片段无法捕捉医学知识中复杂的逻辑关系。Graph RAG 进了一步——用知识图谱做结构化检索——但现有方案仍有两个致命缺陷:① 不会验证生成的图查询是否语义正确;② 检索完不会判断信息够不够用。
来自安徽中医药大学方芳团队的这项工作,给出了一个巧妙的答案:让 LLM 变成一个能"自我纠错"的 Agent——它不只是查图、回答问题,还会在每一轮检索后评估"我找到的信息够不够",不够就调整策略重新找,直到找到足够的证据才开口说话。这套框架叫 Agentic Graph RAG,发表于 Frontiers in Medicine(2025)。在 30 个肝病临床问题上,Faithfulness 达到 0.94,专家 Safety 评分 4.9/5.0。
论文信息
A self-correcting Agentic Graph RAG for clinical decision support in hepatology
Yalan Hu, Wenjie Xuan, Qingqing Zhou, Zhi Li, Ya Li, Jili Hu, Fang Fang*
安徽中医药大学 医学信息工程学院
Frontiers in Medicine, 2025, 12:1716327
DOI: 10.3389/fmed.2025.1716327
Agentic RAG知识图谱自纠正临床决策支持肝病学
研究背景:为什么 LLM 在肝病领域不够可靠?
肝病是全球第四大死因,年死亡约 200 万人。临床医生需要在紧迫时间内综合患者数据和公共医学知识,做出精准决策——这恰好是 AI 决策支持应该发力的场景。
但 LLM 的直接应用面临事实性幻觉——它可能生成看似合理但完全错误的诊疗建议。RAG 缓解了这一问题的思路很简单:先检索相关文献,再让 LLM 基于检索结果生成答案。然而:
标准 RAG 的致命弱点:它检索的是非结构化文本片段,无法捕捉医学知识中"疾病 A → 病因 B → 药物 C → 禁忌 D"这样的深层逻辑链。就像让医学生考试前翻一堆散页资料,而不是给他一份整理好的知识框架。
Graph RAG 用知识图谱(KG)替代文本库——KG 里实体和关系是结构化的。但这还不够,现有 Graph RAG 仍有两个关键缺口:
缺口一:缺乏查询验证。 系统会把"Does cirrhosis treat hepatitis?"(逻辑颠倒!)直接转成 Cypher 执行,检索到荒谬的信息却毫不自知。
缺口二:缺乏信息充分性评估。 检索了三个节点就直接生成答案——但万一这三个节点根本不包含回答所需的关键信息呢?
这引出了本文的核心思路:让系统像人类专家一样,检索→评估→不够就调整→再检索,直到信息充分才开口。
研究方法:KG 做事实锚点,Agent 做推理引擎
1. 构建专家验证的肝病知识图谱
团队从 53 份肝病临床实践指南(近 15 年)出发,做了一个"证据驱动"的属性图:
| 8 种实体 | |
| 11 种关系 | |
| 关键属性 | |
| 术语标准 |
知识提取采用 "人在回路"(HITL)三阶段:GPT-3.5-Turbo 自动提取 → 知识融合去重(CUI优先+多源证据聚合) → 专家人工审核(纠正错误+补充遗漏)。最终 KG:12,192 个实体、28,770 条关系,存储于 Neo4j。
2. Agent 工作流:状态驱动的自纠正循环
基于 LangGraph 构建,核心是一个动态的"检索→评估→优化"循环:
Step 1: 意图识别 → 实体链接(精确→模糊→语义→消歧四阶段) → Text-to-Cypher(GPT-4 + GPT-3.5-Turbo 双模型各自生成,一致性检查) → 执行图检索
Step 2: 决策评估模块 → 两个模型各投 3 票("信息充分"or"不充分") → 双模型一致→采纳;分歧→综合得分裁定(语义相关性权重 0.4)
Step 3: 不充分 → 确定性策略优化器:不重写 Cypher,只调整搜索参数(深度/节点限制/策略BFS↔DFS) → 重新执行 → 回到 Step 2(最多 3 轮)
Step 4: 充分 → 答案合成(KG 上下文 + LLM 内部知识,带内联引用)
兜底: 3 轮后仍不足 → LLM 回退 + 附醒目警告"此答案未经图谱验证"
3. 两个精妙设计
确定性策略优化器(而非 LLM 重写查询): 这是全文最关键的工程决策。让 LLM 重写 Cypher 会引入新的不确定性——改写后可能更糟。团队选择了一个确定性决策树:Coverage 不足→加深;语义相关度不足→切换 BFS/DFS;密度不足→放宽节点限制。每次修改都是算法级的,可预测、可复现。
BFS vs DFS 的策略映射: 事实/诊断类查询→BFS(广度优先,浅深度 k=2,快速获取实体属性);因果/多跳推理→DFS(深度优先,深深度 k=3~4,沿关系链深度探索)。这套映射是预定义的,不依赖 LLM 判断。
实验:30 道题考卷 + 双轨道评分
评估数据集由三位专家构建+盲审:10 题简单事实查询("恩替卡韦用于什么病?")、10 题多跳推理("哪些肝硬化病因推荐肝移植?")、10 题模糊口语化查询("我肝脏难受还腹胀,该吃什么药?")。
三个基线均使用 GPT-4-1106-preview 为基础模型,确保性能差异归因于架构:独立 GPT-4 / 标准 RAG(向量检索 53 份指南纯文本) / 基础 Graph RAG(去掉"决策+优化"模块的消融版)。评估采用 RAGAS 自动评分 + 2 位肝病专家人工评分双轨道。
主要结论
1. 三项核心指标全面碾压
| 本文 Agentic Graph RAG | 0.94 | 0.92 | 0.91 |
Faithfulness 0.94 意味着 94% 的陈述可追溯到 KG 中的证据——这在临床场景中几乎是刚需。从基础 Graph RAG(0.87)到本文框架(0.94),自纠正机制的净增益是 +7 个百分点。
2. 专家评分:安全性几乎满分
| 本文框架 | 4.8 | 4.6 | 4.9 |
专家特别指出:GPT-4 面对复杂临床问题时,会给出"看似合理但存在临床风险"的建议——而这种风险在单纯的自动评估中很难被捕获。本文框架通过"评估→优化→补充"循环几乎消除了这类问题。
3. 实体链接的优雅降级
系统能正确处理各种输入变形:专业术语("hepatic steatosis")、口语化表达("liver fat")、缩写("HCC")、甚至拼写错误("cirrosis")均能归一化到正确实体。而面对无意义输入("liver gunk")时,不是硬匹配,而是识别失败→优雅回退+警告用户——这恰恰是临床 AI 最需要的安全边界意识。
研究亮点与启示
亮点一:自纠正循环的"外科手术式"设计。 不是简单地"让 LLM 重试",而是把纠正拆解为语义验证(防错查) + 充分性评估(防漏查) + 确定性优化(防越改越错)。每个组件解决一个具体问题,组合起来形成完整的纠错闭环。
亮点二:确定性 > 灵活性。 策略优化器宁可用规则决策树,也不让 LLM 重写 Cypher——这在临床场景中是教科书级的工程选择。可预测、可追溯、可复现比"看起来更智能"重要得多。
亮点三:回退而非硬撑。 当 KG 确实没有相关信息时,系统不是编造,而是明确告知"以下内容未经图谱验证"。这种"知之为知之,不知为不知"的设计,是临床 AI 从实验室走向临床的关键一步。
亮点四:KG 不只是"大",更要"细"。 属性图中每条 RECOMMENDS_DRUG 关系包含证据等级、推荐强度、药物审批状态——这意味着系统不仅知道"什么药治什么病",还知道"这个推荐有多可信"。这对临床决策的权重判断至关重要。
启示: Agentic RAG 不是 Graph RAG + Agent 的简单拼装。真正的增益来自对每个环节可能出错的地方做针对性防御——查前验证(防错查)→查后评估(防漏查)→优化可控(防越改越错)→不足回退(防硬编)。这套"纵深防御"的设计哲学值得所有临床 AI 系统借鉴。
📌 每天一篇前沿论文,5 分钟读懂核心思想。我们聚焦 AI × 医学信息学 × 临床决策支持交叉前沿,用说人话的方式讲最硬的论文。
基于个人理解,欢迎讨论,如有侵权请联系删除
夜雨聆风