DeepSeek Harness Hub
← 返回列表

tensorlakeai/dsh-tensorlake-sandbox

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
⚠ 装前注意

用于 DeepSeek Harness 的 Tensorlake 沙箱

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/8/15 · 已提供中文文档

一个用于 tensorlake 沙箱的 deepseek harness 插件

综合分
34.9
GitHub 分
34.9
用户评分
★ Stars
6
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add tensorlakeai/dsh-tensorlake-sandbox
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 02:58:31

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/dsh-fs@deepseek-ai/dsh-subprocess@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

用于 DeepSeek Harness 的 Tensorlake 沙箱

@tensorlakeai/dsh-sandbox 将 DeepSeek Harness 的文件、子进程、Bash、终端和 LSP 操作迁移到单个短生命周期的 Tensorlake 微虚拟机中。它是一个可安装的 dsh 插件包,无需对 Harness 安装进行任何更改。

前置条件

- Node.js ^22.19.0 或 >=24.0.0
- @deepseek-ai/dsh 0.1.0-rc.6 或更高兼容版本
- 一个 Tensorlake 项目,并在宿主环境中设置了 TENSORLAKE_API_KEY
- 在宿主环境中为默认 DeepSeek 模型提供方设置 DEEPSEEK_API_KEY

请将凭据保存在环境变量或密钥管理器中;不要将它们提交到配置文件或代码仓库中。

安装

安装 dsh 并将此插件包添加到你要运行的配置文件中:

npm install --global @deepseek-ai/dsh
dsh plugin --profile headless add @tensorlakeai/dsh-sandbox
TENSORLAKE_API_KEY=... DEEPSEEK_API_KEY=... dsh --profile headless "build and test this repo"

在开发过程中,从本地检出目录进行安装:

npm install
npm run build
dsh plugin --profile headless add .

使用 dsh --profile headless --dump-config 来验证 @tensorlakeai/dsh-sandbox 层是否禁用了宿主的 subprocess 和 fs-sandbox 提供方,插入了 Tensorlake 运行时、子进程和文件系统行,并保持 bash-sandbox 以 danger-full-access 模式挂载。在该模式下,Harness 的沙箱感知 Bash 执行器会直接委托给 Tensorlake 子进程提供方,同时仍然满足权限预设的能力契约。

冒烟测试

运行一个同时使用子进程和文件系统提供方的无头任务:

dsh --profile headless \
"Use Bash to run pwd and id. Create smoke-test.txt containing hello, read it back, and report the results."

成功运行后,pwd 会报告 /home/tl-user/workspace,id 会报告 tl-user 身份,并从文件中读回 hello。面向模型的工作目录是相同的远程 Linux 路径,因此响应不应提及或回退到宿主机路径。

配置

该插件包会在配置文件启动时启动一个临时沙箱,并在 dsh 退出时终止它。运行时模块接受以下 Cordis 配置字段:

每次运行都会在两个生命周期边界处打印沙箱 ID。这些 ID 应当一致:

Tensorlake sandbox created:
Tensorlake sandbox terminated:

| 字段 | 默认值 | 含义 |
|---|---:|---|
| apiKey | TENSORLAKE_API_KEY | 仅由宿主 SDK 使用的 Tensorlake API 凭据 |
| cwd | /home/tl-user/workspace | 由文件和进程提供方共享的绝对 Linux 工作目录 |
| timeoutSecs | 600 | 沙箱不活动超时时间 |
| cpus | Tensorlake 默认值 | 虚拟 CPU 分配 |
| memoryMb | Tensorlake 默认值 | 以 MiB 为单位的内存分配 |
| diskMb | Tensorlake 默认值 | 以 MiB 为单位的根磁盘分配 |
随附的 bundle 会从 DSH_TENSORLAKE_CWD 同时推导运行时 cwd 和策略工作区。更改工作区时优先使用这一单一设置,这样 Bash 策略和远程 provider 就不会发生漂移:

DSH_TENSORLAKE_CWD=/workspace/project dsh --profile headless "build and test this repo"

要直接在 profile 的 cordis.patch.yml 中配置这些行,请同时覆盖两者。patch 会替换完整配置,因此请重新声明你需要的每个非默认字段:

- id: sandbox-policy
config:
mode: danger-full-access
workspaceRoot: /workspace/project

- id: tensorlake-runtime
config:
cwd: /workspace/project
timeoutSecs: 1800
cpus: 2
memoryMb: 4096

apiKey 是可选的,通常应保持省略。该包绝不会将 TENSORLAKE_API_KEY、DEEPSEEK_API_KEY、其他形似凭据的环境变量或 DSH_* 变量复制到沙箱进程中。调用方仍可通过 Harness 工具或服务请求传入显式的环境变量条目。

运行时要求

Tensorlake 镜像必须提供 bash、Node.js,以及 GNU 的 base64、cat、chmod、env、find、grep、ln、mkdir、mktemp、mv、ps、realpath、rm、stat 和 tee。默认的托管 Ubuntu 镜像提供这些工具。运行时会验证配置的 cwd 是否可写,并在必要时使用托管镜像的免密码 sudo 创建并移交受保护路径。

该包面向 @deepseek-ai/dsh 0.1.0-rc.6 或更高版本的兼容发行版。dsh 安装会通过 profile 模块回退机制提供其可选的 Cordis、filesystem、subprocess 和 Schemastery peer。该包仅使用公开的 ctx.fs 和 ctx.subprocess 服务定义;无需 DeepSeek Harness 源码注册、生成的目录或仓库内配置。

已知限制

- tensorlake@0.5.103(当前 SDK 发行版)固定了 undici@8.3.0 和 nanoid@3.3.11;npm audit --omit=dev 会针对这些传递依赖版本报告高严重性安全公告。目前没有审计干净的 Tensorlake SDK 发行版,因此请在生产使用前查看上游安全公告,并在 Tensorlake 发布后更新 SDK 版本固定。

开发

npm install
npm run check
npm pack

三个 Loader 入口点分别是 @tensorlakeai/dsh-sandbox/runtime、@tensorlakeai/dsh-sandbox/filesystem 和 @tensorlakeai/dsh-sandbox/subprocess。每个模块默认导出其服务类;不要向这些模块添加函数插件形式的具名导出,因为 Cordis Loader 会将混合导出形式视为函数插件命名空间。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群