dsh-net-proxy:让 DSH agent 的网络请求走指定代理

前言

DSH 插件体系会把 web 侧能力挂到 web profile 上。agent 运行时可能会自己发起 web_searchweb_fetch 或调用外部 API。如果你希望这些请求统一走本机代理,而不是分别改外部工具、系统环境变量或调用参数,dsh-net-proxy 提供了一个直接入口:在 DSH 设置里填写一次代理地址,让 agent 进程内的 fetch 走对应代理。

这是什么

dsh-net-proxy 是 DeepSeek Harness(DSH)网络代理插件,仓库地址为 https://github.com/mafeis/dsh-net-proxy,许可证为 MIT,已核实资料中的当前版本为 0.2.5

它包装 agent 进程的全局 fetch,让 agent 自己发起的网络请求(web_search / web_fetch / 外部 API)走你配置的 HTTP / HTTPS-CONNECT / SOCKS5 代理。配置会持久化,插件启用后自动生效,并提供可视化设置页。

核心功能

  • 让 agent 发起的 web_searchweb_fetch 和外部 API 请求走代理。
  • 服务端包装 agent 进程的全局 fetch,手写转发,不引入第三方代理依赖。
  • 配置存储在 $DSH_HOME/net-proxy.json
  • 设置页通过同源路由 /_dsh/net-proxy 读写配置,修改后即时生效,无需重启。
  • NO_PROXY 默认排除本地回环地址,避免本地请求被代理。
  • 提供可视化设置页,用于启用代理、填写地址和认证信息。

安装与启用

先安装插件:

dsh plugin --profile web add github:mafeis/dsh-net-proxy

安装后重启 dsh web,让插件进入可用状态:

dsh web

然后进入 设置 → 网络代理,启用代理并填写代理地址,例如:

127.0.0.1:7890

如果不想走安装命令,也可以手动在 profile 的 cordis.patch.yml 中加入:

- insert:
  - id: net-proxy
    name: 'dsh-net-proxy'

配置字段

配置保存在 net-proxy.json,设置页读写的是同一份配置。默认值如下:

字段 默认值 含义
enabled false 是否启用代理
protocol http http(含 CONNECT 隧道)或 socks5
host 127.0.0.1 代理主机
port 7890 代理端口
username 可选认证用户名
password 可选认证密码
noProxy ["127.0.0.1","localhost","::1"] 命中后直连,不走代理

一个贴近默认值的配置示例如下:

{
  "enabled": false,
  "protocol": "http",
  "host": "127.0.0.1",
  "port": 7890,
  "username": "",
  "password": "",
  "noProxy": [
    "127.0.0.1",
    "localhost",
    "::1"
  ]
}

典型用法

1、安装插件并重启 dsh web

dsh plugin --profile web add github:mafeis/dsh-net-proxy

2、打开 设置 → 网络代理,把 enabled 打开。

3、根据本地代理类型选择协议:

  • HTTP / HTTPS-CONNECT:选择 http
  • SOCKS5:选择 socks5

4、填写代理地址。例如本机代理运行在 7890 端口时,可以填写:

host: 127.0.0.1
port: 7890

5、如果代理需要认证,填写 usernamepassword

6、保存后,agent 后续发起的网络请求会按当前配置走代理;再次修改配置后,也不需要重启 dsh web

依赖与运行约束

该插件面向 DSH 的 web client。package.jsonplatformweb,client 注入以下模块:

react
react/jsx-runtime
@deepseek-ai/dsh-client-ui-primitives

peerDependencies 指定了以下版本范围:

@deepseek-ai/dsh-client-ui-primitives >=0.0.1-rc.1 <0.2.0
@deepseek-ai/schemastery >=0.0.1-rc.1 <0.2.0

适用场景与注意

适合以下情况:

  • 希望 DSH agent 自己发起的请求统一走本地代理。
  • 需要在 DSH 设置页里维护代理地址,而不是改外部脚本。
  • 本地代理支持 HTTP CONNECT 或 SOCKS5。
  • 希望默认保留本地回环直连,不把 127.0.0.1localhost::1 也转发到代理。

使用前建议注意:

  • 该插件会包装 agent 进程内的全局 fetch,并以当前 dsh 进程的权限运行。
  • 安装前应检查源码、依赖关系和 MIT 许可证,确认代理配置符合你的出口策略。
  • 它针对的是 agent 自己发起的网络请求,不等同于系统级全局代理。

结尾

dsh-net-proxy 解决的是一个很具体的问题:在 DSH web profile 中,让 agent 自己的 web_searchweb_fetch 和外部 API 请求走指定代理,并通过设置页完成持久化配置。

GitHub 仓库:

https://github.com/mafeis/dsh-net-proxy

目录页链接未在本次已核实资料中给出,可按插件名 dsh-net-proxy 在社区目录中检索。

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

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

小夜