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

Strata 模型管家 averyjohnkucan-arch/dsh-strata

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

在对话界面里管理本地 GGUF 模型与推理引擎

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/22·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 15 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 71 处,展示前 61 条)
  • 发起网络请求
    client.js:49
    response = await fetch(actionPath, {
  • 写入本地文件
    lib/service.js:71
    await mkdir(this.root, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/service.js:101
    await mkdir(join(this.root, "cache", "tmp"), {
  • 读取本地文件
    lib/service.js:394
    await access(visionExecutable);
  • 读取本地文件
    lib/service.js:400
    await access(visionExecutable);
  • 写入本地文件
    lib/service.js:504
    await mkdir(directory, { recursive: true });
  • 删除本地文件
    lib/service.js:526
    await rm(status, { force: true });
  • 写入本地文件
    lib/service.js:527
    await writeFile(config, JSON.stringify(this.launchConfig(p)), {
  • 读取本地文件
    lib/service.js:555
    const value = JSON.parse(await readFile(status, "utf8"));
  • 发起网络请求
    lib/service.js:704
    const response = await fetch(url + "/v1/models", {
  • 写入本地文件
    lib/service.js:725
    await mkdir(directory, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/service.js:735
    await mkdir(dirname(path), { recursive: true });
  • 读取本地文件
    lib/service.js:737
    const binaryInfo = await stat(config.exe);
  • 执行外部命令来自配置/变量
    lib/service.js:752
    const child = spawn(command.executable, command.args, {
  • 发起网络请求
    lib/service.js:796
    const response = await fetch(url + "/v1/models", {
  • 发起网络请求
    lib/service.js:803
    const loaded = await fetch(url + "/load", {
  • 读取本地文件
    lib/service.js:861
    if (!existsSync(vector))
  • 发起网络请求
    lib/service.js:892
    const response = await fetch(state.url + "/slots/0?action=" + action, {
  • 读取本地文件
    lib/service.js:983
    for (const entry of await readdir(path, { withFileTypes: true })) {
  • 删除本地文件
    lib/service.js:1122
    await rm(join(this.root, "cache"), {
  • 写入本地文件
    lib/checkpoints.js:19
    await mkdir(path, { recursive: true, mode: 0o700 });
  • 读取本地文件
    lib/checkpoints.js:30
    const stat = await lstat(path);
  • 写入本地文件
    lib/checkpoints.js:43
    await utimes(path, now, now);
  • 删除本地文件
    lib/checkpoints.js:48
    await rm(join(await this.directory(model), filename), { force: true });
  • 读取本地文件
    lib/checkpoints.js:53
    for (const name of await readdir(directory)) {
  • 读取本地文件
    lib/checkpoints.js:57
    const stat = await lstat(path);
  • 删除本地文件
    lib/checkpoints.js:67
    await rm(files[i].path, { force: true });
  • 删除本地文件
    lib/checkpoints.js:75
    await rm(file.path, { force: true });
  • 读取本地文件
    lib/bundled.js:19
    await readFile(join(root, "manifest.json"), "utf8"),
  • 读取本地文件
    lib/bundled.js:33
    access(python),
  • 读取本地文件
    lib/bundled.js:34
    access(executable),
  • 读取本地文件
    lib/bundled.js:35
    access(join(controlDir, "strata.py")),
  • 读取本地文件
    lib/tuning.js:25
    (await readdir(directory))
  • 读取本地文件
    lib/tuning.js:30
    const info = await stat(path, { bigint: true });
  • 写入本地文件
    lib/deepseek-tuning.js:62
    await writeFile(path, JSON.stringify(config), { mode: 0o600 });
  • 读取本地文件
    lib/deepseek-tuning.js:114
    const measured = JSON.parse(await readFile(path, "utf8"));
  • 读取本地文件
    lib/mtp.js:10
    stat(join(path, "experts.bin")),
  • 读取本地文件
    lib/mtp.js:11
    stat(join(path, "dense.bin")),
  • 读取本地文件
    lib/mtp.js:12
    stat(join(path, "draft_vocab.bin")),
  • 读取本地文件
    lib/mtp.js:13
    readFile(join(path, "dense.txt"), "utf8"),
  • 读取本地文件
    lib/config-transfer.js:89
    if ((await stat(mtp)).isDirectory())
  • 写入本地文件
    lib/config-transfer.js:142
    await mkdir(join(service.root, "imports"), { recursive: true });
  • 写入本地文件
    lib/config-transfer.js:148
    await mkdir(dirname(path), { recursive: true });
  • 删除本地文件递归
    lib/config-transfer.js:211
    await rm(directory, { recursive: true, force: true });
  • 读取本地文件
    lib/prepared-pack.js:91
    await access(join(root, path));
  • 写入本地文件
    lib/prepared-pack.js:154
    await mkdir(join(service.root, "imports"), { recursive: true });
  • 写入本地文件
    lib/prepared-pack.js:159
    await mkdir(dirname(path), { recursive: true });
  • 删除本地文件递归
    lib/prepared-pack.js:206
    await rm(root, { recursive: true, force: true });
  • 读取本地文件
    lib/store.js:14
    await readFile(join(this.root, name + ".json"), "utf8"),
  • 写入本地文件
    lib/store.js:26
    await mkdir(this.root, { recursive: true, mode: 0o700 });
  • 写入本地文件
    lib/store.js:29
    await writeFile(temp, snapshot, { mode: 0o600, flag: "wx" });
  • 写入本地文件
    lib/store.js:30
    await rename(temp, join(this.root, name + ".json"));
  • 删除本地文件
    lib/store.js:32
    await rm(temp, { force: true });
  • 执行外部命令来自配置/变量
    lib/process.js:12
    const child = spawn(command, args, {
  • 读取本地文件
    lib/portable.js:14
    const before = await stat(path);
  • 读取本地文件
    lib/portable.js:27
    for await (const block of createReadStream(path, {
  • 读取本地文件
    lib/portable.js:40
    const after = await stat(path);
  • 读取本地文件
    lib/portable.js:63
    const info = await stat(entry.path);
  • 读取本地文件
    lib/portable.js:65
    if ((await stat(entry.path)).size !== info.size)
  • 读取本地文件
    lib/portable.js:144
    if (!(await stat(root)).isDirectory())
  • 写入本地文件
    build.mjs:17
    await writeFile(
扫描于 2026/11/5(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/schemastery@deepseek-ai/dsh-sandbox
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

Strata 是 DeepSeek Harness 的本地推理服务商兼模型管理器

README

由 DeepSeek 最新模型翻译生成
用于 DeepSeek Harness 的 Strata 在 DSH 内管理 Strata Unleashed GGUF 模型、视觉/投影器文件、MTP、已保存的配置档,以及实测的 Flash Next 调优。 在 DSH 中安装 需要 DeepSeek Harness 0.2.1-rc.2,并运行其 Web 配置档。 1. 打开 Plugins → Add plugin → GitHub。 2. 粘贴 https://github.com/averyjohnkucan-arch/dsh-strata。 3. 安装并启用插件。刷新浏览器;如果管理器要求,就重启 DSH。 4. 打开 Settings → Models → Strata。 插件是可直接安装的 Cordis 包。它不会给 DSH 打补丁,不替换 DSH 的界面,不安装第二个 DSH,也不需要编译插件。它的包使用 DSH 自带的 peer 依赖,所以安装时不会下载另一套服务商栈,也不会要求运行服务商依赖的构建脚本。 模型 点 Add model,再点 Select model files。浏览宿主机的模型目录,选中多个文件,或者点 Select all model files here。切换目录时,已选内容会保留。
展开完整文档(README 剩余 1 节)
用于 DeepSeek Harness 的 Strata

在 DSH 内管理 Strata Unleashed GGUF 模型、视觉/投影器文件、MTP、已保存的配置档,以及实测的 Flash Next 调优。

在 DSH 中安装

需要 DeepSeek Harness 0.2.1-rc.2,并运行其 Web 配置档。

1. 打开 Plugins → Add plugin → GitHub。
2. 粘贴 https://github.com/averyjohnkucan-arch/dsh-strata。
3. 安装并启用插件。刷新浏览器;如果管理器要求,就重启 DSH。
4. 打开 Settings → Models → Strata。

插件是可直接安装的 Cordis 包。它不会给 DSH 打补丁,不替换 DSH 的界面,不安装第二个 DSH,也不需要编译插件。它的包使用 DSH 自带的 peer 依赖,所以安装时不会下载另一套服务商栈,也不会要求运行服务商依赖的构建脚本。

模型

点 Add model,再点 Select model files。浏览宿主机的模型目录,选中多个文件,或者点 Select all model files here。切换目录时,已选内容会保留。Inspect and assign 会读取文件头,分配主模型、按顺序排列的分片、视觉投影器和 MTP。它会报告缺失的分片、混用的主模型集合,以及不支持的 MTP 格式。

编辑配置档并保存。Start 会在启动服务器前准备好缺失的运行时/模型包。运行时安装和模型准备都会显示进度,并且可以取消。已安装的引擎和已准备好的包,可以在 Runtime and imported model data 下选择。保存后,模型会出现在 DSH 的对话模型选择器里。

Edit 会重新打开已保存的配置档。Remove profile 会删除保存的配置,并停止它拥有的进程;已下载的模型文件会保留。Attach running server 会显式连接一个已在运行的服务器,前提是该服务器对外声明了配置档里的模型 ID。停止或禁用挂接只会断开连接,绝不会终止外部进程。启动设置不会应用到外部服务器。

固定版本可执行文件的帮助里列出的所有推理参数,在 All engine CLI options 下都有对应控件。留空表示使用引擎默认值;布尔项的 Omit flag 表示不传这个参数,并不代表引擎默认启用的功能一定被关掉。完整的 JSON 编辑器支持用数组表示重复参数,用 {"argv":["first","second"]} 表示多值参数。附加 argv 是数组,绝不是 shell 字符串。环境变量和完整的服务器配置也可以编辑。

更新、禁用与移除

通过 DSH 的插件管理器,分别更新每个仓库。关掉开关,就会移除它的卡片、服务商注册和工具,并停止它拥有的服务器。移除包会卸载它的代码。已保存的配置档和运行时数据仍留在 ~/.dsh/dsh-strata/(或 $DSH_HOME/dsh-strata/),重新安装即可恢复。想要彻底重置,就单独删除这个插件拥有的数据目录。两个插件都不依赖对方。

集成

包声明了 dsh.bundle.patch 和 dsh.client;补丁只插入自己的 Cordis 行。客户端通过文档化的 settings.models.footer 插槽注册 React UI,并使用 DSH 主题 token 和 locale 服务。Host 通过 ctx.llm.registerAdapter 注册 LlmAdapter,把 wire 转换、图像和重放委托给 DSH 公开的 PiAiAdapter,并单独持有一条 ctx.webServer.register 路由。一个临时 bearer 能力经 webserver/index-inject 注入,保护它的 JSON 操作。没有 iframe、DOM 注入,也不替换内置服务商卡片。

注册和进程生命周期由 ctx.effect/ctx.on 管理。面向智能体的 strata_models 工具与卡片、DSH 的 approveEscalation 机制使用同一套操作;host 管理调用需要 Full access 或每次调用显式批准。UI 操作需要所有者页面能力。这个初始版本面向本地 Web 配置档;远程委托访问和仅 Electron 的配置档尚未验证。

开发

pnpm install --ignore-scripts
pnpm test
pnpm run check

需要 Node 22.19+。开发用的服务商依赖可能报告跳过可选安装脚本;发布的插件没有安装脚本,直接使用 DSH 已安装的 peer 包。两个仓库各自包含代码和测试,可以分开开发。

Strata 运行时与支持的格式

引擎源码:StrataUnleashed,固定到 c73cde37581e6a79664176a08a232480c1b1fcfc,这是本次发布检查过的最新修订。引擎更新是显式的版本变更,与已保存的模型设置无关。

自动安装流程目前在 Linux 上从该固定源码构建 NVIDIA CUDA 引擎,创建 Python 环境,安装引擎的依赖,并构建 CPU/CUDA 视觉读取器。它会尝试 Vulkan 视觉读取器,Vulkan 工具不可用时保留 CPU 回退。这需要带 venv 支持的 Python、Git、CMake、Ninja、C++ 编译器和兼容的 CUDA toolkit/驱动。这些系统前置条件不会以管理员权限安装。也可以手动提供另一个受支持的引擎二进制。这个首个版本不是通用的预编译引擎发行版。

自动模型打包目前支持 qwen4exp / Flash Next,使用 fork 自带的 iq_pack.py。其他架构需要上游准备好的兼容运行时包。选中的 MTP GGUF 必须是 Strata 打包的 Q2_0 格式,且能被 mtp_rt.py 接受;任意独立的 FP16/Q4/Q8 MTP GGUF 会被识别,但在转换前明确拒绝。已准备好的 MTP 运行时受支持。MTP 绝不会被静默丢弃,调优器也不会把它从文本 GPU 上移走。
视觉方案有 Auto、GPU、iGPU/Vulkan、CPU 和 Off。Auto 在显存不超过 12 GiB 的显卡上,如果配置了兼容的 Vulkan reader 和设备索引,就用 iGPU,否则用 CPU;显存更大的显卡优先用 GPU。独立配置的 CPU 视觉 reader 作为回退。Vulkan 设备选择使用插件自带的启动器包装,这样它的环境不会把 CUDA 文本引擎重定向到别处。自动发现 iGPU 尚未实现,需要你手动提供 Vulkan 索引。本插件版本尚未重新基准测试 GPU/CPU/iGPU 视觉执行。

只接受引擎实际支持的混合 K/V 格式:FP16/FP16、FP16/Q8、FP16/Q6、Q8/Q8、Q8/Q6、Q6/Q8、Q6/Q6、Q8/Q5、Q5/Q5、Q5/Q4、Q4/Q4。K/V 下拉菜单并不表示所有笛卡尔组合都受支持。显式跳过专家尾部的环境控制会改变模型输出,调优器绝不会自动启用它。

已保存的配置

用 Import saved Strata configuration 导入已有的 JSON 运行配置。在推理控制项发生变化之前,现有引擎参数按原顺序保留。导入的设置会锁定,不再参与调优。导入会记录源文件的 SHA-256 及其现有校验状态。把 /opt/prod/... 路径移到已有的 Local AI v2 位置,只改变路径。

所有者的本地安装包含来自 Local AI v2 的 Atomic Chat Q5 Regular/Turbo 和 Gyro Large Regular/Turbo。这些机器专属配置档和模型权重没有打包进这个公开仓库。它们的保存记录带有待校验状态;导入它们不会让它们变成已校验,也不会运行推理。

调优

Tune saved profile 需要你主动开启,它会在当前 GPU 上测量所选模型。编辑某个值会启用 Keep my value;清除它,调优器才能调整该控制项。导入的现有调优结果会被锁定。调优失败或取消时,保留之前保存的调优结果。

搜索从 80% 常驻 KV 开始,探测 FP16/FP16、Q4/Q4 和 Q8/Q8,对受支持的组合做细化,K 优先,需要时搜索常驻单元,目标是空闲 GPU 内存占 6–10%。它先测量解码候选,再测量预填充候选,并单独做一次解码回归检查,损失上限 5%。最后它搜索专家槽位,目标是空闲显存占 0.7–1.5%,如果下一次分配放不下,就保留更大的余量。最终候选按请求的完整上下文测量,并再次检查短解码。配置了 MTP 时,MTP 留在 GPU 上。
调优器会记录实际 token 用量、耗时、观测到的空闲显存、每次试验和手动锁定。内存搜索的邻近探测减少了对单调分配的依赖。这仍是一种有界启发式:它不确立全局性能最优,也不证明量化后数值等价。目前需要 NVIDIA 遥测。分阶段搜索和手动锁定行为已有自动化测试;本次发布有意没有跑新的完整硬件调优扫描,因为所有者要求复用已保存的设置。

当 Start 或聊天在已保存端口上发现现有服务器时,只有当 /v1/models 公布与已保存模型 ID 完全一致的模型,才会自动复用它。插件从不接管该进程:Stop 只是断开连接,已保存的启动改动需要你自己重启外部服务器。模型不同、响应无效,或服务器要求认证而凭据不匹配,都会被拒绝。Strata 调优需要插件自有的服务器,绝不复用外部进程。

按模型配置推理设置

编辑模型配置档,添加/删除推理级别,给每个级别起显示名,并设置精确的 reasoning_effort 后端值。选一个默认级别,或选 Engine default 让请求不指定。支持自定义名称和值;可用性按配置档声明,不要假定每个模型都有。引擎/模板必须接受配置的后端值。

Qwen3.8 配置档初始为 Low → low、Medium → medium、XHigh → xhigh,默认 Medium。对话模型选择器通过 DSH 现有的适配器推理元数据使用这些配置档自有的设置。不需要给 DSH 核心打补丁。级别列表为空时,该配置档会隐藏推理选择器。

模型调度器集成

可选安装 dsh-model-scheduler,获得共享 GPU 准入、排队聊天切换、手动加载/卸载和可配置的 30 秒空闲超时。此服务商仍可独立使用。调度策略位于那个独立的 Cordis 服务中;不需要改动 Harness 核心。报告 GPU 释放前,会先停止自有的引擎进程组。外部服务器只断开连接,绝不杀死。

按聊天保存的原生 KV 检查点

对托管的单槽服务器默认启用;在配置档的 KV checkpoints 区域可以关闭。检查点位于 <dataDir>/kv/chats/<hashed-session-id>/,默认 ~/.dsh/dsh-strata/kv。每个聊天为两套模型配置保留最新的原生快照。每次模型步骤成功后,把原生槽保存到私有文件,同步它,并在删除被取代的快照前原子发布其目录条目。保存失败会保留最后提交的快照。中止/失败的步骤保留其较早的检查点。辅助的标题/压缩调用不会替换聊天检查点。
恢复发生在生成之前,进程重启后也一样。新建聊天时,可以恢复兼容的快照,条件是系统/消息前缀匹配最长;引擎会校验快照的原生格式,并计算实际的 token 前缀。启动设置、模型路径和文件时间戳都参与兼容性检查。恢复不会把旧消息加进新会话。聊天操作围绕恢复/生成/保存串行执行,因为原生 API 只暴露 slot 0。大型检查点需要真实的磁盘/PCIe 传输时间。尚未做完整的操作系统断电测试。启用按聊天 KV 时,自动调优会跳过并行/批处理候选。原生并行/批处理模式不支持磁盘快照;其 API 会报告这一限制,卡片上会显示 KV 警告。由外部管理的服务器不会被此插件做检查点。
预览分享卡片长什么样 ↓averyjohnkucan-arch/dsh-strata
分享 · DeepSeek Harness Hub
averyjohnkucan-arch/dsh-strata

在对话界面里管理本地 GGUF 模型与推理引擎

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