拆解 SciForge 架构:让科研 Agent 从"一次性对话"变成可审计、可交接的研究流水线

Codex、Claude Code 这类 Agent 已经很能打了:检索论文、写代码、调工具都不在话下。但真实科研不是一次对话能结束的——实验要迭代数天,数据和代码不断更新,结论还得能回溯到具体某版参数。任务一长,Agent 到底在解决什么问题?用的哪版数据?结论靠什么支撑?下一个人接手时要不要重读全部聊天记录?

SciForge 就是冲着这些痛点来的:让 Agent 多承担执行,让研究过程保持可继续、可检查、可交接。项目已开源(GitHub: AGI4Sci/SciForge),有完整论文和 8 个端到端真实案例,适合做 Agent 工程的同学直接参考。这篇拆一下它的核心设计。

一、核心思路:把"研究"和"一次对话"解耦

多数 Agent 任务以 prompt 为中心,目标、约束、评价方式全存在对话里。会话一长、环境一换、人一交接,上下文就废了。

SciForge 的做法是把研究目标与具体对话分开保存:一个项目显式记录研究问题、对象范围、评价指标、停止条件和发布要求;Agent 每跑一次,系统保留对应的输入、产物和判断。后续研究者直接看项目视图就能知道:目标是什么、哪些结果已确认、哪些只是候选。

二、关键设计 1:科学文件不是"上传的附件"

科研文件带科学语义。说"讨论 PDB 文件"时,实际可能指某条链的某个残基;看一张图时,要知道它出自哪版数据和脚本。如果这些只存在于临时对话,模型很容易把不同版本、不同对象混在一起。

SciForge 用结构化科学对象引用在工作区、专业查看器和对话之间传递文件身份,引用里包含:

// 概念示意:科学对象引用的字段结构
{
  "file_path": "structures/9VMR.pdb",   // 文件路径
  "content_hash": "sha256:ab12...",      // 内容哈希,防版本混淆
  "version": "v3",                       // 当前版本
  "selection": {                         // 查看器中的选区
    "model": 0,
    "chain": "A",
    "residue": 86
  }
}

蛋白序列、蛋白结构、小分子会先经过 Scientific Model Router 调用领域模型生成结构化观察,再交给主 Agent 结合研究问题解释;单细胞转录组则走 Cell2Sentence(C2S)worker。这样"看图说话"就变成了"有对象、有位置、有来源的科学问答"。

三、关键设计 2:Evidence DAG + Project DAG 两级证据链

光有完整日志不够,研究者要的是结论→证据的可回溯路径。SciForge 用两层 DAG 组织:

  • 会话级 Evidence DAG:记录一次 Agent session 里的来源、推理、运行、产物和研究主张,以及它们之间的支持、冲突、推导关系。
  • 项目级 Project DAG:汇集多个会话提交的证据快照,把长期目标、跨会话结论、分歧和决定放同一视图,但不改写原始证据,只保留回溯路径。
// 概念示意:Evidence DAG 节点间的关系类型
source --supports--> claim
run   --produces--> artifact
claim --conflicts--> claim
claim --derives_from--> run

// 案例实测规模
// 单会话:32 节点 / 21 条边,定位到一处被高估且虚构的 PDB 引用
// 项目级:4 个 session / 25 条 evidence / 16 项主张 → 45 节点 / 48 条关系

证据审计在后台跑,不打断每次操作,只提示缺依据的主张、矛盾结论和弱来源,最终决定权在人。

四、关键设计 3:人机分工——在检查点暂停,而不是事事审批

SciForge 支持按任务设自主程度:普通探索自动推进;风险高的任务在指定检查点暂停;高影响操作等明确确认。研究者主要在 4 个环节介入:

  1. 确认问题范围、评价指标和停止条件
  2. 判断关键科学对象和证据是否被正确理解
  3. 处理冲突、异常和证据缺口
  4. 决定结果进入下一轮实验还是对外发布

系统分别记录"候选结果"和"已确认发布状态",连同 Agent 建议、依据和人工决定一起保留——这就是可审计性的来源。

五、8 个真实案例,最有参考价值的 3 个

  • ESMC-6B ContactProbe 超参数搜索:Agent 在固定 7 分钟训练预算下迭代 24 次,只能改 train.py,不能动特征提取和评估逻辑;每次运行记录 Git 版本、指标和 KEEP/DISCARD/CRASH 状态。这就是"约束型自动调参"的标准范式。
  • MCFST 空间转录组论文复现:Agent 从论文提取模型、超参数和评价协议,在 Visium 数据集复跑出 ARI 0.7007(论文报 0.693),并且如实标注了 25 次运行 vs 脚本记录 5 次的口径不一致——不粉饰,这才是可信复现。
  • AI 引导的蛋白质设计:RFdiffusion 出 3 个骨架 → ProteinMPNN 生成 15 条序列 → Boltz-2 + ESMFold 结构评估 → 选 2 条重点候选,且保留了报告中的来源错配记录。完整链路可审计。

六、实践建议

  • 想直接上手:下载 release 版(github.com/AGI4Sci/SciForge/releases),先跑一遍论文里的复现案例,看 Evidence DAG 怎么生成。
  • 学架构:重点读论文(仓库 gui 分支 paper/sciforge-report.pdf),对照图 1/图 2 理解两级 DAG 的数据模型。
  • 落地到自己的 Agent 工程:哪怕不做科研,把"目标与对话解耦 + 结构化对象引用 + 结论溯源"这三板斧搬进你的任务系统,长任务可维护性会明显提升。
  • 有真实科研需求可以直接提交:agi4sci.github.io/SciForge/submit/,会以公开 GitHub Issue 形式跟踪。

资源链接

滚动至顶部