GenoMAS 是一个极简但功能强大的多智能体框架,用于稳健地自动化科学分析工作流,尤其是基因表达分析。它主要由两部分组成:通用多智能体框架,以及面向基因表达数据分析的专门实现。
【用途】 GenoMAS 面向科学发现场景,通过代码驱动的方式自动完成多步分析任务。其专门实现聚焦于转录组数据分析,能够从 GEO 和 TCGA 获取数据,目标是识别与性状显著相关的基因,同时考虑混杂因素的影响。该框架也适合希望构建生产级智能体系统的研究者,用于实验和定制领域智能体。
【主要能力】
- 多智能体框架:提供类型化消息机制,用于代码驱动分析中的智能体通信;采用笔记本风格工作流,智能体可以规划、编写代码、执行、调试和回溯多步任务;支持自定义智能体角色、指南、工具和动作单元。
- 设计理念:在传统工作流的可控性与自主智能体的灵活性之间取得平衡,提供足够但不过度的封装,便于智能体实验,并为生产级智能体系统构建可靠基础。
- GenoMAS 实现:专门用于自动化基因表达数据分析,分析来自 GEO 和 TCGA 的转录组数据集,识别与性状相关的重要基因并考虑混杂因素。在 GenoTEX 基准上取得 60.38% 的 F1 分数,显著优于开放域智能体和通用生物医学智能体,并识别出具有生物学意义的基因-性状关联,其中高置信度关联得到文献支持,还有值得进一步研究的新发现。
【使用方式】
- 数据准备:实验使用公开的 GenoTEX 基准,需要从 Google Drive 下载约 42 GB 输入数据,并保存到同一父文件夹下,同时验证数据完整性。
- 环境搭建:创建 Python 3.10 的 conda 环境并安装所需包。
- 配置 API 密钥:在项目根目录创建 .env 文件,至少填写一个所选提供商的 API 密钥,代码支持多个提供商并可使用不同密钥进行负载均衡。对于 OpenAI 模型,还需要组织 ID。
- 运行实验:提供了实验版本标识、LLM 模型名称、API 密钥索引、扩展思考模式、并行化策略、并发工作数、数据根目录等命令行参数。可以按智能体角色指定不同模型和 API 索引,例如代码审查智能体、领域专家智能体、数据工程师智能体、统计学家智能体以及规划机制,覆盖全局的模型和 API 设置。
- 动作单元提示词:可以从指南生成动作单元提示词,允许在使用前手动编辑,也可以自动生成并使用,适合自动化流水线。
- 完整基准运行:覆盖 GenoTEX 中全部 1,384 个(性状,条件)对,预计需要 3-5 天连续执行,成本 300 美元以上,具体因模型选择和 API 定价而异。
- 小规模测试:可以只下载少量队列数据集,使用 --quick-test 标志跳过统计分析,仅关注预处理,以评估预处理质量,无需等待回归分析。
- 本地部署:支持使用 Ollama 库进行本地部署,也支持通过 API 使用,默认使用 Novita。
【适用场景】 适用于基因表达数据分析、转录组数据研究、科学工作流自动化、多智能体系统实验,以及需要将传统工作流可控性与自主智能体灵活性结合的科研与工程场景。
【限制与注意事项】 完整基准运行耗时较长且成本较高。本地模型部署需要足够的 GPU 内存,否则可能出现 CUDA OOM 或延迟增加,例如 DeepSeek-R1 671B 需要多块高端 GPU,测试可使用 Llama 3.1 8B 或 Llama 3.3 70B 等较小模型。由于基因组数据复杂,实验要求最大输入长度为 20K tokens。部分模型或 API 端点可能延迟较长,系统会根据模型名称自动调整超时值,但无法覆盖所有情况,必要时可调整超时缩放器或任务级超时参数。系统实现了检查点恢复逻辑,实验中断后重新运行相同命令可从断点继续,未完成任务的输出会被自动清除。日志保存在 ./output/log_{version}.txt,便于观察智能体行为和诊断系统。若模型名称不正确,错误信息会列出所有支持的模型。该项目采用 MIT 许可证。