MedAgent Forge

NSCLC 临床试验入组审核的参考实现:逐条标准给出 met/not_met/unknown/conflict 判断,每条都带证据引用和人工复核。

FastAPILangGraphFHIR R4PydanticReactFluent UI
MedAgent Forge 页面截图

要解决的问题

临床试验匹配的难点不在于让模型挑一个试验出来。协议本身有版本,患者的证据散在几年的病历、化验、影像和基因报告里,最后还得逐条讲清楚每一项入排标准到底是满足、不满足、信息不够,还是几份证据互相打架。

MedAgent Forge 拿非小细胞肺癌(NSCLC)的入组审核当第一个完整闭环来做。它不诊断,也不替医生下结论,处理的是检索和证据整理这一段最耗时间的活,把它变成能复核、能回溯的流程。

系统怎样工作

  1. 导入公开试验协议,把入排标准拆成结构化条件树。解析器写得偏保守,碰到可疑内容走 prompt-injection 隔离,宁可标成 unknown 也不猜。
  2. 从合成 FHIR bundle、临床记录、实验室、DICOM metadata、病理和基因报告拼出患者时间线,再挂上带查询出处的公开试验快照。
  3. 检索候选试验,每条标准输出 met / not_met / unknown / conflict 四态,并附上具体的证据 ID。
  4. 五个角色分别管接入、检索、判断、安全验证和治理,跑在一张 LangGraph StateGraph 上,带 checkpoint 和人工中断恢复。
  5. 人工逐条复核之后,模型、工具、数据、恢复事件和审核版本一起写进审计轨迹。

多 Agent 拆到几个才合理

数据许可、模型适配、工具合同、权限策略、故障恢复、执行型评测,这些都放在同一个仓库里,改一处能马上看到别处有没有炸。拆成几个 Agent 也是跑出来的:只有当权限确实需要隔离、任务能真正并行,或者需要一个独立角色去验证另一个角色的输出时,这个拆分才留下来。

配套教材《从零构建 MedAgent Forge》按真实开发顺序更新。还没跑通的训练和评测不会提前写成结论。

已完成的工程证据

能力 已执行证据 解释边界
端到端流程 12 个合成验收场景全部通过 不是临床试验或真实世界验证
Agent Runtime 五角色 LangGraph、checkpoint、人工暂停与恢复、故障恢复 公开版只读,不执行真实业务写入
多模态数据 FHIR、临床记录、DICOM metadata、病理、基因、实验室适配器 患者数据全部为项目合成样例
公开研究数据 5 条 ClinicalTrials.gov NSCLC 试验快照,保留查询和时间 公开注册元数据,不含患者信息
后训练 CPT、DAPT、SFT、LoRA、QLoRA、DPO、GRPO/RLVR 完成 tiny CPU 训练并保存 checkpoint 不是 MedGemma 微调,也不代表医疗性能
安全评测 6 项边界红队、2 项消融、模型回归门 不是渗透测试或合规认证
可复现性 34 个自动化测试、数据哈希、固定种子、硬件、结果 JSON 与完整报告 Docker API/Web 镜像、只读启动和 HTTP 健康检查均通过

MedAgent Forge 模型实验工作台

六组可复现 Demo

六个视频都是仓库里的 Playwright 脚本对着真实工作台录的,没有后期,也不是概念动画。跑一次 npm run capture:demos 就能重新生成同一组素材。

01 病例审核工作台
02 逐标准证据与冲突筛选
03 tiny training 与 MedGemma 边界
04 红队、消融与发布门
05 审计轨迹与检查点重放
06 手机端审核流程

六篇公众号连载

同一套东西还写成了六篇公众号长文,从问题边界一路写到生产验收。它们和 24 章教材共用同一份源码与实验结果,没有另做一套复现不了的案例。可在本站文章栏目连续阅读。

Model Lab 与 Evaluations 页面显示什么

Model Lab 直接读实验生成的 JSON,参数量、随机种子、设备、训练前后的指标和解释边界都摆在同一屏上。MedGemma 那一栏写着“未运行、未下载权重”,因为确实没跑,写别的就是骗人。Evaluations 页面是 12 个执行型场景、6 项边界检查和 2 项消融。Audit Log 能重放合成检查点,被策略挡掉的写操作重放之后照样被挡。

MedAgent Forge 评测与安全发布门

公开边界

  • 患者数据全是项目自己合成的,适配器只接许可允许的公开数据,仓库里没有真实病历。
  • 默认只读,写操作必须过策略层加人工审批。
  • 不宣称任何临床有效性,tiny CPU 上的 smoke test 就是 smoke test,不会包装成完整训练结果。
  • 网站放的是代码、截图、视频和评测报告,不会长期托管一个对外的医疗推理服务。