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 安裝起步,按項目需要逐步啓用遠程計算與技能。

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

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

小夜