🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

生物医学研究工具链 ZhuYanTech/dsh-biomni

DeepSeek Harness
ZhuYanTech18 天前有提交已提供中文文档扫描:含敏感能力

把 Biomni 函数、数据湖与生信工具接给智能体调用

29.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZhuYanTech/dsh-biomni
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · tool
暂无时间戳·判据 →
装得上吗[实装验证]—
静态安装检查有提示项,装前建议看一眼 README
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 18 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意
要求 Node:>=20(dsh 本身要求 Node ≥ 22.19)

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-biomni(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/22 21:40:06

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 14 条)
  • 发起网络请求
    src/api.ts:158
    return deps.fetch(names as string[], record?.acceptNonCommercial === true)
  • 读取本地文件
    src/artifacts.ts:61
    children = await readdir(directory, { withFileTypes: true })
  • 读取本地文件
    src/artifacts.ts:75
    info = await stat(full)
  • 读取本地文件
    src/artifacts.ts:90
    exists = (await stat(path)).isDirectory()
  • 读取本地文件
    src/artifacts.ts:124
    base = await realpath(resolve(root))
  • 读取本地文件
    src/artifacts.ts:132
    candidate = await realpath(resolve(base, name))
  • 读取本地文件
    src/artifacts.ts:140
    if (!(await stat(candidate)).isFile()) return undefined
  • 发起网络请求
    src/client/api.ts:42
    response = await fetch(`/biomni/api/${method}`, {
  • 读取本地文件
    src/python/paths.ts:22
    return candidates.find(candidate => existsSync(candidate)) ?? join(HERE, '..', 'python', fileName)
  • 发起网络请求
    src/python/tool.ts:96
    const frame = renderFrame(await worker.channel.request(args.code, signal))
  • 读取本地文件
    src/skills/static.ts:30
    return candidates.find(candidate => existsSync(join(candidate, 'biomni-workflow', 'SKILL.md')))
  • 读取本地文件
    src/skills/static.ts:81
    entries = readdirSync(directory)
  • 读取本地文件
    src/skills/static.ts:88
    if (!existsSync(path)) continue
  • 读取本地文件
    src/skills/static.ts:91
    source = readFileSync(path, 'utf8')
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-web-react@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-session@deepseek-ai/dsh-settings
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 调用Biomni函数
  • 接入数据湖
  • 连接生信工具

README

由 DeepSeek 最新模型翻译生成
dsh-biomni 把生物医学研究能力接进 DeepSeek Harness。 一个持久的 Python 解释器,Biomni 的 218 个研究函数、 76 个数据集的数据湖、113 个生信工具 —— 以 skill 的形式交给你的 agent,而且只承诺这台机器真的做得到的事。 English · 简体中文 · 更新日志 它防的是哪种失败 给 agent 一套生物医学工具库,它会以一种特别难查的方式出错。 它调用 query_pubmed。函数是存在的,但依赖从没装上,于是抛异常。agent 不会报告这个落差——它会默默手搓一个自己的 PubMed 客户端,然后把结果当作那个被验证过的工具的输出交给你。让它去访问一个根本没下载的数据湖,同样的事会发生在文件路径上:先编一个看着合理的路径,再编一个看着合理的结论。 dsh-biomni 只有一条规矩:绝不宣传这台机器给不出的东西。 你的 agent 看到的一切——每个函数、每个数据集、每个命令行工具——都是先检查你的真实环境之后生成的。缺的东西要么不出现,要么被点名,连同它缺什么。 你的 agent 会拿到什么 | 🐍 一个记得住事的解释器 | 每个会话一个进程。import、DataFrame、拟合好的模型都能从这次调用活到下次,agent 因此可以分小步推进,而不是每次重发一整个脚本。
展开完整文档(README 剩余 1 节)
dsh-biomni

把生物医学研究能力接进 DeepSeek Harness。

一个持久的 Python 解释器,Biomni 的 218 个研究函数、 76 个数据集的数据湖、113 个生信工具 —— 以 skill 的形式交给你的 agent,而且只承诺这台机器真的做得到的事。

English · 简体中文 · 更新日志

它防的是哪种失败

给 agent 一套生物医学工具库,它会以一种特别难查的方式出错。

它调用 query_pubmed。函数是存在的,但依赖从没装上,于是抛异常。agent 不会报告这个落差——它会默默手搓一个自己的 PubMed 客户端,然后把结果当作那个被验证过的工具的输出交给你。让它去访问一个根本没下载的数据湖,同样的事会发生在文件路径上:先编一个看着合理的路径,再编一个看着合理的结论。

dsh-biomni 只有一条规矩:绝不宣传这台机器给不出的东西。 你的 agent 看到的一切——每个函数、每个数据集、每个命令行工具——都是先检查你的真实环境之后生成的。缺的东西要么不出现,要么被点名,连同它缺什么。

你的 agent 会拿到什么

| 🐍 一个记得住事的解释器 | 每个会话一个进程。import、DataFrame、拟合好的模型都能从这次调用活到下次,agent 因此可以分小步推进,而不是每次重发一整个脚本。闲置半小时的解释器会被回收以释放内存——并且会明确告诉 agent,而不是让它自己撞上 NameError。 |
| 🧬 21 个研究函数 skill | Biomni 的生物医学库,每个模块一个 skill,带真实签名——参数类型、默认值,以及每个参数到底是什么意思。按需加载,所以 218 个函数占约 1.6k token 常驻,而不是 26k。(需要装 Biomni) |
| 🗄️ 一个数据湖 skill | 这台机器上真的下载了的数据集,带确切路径、体积和许可标记。能用本地数据就别绕一圈去查网。 |
| 🔧 一个软件 skill | 这台机器上真的装了的生信包和 CLI 工具——让 agent 去调 samtools,而不是自己重写一个。 |
| 🔍 一份诚实的环境报告 | /biomni 命令和设置页,如实告诉你什么能用、什么不能、以及装哪个包能修好——连价格一起报,151 MB 只换一个函数的依赖不会被写得像免费的。 |
| 📤 产出出口 | run_python 返回的是文本,而且有上限——图画不出来,真实的表会被截断。解释器的命名空间里绑好了 BIOMNI_OUT 输出目录;写进去的文件会按名字和大小回报给模型,并能在设置 → Biomni 里直接看:图就地显示,CSV 显示成表格,文本显示开头——也可以整份下载。 |
| 🧪 数据湖浏览器 | 设置 → Biomni 列出全部 76 个数据集及体积,标出哪些在盘上,按需一个个取。非商用数据集需要显式确认。 |

它是一个普通的 out-of-tree 插件,不 fork、也不改 harness 源码。

安装

1. 装插件

dsh plugin --profile web add dsh-biomni

就这一步。CLI 会读本包的 dsh.bundle.patch 声明,把 dsh-biomni 追加进你 profile 的 bundles,不需要手改 profile 文件。

从源码装(开发用)

git clone https://github.com/ZhuYanTech/dsh-biomni && cd dsh-biomni
bash scripts/install.sh web

这条路打出的 tarball 里 lib/ 是预构建好的,pnpm 不需要为它跑任何构建脚本。

2. 建一个装了 Biomni 的 Python 环境

可选,而且值得知道为什么。 数据湖和软件目录立刻就能用 —— 它们读的是随插件发布的一份清单,再对着你这台机器逐项核对。只有那 21 个工具模块 skill 需要 Biomni 本体,因为那些是真的要 import 的 Python。

git clone https://github.com/ZhuYanTech/dsh-biomni && cd dsh-biomni
bash scripts/setup-env.sh

脚本在你装了 uv 时优先用它——同一份解析,11 秒对 pip 的几分钟——没有就回退到 pip。然后它会跑一遍探针,Biomni 真的能 import 才算成功。这一步才是关键:一个建在 Python 3.9 上的环境、或者某个 wheel 悄悄装失败的环境,在你第一次调用工具之前和正常的一模一样。
最后它把要粘贴的设置连同路径一起打印出来。

加 --extras 装下面那四个可选包;给一个目录参数可以建到 .venv 以外的地方。

手动装,或者用容器

curl -sLO https://raw.githubusercontent.com/ZhuYanTech/dsh-biomni/main/python/requirements-biomni.lock.txt
python3.11 -m venv .venv # 需要 3.11+,macOS 自带的是 3.9 .venv/bin/pip install -r requirements-biomni.lock.txt

如果你宁愿运维配一次、而不是每个人自己建 venv,仓库里的 Dockerfile 把解释器打成镜像。它的活动部件更多——插件的 python/ 目录要挂进去,python 设置要指向一个在容器里执行的包装脚本——文件里写清了怎么接。CI 每次推送都会构建这个镜像并在里面跑探针,所以"能构建"是被检查过的,不是我说的。

实测:77 个包,806 MB,Biomni 的 312 个函数里 279 个可调用。

Biomni 只声明了三个依赖,实际需要的远不止,所以 requirements-biomni.txt 是读它源码整理出来的真实清单,逐条标注了每个包解锁什么。旁边的 .lock.txt 把所有传递依赖的版本钉死,两个人隔一周装也能得到同一个解释器。

有四个包被移出了 core 档,放在 requirements-biomni-extras.txt,因为实测它们的代价远超收益:

| | 独占体积 | 买到 |
| rdkit | 151 MB | 1 个函数 |
| cobra | 147 MB | 2 个函数 |
| scholarly | 119 MB(要驱动一个真浏览器) | 1 个函数 |
| statsmodels | 68 MB | 2 个函数 |

加起来 494 MB 换 7 个函数。需要那七个就装,别的什么都不变。探针会连价格一起报出来,而不是把它们当免费的建议给你。

3. 指向那个解释器

启动 dsh --profile web,打开 设置 → Biomni,把 Python 解释器填成 /abs/path/to/.venv/bin/python。改动立即生效。

也可以直接写进 $DSH_HOME/settings.yaml:

biomni:
python: /abs/path/to/.venv/bin/python # 第 2 步建的 venv dataPath: /abs/path/to/data # 可选:存放 biomni_data/ 的那一层 timeoutMs: 600000 idleTimeoutMs: 1800000 # 闲置 30 分钟回收解释器;0 = 不回收 guardShellPython: true

4. 看看你实际拿到了什么

/biomni 这个解释器能跑什么,缺什么、装什么能补上 /biomni-datasets 盘上有哪些数据、还能取哪些、各多大 /biomni-out 这次工作产出了什么

哪些模块能导入、哪些函数能调用、哪些数据集在盘上、哪些工具装了——以及每一项缺失对应装哪个包能修好。
和设置页是同一组数字,因为两边读的是同一份分析。

可选:生物医学人格

插件本身给所有 agent 提供解释器和 skill。如果你想让某一个 agent 被框定成生物医学研究者——开场先加载 workflow skill、遇到缺包如实上报而不是绕过去——装上随包附带的 preset:

pnpm run install:preset

需要知道的几件事

「能导入」和「能调用」是两个数字。 一个 Biomni 模块可以干净导入,它的函数照样可能在调用时抛异常,因为有些依赖是在函数体里才 import 的。dsh-biomni 把这两个数分开报,绝不平均成一个分数——一个「可用度 82%」恰好会盖住那个导致「编造结果」的落差,而那正是这个项目要防的事。

数据湖按单个数据集取。 76 个加起来 15.1 GB,而单个文件从 4 KB 的 assay 表到 6.2 GB 的结合数据库都有 —— 几乎没人想要整套。/biomni-datasets 列出盘上有什么、还能取什么、每个多大; python/fetch.py 按名字取。一个都没下载就是没有数据湖 skill —— 确定的答案,不是失败。

部分数据集不许商用。 Biomni 提供了一个商用子集(76 里的 41 个)。一个数据集可以已下载、可读、但仍然受限,所以许可被当作独立的一件事追踪、在 skill 里点名,并且在它真正生效的那一刻拦住:取一个受限数据集需要显式确认。

一个闲置的解释器占 298 MB。 实测:装完常用那套(numpy / pandas / scipy / matplotlib / scikit-learn)之后一个进程常驻 298 MB,空解释器 74 MB,而且会一直占到会话结束。所以闲置超过 idleTimeoutMs 的解释器会被回收,下一次调用会明确告诉 agent 命名空间已经空了、以及为什么。
这句通知才是重点:一个悄悄清空的命名空间,和一个没被声明的缺失依赖是同一类失败,只是从另一头来的。

Python 归 run_python,不归 shell。 有一道守卫拦住 agent 通过 bash 摸到别的解释器——但用绝对路径写出你配置的那个解释器的调用会被放行,因为那条路到达的是对的库。samtools 这类 CLI 工具照常走 bash,只有 python 和 pip 受限。

底下是怎么回事

Biomni 用 ToolRetriever(基于向量嵌入的检索器)解决「200+ 个工具 schema 塞不进上下文」的问题。
DSH 的 skill 系统本身就是这个东西,而且形状更好:会话目录里每个 skill 只挂名字和一行描述,完整内容由模型通过 skill 工具按需加载。不需要嵌入、不需要相似度、不需要一个会选错的检索器——选择由模型自己的判断做出。

在本仓库工作的贡献者和 agent 请先读 AGENTS.md,那里写着一批容易破坏、又不容易发现的约束。

许可

本插件是 MIT。Biomni 是 Apache-2.0 —— 不是同一个许可,义务也不同,所以这条边界值得写清楚:本仓库不分发那个库。Biomni 由使用者自己装进自己的解释器,这里发的是通往它的桥。

唯一随包走的 Biomni 内容是 data/biomni-manifest.json,它从 Biomni 的 env_desc.py 捕获而来,好让数据湖和软件目录在装 Biomni 之前也能工作。它是 Apache-2.0 的内容,并且被修改过(重整了结构,另外补上了数据集体积)——这两件事都记在文件里。

数据湖里的各个数据集有各自的条款,并且与可用性分开追踪(见需要知道的几件事)。
预览分享卡片长什么样 ↓ZhuYanTech/dsh-biomni
分享 · DeepSeek Harness Hub
ZhuYanTech/dsh-biomni

把 Biomni 函数、数据湖与生信工具接给智能体调用

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部