2026 年 6 月 17 日,海德堡大学医院团队在《Nature》发表论文 Towards autonomous medical artificial intelligence agents,把一个名为 MIRA(Medical Intelligence for Reasoning and Action) 的自主医疗 AI 智能体送进了沙盒电子病历系统。MIRA 不再像过去那些"会答题的医疗大模型"一样只输出文字建议,而是像一名值班医生一样,自己开检查、自己读结果、自己开药、自己安排手术。
这背后的数字足够引发整个行业的警觉:在 574 个急诊病例的回顾性测试中,MIRA 平均诊断准确率 88.9%;在与真实医生同台对比的 311 例中,MIRA 87.8% vs 主治级别医生 78.1%。在胰腺炎这个具体病种上,差距更夸张:MIRA 95.2%,主治级别医生 78.6%,混合资历医生队列 61.9%。
这不是又一次"AI 击败医生"的流量剧本,而是一份关于医疗 AI 行动边界的人机对照实验报告。 它真正在回答的问题是:当大模型从聊天框走进电子病历,临床流程会被怎样重写?
一、MIRA 是什么:一个会"办事"的医疗代理
过去几年,医疗大模型的主流形态是"问答系统":输入症状,输出可能诊断;输入检查报告,输出鉴别诊断列表。这种形式在结构化考试题上表现亮眼,却与真实的临床决策链相距甚远。
MIRA 的关键变化,是从静态问答系统变成了能在电子病历里执行临床流程的代理系统(agentic system)。
研究团队基于 MIMIC-IV 数据库构建了 574 个急诊病例。MIMIC-IV 是一个去标识化的电子健康记录数据库,覆盖约 30 万名在美国 Beth Israel Deaconess Medical Center 接受治疗的患者。研究选择了 8 类目标疾病:阑尾炎、胆囊炎、憩室炎、胰腺炎、肺炎、尿路感染、肺栓塞和胰腺癌。这八类疾病覆盖腹痛、咳嗽、呼吸困难、发热等急诊常见主诉,也包含胰腺癌这种低频但高风险的场景。
MIRA 在沙盒电子病历里可以使用 11 类工具,覆盖超过 85,000 个临床选项,包括:
- • 病史询问(structured HPI intake)
- • 体格检查(physical exam orders)
- • 血液检查、尿液检查、微生物学检查
- • 影像学检查(CT、超声、X 光)
- • 药物医嘱(prescription)
- • 手术或操作检索
- • 操作申请(procedure requests)
- • 诊疗计划
- • 入院决策
更关键的是,这些操作不是自由文本幻想,而是被映射到 FHIR(Fast Healthcare Interoperability Resources)框架,并兼容 ICD、LOINC、ATC、NDC、RxNorm 和 SNOMED-CT 等编码体系。换句话说,MIRA 不是在"建议医生可以考虑开个检查",而是在模拟一个能生成结构化医嘱的电子病历使用者。
MIRA 不直接调用真实医院系统,所有动作都发生在一个高保真沙盒环境里。这套环境复刻了真实电子病历的接口和编码体系,让模型可以在不接触真实患者数据的前提下完成完整诊疗闭环。
二、先别看准确率:患者代理的"防漏题"设计
这类研究有一个最容易被忽略的前提:如果"患者"本身是 AI 模拟的,它会不会偷偷泄露答案? 比如病人一开口就说"我得了胰腺癌",那再高的诊断准确率都没有意义。
研究团队专门评估了患者代理(patient agent)的稳定性、忠实度和抗攻击能力。患者代理只能根据病历中的现病史(HPI)回答问题,不能凭空补充信息。
关键数据:
- • 在 622 组可评估问答中,同一个问题换一种说法提出时,患者代理给出内容一致回答的比例达到 99.4%。
- • 与原始现病史保持一致的比例:原始回答 99.3%,改写问题后的回答 99.1%。
- • 独立大语言模型作为评估者复核:问答一致性 98.9%,与现病史一致性分别为 98.5% 和 97.8%。
- • 在 933 次病例对话中,提前泄露诊断信息 0 例(置信区间 0.0%–0.4%)。
- • 研究人员设计了 11 种提示注入和社会工程攻击方式,覆盖 80 个病例、共 880 次攻击提示。结果仍然没有观察到提前诊断泄露。
这个环节至关重要。它说明后续 MIRA 与医生的对比结果,不是建立在"患者已经告诉医生答案"的漏题环境上。
三、诊断环节:MIRA 不是总赢,但总体明显更强
在完整的 574 个病例中,MIRA 的平均诊断准确率为 88.9%。但更值得看的是分病种表现:
| 病种 | 病例数 | MIRA 准确率 |
|---|---|---|
| 阑尾炎 | 148 | 98.6%(146/148) |
| 胰腺炎 | — | 92.3% |
| 尿路感染 | — | 77.6% |
| 肺炎 | — | 72.4% |
规律很清晰:阑尾炎、胰腺炎这类在急诊中有清晰症状路径、实验室指标和影像标准的疾病,MIRA 表现接近天花板;而肺炎和尿路感染受基础疾病、非典型表现、影像解释和污染因素影响更大,模型表现显著下降。
研究团队进一步挑选了 311 个病例,让 MIRA 与真实医生在相同条件下对比。对照组包括两个队列:4 名主治级别医生组成的"专科组",4 名住院医师和 2 名主治级别医生组成的"混合资历组"。
核心对比数据:
| 组别 | 平均诊断准确率 |
|---|---|
| MIRA | 87.8% |
| 主治级别医生 | 78.1% |
| 混合资历医生 | 71.1% |
在胰腺炎病例中,差距被进一步拉大:MIRA 95.2% vs 主治级别医生 78.6% vs 混合队列 61.9%。
但 MIRA 并非在所有病种上形成压倒性优势。 肺栓塞和胆囊炎中,差异较小;胰腺癌中,MIRA 与主治级别医生表现相当。这个细节比单一平均值更值得重视:AI 的优势首先出现在规则较清晰、流程较结构化、信息可被电子病历充分表达的场景中。
四、检查规划:MIRA 没有"乱开单"
医疗 AI 一旦能下医嘱,最直接的担忧是:它会不会为了安全把所有检查都开一遍?
研究给出的答案比想象复杂。MIRA 确实比医生更常请求体格检查和更多血液指标。在 574 个病例中,MIRA 请求体格检查的比例为 97.0%;在与主治级别医生对比的子集中,MIRA 为 97.1%,医生为 87.8%。 在憩室炎、胰腺炎、肺炎、肺栓塞和尿路感染中,MIRA 请求体格检查的比例达到 100%。
血液检查方面,MIRA 覆盖了 MIMIC-IV 中记录血液指标的约 51.1%,而主治级别医生为 28.3%,混合队列为 34.6%。也就是说,MIRA 更愿意"多看一些低成本信息"。但它并没有把所有化验都点满:MIRA 请求的血液指标仍只有常规数据基线的一半左右。
影像检查的对比更有意思:
- • MIRA 与 MIMIC-IV 影像检查的匹配率 55.3%
- • 主治级别医生 61.5%
- • 混合队列 62.5%
MIRA 并没有系统性增加高成本影像检查;在不一致的配对中,反而是医生更倾向于请求更多影像。
判断 AI 是否"过度医疗",不能只看检查总数,而要区分检查类型、边际成本、辐射暴露、临床收益和替代路径。 MIRA 增加的主要是血液指标,而不是 CT 这类高成本检查。
五、治疗操作:外科路径越标准,AI 优势越明显
研究评估了 MIRA 对治疗性操作的识别能力。
阑尾炎中,MIRA 精准匹配了所有腹腔镜阑尾切除术(laparoscopic appendectomy):124 例中 124 例,匹配率 100%。 胆囊炎中,腹腔镜胆囊切除术(laparoscopic cholecystectomy)匹配率为 90.6%。
在与主治级别医生的对比中,MIRA 识别并请求相关操作的总体召回率为 53.5%,医生为 38.3%。在阑尾炎和胆囊炎这类外科路径明确的疾病中,MIRA 优势尤其明显。
不过,在胰腺炎、胰腺癌、肺栓塞和憩室炎等场景中,操作匹配率较低,部分原因是相关操作更少、更复杂,或者不同编码之间存在粒度差异。
当临床路径高度标准化时,AI 代理可能迅速接近甚至超过常规执行水平;但当决策涉及复杂背景、长期计划或多学科判断时,模型表现仍受限于数据、工具和评价标准。
六、用药安全:最接近真实临床风险的一组数据
医疗 AI 真正进入临床,最让人担心的不是答错一道题,而是开错药、漏掉过敏、忽略肾功能、制造药物相互作用。
研究团队对 56 个患者输出进行了病例级安全评估,覆盖 6 个风险域:
- 1. 高严重度药物相互作用(high-severity drug–drug interaction)
- 2. 肾功能剂量调整
- 3. 过敏-药物不匹配
- 4. QT 风险用药
- 5. 不安全阿片处方
- 6. 治疗重复
结果显示:MIRA 没有出现高严重度药物相互作用、肾功能剂量不兼容、过敏-药物不匹配、QT 风险处方或不安全阿片处方。 治疗重复出现 3 例,占 5%,包括重复开具昂丹司琼、华法林与依诺肝素重叠、以及高钾血症处理中胰岛素/葡萄糖推注表述不够明确。研究人员认为这些处方本身在临床上有合理性,但剂量说明可以更清楚。
在药物层面,MIRA 共生成 468 条处方。细节拆解如下:
| 字段 | 正确条数 | 正确率 |
|---|---|---|
| 自由文本剂量说明 | 467/468 | 99.8% |
| 剂量数值 | 457/468 | 97.6% |
| 剂量单位 | 460/468 | 98.3% |
| 给药频次 | 464/468 | 99.1% |
| 给药途径 | 453/468 | 97.0%(错误最多) |
这个结果很强,但并不等于可以自动放行。 临床用药的风险常常来自边界病例:肾功能快速变化、患者自述不完整、药物名称相似、院内替代药、临时医嘱和长期医嘱叠加。MIRA 在沙盒中表现稳定,但真实世界会更嘈杂。
七、入院决策:MIRA 更偏"谨慎"
研究还测试了 MIRA 能否判断患者应该入院还是急诊出院,重点选择肺炎和肺栓塞,因为这两类疾病有常用风险评分:肺炎参考 CURB-65,肺栓塞参考 sPESI(simplified pulmonary embolism severity index)。研究没有把评分结果直接告诉 MIRA,只提供基础临床数据,让它自己判断。
肺栓塞 40 例: MIRA 没有漏掉需要入院的患者,召回率 1.00;特异性 0.70,准确率 0.85。换句话说,它倾向于多收一些肺栓塞患者。
肺炎: 召回率 1.00;特异性 0.86,准确率 0.93。同样没有漏掉需要入院者。
这是一种临床上可以理解的错误方向:宁愿多收不愿漏收高风险患者。但医疗系统不能无限承受"保守性过度入院"。如果未来这类系统被使用,资源管理(resource stewardship)必须成为模型目标的一部分,而不是事后补丁。
八、API 集成示例:如何把 MIRA 思路接入自家系统
虽然 MIRA 论文没有公开完整代码,但沙盒 EHR 的核心交互模式可以参考以下伪代码实现。这是一个可直接落到生产环境的最小可执行框架:
# mira_agent.py
# 自主医疗 AI 代理的最小集成示例
from typing import List, Dict
import json
class EHRClient:
"""沙盒电子病历客户端,封装 FHIR 接口"""
def __init__(self, base_url: str):
self.base_url = base_url
self.session_token = None
def login(self, doctor_id: str) -> None:
# 真实环境需对接 OAuth2 / 院内 CA
self.session_token = f"token_for_{doctor_id}"
def get_patient_hpi(self, patient_id: str) -> str:
# 拉取主诉与现病史
return f"Patient {patient_id}: 腹痛 6 小时, 转移性右下腹痛"
def order_exam(self, code: str, system: str = "LOINC") -> Dict:
# 下立检查医嘱,code 必须是标准编码
return {"order_id": f"ord_{code}", "code": code, "system": system}
def prescribe(self, drug_atc: str, dose: str, route: str) -> Dict:
# 开立处方,drug_atc 必须是 ATC 编码
return {"rx_id": f"rx_{drug_atc}", "atc": drug_atc, "dose": dose, "route": route}
def get_lab_result(self, order_id: str) -> Dict:
# 拉取检查结果
return {"order_id": order_id, "value": "WBC 14.2", "abnormal": True}
class MIRAAgent:
"""MIRA 风格的自主医疗代理"""
TOOL_REGISTRY = {
"history": "patient_agent.query", # 病史追问
"exam": "ehr.order_exam", # 体格检查
"lab": "ehr.order_exam", # 实验室检查
"imaging": "ehr.order_exam", # 影像学检查
"drug": "ehr.prescribe", # 药物医嘱
"procedure": "ehr.order_procedure", # 手术或操作
"disposition": "ehr.decide_admission", # 入院或出院
}
def __init__(self, llm, ehr: EHRClient):
self.llm = llm
self.ehr = ehr
self.trace = [] # 审计轨迹
def run(self, patient_id: str, max_steps: int = 20) -> Dict:
hpi = self.ehr.get_patient_hpi(patient_id)
self._log("start", {"hpi": hpi})
for step in range(max_steps):
# LLM 基于当前状态决定下一步动作
action = self.llm.decide_next_action(
hpi=hpi,
trace=self.trace,
tools=self.TOOL_REGISTRY,
)
# 执行工具调用
if action["type"] == "disposition":
decision = self.ehr.decide_admission(patient_id, action["payload"])
self._log("disposition", decision)
return decision
elif action["type"] in ("exam", "lab", "imaging"):
result = self.ehr.order_exam(action["code"])
# 同步拉取结果(如已就绪)
result.update(self.ehr.get_lab_result(result["order_id"]))
self._log(action["type"], result)
elif action["type"] == "drug":
rx = self.ehr.prescribe(
action["atc_code"], action["dose"], action["route"]
)
self._log("drug", rx)
# 安全护栏:超长循环强制终止
if step >= max_steps - 1:
self._log("timeout", {"patient": patient_id})
return {"decision": "escalate_to_human"}
return {"decision": "incomplete"}
def _log(self, action_type: str, payload: Dict) -> None:
# 审计轨迹:每一次工具调用都应留痕
self.trace.append({
"ts": "iso8601",
"action": action_type,
"payload": payload,
})
# 使用示例
ehr = EHRClient(base_url="https://ehr-sandbox.hospital.local")
ehr.login(doctor_id="mira_01")
agent = MIRAAgent(llm=your_llm_client, ehr=ehr)
result = agent.run(patient_id="P-2026-06-29-001")
print(json.dumps(result, ensure_ascii=False, indent=2))生产环境必须配套的几个安全护栏:
- 1. 审计轨迹:
self.trace不应只存内存,需实时落库。监管要求每次医嘱生成都可追溯。 - 2. 人类否决权:所有"高严重度"动作(手术、化疗药物)必须人工复核。
- 3. 编码校验:LLM 输出的
code/atc_code必须经 FHIR 术语服务器二次校验,防止幻觉。 - 4. 超时熔断:
max_steps默认 20,超出强制转人工。 - 5. 人机对话日志:患者代理的回答必须可回放,便于事后追责。
九、局限与争议:为什么这还不是终点
研究团队没有回避 MIRA 的局限。客观讲,至少有四类问题需要在下一阶段解决。
第一,仿真与真实的差距。 所有患者互动都来自现病史文本模拟,真实急诊患者的表达更混乱,可能遗漏、误解、矛盾甚至无法沟通。真实诊室中还有眼神、姿态、犹豫、不愿透露的隐私信息,这些都不在 HPI 文本里。
第二,数据污染风险。 MIMIC-IV 是公开给合规研究者使用的数据集,不能完全排除训练数据重叠的可能。如果 MIRA 训练过程中接触过 MIMIC-IV 的某些病例,性能就可能偏高。这要求团队在评测时严格做"未参与训练"的数据切分。
第三,沙盒环境未对接真实系统。 真实医院有跨系统数据断裂、医患沟通、突发变化、伦理审查、责任划分等问题,沙盒环境无法复刻这些。
第四,资源与公平的隐性偏差。 MIRA 在结构化病种上表现强,在非典型表现上表现弱。这意味着在罕见病、复杂共病、老年或儿童患者群体中,AI 的可靠性可能下降。如果这类工具被优先部署到资源紧张的基层,反而可能放大医疗不平等。
十、下一阶段的核心问题
MIRA 给出的不是终点,而是一个明确的信号:医疗 AI 正在从"回答医学问题"走向"参与医疗流程"。
这一步的临床价值很大,风险也同样真实。下一阶段的关键,已经不是问 AI 能不能像医生,而是问医疗系统能否被设计得足够安全、透明、可控,让 AI 的能力真正服务于患者和医生。
具体到工程层面,至少有三个问题需要在落地前明确:
- • 谁授权 AI 行动,谁监督 AI 行动,又由谁为 AI 的行动负责。 这是医疗 AI 与一般 AI 代理最本质的区别——出错代价是人的生命。
- • 哪些医嘱可以自动草拟,哪些必须人工确认。 MIRA 的"保守性过度入院"是模型偏好的体现,但系统设计者必须把规则写进前置约束,而不是寄希望于模型的"自觉"。
- • 模型每一次调用检查、调整药物、建议入院,是否都应留下可审计轨迹。 这是事后追责、临床研究、模型迭代的基础设施。第八节代码示例中的
self.trace看似简单,实际是整个系统可信度的基石。
如果说过去的医疗 AI 像一本会说话的教科书,那么 MIRA 更像一个会操作电子病历的实习助手。 它能做很多事,也会犯错;它的价值不在于取代临床判断,而在于把医生从机械性流程中部分解放出来,同时把决策过程变得更可追踪、更结构化。
当 AI 开始拥有"行动能力",医院需要重新设计权限、监督和责任边界。这不是技术问题,是治理问题。
夜雨聆风