中文EN

dsh-science

workflow已测通过npmMIT

面向 DSH 的 Claude Science 式科研工作台:ReAct 研究循环引擎(research_* 工具)、带溯源的版本化工件(artifact_* 工具)与面向基因组/病原体/生物信息的 10 个科研技能。

下载量 / Downloads
1,298
依赖体积 / node_modules
0.95 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-science

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-science

![npm version](https://www.npmjs.com/package/dsh-science)

![license](LICENSE)

![node](package.json)

![dsh-plugin topic](https://github.com/topics/dsh-plugin)

面向 DeepSeek Harness 的 Claude Science 式科研工作台 —— 面向基因组 / 病原体 / 人类健康 / 生物信息项目。

一句话介绍:dsh-science —— 面向 DSH 的 Claude Science 式科研工作台:ReAct 研究循环引擎(research_ 工具)、带溯源的版本化工件(artifact_ 工具)、SSH 远程计算引擎(remote_* 工具,对应 Claude Science 的 Computer / Remote compute clusters),以及面向基因组/病原体/生物信息的 11 个科研技能。
  • ReAct 研究循环引擎 —— research_init / research_state / research_hypothesis / research_experiment / research_findings / research_phase / research_review / research_report,状态持久化在 research-manifest.json(提问 → 假设 → 实验 → 观察 → 分析 → 结论 → 下一问题)。
  • 版本化工件与溯源 —— artifact_save / artifact_list / artifact_show / artifact_diff / artifact_verify / artifact_deprecate / artifact_reproduce:结果存为 artifacts/<name>/v<N>/,附每文件 SHA-256、artifact.json 溯源(命令/输入/环境/envFile)与追加式 provenance.md。
  • 远程计算引擎(SSH / 集群) —— remote_host_add / remote_host_probe / remote_host_notes / remote_run / remote_status / remote_logs / remote_pull / remote_cancel 等 16 个工具:用 ~/.ssh/config 别名连接实验室工作站或 HPC 集群(零安装、零第三方依赖),工作站以 detached 进程、SLURM 走 sbatch 运行长时生信任务,断连不杀;提交前默认要求审批,且首次使用某主机需项目级授权(审批后写入本项目白名单);remote_status 批量监控并自动迁移状态(running→succeeded/failed/killed),结束后 remote_pull 拉回输出(超过阈值的大文件留在主机并记录路径)。
  • 远程主机配置 UI(bundle/profile 级) —— 设置面板新增「远程主机」页(对应 Claude Science 的 Settings > Compute > SSH hosts):主机列表/添加/探测/编辑/移除,以及各项目访问白名单与作业摘要。宿主侧 REST API(webServer 路由 /dsh-science/remote-hosts/*,engines/remote-hosts-ui.mjs)+ 客户端 bundle(client/remote-hosts-ui/,由 scripts/build-client-bundle.mjs 生成),与远程引擎共用同一套数据文件。需重启 web 进程生效(见 [docs/remote-hosts-ui.md](docs/remote-hosts-ui.md))。
  • 模型分档路由(Model Tier) —— 由配套 bundle [dsh-model-tier](packages/dsh-model-tier/) 提供:同一会话内自动把辅助请求(会话标题、压缩)与子任务分流到轻量档,主对话走默认档、复杂任务按规则升级到强档,各档位可指向不同 provider(如强档 GLM-5.3 / 主档 deepseek-v4-flash / 轻档 minimax-M3),对应 Claude Code 的 Opus/Sonnet/Haiku 分级策略;基于 DSH 原生 agent/request + llm/stream waterfall 扩展点,provider 未注册时自动 no-op。安装 dsh-science 自动携带,也可单独装到任意 profile(dsh plugin add dsh-model-tier)。
  • 11 个科研技能 —— research-loop、science-project-setup、artifact-provenance、scientific-reviewer、literature-connector、parallel-delegation、manuscript-writing、bioinformatics-toolkit、conda-environments、data-inventory、remote-compute。

四个引擎插件零第三方依赖(只用 Node 内置模块 + 系统 OpenSSH,共享 engines/core.mjs),注册标准 cordis 工具;配套的 dsh-model-tier 路由同样是零依赖。

既可作 profile bundle 安装(dsh plugin add),也可作 agent preset(「科学模式」)安装。

v0.2.0 新增:模型分档路由(配套 bundle dsh-model-tier)

对应 Claude Code 的 Opus/Sonnet/Haiku 分级策略:同一会话内,辅助请求(`purpose ∈

{session-title, compaction})与子任务(session.meta.origin === 'subagent'`)自动分流到

轻量档;主对话保持各自会话的模型选择(不干预);深链子任务(`delegationDepth ≥

subagentDepthStrong)与超长输入(escalateOnChars`,可选)升级到强档。还可选开启

LLM 前置分类器(routing.classify):每次用户提问 / 子任务派发前按复杂度分类

(执行 / 主力 / 深思)再路由。各档位为 {provider, model, reasoningEffort?},可跨

provider 配置。

以独立 bundle [dsh-model-tier](packages/dsh-model-tier/) 发布 —— dsh-science

依赖它并在自己的 cordis.patch.yml 里挂载,它也可以脱离 dsh-science 单独安装到任意

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
  • HOST 平面:挂在 profile bundle(cordis.patch.yml),非 agent preset;所有会话与子代理统一生效。
  • 安全护栏:tiers 未配置 → 惰性 no-op;目标 provider 未注册 → 不路由;轻档失败自动回退原路由(辅助功能不挂)。
  • 验证:node packages/dsh-model-tier/test/model-tier.test.mjs(路由决策矩阵单测,零依赖)+ bash packages/dsh-model-tier/scripts/test-model-tier.sh(E2E:轻档指向本地 mock LLM,断言标题请求真的被路由)。

v0.2.0 新增:远程计算(Remote Compute)

对应 Claude Science 的 Remote compute clusters / Computer 能力,工作机制对照其官方文档:

  • 主机注册与只读探测:remote_host_add 用 ~/.ssh/config 别名(或 user@host;ProxyJump 等由 OpenSSH 自动处理),可选覆盖 port/identityFile;注册即探测 CPU/内存/GPU/CUDA/conda/module/Apptainer/sbatch/scratch 目录/SLURM 分区(remote_host_probe 重探测)。主机注册表在 $DSH_HOME/remotes/hosts.json。
  • 作业提交:remote_run 把脚本与输入上传到 <scratch>/<jobId>/(默认 ~/dsh-scratch);工作站以 nohup+setsid detached 进程运行(断连不杀),SLURM 集群自动走 sbatch(可 --time 超时);默认超时 30 分钟;提交前默认经审批(等价于 Claude Science 的 "Run this job on <host>?" 卡)。
  • 监控与反应:remote_status 批量探测(ps / squeue+sacct / done+exitcode 标记)并自动迁移状态;remote_logs 尾随日志;remote_pull 拉回输出、写 pulled-manifest.json(>100MB 大文件留在主机并记录路径);remote_cancel 取消(进程组终止 / scancel)。作业注册表在 <项目根>/.dsh/remotes/jobs.json,跨会话持续。
  • 主机 Details 文档:remote_host_notes 维护每台主机的备注(环境激活方式、分区/账号、约定),模型提交作业前会参考。
  • 项目级访问白名单(允许访问的服务器列表,按 project 隔离):任何会连接主机的操作(注册探测 / probe / exec / run)默认都要求主机已在本项目白名单(.dsh/remotes/allowlist.json);首次使用弹审批,批准后按项目持久化(等价于 Claude Science 审批卡的 "This project" 作用域)。项目根按优先级探测 research-manifest.json(研究项目)→ .dsh(工作区)→ .git → 会话目录——同一工作区里的多个研究项目各自独立,授权不会跨项目泄漏(拿不到会话工作目录时授权路径 fail-closed)。remote_host_allowlist 审查、remote_host_revoke 撤销、remote_host_allow 显式授权(需审批);requireHostAccess: false 关闭(无人值守)。

v0.1.1 加固(鲁棒性更新)

  • 并发安全:manifest / 工件所有写操作经轻量文件锁(O_EXCL + 陈旧回收)串行 + 原子写(tmp+rename)——并行子代理不再互相覆盖 research-manifest.json / artifacts.json。
  • 结构化错误码:ERR_NOT_INIT / ERR_NOT_FOUND / ERR_VALIDATION / ERR_PATH / ERR_QUOTA / ERR_LOCK_TIMEOUT / ERR_IO,不再吞成无类型字符串。
  • 假设状态机(proposed → testing → supported/refuted/inconclusive)与阶段只前进(回退需配置 allowPhaseRewind)。
  • manifest ↔ 工件打通:research_state 实时合并工件索引;artifact_save 回写清单 artifacts[]。
  • **清单

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:3,最后更新 2026-08-18

链接

GitHub · Homepage · npm

同类插件