从问答到执行:Biomni 如何重构生物医学研究工作流

过去,大模型在生物医药领域更多被用来做文献总结、知识问答、机制解释和报告撰写 。但 Biomni 代表了另一种方向:它不再满足于"回答问题",而是试图进一步完成任务规划、工具调用、数据库访问、代码执行和结果整合

换句话说,Biomni 不是一个普通的生物医学聊天机器人,而是一个面向生物医学研究任务的 AI Agent 系统。它的核心意义在于:让大模型从"会说"走向"会做",从"生成答案"走向"执行科研流程"。

一、为什么生物医学需要 AI Agent?

生物医学研究天然是一个高知识密度、高工具依赖、高流程复杂度的领域。

一个看似简单的问题,例如:

某个基因是否适合作为治疗靶点?

背后往往涉及多类证据:

  • 这个基因是否与疾病相关?

  • 是否在目标组织或病灶细胞中表达?

  • 是否存在遗传学证据?

  • 是否参与关键通路?

  • 是否已有药物或抗体开发记录?

  • 是否存在安全性风险?

  • 是否有可成药结构?

  • 是否有临床失败或毒性案例?

过去,研究人员需要在 PubMed、UniProt、PDB、GEO、TCGA、Open Targets、ClinVar、DrugBank、ChEMBL 等资源之间频繁切换,还要使用不同的生物信息分析软件和脚本。

普通大模型可以帮助总结知识,但它通常不能真正完成数据库查询、代码运行和专业分析。

这就是 AI Agent 的价值所在。

它不只是生成一段回答,而是能够把一个复杂问题拆解为多个步骤,然后调用工具逐步完成。

可以这样理解:

大模型像一个会说话的专家,而 AI Agent 更像一个会查资料、会写代码、会调用工具、会整理结果的科研助理。

Biomni 正是这种方向的代表项目。

二、Biomni 是什么?

Biomni 是 Stanford SNAP 团队推出的一个通用生物医学 AI Agent。它的目标不是解决某一个单点任务,而是支持多个生物医学子领域中的复杂研究任务。

它可以被理解为一个由以下能力组成的智能体系统:

  • 大模型推理能力:理解用户意图、拆解任务、生成计划;

  • 检索增强规划能力:从工具说明、数据库、文献和协议中获取任务相关信息;

  • 工具调用能力:调用生物信息分析工具、数据库接口和专业软件;

  • 代码执行能力:根据任务动态生成并执行代码;

  • 结果整合能力:把工具结果、数据库证据和文献线索组织成可读结论。

因此,Biomni 的重点不只是"模型本身有多强",而是:

大模型能否被放进一个真实的生物医学行动环境中,去完成科研任务。

三、Biomni 的总体技术架构

Biomni 可以拆解为五层架构。

复制代码
用户问题
  ↓
大模型推理层
  ↓
任务规划与检索增强层
  ↓
工具 / 数据库 / 软件调用层
  ↓
代码执行层
  ↓
结果整合与科学解释层

1. 大模型推理层:理解问题和拆解任务

用户可能提出的问题并不是标准化命令,而是自然语言,例如:

帮我寻找某种疾病的潜在治疗靶点。

分析这个基因是否与免疫治疗耐药有关。

基于单细胞数据解释某类细胞群变化。

设计一个验证基因功能的实验方案。

这些问题背后涉及不同任务类型。大模型首先要判断:

  • 这是靶点发现任务?

  • 是文献调研任务?

  • 是组学分析任务?

  • 是实验设计任务?

  • 是药物再利用任务?

  • 是临床证据整理任务?

大模型在这里扮演"任务理解器"和"初步规划器"的角色。

2. 检索增强规划层:让任务规划有依据

普通大模型容易基于内部记忆直接生成答案,但生物医学任务不能只靠记忆。

Biomni 的一个重要思想是引入检索增强规划。也就是说,Agent 在执行任务前,需要先找到与任务相关的工具、数据库、文献、协议和分析方法。

例如用户问:

某个基因是否适合作为 ADC 靶点?

Agent 不能直接回答"适合"或"不适合",而应该规划出证据路径:

复制代码
表达谱证据
↓
肿瘤特异性
↓
细胞膜定位
↓
内吞能力
↓
正常组织毒性风险
↓
已有药物或抗体开发记录
↓
临床或临床前证据

这一步使 Biomni 从"语言生成"走向"证据组织"。

3. 工具与数据库调用层:让大模型拥有真实行动能力

Biomni 的关键不是单纯连接一个大模型,而是将大量生物医学工具、数据库和软件纳入统一的行动空间。

这类工具可能覆盖:

  • 基因和蛋白数据库查询;

  • 疾病和通路分析;

  • 药物和靶点关系分析;

  • 单细胞分析;

  • 组学数据处理;

  • 文献检索;

  • 实验方案设计;

  • 临床和表型信息整理。

因此,它的核心不只是"让模型懂生物医学",而是:

让模型能够使用生物医学工具。

这和传统 RAG 有很大区别。RAG 主要是"检索文本再回答",而 Biomni 更进一步,强调调用工具、执行代码和完成分析任务

4. 代码执行层:从答案生成到分析执行

很多生物医学任务不是检索几篇文章就能完成的,还需要真实计算。

例如:

  • 读取表达矩阵;

  • 做差异分析;

  • 进行富集分析;

  • 绘制图表;

  • 对候选基因排序;

  • 处理蛋白序列;

  • 整理结构预测结果。

Biomni 引入代码执行能力后,可以将用户的问题转化为可执行分析流程。

这一步非常关键:

没有代码执行,Agent 只是会解释;有了代码执行,Agent 才能参与真实分析。

5. 结果整合层:从工具输出到科学结论

工具运行之后,通常会产生大量中间结果,包括表格、日志、统计指标、图像、数据库返回值和文献摘要。

Agent 需要进一步完成结果整合:

  • 哪些结果支持结论?

  • 哪些结果存在冲突?

  • 哪些证据强,哪些证据弱?

  • 哪些结论只是推测?

  • 下一步应该如何验证?

因此,Biomni 的最终价值不是简单运行工具,而是把分散的结果组织为可解释、可检查、可继续验证的科学判断

四、Biomni 的核心概念:Biomedical Action Space

Biomni 最值得关注的概念之一,是 Biomedical Action Space,也就是"生物医学行动空间"。

传统生物医学工具生态非常碎片化:

  • 数据库分散;

  • API 不统一;

  • 软件安装复杂;

  • 分析流程不一致;

  • 文献中的实验协议难以复用;

  • 不同任务之间缺少统一调度机制。

Biomni 试图把这些分散能力组织起来,让 Agent 能够理解:

复制代码
当前任务是什么?
需要哪些数据?
应该调用哪些工具?
输入格式是什么?
输出结果如何解释?
下一步动作是什么?

这实际上是在为生物医学研究构建一种新的智能执行层。

一个简化的行动空间示意

复制代码
Biomedical Action Space
├── Knowledge Actions
│   ├── 文献检索
│   ├── 疾病知识查询
│   ├── 基因功能查询
│   └── 通路知识整理
│
├── Data Actions
│   ├── 表达数据读取
│   ├── 单细胞数据处理
│   ├── 临床表型整合
│   └── 数据清洗与标准化
│
├── Analysis Actions
│   ├── 差异分析
│   ├── 富集分析
│   ├── 聚类分析
│   ├── 网络分析
│   └── 候选排序
│
├── Design Actions
│   ├── 实验方案设计
│   ├── 靶点验证设计
│   ├── 药物再利用假设生成
│   └── 生物标志物筛选
│
└── Report Actions
    ├── 证据整合
    ├── 风险提示
    ├── 结论生成
    └── 下一步建议

这个结构说明,Biomni 不是简单堆叠工具,而是在尝试定义一组可被 Agent 调用的"标准科研动作"。

五、如何安装和使用 Biomni?

下面结合公开项目说明,给出一个简化版使用流程。实际使用时,需要以项目最新 README 为准。

1. 创建并激活运行环境

Biomni 官方说明中提到,其软件环境较大,提供了环境安装脚本。安装完成后,可以激活环境:

复制代码
conda activate biomni_e1

然后安装 Biomni 包:

复制代码
pip install biomni --upgrade

如果希望使用 GitHub 主分支的最新版本,可以使用:

复制代码
pip install git+https://github.com/snap-stanford/Biomni.git@main

2. 配置 .env

Biomni 需要访问大模型服务,因此需要配置 API Key。推荐使用 .env 文件管理配置。

复制代码
cp .env.example .env

然后编辑 .env

复制代码
# 至少配置一个大模型服务的 API Key
ANTHROPIC_API_KEY=your_anthropic_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
GROQ_API_KEY=your_groq_api_key_here

# 可选:指定模型来源
LLM_SOURCE=Anthropic

# 可选:Biomni 数据路径
BIOMNI_DATA_PATH=./data

# 可选:超时时间
BIOMNI_TIMEOUT_SECONDS=1200

这里要注意:

不要把包含 API Key 的 .env 文件提交到 Git 仓库。

建议在 .gitignore 中加入:

复制代码
.env
data/
outputs/

六、Biomni 的最小使用代码

Biomni 的核心 Agent 类是 A1。一个最简单的调用方式可以写成:

复制代码
from biomni.agent import A1

# 初始化 Biomni Agent
agent = A1()

# 提出一个生物医学研究问题
result = agent.go(
    "Find potential therapeutic targets for Alzheimer's disease and summarize the supporting evidence."
)

print(result)

这个例子体现了 Biomni 的基本使用方式:

复制代码
初始化 Agent
↓
输入自然语言研究问题
↓
Agent 自动规划任务
↓
调用工具或数据库
↓
执行分析
↓
返回结果

七、配置模型和运行参数

在企业或科研机构内部使用时,通常需要控制模型、超时时间、数据目录等参数。Biomni 提供了 default_config 进行配置。

复制代码
from biomni.config import default_config
from biomni.agent import A1

# 设置默认模型
default_config.llm = "gpt-4"

# 设置任务超时时间
default_config.timeout_seconds = 1200

# 创建 Agent
agent = A1()

response = agent.go(
    "Analyze whether GPA33 is a promising ADC target. Consider expression specificity, internalization, safety risks, and existing therapeutic development."
)

print(response)

这类写法适合放在正式脚本中,因为配置相对清晰。

使用环境变量配置

也可以通过 .env 设置:

复制代码
BIOMNI_LLM=gpt-4
BIOMNI_TIMEOUT_SECONDS=1200
BIOMNI_PATH=./data

然后在代码中直接创建 Agent:

复制代码
from biomni.agent import A1

agent = A1()

result = agent.go(
    "Evaluate HER2 bispecific ADC clinical progress and organize the result as a table."
)

print(result)

这种方式更适合部署和多人协作,因为配置和代码分离。

八、使用自定义或本地模型

如果有自己的模型服务,也可以配置自定义模型接口。

复制代码
from biomni.config import default_config
from biomni.agent import A1

# 使用自定义模型服务
default_config.source = "Custom"
default_config.base_url = "http://localhost:8000/v1"
default_config.api_key = "local_key"
default_config.llm = "local-llama-70b"

agent = A1()

answer = agent.go(
    "Summarize the biological function of EGFR and discuss its role in cancer therapy."
)

print(answer)

这对企业内部场景尤其重要。

因为在真实药企或科研机构中,很多数据不能直接发送到外部模型服务。因此,未来更合理的部署方式可能是:

复制代码
内部大模型
+
内部数据库
+
内部结构预测平台
+
内部文献知识库
+
内部权限和审计系统

Biomni 的架构思路可以为这种企业内部 Agent 建设提供参考。

九、封装一个可复用的 Biomni 任务脚本

如果我们希望把 Biomni 用于日常研究,可以把任务封装成脚本。例如创建一个 run_biomni_task.py

复制代码
from biomni.config import default_config
from biomni.agent import A1
from pathlib import Path
from datetime import datetime


def run_task(prompt: str, output_dir: str = "./outputs"):
    """
    Run a Biomni research task and save the result as a markdown file.
    """

    # 1. 配置运行参数
    default_config.timeout_seconds = 1200

    # 2. 创建输出目录
    output_path = Path(output_dir)
    output_path.mkdir(parents=True, exist_ok=True)

    # 3. 初始化 Biomni Agent
    agent = A1()

    # 4. 执行任务
    result = agent.go(prompt)

    # 5. 保存结果
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    report_file = output_path / f"biomni_report_{timestamp}.md"

    with open(report_file, "w", encoding="utf-8") as f:
        f.write("# Biomni Research Report\n\n")
        f.write("## User Prompt\n\n")
        f.write(prompt)
        f.write("\n\n## Agent Result\n\n")
        f.write(str(result))

    return report_file


if __name__ == "__main__":
    prompt = """
    Evaluate GPA33 as an ADC target.
    Please consider:
    1. Tumor expression specificity
    2. Normal tissue safety risk
    3. Internalization evidence
    4. Existing therapeutic programs
    5. Overall druggability
    """

    report = run_task(prompt)
    print(f"Report saved to: {report}")

运行方式:

复制代码
python run_biomni_task.py

这个脚本的价值在于:

  • 把任务输出保存为 Markdown;

  • 方便后续审阅;

  • 便于纳入项目目录管理;

  • 可以沉淀分析结果;

  • 适合企业内部做审计和复盘。

十、一个典型任务:靶点发现工作流

假设用户输入:

复制代码
请帮我寻找阿尔茨海默症中可能具有治疗潜力的新靶点。

Biomni 这类 Agent 的执行过程可能是:

复制代码
用户问题
  ↓
判断任务类型:疾病靶点发现
  ↓
拆解子任务:
  - 疾病机制理解
  - 候选基因收集
  - 表达数据分析
  - 通路富集分析
  - 药物可及性判断
  - 安全性风险判断
  ↓
调用工具:
  - 文献检索
  - 疾病数据库
  - 基因数据库
  - 表达数据分析工具
  - 通路分析工具
  ↓
执行代码:
  - 数据整理
  - 排序
  - 统计
  - 图表生成
  ↓
结果整合:
  - 候选靶点列表
  - 支持证据
  - 风险提示
  - 下一步验证建议

这个过程说明,Biomni 不只是"回答一个靶点名称",而是试图形成一个可解释的科研任务链

十一、Biomni 与普通 RAG 系统有什么区别?

很多人会把 Biomni 理解成一个增强版 RAG,但这种理解并不完整。

普通 RAG 的核心是:

复制代码
用户提问
↓
检索相关文档
↓
大模型基于文档生成回答

Biomni 的核心更接近:

复制代码
用户提出研究任务
↓
Agent 拆解任务
↓
检索工具、数据库、文献和协议
↓
选择合适动作
↓
调用工具或运行代码
↓
整合结果并输出结论

所以两者的差异在于:

对比项 普通 RAG Biomni
核心能力 检索文档并回答 规划任务并执行
输出依据 文本证据 文本 + 数据库 + 工具 + 代码结果
是否能调用工具 通常较弱 强调工具调用
是否能执行代码 通常不执行 强调代码执行
适用场景 问答、总结、知识库 科研分析、假设生成、实验设计

一句话概括:

RAG 解决"基于资料怎么回答",Biomni 试图解决"复杂科研任务怎么执行"。

十二、Biomni 与传统生信 Pipeline 有什么区别?

传统生信 pipeline 通常是固定流程,例如:

复制代码
输入 FASTQ
↓
质控
↓
比对
↓
定量
↓
差异分析
↓
富集分析

这种方式非常适合标准化任务,但灵活性有限。

Biomni 代表的是另一种范式:

复制代码
自然语言任务
↓
动态任务规划
↓
自动选择工具
↓
生成或执行代码
↓
整合结果

它的优势是灵活,能够处理开放式问题。

但它的风险也很明显:自动规划可能出错,工具选择可能不合理,代码生成可能存在 bug。

因此,Biomni 并不是要取代传统 pipeline,而是更适合成为传统工具链之上的智能调度层。

可以这样理解:

传统 pipeline 是固定生产线,Biomni 更像会根据任务临时组织工具和流程的科研助理。

十三、Biomni 对药物发现的意义

Biomni 对药物发现的价值主要体现在五个方面。

1. 降低复杂分析门槛

很多药物研发问题需要跨越文献、数据库、组学分析、结构信息和临床证据。

Biomni 通过自然语言入口,让研究人员不必从零开始查找每个数据库和工具。

2. 提高假设生成效率

药物发现早期非常依赖假设生成,例如:

  • 哪些靶点值得关注?

  • 哪些疾病机制可能被干预?

  • 哪些已有药物可以再利用?

  • 哪些患者亚群可能获益?

Biomni 可以帮助快速整理候选方向。

3. 促进数据、工具和知识统一调用

药物研发中最大的问题之一是信息割裂。

Biomni 的思路是把文献、数据库、分析软件和代码执行组织到一个统一 Agent 框架中。

这对企业内部研发平台很有启发。

4. 支持复杂研发任务的流程化沉淀

一个成熟的药企内部 Agent 不应该只回答问题,而应该沉淀标准流程。

例如 ADC 靶点评估可以流程化为:

复制代码
靶点输入
↓
肿瘤表达分析
↓
正常组织表达风险
↓
膜蛋白定位
↓
内吞证据
↓
抗体可获得性
↓
竞品管线
↓
安全性风险
↓
综合评分
↓
开发建议

Biomni 的技术路线说明,生物医药 Agent 的核心在于把这些任务变成可复用工作流。

5. 推动 AI 从"辅助写作"走向"辅助科研执行"

过去很多 AI 工具只能帮研究人员写摘要、润色文章、解释术语。

Biomni 的意义在于,它让 AI 进一步进入科研流程本身。

它不是替科学家做最终判断,而是帮助科学家更快完成证据收集、分析执行和假设整理。

十四、Biomni 的局限性与风险

虽然 Biomni 很有启发性,但不能被神化。

1. 工具调用结果不一定可靠

Agent 调用了工具,不代表结果一定正确。

如果输入数据质量差、参数设置错误、数据库版本过旧,输出结果仍然可能有问题。

2. 自动生成代码可能出错

代码执行是 Biomni 的重要能力,但大模型生成的代码可能存在:

  • 语法错误;

  • 逻辑错误;

  • 不合适的统计方法;

  • 错误的数据过滤;

  • 不完整的异常处理。

因此,重要分析必须由专业人员复核。

3. 生物医学结论需要实验验证

Agent 可以提出候选靶点、候选机制或实验设计建议,但这些都不能直接等同于真实结论。

生物医学研究最终仍然需要实验验证和临床证据。

4. 复杂任务容易出现错误传播

如果任务早期的候选筛选出错,后续所有分析都可能建立在错误基础上。

因此,Agent 系统必须保留中间结果和执行日志,支持人类检查。

5. 企业应用必须考虑数据安全和合规

在药企内部,项目资料、实验记录、序列数据和临床信息通常具有敏感性。

如果将 Biomni 类系统用于企业场景,必须考虑:

  • 权限控制;

  • 数据脱敏;

  • 日志审计;

  • 内外网隔离;

  • 模型调用边界;

  • 结果可追溯;

  • 合规审批。

十五、对企业内部生物医药 Agent 的启发

Biomni 对企业内部建设研发智能体有非常直接的启发。

一个企业内部的生物医药 Agent,可以借鉴如下结构:

复制代码
企业内部 Bio Agent
├── rules
│   ├── 数据安全规则
│   ├── 输出规范
│   ├── 审计规则
│   └── 结论边界
│
├── skills
│   ├── 抗体工程分析
│   ├── 结构预测
│   ├── 靶点评估
│   ├── 文献检索
│   ├── 序列分析
│   └── 可开发性评估
│
├── tools
│   ├── 内部数据库
│   ├── ELN / LIMS
│   ├── 结构预测平台
│   ├── 文献库
│   └── 项目管理系统
│
├── agent workflow
│   ├── 任务理解
│   ├── 路径规划
│   ├── 工具调用
│   ├── 结果验证
│   └── 报告生成
│
└── workspaces
    ├── 脚本
    ├── 日志
    ├── 中间结果
    └── 最终报告

这种结构和 Biomni 的思想是一致的:

真正有价值的不是简单接入一个大模型,而是把企业内部的数据、工具、流程和专业规则组织成可被 Agent 调用的能力体系。

十六、如果把 Biomni 思路迁移到抗体工程场景

以抗体工程为例,一个企业内部 Agent 可以这样设计:

复制代码
输入抗体序列
↓
序列合法性检查
↓
编号与 CDR 标注
↓
可开发性风险分析
↓
结构预测
↓
界面分析
↓
聚集风险分析
↓
人源化风险评估
↓
候选优化建议
↓
生成报告

对应的任务代码可以封装为:

复制代码
from pathlib import Path
from datetime import datetime


class AntibodyAgentWorkflow:
    def __init__(self, agent, output_dir="./outputs/antibody"):
        self.agent = agent
        self.output_dir = Path(output_dir)
        self.output_dir.mkdir(parents=True, exist_ok=True)

    def analyze(self, sequence: str):
        prompt = f"""
        Analyze the following antibody sequence for developability risks.

        Please evaluate:
        1. CDR regions
        2. Hydrophobic patches
        3. Aggregation risk
        4. Charge distribution
        5. Potential PTM liabilities
        6. Humanization-related concerns
        7. Suggestions for optimization

        Sequence:
        {sequence}
        """

        result = self.agent.go(prompt)
        return self.save_report(sequence, result)

    def save_report(self, sequence: str, result):
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        report_file = self.output_dir / f"antibody_report_{timestamp}.md"

        with open(report_file, "w", encoding="utf-8") as f:
            f.write("# Antibody Developability Report\n\n")
            f.write("## Input Sequence\n\n")
            f.write(sequence)
            f.write("\n\n## Analysis Result\n\n")
            f.write(str(result))

        return report_file

这段代码的意义不是展示某个固定功能,而是说明:

当 Agent 能力成熟后,企业可以把复杂研发任务封装成标准工作流。

十七、结语:Biomni 代表的是一种新科研入口

Biomni 的真正意义,不在于它已经能够替代科学家,而在于它展示了一种新的科研系统形态。

过去,生物医学 AI 系统更多围绕模型展开:

复制代码
模型能不能预测结构?
模型能不能生成序列?
模型能不能总结文献?
模型能不能回答问题?

而 Biomni 代表的问题是:

复制代码
AI 能不能围绕一个科研目标,
自动组织工具、数据、代码和证据,
协助研究人员完成复杂任务?

这是一种从模型中心 走向任务中心的变化。

未来的生物医药 AI 系统,很可能不再只是一个单一模型,而是由以下部分组成:

  • 大模型;

  • 专业工具;

  • 数据库;

  • 企业知识库;

  • 分析代码;

  • 标准工作流;

  • 安全规则;

  • 审计机制;

  • 人类专家反馈。

Biomni 的价值就在于,它让我们看到了这种未来形态的雏形。

它不是"AI 科学家已经替代人类"的故事,而是"AI 正在成为科研基础设施"的开始。

对于生物医药企业和科研机构来说,真正值得关注的不是照搬 Biomni,而是学习它背后的架构思想:

让大模型不只是会回答,而是能在规则约束下调用工具、执行任务、整合证据,并把结果交给科学家判断。

这可能才是生物医药 AI Agent 最重要的方向。

相关推荐
wangbing11251 小时前
MySQL的另类语法
数据库·mysql
超哥--1 小时前
B站视频内容智能分析系统(六):Text-to-SQL 结构化查询
数据库·sql·音视频
暗暗别做白日梦1 小时前
Redisson 和redis 实现延迟消息
数据库·redis·缓存
西凉的悲伤1 小时前
redis和数据库实现分布式锁
java·数据库·redis·分布式
zhougl9961 小时前
Database(数据库)和 Schema(模式)
数据库·oracle
专注API从业者1 小时前
告别手动翻页!基于淘宝商品接口 + Open Claw 实现自动化选品与实时监控(附完整 Python 代码)
大数据·运维·数据库·自动化
曹牧1 小时前
Oracle:xml转义
xml·数据库·oracle
湖南天硕国产SSD1 小时前
工业存储可靠性进阶:天硕工业固态硬盘动态温控与寿命优化技术实践
网络·数据库·算法·工业存储·天硕存储·工业固态硬盘
我星期八休息1 小时前
Linux系统编程— Mmap实现⽂件LRU缓存
linux·运维·服务器·数据库·mysql·缓存