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

微虚拟机沙箱 omdsh-dev/dsh-sandbox-micro

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

在 Linux 微虚拟机中隔离执行模型命令

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add omdsh-dev/dsh-sandbox-micro
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · security
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 64 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
  • 读取本地文件
    lib/shell.js:30
    if (!statSync(path).isDirectory())
  • 读取本地文件
    lib/shell.js:32
    accessSync(path, constants.X_OK);
  • 读取本地文件
    lib/backend.js:100
    if (!existsSync(shim)) {
  • 执行外部命令来自配置/变量
    lib/backend.js:199
    const result = spawnSync(program, [...invocation.slice(1), ...args], {
  • 读取本地文件
    src/backend.ts:144
    if (!existsSync(shim)) {
  • 执行外部命令来自配置/变量
    src/backend.ts:253
    const result = spawnSync(program, [...invocation.slice(1), ...args], {
  • 读取本地文件
    src/shell.ts:62
    if (!statSync(path).isDirectory()) return false
  • 读取本地文件
    src/shell.ts:63
    accessSync(path, constants.X_OK)
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-invariants@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-shell@deepseek-ai/dsh-subprocess-local
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 微虚拟机隔离执行
  • 运行模型命令

README

由 DeepSeek 最新模型翻译生成
dsh-sandbox-micro DeepSeek Harness 的 microsandbox 插件 bundle:把模型可见的 ctx.shell 替换为 Linux 微虚拟机 中的 bash -c 执行器,同时保留一个 provider,直接面向 ctx.sandbox seam。 安全模型 - 不使用 cmd.exe 或其他 shell 包装不可信 argv。Windows 上历史实现通过 cmd /c 启动 npm .CMD shim,会让模型命令中的 & / 引号 / %VAR% 被宿主机 shell 解析。本插件改为直接运行 microsandbox 依赖自带的 Node shim(node .../bin/microsandbox.cjs),并显式拒绝 .CMD / .BAT 覆盖路径。 - fail-closed:首次 confinement 前会探测 msb --version 和 msb doctor(检查宿主虚拟化前置条件);失败时缓存判决并抛出 SANDBOX_UNAVAILABLE,绝不退回未隔离执行。 - 执行期 runner 失败可识别:runnerFailureRules 按 msb 0.6.15 的真实 stderr 方言校准,覆盖镜像拉取、挂载路径、沙箱启动和无效配置错误。
展开完整文档(README 剩余 1 节)
dsh-sandbox-micro

DeepSeek Harness 的 microsandbox 插件 bundle:把模型可见的 ctx.shell 替换为 Linux 微虚拟机 中的 bash -c 执行器,同时保留一个 provider,直接面向 ctx.sandbox seam。

安全模型

- 不使用 cmd.exe 或其他 shell 包装不可信 argv。Windows 上历史实现通过 cmd /c 启动 npm .CMD shim,会让模型命令中的 & / 引号 / %VAR% 被宿主机 shell 解析。本插件改为直接运行 microsandbox 依赖自带的 Node shim(node .../bin/microsandbox.cjs),并显式拒绝 .CMD / .BAT 覆盖路径。
- fail-closed:首次 confinement 前会探测 msb --version 和 msb doctor(检查宿主虚拟化前置条件);失败时缓存判决并抛出 SANDBOX_UNAVAILABLE,绝不退回未隔离执行。
- 执行期 runner 失败可识别:runnerFailureRules 按 msb 0.6.15 的真实 stderr 方言校准,覆盖镜像拉取、挂载路径、沙箱启动和无效配置错误。
- 默认 --no-net;可通过 allowNetwork: true 显式放开。

架构

这个包暴露两个 Cordis 入口:

| 入口 | 服务 | 用途 |
| @deepseek-ai/dsh-sandbox-micro | ctx.sandbox | 兼容 provider,直接调用 SandboxProvider.confine()。seam 不携带 env/cwd,因此 guest 固定为 /work |
| @deepseek-ai/dsh-sandbox-micro/shell | ctx.shell | 模型 shell 工具实际使用的执行器。它能看到完整 ShellExecSpec,会映射 workdir 到 /work/,并通过 -e KEY=VALUE 转发 ENV_OVERRIDES、spec.env 与 DSH_* |

cordis.patch.yml 会:

- 禁用官方 sandbox / bash-sandbox / pwsh-sandbox row
- 插入 sandbox-micro 与 shell-micro
- 全平台启用 tool-bash
- 禁用 tool-pwsh(其 PowerShell 方言无法运行在 Debian guest 中)

前置条件

- Node ^22.19.0 || >=24.0.0
- microsandbox 0.6.15+(已作为 dependency 随包安装)
- Windows:Windows Hypervisor Platform;Linux/macOS:msb 支持的本地后端
- 镜像必须包含被包装的程序;默认 debian 包含 bash 与常用 coreutils

安装

Profile Bundle(推荐)

dsh plugin --profile web add github:omdsh-dev/dsh-sandbox-micro
dsh plugin --profile headless add github:omdsh-dev/dsh-sandbox-micro

包内 dsh.bundle.patch 会在安装后自动加入 profile layer stack。

本地 tarball

npm pack
dsh plugin --profile web add ./deepseek-ai-dsh-sandbox-micro-0.0.1.tgz

验证

dsh --profile web --dump-config | grep -E 'sandbox-micro|shell-micro'
dsh run "运行 bash 命令验证"

配置

shell-micro 继承 dsh-bash-local 的全部字段,并增加:

| 字段 | 默认值 | 说明 |
| image | debian | guest 使用的 OCI 镜像 |
| memory | 512M | VM 内存 |
| msbPath | "" | 可执行文件覆盖;留空使用内置 microsandbox Node shim |
| timeout | 未设置 | msb run --timeout,例如 60s |
| extraFlags | [] | 追加的 msb run flag,例如 ["--cpus", "2"] |
| allowNetwork | false | true 时移除 --no-net |
| probe | doctor | 启动探测级别:doctor 或 version |

sandbox-micro 使用同一组 microsandbox 字段。

策略映射

| Sandbox mode | guest 文件效果 | 网络 |
| read-only | workspace 以 :ro 挂载到 /work | 默认关闭 |
| workspace-write | workspace 以读写挂载到 /work | 默认关闭 |
| danger-full-access | 不进入 VM(由调用方直通) | — |

已知边界

- guest 根文件系统、/tmp 是每次命令独立的可写层,退出后丢弃;策略语义针对宿主机文件效果。
- ShellExecSpec.workdir 必须在 sandboxPolicy.workspaceRoot 内,否则拒绝执行。
- 只提供 bash shell;PowerShell 工具由 patch 禁用。
- 模型可见文件路径从宿主机路径切换为 Linux /work 视图;文件工具仍在宿主机路径上工作,二者通过 workspace mount 保持一致。

测试

bash
npm run check # typecheck + 单元测试 + build
npm run test:e2e # 可选:真实启动 microVM 的冒烟测试

许可

MIT
预览分享卡片长什么样 ↓omdsh-dev/dsh-sandbox-micro
分享 · DeepSeek Harness Hub
omdsh-dev/dsh-sandbox-micro

在 Linux 微虚拟机中隔离执行模型命令

回到顶部