MedSkillAudit:面向医学研究智能体技能的领域专用审计框架 MedSkillAudit: A Domain-Specific Audit Framework for Medical Research Agent Skills
提出医学研究AI技能的两层否决式审计框架,与专家评分一致性超越人-人基线
前置知识
智能体技能(Agent Skill)
技能是以 SKILL.md 为核心的可复用模块化能力包,封装了任务指令、流程指引与可选的可执行脚本,可被智能体跨工作流调用、版本化管理并独立审计。技能不是一次性提示,而是会持续影响智能体行为的运营单元,因此需要单独评估其结构与质量。
本文研究对象正是这些技能包本身的可发布性,读者必须先理解技能是独立、可审计、可重用的工件,才能把握为何要为其建立专用审计框架而非复用现有模型评测基准。
组内相关系数 ICC(2,1)
ICC(2,1) 是双向随机效应、单测度、绝对一致性的组内相关系数,用于量化两位评分者对同一组对象的连续评分一致性程度,取值范围理论为 1$。Koo 和 Li 指南把 $<0.5$ 视为较差到一般,/bin/bash.5\sim0.75$ 为中等,/bin/bash.75\sim0.9$ 为良好。
本文的核心指标就是系统-共识 ICC(2,1)=0.449 与专家-专家基线 ICC=0.300 的对比,没有这一统计量就无法判断系统是否真的达到了与人相媲美的评分可靠性。
加权 Cohen's $\kappa$
对有序分类标签(如 Production Ready/Limited Release/Beta Only/Reject)使用线性加权的 Cohen's $\kappa$,会根据等级距离给予部分信用而非 0/1 判罚,从而更合理地刻画顺序量表的一致性。线性加权意味着相邻等级只扣一部分而非全部。
本文用加权 $\kappa=0.215$(系统 vs 共识)与 $\kappa=0.270$(人-人基线)来对比等级一致性,是读者理解「系统是否真正达到人级评分」的关键补充指标。
ISO/IEC 25010 软件质量模型
ISO/IEC 25010 定义了软件产品质量的八大维度:功能适用性、可靠性、易用性、性能效率、可维护性、可移植性、安全性与兼容性。本文的静态审计层以此为底层骨架展开 25 项细粒度检查项,确保审计面有公认标准可依。
理解这一标准能帮助读者明白为什么审计框架选择「8 维 × 25 项」这种系统化拆解,而不是凭经验的 ad-hoc 评分;同时也解释了 T1-T4 否决门与 8 个维度之间的对应关系。
Bland-Altman 一致性图
Bland-Altman 图把两种测量值的差值对均值作图,用以评估两种方法之间的系统偏差(均值差)与随机误差(差值的 1.96 SD 区间)。与简单相关不同,它直接揭示是否存在系统性高/低估的偏倚。
本文用 Bland-Altman 给出 mean bias=-1.4、LoA=[-29.0, +26.2] 的具体数字,证明系统与共识之间几乎无系统性偏倚、但个别极端分歧主要来自否决门驱动的分数塌陷。
研究动机
随着 AI 智能体生态把「技能」作为可复用、可版本化、可独立审计的一等对象,医学研究领域对技能质量提出了远超通用评测的要求:除结构完整性外,还必须保证科学诚信(如不伪造引用、DOI、样本量、p 值)、方法有效性、结果可复现性以及诊疗边界安全(如禁止直接给出诊断结论、必须保留医学免责声明)。然而现有评估方法各有局限:以 USMLE、MedQA 为代表的基准只衡量模型在固定测试题上的能力;以 MedAgentBench 为代表的智能体评估环境评估的是涌现行为而非技能包本身的可审计属性;通用代码质量工具则用软件工程标准套用到医学科研上,忽略了科学计算语义与领域安全要求。例如一个 SKILL.md 看似完整却可能写出错的 GO/KEGG API、产生 mock data 与真实 API 混用的伪输出、或在依赖缺失时直接崩溃,这种「看似合规实则误导」的风险恰恰是通用评估框架无法捕捉的。
本文的目标是本文的具体目标是构建并初步评估 MedSkillAudit(skill-auditor@1.0)这一面向医学研究智能体技能的可发布性审计框架。该框架采用「静态预筛 + Claude 智能体动态评估」的两层否决门架构,将技能打分映射到 Production Ready / Limited Release / Beta Only / Reject 四级发布决策,并通过 75 个真实技能与两名独立专家的可靠性研究回答一个核心问题:领域专用自动化审计能否在分数分歧幅度上达到甚至优于人-人专家基线,从而成为可发布性治理流程中的可信第一道关卡。
与已有工作不同的是,本文的独特切入角度是把评估对象从「模型」或「智能体整体」下沉到「技能工件本身」,并以「可发布性治理」而非「排行榜分数」为目标,把结构诚信与科研诚信分成两套独立否决门,避免单点扣分掩盖定性差异;同时引入场景覆写(Scene Override)机制,让通用基础评分项不需为某一类科学计算场景让步,而是在子类评分层做定向修正,从而在保留通用审计面完整性的同时容纳医学科研的多样性。这种「分层否决 + 动态执行 + 类别加权」的设计填补了通用基准、通用代码质量工具与智能体评估环境之间的治理空白。
核心方法
MedSkillAudit 是一套分层审计流水线,前 3 步是 Python 自动化预筛、后 5 步由 Claude 驱动评估智能体在受控环境中执行技能并打分,最终输出 0–100 的 Final Score 与四级发布决策,整体思路是「先用静态规则快速否决明显不安全的技能,再用动态行为测试暴露静态无法发现的运行时缺陷」。评分公式为 $\text{FinalScore} = 0.4 \times S_{\text{static}} + 0.6 \times \bar{D}$,其中 $S_{\text{static}}$ 为 ISO 25010 八维静态质量分(共 25 项),$\bar{D}$ 为多次测试输入下动态得分的均值;任一否决门 FAIL 即直接判 Reject,绕过分数。
本文与已有方法最本质的区别在于把「质量」拆成两类无法互相补偿的失败:(1) 结构性失败(崩溃、注入、不确定随机、依赖瘫痪)用 Veto Gate 1 立即否决;(2) 科研诚信失败(伪造引用、越过诊疗边界、方法逻辑谬误、生成代码不可用)用 Veto Gate 2 立即否决。两门之外的瑕疵才进入连续分,因此无论其它维度分多高都无法「数值洗白」安全或诚信问题。同时,40/60 的非对称权重刻意偏向动态执行评分,因为对 53 个脚本/混合技能来说,纯静态 SKILL.md 检查根本无法发现「声明的函数在当前依赖版本中不存在」或「bioinformatics API 已变更」这类运行时陷阱;而对 Mode A 提示型技能则承认这是已知结构性短板。
方法步骤详情
输入是 SKILL.md 加可选脚本。T1 Operational Stability(崩溃率 ≤20%)与 T2 Structural Consistency(必填字段齐全)任一 FAIL 触发 Veto Gate 1;T3 Result Determinism 与 T4 System Security(禁未净化 eval/exec)FAIL 同样触发 Gate 1。第五步起进入 Veto Gate 2:M1 Scientific Integrity 查伪造引用/DOI/p 值;M2 Practice Boundaries 禁直接诊断;M3 Methodological Baseline 查相关-因果混淆;M4 Code Usability 校验生成代码(类别 1、4 标 N/A),任一 FAIL 即否决。第六步按复杂度取 $N \in \{3, 5, 7\}$ 个测试输入,Layer 1 是 40 分通用质量,Layer 2 是 60 分类别专项(如类别 1 检索严谨、类别 3 代码可执行),求均值 $\bar{D}$。最后输出 JSON 与 Markdown 审计报告。
技术新颖性
技术新颖性体现在三点:(1) 「硬否决 + 软评分」混合架构,把失败模式按定性差异分级处理,避免将灾难性安全缺陷与平庸的输出相提并论;(2) 类别专用 Scene Override 机制,在不修改共享基础 rubric 的前提下为科学计算场景单独校正 Fault Tolerance、Forgiveness、Recoverability 三项偏差(这些偏差源于共享 rubric 默认面向人用通用软件,不适用于 agent-first 科学计算);(3) 「结构-科研」双否决门与 ISO 25010 + OpenSSF + Shneiderman + 医学科研质量标准的四源标准融合,让审计结果对技术、法务、临床多类利益相关方都可辩护。这套设计在 53 个脚本/混合技能上通过动态执行直接暴露依赖版本漂移、API 变更与启动失败,是静态分析或单次输出抽样都做不到的。
实验结果
75 个技能(每类 15)的可靠性实验给出四层发现。(1) 基线质量:共识均分 72.4(SD=13.0),仅 22.7% Production Ready、57.3% 低于 Limited Release;Protocol Design 最高 86.2±3.8,Academic Writing 最低 62.7±7.2(5/15 Reject)。(2) 系统-专家一致:ICC(2,1)=0.449(CI 0.250–0.610)超越人-人基线 0.300,SD 由 12.4 缩到 9.5,Wilcoxon p=0.613 无方向偏倚;1 阶内一致率 82.7% 反超人 74.7%。(3) 分类别表现:Evidence Insight ICC=0.551、Data Analysis ICC=0.506 达中等可靠;Protocol Design ICC=0.232 偏倚 -6.1(p=0.033);Academic Writing ICC=-0.567 反向运动。(4) 治理价值:56/75(74.7%)触发优化条件;12 个 Reject 中 7 个由硬否决、5 个由分数阈值捕获。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 医学研究技能整体质量评分(n=75) | ICC(2,1) 一致性 | 0.449(95% CI 0.250–0.610) | 人-人专家基线 0.300(95% CI 0.080–0.490) | 绝对值提升 +0.149,且超过基线上限;绝对差 SD 由 12.4 缩到 9.5 |
| 医学研究技能发布等级一致性(n=75) | 1 阶内一致率(四级有序量表) | 82.7%(62/75) | 人-人基线 74.7%(56/75) | +8.0 个百分点,超过人级一致率 |
| Evidence Insight 类别一致性(n=15) | ICC(2,1) | 0.551(95% CI 0.060–0.820) | 人-人基线(整体)0.300 | 绝对值提升 +0.251,达到中等可靠区间 |
| Data Analysis 类别一致性(n=15) | ICC(2,1) | 0.506(95% CI -0.010–0.800) | 人-人基线(整体)0.300 | 绝对值提升 +0.206,方差最大(70.7±15.3)但仍达中等可靠 |
| Academic Writing 类别一致性(n=15) | ICC(2,1) | -0.567(95% CI -0.890 到 -0.040) | 人-人基线(整体)0.300 | 反向运动,揭示通用 rubric 与专家评估目标错位,是 v1.2.0 重点修正方向 |
局限与改进
作者承认四点局限:(1) 75 个技能、每类仅 15 个,分类别置信区间过宽(多数 CI 跨 0),无法支撑细粒度假设检验;(2) 未做专家预标定训练,专家 1/2 用不同模板打分(单文件 vs 汇总工作簿),导致整体仲裁率 64.0%、Academic Writing 100%,人-人基线 ICC=0.300 偏低、非金标准;(3) 固定 40/60 权重对 Mode A 纯 prompt 技能结构错配,动态评分实际衡量的是 Claude 智能体的运行而非技能工件本身;(4) Academic Writing 的 Efficiency 与 Academic Tone 维度尚无 Scene Override,被列为 v1.2.0 的目标。我自己的额外观察:评测集全部来自两个团队的 4 个开发周期,存在机构与团队偏差;Bland-Altman LoA=[-29.0, +26.2] 跨度高达 55.2 分,极端负差主要由否决门驱动的分数塌陷造成,「真实安全风险 vs 评估一致性」的取舍在文中未被量化讨论。
独立分析的弱点
独立分析三个主要弱点并给出改进方向。(1) 评测集规模与多样性不足:75 个技能、4 个开发周期、2 个团队,且历史版本因机构数据治理不能公开,外部研究者无法复现具体分数分布;建议建立跨机构共享的脱敏语料并按类别扩到 ≥50 个样本以获得更紧的分类别 CI。(2) Academic Writing 负 ICC 暴露「通用语言质量维度」与「领域专家视角」的根本错位——专家看「成稿质量」、系统看「行为稳健性」,两者并非同一构造却被当作同一目标度量;建议为类别 4 加 Scene Override,重写 Efficiency 与 Academic Tone 维度,并把 ICC 校准作为 v1.2.0 验证指标。(3) 「过度否决」问题:否决门 FAIL 即强制 Reject,无论其余维度多优,导致 Bland-Altman 出现 -42.7 量级的极端负差;建议引入「安全降级」分级(如带告警的 Beta Only 或 Limited Release),缩小系统-共识最大分歧。
未来方向
作者给出的未来方向集中在三点:(1) 实施 Category 4 Scene Override 重校 Efficiency 与 Academic Tone 维度,目标把 Academic Writing 的反向 ICC 翻正;(2) 引入模式自适应加权,对 Mode A 纯 prompt 技能提高静态权重、对 Mode B/D 保留或加大动态权重;(3) 引入预标定训练锚(带分级注释的范例样本)降低专家仲裁率。基于成果可进一步延伸的方向包括:把场景覆写机制扩展到临床试验设计、监管申报草拟、患者沟通等更多医疗子领域;将审计流水线嵌入 CI/CD 实现 PR 级别的技能准入卡控;用 MedSkillAudit 衍生的二元否决标签训练一个轻量级预测器作为 CI 中的快速预筛,把审计成本进一步压低;研究否决门 FAIL 与专家 Reject 之间的条件独立性与覆盖率(12 个 Reject 中 7 个来自硬否决、5 个来自分数阈值)以更精细地刻画「安全-质量」二维平面。
复现评估
复现性总体较好:MedSkillAudit 框架本身(含审计流水线、Veto Gate 准则、Layer 1 通用 rubric 与五个类别 Layer 2 rubric)以 MIT 协议开源在 https://github.com/aipoch/medical-research-skills,75 个医学研究技能的最新版本亦同步开源;但评测所用的「历史开发版本」因机构数据治理限制不能公开,因此 ICC=0.449、加权 κ=0.215 等核心数字无法在原评测集上原样复现。算力上框架依赖 Claude API 做动态评估,53 个脚本/混合技能还需真实安装依赖与执行,复现成本主要在 API token 与依赖环境而非 GPU。复现需同时熟悉 ISO 25010 软件质量标准与医学科研流程;Python 3.9 + pandas + pingouin + scipy + scikit-learn 是标准生态。最小复现路径:用公开的 75 个最新技能重新跑审计,并用本机构的两名专家重新打分以建立自有人-人基线,与论文 ICC=0.300 基线对照。
论文图表
12 个 Reject 技能按分数升序:S009 funding-trend-forecaster 40.0、high-risk Y、M1/M4 FAIL;S031 go-kegg-enrichment 45.3(API 错配 + 物种错配);S043 meta-results-sensitivity-analysis 47.5(脚本目录空、函数未实现 T2/M4 FAIL);S003 grant-funding-scout 49.5(mock 数据未声明 M1);S054 sci-paper-reviewer 49.9(动态评测全失败);S039 histolab 50.4(依赖冲突 T1);S053 academic-highlight-generator 52.9;S055 meta-manuscript-generator 54.7;S058 biotech-pitch-deck-narrative 55.5;S074 kol-profiler 56.7;S057 microbiome-diversity-reporter 57.6(T3 不可复现);S010 bibliography 59.6(无代码、四维 Structural Veto 全 FAIL)。
把抽象的「12 个 Reject」落到具体可诊断的失败案例与对应否决门,是审计框架「可操作性」最直接的证明