DeepSeek Harness 插件:dsh-plugin-model-proxy

在 DSH 环境中使用模型时,有时会遇到特定模型端点受网络区域限制,需要通过代理访问,而同一提供者的其他模型直连正常的情况。若通过全局环境变量配置代理,会影响所有请求;若直接修改 baseURL,则可能隐藏真实上游。dsh-plugin-model-proxy 解决了这一问题,它允许在传输层对特定的提供者/模型对进行代理路由,其他请求保持直连,且不会修改配置中的 baseURL。

这是一个社区 DSH 插件,由 biyuhao 维护。它提供了一套规则系统,用于将特定的模型请求路由到指定的代理服务器,并内置了设置界面以支持批量与分组管理。

核心功能

插件支持基于规则的精细化路由,匹配优先级为:精确模型 > 前缀匹配 > 通配符。

  • 路由规则:支持 {provider, model, proxyUrl, enabled} 格式配置,精确模型匹配优先级最高。
  • 目的过滤:支持在规则中添加 purpose 字段,例如 compaction,让特定类型的请求走代理,而对话等请求保持直连。
  • 凭据集成:支持通过 credentialRef 引用 DSH 凭据服务中的 user:password 条目,将代理密码与配置解耦。
  • 连通性测试:新增代理规则后会自动进行探测,检查 CONNECT 或 SOCKS 握手是否成功,结果记录在主机日志中。
  • 协议支持:支持 http://、https://、socks5:// 和 socks5h://。
  • 实时生效:修改规则后,下一次 llm/stream 调用即可生效,无需重启进程。
  • 设置界面:通过 Settings → Plugins → Model Proxy 访问,提供提供者选择器(下拉菜单或自定义文本)和批量管理功能。

安装

推荐使用 DSH 的 profile 管理方式安装,该方式会自动处理依赖并注入加载条目。

dsh plugin --profile <name> add dsh-plugin-model-proxy

配置

通过 UI 配置

进入 Settings → Plugins → Model Proxy 页面,通过界面选择提供者、模型、代理地址并启用规则。

通过文件配置

在 ~/.dsh/settings.yaml 中添加 model-proxy 配置段。配置项 proxyUrl: "" 表示直连(免代理)。

model-proxy:
  enabled: true
  debug: false
  defaultProxy: ""
  rules:
    - provider: opencode
      model: muse-spark-1.2-contributor
      proxyUrl: socks5://127.0.0.1:1080
      enabled: true
    - provider: opencode
      model: "*"
      proxyUrl: ""
      enabled: true

注意事项与手动安装

插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证。

  • 手动安装:如果需要手动管理配置,需先在 profile 目录安装依赖,然后创建或修改 ~/.dsh/cordis.patch.yml,插入一行 loader 条目。
  # ~/.dsh/cordis.patch.yml
  - insert:
      - id: model-proxy/host
        name: dsh-plugin-model-proxy
        config: {}
  • 字段名与嵌套:loader-entry 的标识字段为 name:,而非 module:。新插入的行必须嵌套在 insert: 下。注意,仅主机半部分是 loader entry,浏览器半部分由 dsh.client 自动发现。
  • 避免冲突:不要手动添加 model-proxy/client 行,这会导致浏览器代码在 Node 进程中运行。此外,不要将手动配置路径与上述推荐的 profile 管理安装方式混合使用,否则会在启动时产生冲突。

该插件通过劫持 fetch 并监听 llm/stream 事件实现路由,不修改 baseURL,保持了配置的原貌。完整源码与目录可查看 GitHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜