2024/09/18
医疗智能体风险校验链路设计
作者: 瀚铄智擎医疗方案组
本文用于医疗信息化工程实施,不构成医疗建议,不替代执业医师的诊断与治疗决策。
1. 建设背景与边界
医疗场景中的智能体能力,必须服从医疗质量与安全管理体系。系统上线后,任何结论都可能进入病历、医嘱、检验申请、处置建议等关键链路,因此应采用“规则先行、风险先控、证据先留”的设计原则。
边界定义建议分三层:
- 职责边界:智能体可做结构化采集、证据整合、风险提示、文书草拟;不可独立下达最终诊断与处方决策。
- 责任边界:医疗机构对医疗质量安全负责,执业医师对最终医疗决策负责,系统提供方对规则引擎与审计能力负责。
- 风险边界:高风险场景默认不自动放行,规则冲突或证据不足时必须升级人工复核。
2. 风险分级模型
风险分级不应仅依赖模型置信度,应同时考虑规则命中、数据质量和系统状态。建议使用三元评分模型:
risk_score = rule_severity + data_quality_penalty + runtime_penalty
| 风险等级 | 触发条件 | 处置动作 | 响应时限 |
|---|---|---|---|
| 高风险 | 命中硬性禁忌、关键证据缺失、规则冲突不可解 | 立即拦截并强制人工复核 | 即时拦截,30 分钟内初审 |
| 中风险 | 存在可修复冲突或部分证据不足 | 降级输出并要求补证 | 10 分钟内反馈 |
| 低风险 | 无硬冲突,证据完整,规则一致 | 自动放行并抽样质控 | 1 分钟内输出 |
3. 规则体系设计
规则体系建议采用“分类分级 + 版本治理 + 冲突仲裁”机制。
3.1 规则分类
| 规则类别 | 目标 | 示例触发点 |
|---|---|---|
| 禁忌规则 | 阻断高危输出 | 特定药物禁忌、严重相互作用 |
| 适应证规则 | 约束建议范围 | 不满足适应证条件 |
| 一致性规则 | 校验文书与结论一致 | 结论与既往记录冲突 |
| 完整性规则 | 避免缺字段输出 | 关键字段缺失 |
| 审计规则 | 保证可追溯 | 缺少证据定位与版本信息 |
3.2 规则结构建议
{
"rule_id": "R-CONTRA-001",
"category": "contraindication",
"severity": "HIGH",
"priority": 100,
"condition": "...",
"action": "BLOCK_AND_ESCALATE",
"version": "2025.08.01",
"effective_scope": "all_departments"
}
3.3 执行优先级
执行顺序建议固定为:
- 硬规则优先于软规则。
- 安全规则优先于效率规则。
- 新版本规则需经审批后生效。
- 任意冲突优先触发人工仲裁,不允许静默覆盖。
4. 风险校验执行链路
完整链路应包含“前置校验、过程校验、输出校验、人工复核”四段。
4.1 前置校验
- 身份与索引一致性检查。
- 关键字段完整性检查。
- 请求上下文合法性检查。
4.2 过程校验
- 执行过程中的规则命中记录。
- 证据引用充分性判断。
- 系统运行状态健康检查。
4.3 输出校验
- 建议结论一致性校验。
- 禁忌冲突校验。
- 文书可归档性校验。
4.4 人工复核触发条件
- 命中高风险规则。
- 证据不足且无法在时限内补齐。
- 规则冲突无法自动消解。
- 系统处于异常降级状态。
5. 核心流程伪代码
5.1 规则校验主流程
function run_medical_risk_pipeline(request):
pre = precheck(request)
if pre.has_blocker:
return decision("INTERCEPT", reason=pre.blocker)
inference = run_agent(request)
rule_hits = match_rules(inference, request.context)
ordered = sort_by_priority(rule_hits)
conflicts = detect_conflicts(ordered)
if conflicts.unresolved:
return decision("ESCALATE_REVIEW", reason="RULE_CONFLICT")
evidence_ok = check_evidence(inference)
if not evidence_ok:
return decision("ESCALATE_REVIEW", reason="INSUFFICIENT_EVIDENCE")
risk = aggregate_risk(pre, ordered, runtime_status())
return route_by_risk(risk)
5.2 高风险人工复核流程
function high_risk_review(case_id):
lock_auto_release(case_id)
create_review_task(case_id, reviewer_role="attending_or_above")
review = wait_reviewer_decision(case_id)
if review.decision == "REJECT":
writeback(case_id, status="BLOCKED")
archive_audit(case_id)
return
if review.decision == "APPROVE_WITH_MODIFICATION":
apply_modification(case_id)
rerun_output_validation(case_id)
writeback(case_id, status="REVIEWED")
archive_audit(case_id)
6. 审计与证据追溯
审计设计目标是“监管可查、质量可改、责任可定”。建议固定关键字段,禁止随业务版本随意变更。
| 字段 | 用途 |
|---|---|
| request_id | 跨系统检索主键 |
| patient_hash | 患者匿名标识 |
| rule_version | 规则版本追踪 |
| hit_rules | 命中规则列表 |
| risk_level | 风险分级结果 |
| reviewer_id | 复核责任人 |
| final_decision | 最终处置动作 |
| evidence_refs | 证据引用集合 |
| timestamp | 事件时间戳 |
审计回放建议支持“输入 -> 命中规则 -> 处理动作 -> 输出结果 -> 人工签署”全链路重建。
7. 验收指标口径
| 指标 | 定义 | 计算方式 | 目标示例 | 验收方式 |
|---|---|---|---|---|
| 规则命中准确率 | 命中与金标准一致程度 | TP / (TP + FP) | ≥ 0.95 | 连续 4 周统计 |
| 误报率 | 不应命中却命中 | FP / (TP + FP) | ≤ 0.08 | 抽样复核 |
| 漏报率 | 应命中未命中 | FN / (TP + FN) | ≤ 0.03 | 事件复盘 |
| 风险拦截率 | 高风险被拦截或升级比例 | (拦截+升级)/高风险总数 | ≥ 0.98 | 月度审核 |
| 审计链完整率 | 审计字段齐全比例 | 完整事件/总事件 | = 100% | 自动质检 |
| P95 时延 | 95 分位处理耗时 | P95(end-to-end) | ≤ 1500ms | APM 统计 |
8. 上线实施建议
建议按三阶段推进:
- 离线回归阶段:历史数据回放验证规则命中质量。
- 影子运行阶段:线上并行,不影响现网处置。
- 灰度放量阶段:按科室、病种、风险等级逐步放量。
每阶段均需产出“结果对比报告 + 缺陷整改清单 + 复核签署记录”。
9. 上线前 Checklist
规则检查
- 规则库分类、优先级、版本号完整。
- 硬规则与软规则分层清晰。
- 冲突规则仲裁策略已通过演练。
- 高风险规则完成双签审(业务+合规)。
数据检查
- 关键字段完整率达标。
- 主索引一致性校验通过。
- 脱敏与权限策略生效。
- 数据漂移监测基线已固化。
流程检查
- 前置/过程/输出/复核四段链路贯通。
- 高风险强制复核可稳定触发。
- 自动放行/拦截/升级人工三类出口可用。
- 降级输出与人工接管流程已演练。
审计检查
- 审计字段全量写入并可检索。
- 支持全链路回放。
- 日志防篡改与归档策略生效。
- 复盘模板与整改闭环机制可执行。
10. 结语
医疗智能体风险校验链路的本质是“把安全策略内建到执行流程”。只有规则可控、风险可管、证据可追溯,医疗辅助诊疗能力才能从试点验证走向可持续生产应用。