dsh-science:面向 DSH 的 Claude Science 式科研工作台

前言

在 DeepSeek Harness(DSH)里做基因组、病原体或生物信息相关项目,常见痛点是:研究过程散落在对话记录里,实验结果缺少版本与溯源,长时生信任务又需要连上实验室工作站或 HPC 集群。通用智能体插件往往只覆盖代码编辑或文档检索,难以把「提问—假设—实验—结论」这条科研循环,以及远程算力调度,串成可复现的工作流。

下面介绍社区插件 dsh-science(维护者 biociao)。它把 ReAct 研究循环、版本化工件溯源、SSH 远程计算和 11 个科研技能打包进 DSH,定位接近 Claude Science 的科研工作台,面向基因组 / 病原体 / 人类健康 / 生物信息场景。当前 GitHub 约 27 stars、2 forks;最新发布版本为 0.2.0,MIT 许可,要求 Node.js >= 18。

这是什么

dsh-science 是 DSH 生态下的科研向插件 bundle,既可作为 profile bundle 安装,也可通过 agent preset「科学模式」启用。

插件在仓库内提供四个零第三方依赖的引擎(Node 内置模块 + 系统 OpenSSH),注册标准 cordis 工具;配套的 dsh-model-tier 模型分档路由同样是零依赖,安装 dsh-science 时自动携带。核心解决三类问题:

  1. 把科研对话组织成可持久化的 ReAct 研究循环;
  2. 把实验结果存为带 SHA-256 与 provenance 的版本化工件;
  3. 通过 SSH 在远程工作站或 SLURM 集群上提交、监控、拉取长时生信作业。

核心功能

ReAct 研究循环引擎

提供 research_initresearch_stateresearch_hypothesisresearch_experimentresearch_findingsresearch_phaseresearch_reviewresearch_report 等工具,状态持久化在 research-manifest.json,按「提问 → 假设 → 实验 → 观察 → 分析 → 结论 → 下一问题」推进。假设状态机为 proposed → testing → supported / refuted / inconclusive,阶段默认只前进。

版本化工件与溯源

提供 artifact_saveartifact_listartifact_showartifact_diffartifact_verifyartifact_deprecateartifact_reproduce 等工具。每次保存的结果位于 artifacts/<name>/v<N>/,附带每文件 SHA-256、artifact.json(命令、输入、环境、envFile)以及追加式 provenance.md

远程计算引擎(SSH / HPC)

共 16 个 remote_* 工具,通过 ~/.ssh/config 别名连接实验室工作站或 HPC 集群,远端无需安装额外组件。

  • 主机注册remote_host_add 注册别名,remote_host_probe 探测 CPU、内存、GPU、CUDA、conda、SLURM 分区等;注册表位于 $DSH_HOME/remotes/hosts.json
  • 作业提交remote_run 将脚本与输入上传到 <scratch>/<jobId>/(默认 ~/dsh-scratch);工作站以 nohup+setsid detached 进程运行,SLURM 集群走 sbatch;默认超时 30 分钟,提交前默认要求审批。
  • 监控与回收remote_status 批量探测并自动迁移状态(running → succeeded / failed / killed);remote_logs 查看日志;remote_pull 拉回输出并写 pulled-manifest.json(超过 100 MB 的文件留在主机并记录路径);remote_cancel 取消作业。作业注册表位于 <项目根>/.dsh/remotes/jobs.json
  • 项目级白名单:首次连接某主机需项目级授权,批准后写入 .dsh/remotes/allowlist.json,按项目隔离。

远程主机配置 UI

在 DSH 设置面板新增「远程主机」页,对应 Claude Science 的 Settings > Compute > SSH hosts。宿主侧 REST API 路由为 /dsh-science/remote-hosts/*,客户端 bundle 与远程引擎共用同一套数据文件。新增引擎或修改引擎代码后需重启 web 进程生效。

模型分档路由(dsh-model-tier)

v0.2.0 起,由配套 bundle dsh-model-tier 提供跨 provider 的分档路由:辅助请求(会话标题、压缩)与子任务走轻量档,主对话保持各自会话的模型选择,深链子任务与超长输入可升级到强档。也可单独安装到任意 profile:

dsh plugin add dsh-model-tier

配置示例:

- id: model-tier
  name: dsh-model-tier
  config:
    tiers:
      strong: { provider: zai-coding-cn, model: glm-5.3 }
      default: { provider: deepseek-official, model: deepseek-v4-flash }
      light: { provider: opencode-go, model: minimax-m2.7 }
    routing:
      auxiliary: [session-title, compaction]
      subagents: light
      subagentDepthStrong: 3

未配置 tiers 或目标 provider 未注册时,路由自动 no-op,不影响主流程。

11 个科研技能

research-loop、science-project-setup、artifact-provenance、scientific-reviewer、literature-connector、parallel-delegation、manuscript-writing、bioinformatics-toolkit、conda-environments、data-inventory、remote-compute。技能可由项目根 .dsh/skills/ 自动发现,也可全机安装到 ~/.dsh/skills

安装与启用

DSH 生态遵循「一切皆插件」;社区目录 SkillHub 是独立站点,与 DeepSeek / 幻方无官方从属关系。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认插件以当前 dsh 进程权限运行。

方式 A:profile bundle(社区标准)

一条命令把研究循环、工件注册、远程计算、远程主机 UI 和模型分档路由插入 profile,该 profile 上所有 agent 均可使用 research_*artifact_*remote_* 工具。

dsh plugin --profile web add dsh-science

npm 未发布或需跟踪最新代码时,可直接从 GitHub 安装:

dsh plugin --profile web add "github:biociao/dsh-science"

安装后重启 profile(或刷新 Web GUI;新增引擎或改引擎代码需重启 profile)。

方式 B:agent preset(「科学模式」)

适合需要完整科研人格、按 agent 隔离的场景:

git clone https://github.com/biociao/dsh-science ~/.dsh/.agent-presets/science

或使用仓库内安装脚本:

bash scripts/install.sh

在 DSH Web 新建会话并选择 科学模式 preset 即可。

技能安装

bash scripts/install-skills.sh

技能安装到 ~/.dsh/skills(遵循 $DSH_HOME)。

典型用法

下面是一个可复现的首会话流程,摘自官方 README。

  1. 调用 research_init,创建 research-manifest.json 与项目骨架(experiments/literature/artifacts/analyses/figures/manuscript/reviews/data/envs/)。
  2. 每次会话先调用 research_state,研究循环状态跨会话持续。
  3. 跑研究循环:research_hypothesis(H1/H2/…)→ research_experiment(E01/…,创建 experiments/<id>/{design.md,log.md,code/,results/})→ 执行代码 → research_findings(追加 log.md、更新假设状态)→ 对值得引用或复现的结果调用 artifact_save
  4. 需要 GPU 或集群时:remote_host_add 注册主机 → remote_run 提交远程作业(需审批)→ 定期 remote_status 监控、remote_logs 查日志 → 结束后 remote_pull 拉回输出 → artifact_save 归档。
  5. 对关键论断:提取论断 → 评审子代理对照执行记录核查(见 scientific-reviewer 技能)→ research_review 归档到 reviews/R0n/report.md

远程计算细节见仓库文档 docs/remote-compute.md 与 remote-compute 技能。

适用场景与注意

适合谁:

  • 在 DSH 中做基因组、病原体、人类健康或生物信息项目的研究者;
  • 需要把假设、实验、结论结构化沉淀,而非仅保留对话记录的团队;
  • 已有 ~/.ssh/config 可连实验室工作站或 SLURM 集群,希望在智能体里直接提交与监控长时作业的用户。

使用注意:

  • 插件以当前 dsh 进程权限运行,remote_run 等操作会实际连接远程主机并提交作业,安装前应检查源码与许可证。
  • 远程作业提交与首次主机访问默认要求审批;大文件(> 100 MB)拉取时留在远端,仅记录路径。
  • bundle 与 preset 的选择:bundle 一条命令、profile 级共享工具;preset 提供完整「科学模式」体验并按 agent 隔离。profile 级人格配置在 cordis.patch.yml 中默认注释,需全 profile 应用时再取消注释。
  • 远程主机 UI 与新增引擎需重启 web 进程后生效。

结尾

dsh-science 把 ReAct 研究循环、工件溯源、SSH 远程计算和模型分档路由整合进 DSH,为基因组与生物信息场景提供可复现的科研工作台。若你已在用 DSH 做科研辅助,可从 profile bundle 安装起步,按项目需要逐步启用远程计算与技能。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜