前言¶
DSH 插件体系会把 web 侧能力挂到 web profile 上。agent 运行时可能会自己发起 web_search、web_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_search、web_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、如果代理需要认证,填写 username 和 password。
6、保存后,agent 后续发起的网络请求会按当前配置走代理;再次修改配置后,也不需要重启 dsh web。
依赖与运行约束¶
该插件面向 DSH 的 web client。package.json 中 platform 为 web,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.1、localhost、::1也转发到代理。
使用前建议注意:
- 该插件会包装 agent 进程内的全局
fetch,并以当前dsh进程的权限运行。 - 安装前应检查源码、依赖关系和 MIT 许可证,确认代理配置符合你的出口策略。
- 它针对的是 agent 自己发起的网络请求,不等同于系统级全局代理。
结尾¶
dsh-net-proxy 解决的是一个很具体的问题:在 DSH web profile 中,让 agent 自己的 web_search、web_fetch 和外部 API 请求走指定代理,并通过设置页完成持久化配置。
GitHub 仓库:
https://github.com/mafeis/dsh-net-proxy
目录页链接未在本次已核实资料中给出,可按插件名 dsh-net-proxy 在社区目录中检索。