DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
E

dsh-echelon

Echelon

Echelon for DeepSeek Harness:命名几个档位,每个档位都会变成由真实模型组成的有序链,支持重试、故障转移、推理级别转换、上下文窗口路由和视觉路由。挡位式模型路由:按命名选择模型,失败时自动降级。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Abnerluo123/dsh-echelon#f483319d51694d1c8d220b079da9fce696ac24ba
README兼容性版本

兼容性与来源证明

Echelon 以 dsh-echelon 发布,当前版本为 1.9.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/27

版本

1.9.0stable
2026/10/27
1.8.0stable
2026/10/26
1.7.1stable
2026/10/26
查看其余 3 个版本收起版本
1.6.1stable
2026/10/26
1.4.1stable
2026/10/26
1.3.0stable
2026/10/26

相关插件

正在加载相关插件…

最新版
1.9.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/10/27
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundle扩展推理的实验性机器翻译Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义Our Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — 在 dsh 里装上这个插件即可,无需登录、注册或填 API Key,就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型,桌面端另有 EAC 协付渠道;2.0 起接入 LobsterAI、Qoder、TRAE、Cline、Loomy、Raccoon、MiniMax、ZCode、Gemini 十个账号渠道(原有匿名免费通道保留)(登录、账号池、积分领取、本地 OpenAI 网关与局域网转发、数据看板与运行日志),六页毛玻璃界面统一呈现。Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。

README

Echelon

给 DeepSeek Harness 用的挡位式模型路由。把十几个模型收成几个你自己命名的名字,选中一个,背后是一条有序的真实模型链:按序调用、失败重试、自动降级。

English

dsh plugin --profile desktop add dsh-echelon

配置页

解决什么问题

DSH 的模型选择器会列出每一个能用的模型。接了几个供应商之后,这个列表变成十几个名字各异、能力不同的条目,每次开新对话都要重新判断该用哪个。

Echelon 把这一步换成命名:定义几个挡位(日常、深度、免费…),选择器里就只剩这几个名字。

三个关键点

能力不同的模型可以互相当备用

这是最不显然的部分。链里混放能力不同的模型会遇到三个障碍,每一个都会让"自动换模型"变成"悄悄降级":

障碍Echelon 怎么做
思考档位命名不同(medium / max / 不声明)统一 off / low / middle / high / xhigh,派发时按成员翻译;翻译不到就用成员自己的默认
上下文窗口不同(1M 与 300K 混放)上报最大窗口,再按本次请求大小挑装得下的成员
视觉能力不同(多模态与纯文本混放)请求带图时跳过看不了图的成员

于是"强的"和"便宜的"可以共处一条链:小请求走便宜的,大请求落到大窗口,带图请求落到能看图的。你不用知道背后选的是谁。

调用日志

这张日志里的一次请求同时触发了三种判断:带图 → 跳过无视觉成员;上下文过大 → 跳过小窗口成员;随后限流重试成功。

选择器变干净

隐藏真实模型,只留挡位。默认「全部显示」,隐藏是你确认挡位可用后主动做的选择。挡位里没有可派发的成员时隐藏会自动放开 —— 菜单永远不会变成进不去设置页的空列表。

兼容现有插件

成员可以是其它插件的路由(它们都只是 供应商/模型 字符串):dsh-our-free-model 的免费车道、dsh-model-fusion 的 auto、任何注册了 provider 的插件。

不修改 DSH 本体,不 patch 任何东西 —— 只注册一个 provider 路由,并包装一个公开只读方法来实现隐藏。

快速上手

dsh plugin --profile desktop add dsh-echelon

需要 DSH ≥ 0.2.0-rc.1、Node ≥ 22.14.0。装完重启 dsh,刷新页面。

  1. 配置 → 新增挡位,起个名字。
  2. 添加模型,按优先级排列 —— 顺序就是降级顺序。
  3. 确认能正常对话后,再把 设置 → 模型选择器的显示 切成「只显示挡位」。

首次安装是「全部显示」,你的模型一个都不会少。

高级功能

  • 逐成员设置:重试次数、超时、思考强度、上下文长度、最大输出、视觉能力(模型能看图却没上报时手动指认)。
  • 超时按"进展"算,不按"数据"算:只发心跳、空包、计量行不算活着,超时照样换下一个;模型的思考过程算进展。范围 3–60 秒,全新安装默认 6 秒,可以关掉。DSH 自己会重试,而重试通常比等待更划算。
  • 挡位默认值:给整条链设一个超时和重试次数,成员没单独设置时生效。
  • 新对话默认强度:跟随模型,或固定成五档之一。
  • 思考强度映射开关:开启时选择器统一五档,选中后按成员翻译(成员没有就换成最接近的,完全没有就交给模型默认);关闭时显示模型自己上报的档位并原样转发。成员编辑器里的那一栏永远只用该模型上报的档位 —— 那是给单个成员钉死档位的地方,不能钉一个它不认识的值。
  • 图片路由:带图的请求优先选能看图的成员。开启 设置 → 高级 → 兼容视觉模型 后,只有时效范围内的图片才把整条链锁在视觉成员上(默认最近 5 条对话,也可按分钟计);超出时效,非视觉成员重新参与派发,图片以 [图片] 纯文本发给它们,内容由模型从上下文推断。能看图的成员照旧收到真实图片。默认关闭,行为与之前一致:对话里只要还有图片就走视觉成员。
  • 调用日志:每次请求 挡位 → 真实模型、档位怎么翻译的(xhigh → max / 未发送)、试过谁、为什么被跳过、耗时与 token。写盘保存,重启不清空,默认保留 128 条,可关闭。
  • 上下文写法:1m、256k、128k、纯数字都行,不用数零。k=1000、m=1000000(十进制:看到什么就输入什么,数值不会被改写)。
  • 保存即生效:改设置不用重启,也不用刷新页面。右上角一个按钮:有改动时保存并重新加载,没改动时只重新加载。
  • 配置文件:$DSH_HOME/model-router/settings.json,可手改(同样接受 "128k");写入走临时文件+重命名,不会留下半份配置。

超时是怎么判定的

界面里的说明只有一行,细节在这里。

看门狗量的不是"有没有收到数据",而是"有没有进展"。这个区别很关键:不少网关在模型卡住时会持续发心跳、空 delta、只带 usage 的包,如果按"收到任何数据"算,这次尝试可以无限挂着——屏幕上什么都没有,计时器却一直在重置。

算进展的:

  • 带非空白文字的 text-delta / reasoning-delta(一个字符也算)
  • 带名字或非空参数的工具调用
  • 块开始 / 块结束
  • 结束包

不算进展的:空字符串、纯空白的 delta、只带 usage 的行、任何未知类型的心跳。

三处共用这一个预算,所以卡在哪一步都会被拦:

阶段以前现在
resolveModelInfo 查能力无期限(卡住时日志是空的)8 秒,超时降级为「能力未知」
prepareCall 准备请求无期限成员自己的超时
流式输出只在"完全没数据"时生效同上,且按进展判定

超时后会主动取消该成员的请求,并且清理有 1 秒上限——否则清理本身会卡在同一个读上,出现"8 秒预算却跑了 277 秒"。

关于误伤:模型思考时在持续产出 reasoning delta,算进展;模型等待本地命令执行时,这次模型调用早已以工具调用块结束,看门狗根本不在等待——所以跑十分钟的本地任务不受影响。

输入框的行为

  • 打字过程中不校验、不纠正:你可以先把 90 删成 9、再删空、再重新输入。
  • 只有失焦或回车时才规范化:低于下限填下限,高于上限填上限,空着表示"不设置"。
  • 不显示上下箭头,方向键和滚轮不会改动数值。

和其它方案的区别

Echelon 是 DSH 插件,不是独立的模型网关 —— 这个区别决定了它适合什么、不适合什么:

EchelonLiteLLM / One-API / New-API / OpenRouter
形态DSH 内部插件独立服务,对外提供 OpenAI 兼容端点
覆盖范围只在 DSH 里生效任何兼容 OpenAI 协议的客户端(Cursor、Cline、Cherry Studio、Chatbox 等)
部署装进 DSH 即用需要单独起服务、配端口与密钥
路由依据挡位 + 上下文大小 + 图片 + 思考档位通常是模型名、权重、配额、限流
解决的是「DSH 里该选哪个模型」「所有客户端统一走一个入口」

所以:如果你要给 Cursor、Cline、Cherry Studio、Chatbox 这类客户端做一个统一的 OpenAI 兼容入口,LiteLLM 或 One-API 更合适 —— Echelon 不提供外部端点,做不到这件事。

如果你要的是在 DSH 里不用再记十几个模型名、还要失败自动降级、还要考虑上下文和图片,Echelon 就是为此设计的。两者也可以并存:把 LiteLLM 之类注册成 DSH 的一个 provider,再让 Echelon 把它和免费车道放进同一条挡位。

关键词

方便检索用的同义说法:

中文:模型路由 / 模型聚合 / 挡位 / 按序降级 / 接口兜底 / 失败自动切换 / 渠道自动切换 / 防限流 / 429 处理 / 免费模型聚合 / 多供应商 LLM / 思考档位映射 / 上下文窗口路由 / 视觉能力路由

English: model router, model cascading, sequential fallback, automatic failover, multi-provider LLM, provider routing, rate-limit handling (HTTP 429), request retry, reasoning-effort mapping, context-window routing, vision / multimodal routing, DeepSeek Harness plugin

其它安装方式

方式命令
npm(推荐)dsh plugin --profile desktop add dsh-echelon
指定版本加 #v1.9.0
GitHub 源码dsh plugin --profile desktop add github:Abnerluo123/dsh-echelon
插件市场插件 → 插件市场,搜索 Echelon

desktop 换成你的 profile 名(dsh profile list)。

验证:dsh plugin --profile desktop list 应包含 dsh-echelon;设置里出现 Echelon。

卸载:dsh plugin --profile desktop remove dsh-echelon。配置保留在 settings.json,需要彻底清理时手动删除。

已知限制

  • 隐藏依赖包装 llm.listModels:DSH 没有目录过滤钩子,绕过它直接读适配器的代码不会被过滤。
  • 调用日志保留有限条数:默认 128 条,写盘所以重启不清空,但它是排障视图不是审计记录,超过上限的最旧条目会被丢掉。
  • 未声明视觉能力的模型按"未知"处理:仍是图像请求的候选,但不会优先选中。
  • ABORTED 与 CONTEXT_WINDOW_EXCEEDED 不降级:前者是你取消的,后者换个模型也装不下。
  • 内部路由 id 仍为 model-router:改品牌时没有动它,已保存的会话和配置继续有效。

开发

node --test test/               # 219 项测试,无需网络
node scripts/verify-profile.mjs # 检查当前 profile 能否加载

test/integration.test.js 在本机有 DSH 应用包时,会用真实的 LlmRuntime 跑注册、派发、隐藏与降级。

文件职责
index.jsHost 入口:注册路由、目录过滤、设置 API
src/adapter.js按链派发、流式转发、重试、降级、写日志
src/config.js规范化、链展开、上下文与模态筛选
src/effort.js思考档位词汇与逐成员翻译
src/tokens.js请求大小估算与图片识别
src/catalog.js目录过滤(隐藏)与未过滤读取
client.js设置页与调用日志页

License

MIT