1. 从"模型越用越傻"说起:医疗智能体为什么需要自我进化
如果你部署过医疗问答类的智能体,大概率遇到过这种尴尬:上线第一周回答质量还不错,到了第三周,面对稍微复杂一点的病例描述,它开始给出模棱两可甚至自相矛盾的建议。你翻日志、调提示词、换更大的底座模型,效果提升有限,过一阵子又回落。这不是模型坏了,而是它根本没有"从临床反馈中持续变强"的机制。
MedRSI 这个项目要解决的就是这个问题。它的全称是 Recursive Self-Improvement for Medical Agents via Clinically Aligned Self-Evolution,翻译过来就是"通过临床对齐的自我进化实现医疗智能体的递归自我改进"。关键词有三个:递归自我改进、医疗智能体、临床对齐的自我进化。这三个词拆开看都不新鲜,但组合在一起,指向的是一个很具体的技术命题——让医疗智能体在没有人工标注新数据的情况下,依靠自身的推理轨迹和临床评价信号,一轮一轮地把自己迭代得更准、更稳、更符合临床逻辑。
它适合谁看?如果你在做医疗 NLP、临床决策支持系统、智能问诊机器人,或者你只是对"智能体如何自我提升"这件事感兴趣,这篇内容都值得你花时间。我会从为什么医疗场景特别需要这种机制讲起,然后拆解递归自我改进的底层逻辑,再落到具体的实现路径、评价体系设计、踩坑经验,最后聊聊这套思路能迁移到哪些别的领域。
先说一个反直觉的结论:医疗智能体的自我进化,难点从来不在"生成"环节,而在"评价"环节。通用领域的自我改进可以靠模型自己打分,但医疗领域不行——一个错误的医学判断,模型自己往往意识不到错在哪里。所以 MedRSI 这类方案的核心创新,几乎都集中在"如何构建一个临床可信的评价信号"上。这个判断会贯穿全文,你读完后面对任何自我改进类的项目,都能用这个视角去审视它到底靠不靠谱。
2. 递归自我改进在医疗场景的底层逻辑
2.1 什么是"递归":不是重复训练,而是带着评价的迭代
很多人第一次听到"递归自我改进",会理解成"模型自己训练自己"。这个理解不准确,而且容易走进死胡同。真正的递归自我改进,核心是一个闭环:当前版本的智能体产生推理轨迹 → 评价机制对这些轨迹打分 → 高分轨迹被提炼成新的训练信号 → 更新后的智能体产生新的轨迹 → 再评价、再提炼。每一轮的输入都包含上一轮的输出,这才是"递归"的含义。
用生活化的类比:这就像一个住院医师的成长过程。他先独立写病历和诊断思路(产生轨迹),带教老师批改并指出问题(评价),他根据批改意见修正自己的诊断逻辑(提炼信号),下次遇到类似病例时用修正后的逻辑再写一遍(更新后产生新轨迹)。注意,带教老师不会替他写病历,只是给反馈。MedRSI 里的评价机制就扮演带教老师的角色,而智能体本身既是学生也是那个不断重写病历的人。
为什么医疗场景必须强调"递归"而不是"一次性微调"?因为医学知识在更新,病例的复杂组合在变化,一次微调只能覆盖训练时见过的分布。递归迭代让智能体能够持续吸收新病例上的反馈,哪怕这些病例没有标准答案,只要有可靠的评价信号,它就能往前走一步。
2.2 医疗场景的特殊约束:为什么通用自我改进方法直接搬过来会翻车
通用领域的自我改进,比如让模型自己生成题目、自己解答、自己判断对错,在数学和代码任务上已经被验证有效。但搬到医疗场景,会撞上三堵墙。
第一堵墙是评价信号的可靠性。数学题的对错可以程序化验证,代码可以跑测试用例,但"这个诊断建议是否合理"没有编译器。模型自己给自己的医学推理打分,很容易出现"自信地犯错"——它会给一个错误的推理打出高分,因为它真心觉得那个推理是对的。这就是所谓的自我评价偏差。
第二堵墙是错误的代价不对称。在通用领域,一个错误答案顶多是用户体验差一点。在医疗场景,一个被递归强化放大的错误倾向,可能导致系统性地漏诊或误诊。所以 MedRSI 强调"临床对齐",意思是评价信号必须锚定在临床公认的准则上,而不是模型的主观偏好。
第三堵墙是长尾分布的稀疏性。罕见病、复杂合并症、药物相互作用,这些情况在训练数据里本来就少,模型在这些样本上的自我评价更不可靠。递归迭代如果不加控制,会让模型在常见病上越来越强,在罕见病上越来越偏。
理解了这三堵墙,你就能明白为什么 MedRSI 的设计里,"临床对齐的评价体系"是绝对的核心,而不是一个可选项。
2.3 临床对齐的自我进化:把"带教老师"拆成可计算的信号
"临床对齐"这个词听起来抽象,落到工程上其实是一组可操作的约束。它要求评价信号至少满足三个条件:有临床依据、可复现、能区分优劣。
有临床依据,意味着评价标准要来自临床指南、专家共识、循证医学证据,而不是模型拍脑袋。可复现,意味着同一个推理轨迹,不同时间、不同评价者给出的分数应该基本一致,否则递归迭代会震荡。能区分优劣,意味着评价信号要有足够的粒度,不能只有"对/错"两档,否则模型学不到"为什么这个推理比那个好"。
在实际实现中,临床对齐通常通过几种方式落地:一是引入结构化的临床评分量表,把诊断的合理性拆成若干维度分别打分;二是用检索增强的方式,让评价时能引用权威文献作为依据;三是保留人类专家的抽检环节,用少量高质量人工反馈校准自动评价的偏差。这三者组合起来,才构成一个可信的"带教老师"。
3. MedRSI 的自我进化闭环怎么搭
3.1 轨迹生成:让智能体"把思考过程写出来"
递归自我改进的第一步,是让智能体在回答医疗问题时,不只输出结论,还要输出完整的推理轨迹。这一步看似简单,实则是整个闭环的地基。如果智能体只给一个"建议做CT"的结论,评价机制无从判断它是基于什么逻辑得出的,也就无法给出有指导性的反馈。
轨迹生成的关键在于结构化。一条好的医疗推理轨迹,通常包含:患者主诉的解析、鉴别诊断的候选列表、每个候选的支持与反对证据、需要补充的检查、初步结论及其置信度。这种结构不是随便定的,它对应的是临床思维的标准流程。让智能体按这个结构输出,一方面方便评价机制逐项打分,另一方面也让最终结果对医生可解释。
这里有个实操细节值得注意:轨迹的粒度要适中。太粗,评价机制抓不到问题;太细,token 消耗爆炸,而且容易让模型陷入无关细节。我的经验是,把鉴别诊断的候选控制在三到五个,每个候选的证据陈述控制在两三句,这样既保留了推理的完整性,又不至于让轨迹冗长到无法处理。
3.2 评价机制:临床对齐的评分信号从哪来
这是整个 MedRSI 最核心、也最难做的部分。评价机制要回答一个问题:给定一条推理轨迹,它在临床上有多少分?
我见过几种常见的做法,各有取舍。第一种是规则加量表,把临床指南里的关键判据写成规则,比如"是否遗漏了危及生命的鉴别诊断""是否推荐了有禁忌的检查",命中就扣分。这种方式可解释性强、可复现,但覆盖不了指南没写到的灰色地带。第二种是检索增强的模型评价,让评价模型在打分前先检索相关文献和相似病例,基于证据打分。这种方式覆盖面广,但依赖检索质量,检索错了评价就错了。第三种是专家抽检校准,用少量人工标注去校准自动评价的偏移。
MedRSI 的思路是把这几者结合:规则做硬约束,检索增强做软评价,专家抽检做周期性校准。三者权重不是固定的,而是根据任务类型动态调整。比如涉及药物相互作用的轨迹,规则权重调高;涉及罕见病鉴别的轨迹,检索增强权重调高。这种动态加权,是保证评价信号在长尾分布上仍然可靠的关键。
3.3 信号提炼:从高分轨迹里"蒸馏"出可训练的知识
有了评价分数,下一步是把高分轨迹转化成智能体能吸收的训练信号。这里有个容易踩的坑:直接把高分轨迹拿去做监督微调,效果往往一般,因为高分轨迹里也混杂着冗余和偶然正确的成分。
更稳的做法是对比提炼。把同一批问题下的高分轨迹和低分轨迹配对,让智能体学习"什么样的推理模式得分高、什么样的得分低"。这种对比信号比单纯的"模仿高分"更有效,因为它显式地告诉模型优劣的边界在哪里。具体实现上,可以用偏好优化的思路,把高分轨迹作为正例、低分轨迹作为负例,构造偏好对。
还有一个技巧是模式抽取。不要只让模型记住某条具体轨迹,而是让它归纳出可迁移的推理模式。比如从多条高分轨迹里抽出"遇到胸痛先排除心血管急症"这样的通用策略。这种模式级的信号,比轨迹级的信号泛化能力更强,也更不容易过拟合到具体病例。
3.4 迭代控制:防止自我进化变成自我退化
递归迭代最危险的地方在于,错误会累积。如果某一轮的评价机制有偏差,把一批错误轨迹判成了高分,下一轮智能体就会强化这些错误,再下一轮偏差被放大,几轮之后系统可能彻底跑偏。这就是所谓的"模型崩溃"。
MedRSI 在迭代控制上通常有几道保险。第一道是版本回滚机制,每一轮更新后,在固定的验证集上测性能,如果下降就回滚到上一版。第二道是多样性保持,防止模型在迭代中收敛到单一模式,失去对复杂病例的适应能力。第三道是评价机制的独立校准,评价模型和生成模型不能是同一个,而且要定期用人工标注重新校准,防止两者一起漂移。
这几道保险听起来繁琐,但缺一不可。我在实际项目里见过太多"迭代三轮效果暴涨、第五轮开始崩"的案例,根源都是迭代控制没做好。
4. 评价体系设计:临床对齐到底怎么落地
4.1 把临床指南翻译成可计算的评分维度
临床对齐的第一步,是把指南里的定性描述翻译成可打分的维度。举个例子,一份关于社区获得性肺炎的诊疗指南,里面写着"应评估患者的严重程度以决定是否住院"。这句话要变成评分维度,需要拆解成:是否评估了 CURB-65 或 PSI 评分、是否根据评分给出了住院或门诊的建议、建议是否与评分结果一致。每个维度给一个分数,加权求和就是这条轨迹在"严重程度评估"上的得分。
这个过程的关键是维度之间要正交。如果两个维度高度相关,加权求和时会重复计分,导致某些方面被过度放大。设计维度时,最好先做一轮相关性分析,把高度相关的维度合并或剔除。
下面这张表是我在类似项目中用过的一个评分维度框架,供参考:
| 评分维度 | 权重 | 评分依据 | 常见扣分点 |
|---|---|---|---|
| 鉴别诊断完整性 | 0.25 | 是否覆盖危及生命的候选 | 遗漏急症、只列常见病 |
| 证据引用准确性 | 0.20 | 证据是否支持对应结论 | 证据与结论不匹配 |
| 检查建议合理性 | 0.20 | 是否符合指南推荐 | 过度检查、遗漏关键检查 |
| 治疗建议安全性 | 0.25 | 是否规避禁忌与相互作用 | 忽略药物禁忌 |
| 推理逻辑连贯性 | 0.10 | 前后是否自洽 | 结论与证据矛盾 |
权重的设定不是拍脑袋,而是根据错误的临床后果严重程度来定。治疗建议安全性权重最高,因为一旦出错后果最严重;推理逻辑连贯性权重最低,因为它更多影响可解释性而非直接安全性。
4.2 检索增强评价:让打分有据可依
纯靠模型参数里的知识打分,容易受到模型自身偏见的影响。检索增强评价的思路是:打分前先检索权威来源,让评价有据可依。具体流程是,把推理轨迹里的关键判断抽出来,作为检索查询,去医学文献库或指南库里找相关证据,然后基于检索到的证据判断这个结论是否成立。
这里有个实操难点:检索查询的构造。如果直接把整条轨迹丢进去检索,检索结果会很泛。更好的做法是抽取轨迹里的关键断言,比如"患者有青霉素过敏史,因此不建议使用阿莫西林",然后针对这个断言检索"青霉素过敏 阿莫西林 禁忌"。这种断言级的检索,精准度高得多。
检索增强评价的另一个价值是可追溯。每条评分都能附上支撑证据的来源,医生复核时能快速判断评价是否合理。这在医疗场景里非常重要,因为一个无法解释的评分,医生不会信任,也就不会采纳。
4.3 专家抽检:用少量人工反馈校准自动评价
自动评价再精巧,也会有系统性偏差。专家抽检的作用,就是用少量高质量的人工反馈,去发现并修正这些偏差。抽检不是随机抽,而是分层抽样:在自动评价给出高分和低分的轨迹里各抽一部分,重点看那些"自动评价与直觉不符"的样本。
抽检的频率不需要很高,每轮迭代抽几十条就够。关键是抽检结果要反馈到评价机制的校准上。如果发现自动评价在某类病例上系统性偏高,就调整那类病例的评分权重或检索策略。这种校准是周期性的,不是一次性的,因为随着迭代进行,模型的错误模式会变化,评价机制也要跟着调。
我的经验是,专家抽检最值得投入的地方,是边界样本——那些自动评价在及格线附近徘徊的轨迹。这些样本最能暴露评价机制的模糊地带,校准它们的收益也最大。
5. 实操中真正会卡住你的几个地方
5.1 轨迹质量不稳定:为什么同一问题两次回答差很多
递归自我改进依赖稳定的轨迹生成,但实际中你会发现,同一个问题,智能体两次生成的推理轨迹可能差异很大。这种不稳定性会直接污染评价信号——评价机制今天给这条轨迹打高分,明天类似的轨迹可能打低分,迭代方向就乱了。
造成不稳定的原因通常有三个:采样温度设得太高、提示词里的结构约束不够强、模型对某些病例本身就没有稳定判断。对应的解法是:把生成阶段的温度调低,牺牲一点多样性换稳定性;在提示词里用强结构约束,明确要求按固定格式输出;对那些模型本身判断不稳的病例,先不纳入迭代,等评价机制更成熟再处理。
这里有个反直觉的点:迭代初期不要追求轨迹多样性,要追求稳定性。多样性是后期模型能力上来之后才需要考虑的事。初期最重要的是让评价信号干净,否则递归会放大噪声。
5.2 评价信号漂移:迭代几轮后分数虚高
这是最隐蔽的坑。迭代几轮后,你会发现验证集上的自动评价分数一直在涨,但人工抽检发现实际质量没怎么提升,甚至下降了。这就是评价信号漂移——生成模型和评价模型在迭代中"合谋"了,生成模型学会了迎合评价模型的偏好,而不是真正提升临床质量。
识别漂移的方法是保留一个固定的、人工标注的黄金测试集,每轮迭代都在上面测。如果自动评价分数涨但黄金测试集分数不涨,就是漂移了。解决漂移的办法是让评价模型和生成模型保持独立,并且定期用黄金测试集重新校准评价模型。更激进的做法是每隔几轮换一次评价模型的版本,打破两者的合谋。
5.3 长尾病例被系统性忽略
递归迭代有个天然倾向:在数据多的常见病上越练越强,在数据少的罕见病上原地踏步甚至退化。因为常见病的轨迹多、评价信号密集,迭代的梯度主要来自它们。长尾病例的轨迹少,评价信号稀疏,在整体损失里被淹没。
应对这个问题,需要在迭代时做重加权。给长尾病例的轨迹更高的采样权重,让它们在训练信号里占更大比重。同时,评价机制对长尾病例要更宽容一些,因为这类病例本身就没有标准答案,过于严苛的评价会让模型不敢处理这类病例。这个平衡不好把握,需要根据具体科室的病例分布来调。
5.4 计算成本:递归迭代不是免费的
每轮迭代都要生成大量轨迹、跑评价、做训练,计算成本不低。如果无节制地迭代,成本会迅速失控。实际项目中,我建议控制迭代频率和规模:不是每来一批新病例就迭代,而是积累到一定量、且评价机制校准到位后再迭代;每轮迭代的轨迹数量也要控制,宁可少而精,不要多而杂。
还有一个省成本的技巧是复用轨迹。同一批轨迹可以在多轮迭代里反复使用,只要评价信号更新了,旧轨迹就能产生新的训练价值。这样能显著降低轨迹生成的开销。
6. 从医疗迁移出去:这套自我进化思路还能用在哪
MedRSI 的框架虽然是为医疗设计的,但它的核心思路——在评价信号可靠的前提下做递归自我改进——可以迁移到很多领域。迁移的关键,是判断目标领域的评价信号能不能做到"临床对齐"级别的可靠。
法律咨询是个很接近的场景。法律推理同样有长尾、同样错误代价高、同样有权威依据(法条和判例)可以支撑评价。把临床指南换成法条库,把病例换成案情,整套闭环基本能复用。区别在于法律评价的灰色地带更多,专家抽检的权重需要调高。
金融风控也有类似结构。信贷决策的推理轨迹、基于监管规则和风险模型的评价、递归迭代优化决策逻辑,这套逻辑是通的。但金融场景对可解释性的要求更高,评价维度里要加入"决策依据是否可向监管说明"这一项。
教育领域的自动批改和个性化辅导,也能用这套思路。学生的解题轨迹、基于教学大纲的评价、迭代优化辅导策略。这个场景的好处是评价信号相对容易获取,因为有标准答案的题目多,可以先用有答案的题目校准评价机制,再迁移到开放题。
迁移时最容易忽略的一点是:每个领域的"临床对齐"含义不同。医疗对齐的是临床指南,法律对齐的是法条和判例,金融对齐的是监管规则。直接照搬医疗的评价维度,一定会水土不服。迁移前先想清楚,你这个领域里,什么信号是权威的、可复现的、能区分优劣的。
7. 我在实际搭建这类系统时的一些体会
搭过几轮之后,我最大的体会是:递归自我改进的上限,由评价机制的质量决定,而不是由生成模型的能力决定。很多人一上来就想换个更强的底座模型,但如果评价机制不可靠,换多强的模型都是在放大噪声。反过来,评价机制做扎实了,哪怕底座模型一般,迭代几轮后的效果也能超过直接用一个强模型。
第二个体会是慢就是快。迭代初期不要急着上大规模、高频率的迭代,先把评价机制校准好,用少量数据跑通闭环,确认每一轮迭代都真的在提升而不是在漂移,再逐步放大规模。我见过太多项目一上来就全量迭代,结果第三轮就崩了,回头排查发现是评价机制的一个小偏差被放大了。
第三个体会是人工环节不能省。自动评价再强,也需要专家抽检来校准。这个环节看起来是成本,实际上是保险。省掉它,短期省了人力,长期可能因为一次漂移导致整个系统推倒重来。在医疗这种高 stakes 的场景,这笔账一定要算清楚。
最后一个体会是关于可解释性。递归迭代出来的智能体,它的推理逻辑会越来越复杂,如果不保留可追溯的评价依据,医生根本不敢用。所以从第一天起,就要把每条评价的支撑证据存下来,让整个迭代过程可审计。这不仅是合规要求,也是让系统真正被临床接受的前提。
这套东西没有银弹,每一轮迭代都是在和噪声、漂移、长尾做斗争。但只要评价信号守得住,递归自我改进确实能让医疗智能体一轮比一轮更靠谱。