评测组学智能体,不能只看最终答案
生物分析里的错误很安静
一个组学智能体跑完任务后,可能会交出一张图、一个基因列表和一段解释。页面看起来完整,语言也自信。
问题是,生物数据分析里的错误很少会像软件错误那样直接崩掉。归一化方法选错了,批次没有处理,样本表和表达矩阵错位,数据库里的符号约定理解反了,最后仍然可能生成一份很像样的报告。
这类错误麻烦的地方在于,它们会继续往下游走。一个看起来合理的差异基因列表,可能进入下一轮实验设计;一个方向搞反的 essentiality 结论,可能影响靶点判断;一个没有记录参数的 notebook,几周后很难被另一个人复现。
所以,评测组学智能体不能只问“最后答案对不对”。这个问题当然重要,但它不够。还要看它怎么读数据、怎么选方法、有没有留下中间结果、失败时到底失败在哪里。
这也是我们重新看 BixBench-Verified-50 的原因。分数只是入口,过程才是评测真正有用的部分。
这里的讨论只限于科研软件和评测结果。BixBench-Verified-50 与 ovagent-bench 都是研究任务,不是诊疗任务;文中提到的患者数据或临床队列,只指合法授权、去标识化后的研究数据分析场景,不涉及个人诊断、处方或治疗决策。
先评估 benchmark,再评估 agent
BixBench 是目前比较接近真实生物信息学工作的评测之一。它不是普通知识问答,而是要求智能体处理真实数据,再回答短形式的分析问题。
但生物信息学评测有一个天然麻烦:很多题并不存在唯一的计算路径。同一个差异分析任务,归一化、过滤阈值、软件版本、浮点精度都可能影响最终数字。一个系统发育任务里,中位数怎么取、距离矩阵怎么处理,也可能改变结果。
Phylo Bio 在 Evaluating AI Agents in Biology 里把这个问题讲得很清楚:不是所有失败都是 agent 的失败。大致可以分成两类。
一类是真正的能力缺口。智能体没有理解生物概念,或者选错了分析方法。这个应该算作 agent 的失败。
另一类是 benchmark 本身的问题。题目没有固定关键约定,参考答案不可复现,或者评分方式只接受一个表面字符串。这个时候,分数下降不一定说明 agent 不会做,而是说明题目本身没有给够信息。
BixBench-Verified-50 的价值在这里。它从原始 BixBench 中整理出 50 道经过复核的题,减少了一部分题面和答案噪音。它仍然不是完美答案,但比原始集合更适合用来观察智能体在真实分析任务上的表现。
OmicOS 的评测也从这个前提出发。我们不希望只拿一个最终分数出来宣传。更重要的是逐题看失败原因:哪些是 OmicOS 的真实缺口,哪些是题面约定没有固定,哪些只是软件实现细节带来的数值差异。
OmicOS 在 verified subset 上的结果
OmicOS 在 BixBench-Verified-50 上取得:
45 / 50 = 90.0%
放在 Phylo Bio 公布的 BixBench-Verified-50 对照榜单中:
| Agent | BixBench-Verified-50 | 后端模型 |
|---|---|---|
| Biomni Lab | 88.7% | Claude(闭源前沿模型) |
| OmicOS(本工作) | 90.0% | deepseek-v4-pro;架构不绑定模型 |
| Edison Analysis | 78.0% | Claude(前沿模型) |
| Claude Code (Opus 4.6) | 65.3% | Claude |
| OpenAI Agents SDK (GPT-5.2) | 61.3% | GPT-5.2 |
这个结果可以说明一件事:在这个 verified 子集上,OmicOS 已经能稳定完成大部分短形式生物信息学分析任务。
但它还不能说明全部。一个 90% 的数字不会告诉我们,5 个失败题里哪些是真错,哪些是题目约定不清;也不会告诉我们,系统是不是只靠某一个强模型撑起来。要回答这些问题,需要继续拆开看。
五个未通过题说明了什么
5 个未通过题里,1 个是明确的 OmicOS 能力缺口。其余 4 个主要来自题面没有固定的分析约定,或软件版本和数值边界带来的差异。
真实能力缺口DepMap essentiality 符号约定
题面约定问题PhyKIT、scipy、R spline、VCF 选择等 4 项
真实能力缺口出现在 bix-16-q1。题目要求找出表达量与 essentiality 的 Spearman 相关性最负的基因。标准答案是 CDKN1A,OmicOS 返回 CCND1。
原因很具体:OmicOS 直接使用 CRISPRGeneEffect 与表达量计算相关性,但在 DepMap 语境里,essentiality 通常对应 -CRISPRGeneEffect。方向理解反了,答案就会偏掉。这不是格式问题,也不是容差问题,而是领域约定没有被正确处理。
另外 4 个失败更接近题面约定问题。
bix-34-q2取决于 PhyKIT 对偶数个 pairwise distance 的中位数定义。OmicOS 按标准中位数得到 2.49;标准答案更接近某个 PhyKIT 版本取偏后中间值的结果 2.63。bix-45-q1位于 Mann-Whitney U p value 的极端尾部。OmicOS 与标准答案都远小于1e-50,科学结论一致,差异主要来自软件实现细节。bix-54-q7要求用 R 拟合 natural spline (df=4)。OmicOS 调用了 R,也选择了 AIC 最低的 Natural Spline;差异来自不同 R 版本下splines::ns()的 knot placement。bix-61-q5同时提供 FASTQ、BAM 和现成 VCF。OmicOS 使用现成 VCF,得到 Ts/Tv = 2.56;标准答案看起来来自重新 call variant,得到 2.68。
这些题不是为了替 OmicOS 找借口。恰恰相反,它们说明评测要能把不同类型的失败分开。
DepMap 这题应该变成系统修复项:以后看到这类字段时,要识别领域里的方向约定。PhyKIT、R 版本和 VCF 入口这几题,则提醒我们在 notebook 里留下更多上下文:软件版本、输入文件选择、关键参数和中间值都要可见。否则,最后的数字即使对了,也很难让别人接手。
换掉后端模型以后,结果还在吗
BixBench-Verified-50 给出了一个外部可比结果,但还有一个问题没有回答:OmicOS 的表现是不是依赖某一个后端模型?
这个问题对科研团队很实际。同一套分析流程,可能需要在云端 API、实验室已有额度、医院内网服务和本地开源模型之间切换。如果系统只适配一种模型,那么部署环境一变,能力也可能跟着消失。
为此,OmicVerse 构建了组学评测集 ovagent-bench v1.1。它包含 38 道任务,覆盖 scRNA 预处理、scRNA 工作流、空间转录组、bulk RNA-seq、velocity/trajectory、16S 微生物分析和 foundation model embedding。
评测方式很简单:固定同一个智能体循环和同一批任务,只替换后端模型。我们想看的是,接入 OmicVerse 生态之后,不同模型的组学分析能力是否都会上升。
结果如下:
| Model | Provider | 开源权重 | Baseline | + OmicVerse 生态 | 提升 |
|---|---|---|---|---|---|
| qwen-3B-a3b(3B 参数,本地部署) | Alibaba | ✓ | 44.7% | 78.9% | +34.2 pp |
| glm-5.1 | Zhipu | — | 67.1% | 87.7% | +20.6 pp |
| gpt-5.5 | OpenAI | — | 71.9% | 91.2% | +19.3 pp |
| deepseek-v4-pro | DeepSeek | ✓ | 71.1% | 89.5% | +18.4 pp |
| gemini-3.1-flash-lite | — | 62.7% | 79.0% | +16.2 pp | |
| deepseek-v4-flash | DeepSeek | ✓ | 73.7% | 86.8% | +13.2 pp |
| MiniMax-M2.7 | MiniMax | — | 77.2% | 79.8% | +2.6 pp |
| 面板均值 | 66.9% | 84.7% | +17.8 pp |
这里的 baseline 指同一个模型在没有接入 OmicVerse 生态时直接完成任务的结果。+ OmicVerse 生态 指模型进入 OmicOS 的任务循环,可以使用面向组学分析整理过的工具接口、函数说明和执行约束。
这组结果里,最值得注意的不是某一个模型的最高分,而是 7 个模型全部提升。面板均值从 66.9% 到 84.7%,本地 3B Qwen 从 44.7% 到 78.9%。
这不表示小模型已经等价于前沿模型。更准确地说,在一部分结构清晰、工具链明确的组学任务上,系统层可以降低模型之间的差距。模型负责理解问题和做判断,OmicVerse 生态负责把长尾 Python 函数、参数约束、数据结构和执行记录整理成更容易调用的对象。
这也是 OmicOS 设计里的关键点。它不应该只服务一个后端。科研团队可能会根据成本、合规、内网部署和复现实验要求切换模型。评测要看这种切换之后系统还能不能工作。
BixBench-Verified-50 上,OmicOS + deepseek-v4-pro 与 OmicOS + GPT-5.5 得到了相同结果。后续会继续发布更多后端对照。
对科研团队有用的不是一个分数
把 OmicOS 放回真实科研流程里,90% 不是最重要的东西。
组学分析通常不是一次性问答。研究者会先提出假设,再清洗数据、检查批次、选择模型、生成图表、回头改参数。中间任何一步丢了,最后结果都很难复核。
OmicOS 想解决的是这个问题:让智能体在完成任务的同时留下过程。输入数据是什么,调用了哪些函数,生成了哪些中间表,哪些判断来自统计结果,哪些判断来自文献或领域约定。
这对团队协作很重要。新成员接手时,不需要从聊天记录里猜发生了什么;结果进入组会、补充材料或内部报告时,也有路径可以回看。系统不能替研究者做最终判断,但它可以减少重复劳动和证据丢失。
仍然要谨慎
这次结果不能外推到所有生物医学任务。BixBench-Verified-50 是一个经过整理的 50 题子集,任务形式相对明确;真实项目里会有更多脏数据、缺失元信息和实验设计细节。
ovagent-bench 也主要衡量组学工具使用和分析流程,不衡量临床诊断能力。涉及患者来源数据、临床队列或药物线索时,系统输出只能作为研究证据整理的一部分,不能直接变成诊疗建议。
更合理的使用方式,是让 OmicOS 生成可追踪的 notebook 和候选解释,再由研究者检查数据来源、统计方法和生物学含义。
评分口径
这次评测尽量沿用 BixBench-Verified-50 的原始评分逻辑。只有在答案数学或语义上等价、但表达形式不同的情况下,才做有限容忍。
具体包括:
- 纯数字答案允许小范围误差。例如 DESeq2 / pydeseq2 在边界基因上可能产生不到 1% 的计数差异。
- 百分数和分数形式视为等价。例如
10.0和0.1可以表示同一个比例。 - 区间题扫描回答里的所有数字,而不是只看第一个数字。例如
30/41 (0.7317)中真正落入区间的是0.7317。 - 数值舍入不应被视为结论差异。例如
3.54%与3.5%表示同一个量级的结果。
类别、基因符号和离散标签仍要求精确匹配,除非标准答案本身列出了可接受表达。
注
[A] Agent-Readable Function Registries for the Long Tail of Scientific Python. 配套预印本。报告 ovagent-bench v1.1:38 题、7 个组学层(scRNA preprocessing、scRNA workflow、spatial transcriptomics、bulk RNA-seq、velocity/trajectory、16S microbiome、foundation-model embedding)。7 模型面板的 Pass@1 均值从 66.9% 提升到 84.7%(+17.8 pp);7/7 模型均提升,配对符号检验 p ≈ 0.008;最大绝对提升来自开源 3B Qwen(+34.2 pp)。