dsh-scoped-http-proxy: Explicitly Invoking HTTP Proxy Service

前言

在 DeepSeek Harness(DSH)里做插件时,有时只有某段业务代码需要走本地或内网 HTTP(S) 代理,而不是把整个进程的模型 API、MCP、搜索或网页抓取都改成走代理。改系统代理、Clash 或环境变量会影响面太大;全局包装 fetch 又容易和其他插件抢行为。下面介绍维护者 314857493 发布的 dsh-scoped-http-proxy:它提供 Cordis 上的可选代理服务,以及在 DSH 设置页里填写代理地址的界面;只有调用方主动使用时才会走你配置的代理。

这是什么

dsh-scoped-http-proxy 是 DSH 社区插件(MIT 许可证,当前包版本 0.1.1)。它不修改系统代理、Clash、环境变量、全局 fetch 或全局 dispatcher,也不扫描、包装或接管其他插件的网络请求,不自动修复 Fake-IP。装好插件本身不会让模型 API、MCP、搜索或网页抓取自动走代理。

核心功能

  1. Cordis 服务 scopedHttpProxy:其他插件通过依赖注入调用 ctx.scopedHttpProxy.fetch(url, options),返回标准 Response,支持调用者传入 signal;重定向需调用者自行处理,且不能通过 options 覆盖代理 dispatcher。超时、响应大小、响应体消费/取消和目标地址准入由调用者负责。

  2. Web 设置界面:在 DSH 侧边栏 「插件」→「独立 HTTP 代理」 填写完整代理地址(例如 http://127.0.0.1:7897)并保存。支持 HTTP(S) 代理与 IPv6 地址;不支持 SOCKS、URL 内嵌账号密码或 URL 路径。保存写入当前 profile 的 Cordis patch;后续新请求用新地址,已在途的请求继续完成。默认地址为 http://127.0.0.1:7897。

  3. 与 Fake-IP 类插件的关系:同维护者的 dsh-web-fetch-fakeip 从 0.4.0 起可通过本服务做条件回退,两者需同时安装。市场中的 kaminn 与 wjj-8283 插件使用各自 TUN 处理方式,不会自动调用本服务;仅安装本插件不会改变它们的行为。

安装与启用

环境要求:Node.js 22.19+;资料中写明已在 DSH Desktop 的 Cordis 4.0.5 / Web 设置接口 0.2.1-rc.4 上验证。

官方安装命令如下(针对 web profile):

dsh plugin --profile web add 'git+https://github.com/314857493/dsh-scoped-http-proxy.git#v0.1.1'

安装后重启 DSH,打开侧边栏 「插件」→「独立 HTTP 代理」,填写完整地址并保存。

也可在 Cordis 配置中手工写入:

- id: scoped-http-proxy
  config:
    proxyUrl: http://127.0.0.1:8080

卸载前应先停用或移除依赖 scopedHttpProxy 的插件,再执行:

dsh plugin --profile web remove dsh-scoped-http-proxy

并移除用户 patch 中对 scoped-http-proxy 的覆盖项,然后重启 DSH。

典型用法:接入其他插件

通过 Cordis 服务协作,无需导入本包实现。在插件入口声明注入并调用:

export const inject = ['scopedHttpProxy'];
export function apply(ctx) {
  // 在业务代码需要代理时调用:
  // const response = await ctx.scopedHttpProxy.fetch(url, {
  //   method: 'GET', signal, headers: { accept: 'text/html' }
  // });
}

地址仅在上述(或等价)调用路径上生效。

适用场景与注意

适合谁:需要在 DSH 插件内、对少数 HTTP(S) 请求显式走代理的开发者;或与同维护者 Fake-IP 插件组合做条件回退的场景。

安全与权限:这是供可信插件使用的网络能力,不是面向模型开放的工具,也不承担 SSRF 过滤。仅允许 HTTP(S) 目标 URL、禁止目标内嵌凭据;其他地址策略由调用者负责。插件以当前 DSH 进程权限运行,只配置你信任的代理服务器。安装前应自行查看源码与 MIT 许可证。

社区插件目录位于独立站点,与 DeepSeek / 幻方无官方从属关系;可在 SkillHub 目录页 查看条目,完整说明见 GitHub 仓库。

经过上面的步骤,你可以在不动全局网络栈的前提下,为指定插件逻辑提供可配置的 HTTP(S) 代理入口。

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

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

Xiaoye