DeepSeek Harness 本地網絡代理兜底插件

前言

在使用 DeepSeek Harness (DSH) 進行智能體開發或運行時,如果當前網絡環境存在本地代理(如 Clash、V2Ray 等),但直連海外網站不可達,手動配置環境變量或重啓進程會降低效率。dsh-net-proxy-plugin 作爲一個本地網絡代理兜底插件,旨在自動掃描系統中的代理配置,探測連通性,並在直連失敗時將可用代理接入正在運行的 DSH 進程。

插件簡介

本插件由 minatoAI 維護,是一個 MIT 許可的開源工具。它不內置代理服務,而是作爲 DSH 的網絡層補充:檢測系統代理、掃描本地端口,並在直連失敗時自動啓用檢測到的代理,確保 fetch 請求與子進程(如 git、pnpm)的網絡訪問可用。

核心功能

  1. 自動發現候選代理
    按優先級掃描:配置文件 extraProxies -> 環境變量(HTTPS_PROXY/HTTP_PROXY/ALL_PROXY)-> 系統代理(Windows 註冊表、macOS scutil、Linux gsettings)-> 常見本地端口(7890, 10809 等,支持 HTTP 與 SOCKS5)。

  2. 連通性探測
    對探測目標(默認爲 Google 204 與 GitHub)進行直連與逐候選代理的連通性測試。返回 HTTP 狀態碼 < 500 視爲可達。

  3. 自動決策
    提供兩種激活模式:
    - auto(默認):僅在直連失敗且存在可用代理時激活。
    - always:存在可用代理即激活。
    探測結果默認每 5 分鐘複檢一次(可通過配置關閉或調整),VPN 斷開或端口變更時可通過命令手動刷新。

  4. 激活範圍
    - 進程內:接管所有 fetch 請求(undici dispatcher),覆蓋 LLM 調用、web_search 等場景。
    - 子進程:通過設置 HTTPS_PROXY/HTTP_PROXY/NO_PROXY 環境變量,確保 git、pnpm 等啓動的子進程也走該代理。

  5. WebFetchProvider 兼容
    提供語義一致的 net-proxy WebFetchProvider,可與 dsh 內置的 web_fetch 一鍵切換,支持自定義超時、響應大小限制與重定向規則。

安裝與啓用

該插件以 bundle 方式分發,安裝命令如下:

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

安裝完成後,需要重啓 DSH 進程以使配置生效:

dsh --profile web

配置與使用

在 profile 的 cordis.patch.yml 中覆蓋 net-proxy 行,可自定義探測目標、超時時間、代理列表及激活策略。

- id: net-proxy
  config:
    targets: [https://www.google.com/generate_204, https://github.com]
    probeTimeoutMs: 5000
    reprobeIntervalMs: 300000
    bypassHosts: [localhost, 127.0.0.1, ::1, api.deepseek.com, "*.deepseek.com"]
    extraProxies: [http://127.0.0.1:7890]
    probePorts: [7890, 7897, 10809]
    activation: auto

在 Web UI 中,可以通過以下命令管理插件狀態:
- 輸入 /net-proxy 查看當前激活的代理、來源及直連可達性。
- 輸入 /net-proxy refresh 立即重新執行探測與決策。

若需讓 web_fetch 工具也走代理,需切換 fetchProvider:

- id: web
  config:
    searchProvider: deepseek-official
    fetchProvider: net-proxy

注意事項

  • 兜底方案:插件不強制接管網絡。當沒有可用代理或直連正常時,DSH 的行爲與未安裝該插件完全一致。
  • 僅限 dsh 進程:插件僅讀取並影響當前 dsh 進程及其子進程的網絡訪問,不會修改 Windows 系統代理設置。
  • 信任代理:插件會使用你係統中的代理服務轉發流量,請確保信任該本地代理。

結語

dsh-net-proxy-plugin 通過自動化代理發現與決策,解決了 DSH 環境下直連與代理切換的痛點。開發者無需手動干預,即可在直連失敗時自動利用本地可用代理。更多細節與源碼,可參考 GitHub 倉庫。

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

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

小夜