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 在社區目錄中檢索。

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

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

小夜