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

智能选模路由 xinyang20/dsh-decision-router

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

按任务自动挑选执行模型与推理强度

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

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

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

状态速览

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

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 22 处,展示前 22 条)
  • 发起网络请求
    lib/client.js:618
    const response = await fetch(API + route, { credentials: "same-origin", ...data === void 0 ? {} : { method: "POST", headers: { "Content-Type": "applic
  • 写入本地文件
    src/model-settings.js:37
    await mkdir(path.dirname(file), { recursive: true });
  • 写入本地文件
    src/model-settings.js:38
    await writeFile(temporary, JSON.stringify(settings, null, 2) + '\n', { flag: 'wx', mode: 0o600 });
  • 写入本地文件
    src/model-settings.js:39
    await rename(temporary, file);
  • 删除本地文件
    src/model-settings.js:41
    finally { await rm(temporary, { force: true }).catch(() => {}); }
  • 读取本地文件
    src/model-settings.js:76
    const saved = JSON.parse(await readFile(file, 'utf8'));
  • 发起网络请求
    src/decision.js:25
    const request = http.request(url, { method: payload === undefined ? 'GET' : 'POST', agent: false, signal,
  • 发起网络请求
    src/decision.js:55
    const request = https.request(url, { method: 'POST', agent: false, rejectUnauthorized: true, signal,
  • 发起网络请求
    src/decision.js:162
    const response = await this.request(config.endpoint, {
  • 读取本地文件
    local/decision-service.mjs:49
    if (definition.id === 'laya') await access(path.join(root, '.venv/pyvenv.cfg'));
  • 写入本地文件
    local/decision-service.mjs:62
    await mkdir(path.dirname(keyFile), { recursive: true });
  • 写入本地文件
    local/decision-service.mjs:63
    await writeFile(keyFile, token + '\n', { flag: 'wx', mode: 0o600 });
  • 删除本地文件
    local/decision-service.mjs:72
    await rm(keyFile, { force: true });
  • 写入本地文件
    local/fixture.mjs:47
    await mkdir(cwd, { recursive: true });
  • 写入本地文件
    local/offline-runtime.mjs:20
    for (const directory of [home, tmp, cache]) await mkdir(directory, { recursive: true });
  • 读取本地文件
    local/offline-runtime.mjs:34
    const resolved = await realpath(file);
  • 读取本地文件
    local/offline-runtime.mjs:35
    const allowed = await realpath(root);
  • 读取本地文件
    local/offline-runtime.mjs:36
    if (!resolved.startsWith(allowed + path.sep) || !(await stat(resolved)).isFile()) throw new Error('模型和运行程序必须位于本项目目录中。');
  • 读取本地文件
    local/offline-runtime.mjs:37
    await access(resolved, executable ? constants.X_OK : constants.R_OK);
  • 执行外部命令来自配置/变量
    local/offline-runtime.mjs:52
    return spawn(sandbox, ['-D', `MODEL_PORT=${port}`, '-f', profile, command, ...args], { cwd, env, detached: true, stdio });
  • 发起网络请求
    local/offline-runtime.mjs:79
    const request = http.request({ hostname: '127.0.0.1', port, path: pathname, method: payload ? 'POST' : 'GET', agent: false, signal,
  • 读取本地文件
    local/offline-runtime.mjs:123
    await access(sandbox, constants.X_OK);
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-home-paths@deepseek-ai/cordis@deepseek-ai/dsh@deepseek-ai/dsh-llm
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按任务挑选执行模型
  • 自动匹配推理强度
  • 本地推理与云端决策

为 DeepSeek Harness 提供决策模型驱动的路由,支持本地推理和按需启用的云端决策。

README

由 DeepSeek 最新模型翻译生成
DSH Decision Router 为 DeepSeek Harness 提供自动选模:由一个独立的决策模型理解任务,再从你配置的执行模型中选择路由和推理强度。 支持本地 Laya、d1-3B、d1-omni-600M,以及用户明确同意后启用的 System One 云端 API。决策模型负责选模型,执行模型负责完成任务。本项目是社区插件,采用 MIT 许可证。 特色 - 每轮决策,手动优先:仅在 DSH 原生模型选择器中选中「自动」时参与路由。每轮用户交互决策一次,同轮工具调用沿用结果;选中具体模型后,下一次模型请求直接使用该模型及推理强度。 - 2–6 条自定义路由:分别配置供应商、模型、推理档位、用途描述和补充说明。路由可以按能力划分,也可以分别擅长前端、后端、翻译等任务;编号和列表顺序不代表强弱。 - 原生设置体验:「设置 → 自动选模」统一编辑配置,选择器沿用 DSH 菜单风格。侧边栏默认开启,提供只读总览和最近路由记录,也可在设置中关闭。 - 明确回退:决策超时、服务失败或置信度不足时使用你指定的回退路由。本地失败不会自行转向云端,云端失败也不会换用其他决策服务。 已验证宿主版本为 DSH 0.2.0-rc.2。DSH 仍在快速迭代,其他版本需要单独验证。 安装 准备已能运行的 DSH。
展开完整文档(README 剩余 1 节)
DSH Decision Router

为 DeepSeek Harness 提供自动选模:由一个独立的决策模型理解任务,再从你配置的执行模型中选择路由和推理强度。

支持本地 Laya、d1-3B、d1-omni-600M,以及用户明确同意后启用的 System One 云端 API。决策模型负责选模型,执行模型负责完成任务。本项目是社区插件,采用 MIT 许可证。

特色

- 每轮决策,手动优先:仅在 DSH 原生模型选择器中选中「自动」时参与路由。每轮用户交互决策一次,同轮工具调用沿用结果;选中具体模型后,下一次模型请求直接使用该模型及推理强度。
- 2–6 条自定义路由:分别配置供应商、模型、推理档位、用途描述和补充说明。路由可以按能力划分,也可以分别擅长前端、后端、翻译等任务;编号和列表顺序不代表强弱。
- 原生设置体验:「设置 → 自动选模」统一编辑配置,选择器沿用 DSH 菜单风格。侧边栏默认开启,提供只读总览和最近路由记录,也可在设置中关闭。
- 明确回退:决策超时、服务失败或置信度不足时使用你指定的回退路由。本地失败不会自行转向云端,云端失败也不会换用其他决策服务。

已验证宿主版本为 DSH 0.2.0-rc.2。DSH 仍在快速迭代,其他版本需要单独验证。

安装

准备已能运行的 DSH。插件安装需要 Node.js ^22.19.0 || >=24.0.0 和 pnpm;在 DSH 中先配置可用的执行模型及其凭据。

从 GitHub 安装 v0.1.0:

dsh plugin --profile web add github:xinyang20/dsh-decision-router#v0.1.0

仓库包含预构建的 lib/client.js,插件安装无需执行 prepare。#v0.1.0 指定发布标签;需要固定到具体提交时可将标签替换为提交 ID。Git 安装由 DSH 调用 pnpm 完成,参见 DSH 安装教程及 pnpm Git 来源说明。

也可从 Releases 下载预构建安装包,在下载目录执行:

dsh plugin --profile web add ./dsh-decision-router-0.1.0.tgz

安装后打开 DSH Web;若当前页面未出现插件入口,重启 DSH 并刷新页面。插件安装本身不会下载决策模型或启动本地推理服务。

首次配置

1. 打开「设置 → 自动选模」。初装处于「暂停决策」,执行路由尚未配置。
2. 配置 2–6 条路由,为每条选择已在 DSH 中配置的供应商、执行模型及其支持的推理强度,并填写用途描述。选择一个回退路由。
3. 选择决策方式:本地模型需先完成下文的准备并保持服务运行;云端 API 需确认数据传输并填写接口、模型和密钥。
4. 点击「保存模型配置」,将「路由模式」切换为「自动选择」。
5. 在对话的原生模型选择器中选择「自动选模 → 自动」,然后发送任务。

路由模式和侧边栏开关立即保存;模型、用途描述及回退路由等修改需要点击「保存模型配置」。关闭有未保存修改的设置页时,可以继续编辑、放弃修改或保存后关闭。

| 路由模式 | 选中「自动」后的行为 |
| 自动选择 | 请求决策模型,按结果执行;失败或置信度不足时使用回退路由 |
| 仅观察 | 请求并记录决策建议,实际始终使用回退路由 |
| 暂停决策 | 不请求决策模型,使用回退路由 |

选择具体执行模型时,上述路由模式均不会覆盖手动选择。 修改配置从下一轮决策生效,当前轮次继续沿用已有决定;主动切换具体模型则从下一次模型请求生效,包括同轮的后续工具步骤。

侧边栏「自动选模」只展示状态、配置摘要和最近路由记录。编辑请进入设置,发送任务请使用原生对话。

使用本地决策

本地辅助服务当前支持 macOS;其中 d1 安装脚本仅支持 Apple Silicon(arm64)。模型子进程依靠 macOS sandbox-exec 禁止主动联网,启动时验证隔离,验证失败会拒绝启动。其他系统尚未支持这套隔离运行方式。

在本机单独克隆同版本仓库,用于准备和启动服务。准备 Node.js、pnpm;使用 Laya 时还需要 uv。

git clone --branch v0.1.0 --depth 1 https://github.com/xinyang20/dsh-decision-router.git
cd dsh-decision-router
pnpm install --frozen-lockfile

按需要准备模型,两种方式可以任选其一或都安装:

| 模型 | 准备命令 | 当前实现 |
| Laya 多语言 | pnpm run laya:setup,再运行 pnpm run laya:download | 固定 Laya 0.3.28,通过 uv 创建项目内 Python 3.12 环境,使用本地多语言权重和 CPU 推理 |
| d1-3B / d1-omni-600M | pnpm run d1:setup | 下载固定版本 llama.cpp b11490 及两款 GGUF;仅 macOS arm64 |

d1-3B 使用 Q4_K_M 文本权重,约 1.67 GB;d1-omni-600M 使用 Q8_0 文本权重,约 407 MB,作为实验选项提供。本项目没有下载图片或音频 projector,三款模型当前都只处理文本路由。

依赖安装和首次准备模型需要联网,下载软件及模型,不携带任务内容。文件保存在项目内的 .venv、.runtime 和 .cache;再次准备时复用已有文件。日常推理使用本地文件,不会自动下载缺失模型。

准备完成后,在该仓库目录启动统一服务,并保持此终端运行:

pnpm run decision:serve
服务监听 127.0.0.1:39401。看到 ready: true 后,在 DSH 设置中选择已安装的决策模型。服务每次只保留一个模型进程,切换模型时释放旧模型并按需加载新模型;首次请求可能包含加载时间。按 Ctrl+C 停止服务及其模型进程。

本地服务使用回环 HTTP,不跟随重定向或使用环境代理;模型子进程不继承 API Key 和代理变量。隔离范围是本地决策过程,执行模型是否联网由你在 DSH 中选择的供应商决定。

使用云端决策

云端模式不需要下载本地模型,也不需要启动 decision:serve。在设置中选择「System One API(云端)」,默认接口为 https://api.typesafe.ai/v1/systemone,默认模型为 jev-latest;也可使用兼容该协议的 HTTPS 接口。

选择时会显示红色数据传输提示,提供「放弃」和「我已了解」。任务组成的 state、最多两条近期用户输入,以及候选路由的用途描述和补充说明会发送到所选服务。确认后填写密钥并保存模型配置,才会用于决策。修改接口或模型后需要重新确认,更换接口还需要重新填写密钥。

仅在原生模型选中「自动」且模式为「自动选择」或「仅观察」时发送云端决策请求。「仅观察」仍会发送数据。「暂停决策」、选择具体执行模型或切换回本地决策后,不会继续请求云端决策。

云端密钥保存在本机配置文件,权限为 0600,未加密;设置读取和保存响应不会回显密钥。同一接口重新编辑时,密钥留空表示保留已保存的值。执行模型的凭据仍由 DSH 管理。

目前已通过本地测试覆盖协议处理、确认范围、密钥隐藏、取消和失败回退;尚未使用真实密钥验证 Jev API 调用。云端可用性、费用和任务路由效果需要用户配置后自行验证。协议依据:System One API 官方文档。

数据与配置

配置默认保存在 DSH 数据目录下的 plugins/dsh-decision-router/model-tiers.json,即 $DSH_HOME/plugins/dsh-decision-router/model-tiers.json。包括路由、决策方式、回退选择、路由模式、侧边栏开关及可选云端凭据,重启后保留。高级部署可以通过插件的 modelsFile 配置指定其他绝对路径。

路由记录保存在宿主进程内,跨对话合计最多 200 条,重启后清空。记录包含决策建议、回退原因、应用的模型及耗时。置信度表示候选概率分布的集中程度,没有经过任务成功率校准;高置信度不等于一定选对模型。

开发与验证

仓库自带固定版本的 DSH 开发依赖,不依赖旁边的其他项目。安装依赖后运行:

pnpm run test
pnpm run build

测试覆盖真实 DSH 生命周期中的自动入口、手动优先、每轮保持、配置保存与失败回退,执行模型使用确定性测试替身;云端协议使用本地替身,不调用真实外部 API。已有三款本地决策模型的真实推理与 DSH 工具循环验证,这些结果不代表执行模型实际任务效果,也不构成准确率、性能或费用节省的基准。

开发预览可运行 pnpm run preview;它使用独立的项目内 DSH 数据目录和本地执行替身,需要先准备本地决策模型。首次在浏览器打开时,使用启动输出给出的完整登录链接。预览中的执行回复用于验证路由,不能完成真实生成任务。

问题和建议请提交至 Issues。

许可证

插件自身代码采用 MIT。安装脚本下载的模型与运行时保留各自许可证,不因本项目采用 MIT 而变更:

- Laya 软件和多语言模型:Apache-2.0,见 Laya LICENSE 和 模型卡。
- d1-3B、d1-omni-600M 权重:LFM Open License v1.0,见 d1-3B GGUF 许可证 和 d1-omni-600M GGUF 许可证。使用和再分发须遵守其完整条款。
- llama.cpp:MIT,见 上游许可证。

模型权重与下载的 llama.cpp 二进制不包含在本仓库或插件安装包中。
预览分享卡片长什么样 ↓xinyang20/dsh-decision-router
分享 · DeepSeek Harness Hub
xinyang20/dsh-decision-router

按任务自动挑选执行模型与推理强度

回到顶部