QQQW114/dsh-model-proxy

QQQW114★ 1JavaScriptLast synced: 2026-08-14

Open on GitHub

README excerpt

dsh-model-proxy 让 DeepSeek Harness (DSH) 的 模型 API 请求走本地代理端口 、并在请求失败命中指定词汇时 无限重试 的插件,带本地端口探测和设置页。 面向的场景:你的模型 API 需要经过本地代理(Clash、v2rayN、Clash Verge、Privoxy 等)才能访问时,不用在系统层面改环境变量,直接在 DSH 设置里点几下就切过去。 功能特性 - 真正的流量路由 :在 host 进程里把 undici 全局 dispatcher 指到代理端口。模型适配器(如 dsh-llm-deepseek )用的是 Node 内置 fetch ,走的正是这个 dispatcher,所以模型请求会被真正改走代理。 - 快速端口探测 :只探测常见代理软件的预设端口(Clash 7890/7891、Clash Verge 7897/7898、v2rayN 10808/10809、Shadowsocks 1080、Privoxy 8118、Sing-box 2080),并行做 TCP → HTTP/SOCKS5 三级判断,响应快,只显示确实能转发流量的代理并给出延迟。 - 关键词无限重试 :请求失败信息命中指定词汇/句子(支持逗号或换行分隔多个)时,把默认的有限重试改成无限重试,等待时间可配置。 - 设置页 :打开「设置 → 模型请求 (Model)」自动探测;用明确的开关一键启用/禁用代理,点结果即可切换端口;下方独立配置重试规则。 - 持久化 :代理与重试规则都写入包内 config.json ,重启 DSH 后自动恢复。 原理 DSH 的模型适配器直接调用全局 fetch() ,而 Node 22 的 fetch (undici)默认 不理会 HTTP PROXY / HTTPS PROXY 环境变量,也没有任何代理挂钩。要拦截它,唯一干净的办法是安装一个 undici ProxyAgent 作为进程全局 dispatcher: 这必须发生在 host 进程里,所以本插件是一个 host 平面 的 composition 行(和模型路由同一平面),不是一个 agent preset,也不是临时动态插件。 关键词无限重试 的原理:DSH 在每次模型请求失败时触发 agent/request-error waterfall。内置的 dsh-llm-retry 按重试策略(默认有限次)处理,超限后把决策交给后续监听器。本插件注册在它之后,检查失败信息的 message / code / status 是否命中关键词,命中则等待配置的时长后返回 { kind: 'retry' } ,从而持续重试,直到成功或用户中止(尊重 turn 的 abort signal)。 目录结构 安装到 DSH 环境要求:DSH = 0.1.0-rc…

View full README on GitHub →
Tools / Devdsh-plugin

Category