我们提出了Doctorina MedBench,这是一个基于模拟真实医患互动的智能体医学AI综合评估框架。与依赖解决标准化测试题的传统医学基准不同,该提出的方法模拟了一个多步骤的临床对话,其中医生或AI系统必须收集病史、分析附件(包括实验室报告、影像和医疗文档)、制定鉴别诊断并提供个性化建议。系统性能使用DOTS指标进行评估,该指标由四个部分组成:诊断、观察/检查、治疗和步骤计数,从而能够评估临床正确性和对话效率。
该系统还整合了一个多层次测试与质量监控架构,旨在检测模型在开发和部署过程中的性能退化。该框架支持安全导向的陷阱案例、基于类别的临床场景随机抽样以及完整的回归测试。数据集目前包含超过1000个临床病例,涵盖750多种诊断。评估指标的通用性使得该框架不仅可用于评估医学AI系统,还可用于评估医生并支持临床推理技能的发展。我们的结果表明,与传统的考试式基准相比,模拟临床对话可能提供更现实的临床能力评估。
1 引言
AI的快速进步和医疗保健专业人员的日益短缺导致AI作为个人健康顾问被广泛采用。尽管医学界最初持怀疑态度,但有证据表明,医生在其临床实践中越来越多地使用大型语言模型(LLM)。具体来说,2024年,66%的医生报告使用了AI,比2023年增长了78%[1]。这一趋势反映在评估AI在医疗任务中表现的大量出版物中。
近年来,许多研究调查了AI作为解决特定医疗任务工具的能力,以及其替代专科咨询的能力。例如,这包括其在患者信息和教育中的应用[2],处理特定任务(如个性化药物选择)的能力[3],决策支持模型的开发[4],或为患者充当医生的角色[5, 6]。
因此,评估此类诊断质量和模型稳定性的问题变得越来越重要。各种性能评估系统已经过测试;尽管LLM模型早已能够解决标准医学测试[7],但这并不能令人信服地将此类数据外推到真实临床案例[8]。因此,早期比较AI在医学中表现的方法依赖于专家意见的基准测试,这带来了一定的困难。这些挑战包括人类的生产力有限,与LLM不同,人类无法在短时间内处理数百个案例,以及存在人为因素,可能导致对AI响应的错误解读。
因此,得出需要多位专家共识的结论;然而,这种方法显著限制了吞吐量。这些限制促使了全新的AI质量评估系统的发展,旨在解决准确评估AI在各种医疗场景中表现的挑战。此外,此类系统甚至可以通过模拟真实的临床案例和患者互动,促进学生在临床推理方面的培训[9, 10, 11]。
然而,尽管为开发此类系统投入了大量人力和经济资源,但它们并未完全解决在创建AI医生评估模型时遇到的所有挑战。特别是,这些方法仅允许评估AI医生在特定时间点的整体性能。此外,它们在开发新模型以及需要持续测试即使是微小修改时,仍然非常耗费资源。
鉴于Doctorina旨在创建一个功能齐全、免费可用的AI医生,因此有必要在一个系统内解决三个相互关联的任务。首先,确定AI医生在开发和后续改进过程中的整体质量水平。其次,实时验证AI医生的稳定性和性能。第三,及时发现和定位新出现的问题,包括文件处理错误、用户消息翻译错误以及系统的一般逻辑错误。
2 系统概述
2.1 AI医生的一般原则
开发的AI医生Doctorina是一个主动系统,旨在进行诊断评估并生成有效的建议。该系统完全复制了真实医生在患者互动中的行为,既不是症状检查器,也不是为回答特定医疗问题而改编的系统。
该机制不仅能够接收患者的文本消息,还能处理各种类型的附件——从身体部位照片到实验室结果和医疗报告——将所有信息整合到一个分析块中。相应地,Doctorina根据可用信息,在临床推理的指导下提出问题,并根据每个新的患者响应逐步缩小潜在疾病的范围。
Doctorina的目标是收集所有临床相关的患者数据,不仅是为了建立诊断,也是为了提供基于证据的建议。这确保了不仅仅是一个可能的诊断的表述;它促进了一个通过从鉴别诊断中逐步排除选项来识别主要诊断和合并症的多阶段过程。此外,系统会考虑影响最终建议的因素,如家族史。基于此,系统生成考虑所有个体特征的最终建议。
最终建议包括对患者状况的解释,以及用于确认或澄清诊断和后续治疗的个性化诊断计划。此外,它还提供了病情监测方案,说明了在病情恶化时该怎么做,以及涵盖营养、体育活动、习惯和睡眠卫生的个性化生活方式建议。
2.2 AI患者的模拟
在开发像生成式AI医生这样的多组件应用过程中,我们发现传统的评估方法无法对其有效性进行全面而准确的分析。与标准化考试不同,现实世界中的患者很少会自发地向医疗专业人员提供所有相关信息。相反,临床医生必须主动引出细节,澄清误解,并在提出诊断假设或建议之前,引导患者完成病史采集过程。为了弥补这一差距,我们开发了更准确地复制真实世界临床互动动态的模拟场景。
最近的基准研究同样强调,对医学LLM的现实评估应超越静态问答,扩展到交互式任务环境和罕见的不按指南的临床场景,其性能取决于顺序提问、情境解释以及对可用证据的适当使用[9, 12]。
为了在现实条件下评估系统的诊断和治疗效能,我们使用一个结构化的测试机制来模拟医患互动。该模拟作为一个具有定义迭代限制的逐步循环运行:它首先将介绍性的“患者”信息和可选附件添加到对话状态,然后AI医生的响应被反复反馈到循环中,直到对话被明确标记为完成或预定义的步骤限制耗尽。这种机制允许控制对话长度,并确保完成由模型本身决定(当它明确报告主要诊断时),或者作为指定超时的结果。
患者行为被有意设计为近似真实的临床咨询,在这种咨询中,临床相关信息通常只有在针对性提问时才会被揭示。这使得基准不仅对最终的诊断准确性敏感,而且对医生模型病史采集策略的完整性和安全性也很敏感。
患者的行為被有意限制,以模仿真实的临床咨询。特别是,模拟患者不会自发地披露所有临床相关细节;相反,AI医生必须通过针对性的病史采集来获取这些信息。这使得基准能够衡量最终诊断和建议的正确性,以及信息收集过程的完整性和安全性。
虚拟患者是作为一个独立的LLM智能体实现的,由专用的系统提示指导。每个基准案例都存储为一个结构化记录。在模拟过程中,患者智能体以该案例记录和当前对话历史为条件。
该智能体被明确限制为像真实患者一样行事。它只回答被问到的问题,保持回复简洁,除非被特别引出,否则不会透露临床相关细节,并且不会引入案例记录中不存在的事实。它可以用自然语言转述案例事实,但不得用不支持的症状、暴露史、诊断或测试结果来扩展它们。如果医生询问案例中未包含的信息,患者会给出不确定或否定的回答,而不是产生幻觉。
这种架构保留了LLM驱动对话的语言灵活性,同时保持了案例层面的事实控制。因此,性能取决于医生模型的病史采集策略,而不是模拟患者的意外过度披露。
每一步的编排由对话模块(DoctorModel)执行,该模块在系统的功能智能体之间路由消息。系统记录每一步,保存附件,跟踪完成标志,并记录模型输入和输出以供后续分析。
模拟对话完成后,测试机制执行多维评估。四个异步任务并行评估对话的完整性、推荐治疗和病史采集的质量,以及处方检查和检验的正确性。结果被结构化为DOTS格式(诊断、观察/检查、治疗、步骤计数)的评估记录,可用于确定“陷阱”案例的“通过/失败”状态,并用于分析回归统计数据。测试案例和评估逻辑位于一个单独的模块中,确保实验性检查不会影响真实的患者互动。这种分离还便于在持续集成或实时监控框架内进行安全并行化和快速重新运行。
未来的改进可能包括对例如急诊和常规咨询的显式建模。此外,计划为高复杂性场景设置更严格的步骤限制,并扩展使用附有结构化数据的附件,以压力测试系统提取和正确利用信息的能力。
此外,该系统是灵活的,允许模拟不仅限于医患对话,还可以定义患者的行为风格。因此,模拟患者不仅可以回答问题,还可以提供过多信息,坚持特定诊断或否认其可能性,并询问澄清性问题。这在现实医疗实践中经常遇到,即患者试图说服医生某事。因此,AI患者不仅可以模仿预定义的“医疗案例”内的行为,还可以对应真实人的各种行为原型。在收到最终建议后,可能出现患者发起沟通以澄清信息或报告“遗忘”事实的情况,从而需要对先前发布的处方进行调整。
3 评估框架
3.1 核心指标(D.O.T.S.)
- 诊断(D) — 诊断解决方案的准确性和完整性。
- 观察/检查(O) — 进行调查研究建议的有效性。
- 治疗(T) — 安全性、充分性和治疗逻辑。
- 步骤计数(S) — 做出诊断和开具治疗所需的对话步骤数。
- 为每个级别定义了通过阈值(例如,无严重错误,阶段偏差≤20%)。
评估AI医生模型性能的主要指标是评估虚拟AI患者与AI医生之间模拟对话的结果。AI患者被提供基线数据(一个介绍性提示)以启动交互,以及一个针对模拟场景中可能询问的回复库,涵盖次要症状、病史、家族史、诊断测试结果、过敏史和当前用药。该过程最终由AI医生确定诊断并提供主要临床建议。
AI患者被训练为仅对提出的具体问题做出回应,而不主动提供未请求的信息,这非常接近真实的临床实践。这包括在交互开始时以及在医生要求的过程中提供来自实验室和其他诊断方法的数据。此外,AI患者可以向医生提出澄清性问题,例如要求解释复杂的医学术语。
在制定诊断和建议后,评估关键绩效指标——具体是:诊断、观察/检查、治疗和步骤计数——并与给定临床情况的金标准基准进行比较。
诊断指标包含两个独立的子指标:主要诊断本身(虚拟患者来访的主诉或原因)的文本形式,以及相应的ICD-10代码。使用ICD-10提供了一个标准化的国际框架来表示诊断,并便于跨案例比较。准确的医学代码与临床概念之间的映射构成了医学LLM评估的一个重要且独立的维度[13]。允许对单个临床场景应用两个或更多代码。包含第二个指标(ICD-10)考虑到了专业医学文献经常使用不同的术语来描述相同的病理;例如,“盆腔脱垂”、“盆腔器官脱垂”和“膀胱膨出”可能描述相同的临床情况并对应相同的ICD-10代码。
系统根据文本描述和ICD-10代码进行验证;只有当两个指标同时不匹配时,结果才被视为不满意。部分差异可能归因于诊断术语的同义性,或主要医疗就诊(例如,涉及非特异性症状的案例,其中诊断病因正在明确,同时开始治疗)存在多个有效的ICD-10代码。此外,每个临床场景的鉴别诊断列表是逐案评估的,专门测量Top-3和Top-5的诊断准确性。
观察/检查——该模块评估模型诊断建议是否符合既定临床方案。除了基线场景外,复杂的医疗案例可能包括需要调整诊断计划的数据,例如部分完成的测试或与主诉无关但需要进一步调查的偶然异常发现。后者的一个例子是胃肠道疾病患者出现异常的宫颈细胞学结果。该指标提供了诊断精度的综合评估,由三个逻辑上不同的部分组成:必做检查(should_be_recommended)、可选或允许的检查(can_be_recommended),以及对冗余或不相关医嘱的惩罚系统(unexpected_penalty)。这种结构反映了临床现实,即检查被分类为对诊断和患者安全至关重要、可选但合理,或反之,不合理且过度。
第一组(必做检查)构成了评估的核心。每个元素都被赋予一个反映其诊断重要性的权重。模型仅因其建议中明确提及的检查而获得分数。漏掉一个必做检查会导致其相应权重从最高可能分数中自动扣除,从而客观地记录了诊断搜索中的任何不完整性。
第二组(可选检查)包括在某些临床背景下可能适当但并非严格必需的测试。这些元素的权重被设为零。因此,它们的存在不会提高最终分数,也不会降低它,允许模型在没有惩罚风险的情况下表现出临床多样性。
第三组(意外惩罚系统)在模型推荐既非必需也非可选的检查时触发。每个这样的条目都会从最终分数中扣除一个固定金额,反映了现实世界中过度测试的临床问题,这会导致医疗成本增加、患者负担加重以及潜在的程序风险。最终输出是一个百分比分数(0-100%),代表特定案例诊断建议的准确性。
治疗模块使用类似的原则进行分析,并增加了一个关键条件覆盖。这些是预定义的标准,如果被触发,将导致案例自动获得零分和特殊标记。这些条件识别“严重医疗错误”,并用于监控严重违规行为,其发生是人为建模的。例如,向有记录青霉素过敏史的患者推荐阿莫西林会触发此覆盖。该指标的目的是确保对高风险临床错误进行严格控制,超越简单的过度或不足处方监控。
步骤计数代表AI医生在得出最终诊断和提供建议之前发起的询问次数。该指标不评估临床访谈的完整性(由上述指标衡量),而是作为模型的行为审计。
步骤数的大幅变化可能表明冗余提问、过度详细或临床询问的分组不当。与金标准基准的偏差超过25%,无论是在单个案例内还是在相同场景中,都被视为一个危险信号,表明模型的诊断推理过程可能存在不一致性。
形式上,步骤计数定义为 S = min(D, P),其中 D 表示 AI 医生消息(助手)的数量,P 表示患者消息(用户)的数量,不包括初始案例描述。因此,S 对应于对话中完整的医患问答交换次数。
3.2 评估器实现
在每个模拟对话完成后,基准测试使用一个异步评估管道,包含四个并行评估模块:(1)对话级临床评估,(2)病史采集评估,(3)治疗条件验证,以及(4)诊断检查核对。这些组件共同量化了多个维度的性能,包括诊断、鉴别诊断和ICD-10准确性,以及治疗熟练度、问题覆盖率和安全关键通过条件。指标的最终聚合通过一个确定性的、基于案例的框架执行。
评估引擎采用结构化的“LLM作为法官”架构。为确保客观性,系统避免自由形式的评估,而采用模式验证的提取过程。临床实体——包括主要和鉴别诊断、推荐的检查以及治疗干预——通过使用基于Pydantic的响应格式的受限LLM调用来识别。此外,ICD-10代码从结构化医学数据中标准化,并使用算法代码级匹配规则进行评估。这些提取的输出随后由确定性评分函数处理,该函数实现了加权诊断指标、强制性询问覆盖率和安全关键覆盖。
为了减轻评估器幻觉并确保可审计性,管道要求显式证据提取,要求包含直接对话引用或在信息缺失时标注“无证据”。提取范围严格限于最终建议,以避免与中间推理混淆。通过将自然语言输入转换为评分前的模式约束结构化数据,这种混合设计平衡了LLM的语言灵活性与标准化医学基准所需的可重复性和严谨性。
4 多层次测试协议与持续监控
持续的质量保证对于维护生成式AI医生系统的安全性和诊断可靠性至关重要。为此,我们实现了一个实时监控层,该层持续运行并与生产环境并行。该层旨在快速识别性能退化,通常在几分钟内,同时完全与患者交互隔离。
该层旨在早期检测性能退化,在Doctorina架构中,性能退化可能由多种原因引起。首先,基础模型或智能体路由的更新可能改变对话行为,影响病史采集的彻底性和临床推理的正确性。其次,输入数据的变化——包括新的实验室报告格式、图像质量或用户语言变异性——可能降低从附件中提取临床重要信息的准确性。第三,退化可能表现为鉴别诊断或建议制定中的逻辑回归,如DOTS指标(诊断、观察、治疗、步骤)所反映的。最后,基础设施因素(服务延迟、模块路由错误、计算资源过载)可能扰乱对话循环顺序,影响临床场景的成功完成。
这些案例以固定但可适应的频率执行——通常是每天——并对高优先级的“陷阱案例”或最近失败的测试进行动态重新调度。这种策略确保系统对突发退化敏感,同时最小化计算成本。探针在所有活跃的模型版本、地区和语言上执行,提供即时且可比较的性能快照。
每次运行生成一组结构化的指标,包括诊断准确性、推荐检查的适当性、治疗的充分性和安全性,以及对话步骤的效率。附加指标跟踪幻觉、来源接地错误、附件解析质量、路由稳定性和翻译鲁棒性。这些结果自动按临床类别、语言和人口统计学背景进行聚合和分层,从而能够及早发现特定类别内的性能漂移[14]。
系统的一个关键要素是层次化升级机制(图3)。如果陷阱案例失败,特别是在高风险安全场景中,监控层会使用整个案例库启动完整的第3级回归运行。如果这些全面测试确认了可复现的性能退化,系统会自动通知临床和工程团队,并阻止受影响模型版本的推广,直到修复和重新验证完成。这种级联架构确保瞬时波动不会触发不必要的停机,而确认的故障会立即得到关注。
异常检测在短期(滑动一小时窗口)和更

