dsh-llm-proxy:讓 dsh 的 LLM 請求走可配置 HTTP 代理

前言

在 DSH 插件體系中,宿主進程可以通過插件獲得新的能力。對於需要把 dsh 發出的 LLM 請求導向指定 HTTP 代理的場景,dsh-llm-proxy 提供了一個比較直接的插件方案。

它主要解決三類問題:讓 dsh 的 LLM 請求走配置中的代理地址;在設置變更時即時生效,而不是必須重啓;通過本地接口查看當前狀態並測試連通性。

下面介紹它的定位、安裝方式、配置字段和需要注意的限制。

這是什麼

dsh-llm-proxy 是 DeepSeek Harness (dsh) 的全局 HTTP 代理插件。它使用 undici 的 setGlobalDispatcherEnvHttpProxyAgent 接管 dsh 的 fetch 代理路由,使 dsh 的 LLM 請求能夠走配置的代理。

該項目由 Ye-Yu-Mo 維護,許可證爲 MIT。插件以 bundle 包形式安裝,會自動加入 dsh.profile.bundles,在下次啓動時激活。

核心功能

  • 全局接管:用 undici setGlobalDispatcherEnvHttpProxyAgent 接管 dsh 的 fetch 代理路由。
  • 代理配置:讓 dsh 的 LLM 請求走配置中的代理地址。
  • 熱切換:設置變更後即時生效,無需重啓。
  • 可恢復:插件停止或禁用時,會恢復基線 dispatcher,不留進程級殘留。
  • 狀態查看:提供本地接口查看當前生效模式。
  • 連通性測試:提供本地接口測試代理到目標端點的連通性。

安裝與啓用

先使用已覈實的 GitHub 安裝命令,將插件安裝到 web profile:

dsh plugin --profile web add github:Ye-Yu-Mo/dsh-llm-proxy

如果是本地調試,也可以先 clone 倉庫,再使用 link 安裝:

git clone https://github.com/Ye-Yu-Mo/dsh-llm-proxy
dsh plugin --profile web add link:$(pwd)/dsh-llm-proxy

安裝後,需要重啓 dsh web,使 bundle 補丁生效。隨後查看日誌文件:

~/.dsh/dsh.log

看到 [llm-proxy] 日誌,即說明插件已裝載。

配置

可以通過 dsh 設置頁的「LLM 代理」項配置,也可以直接編輯本地設置文件:

~/.dsh/settings.yaml

下面是一個示例配置:

llm-proxy:
  enabled: true
  url: http://127.0.0.1:7891
  noProxy:
    - localhost
    - 127.0.0.1
    - ::1

配置項含義如下:

  • llm-proxy.enabled:是否啓用代理接管。
  • llm-proxy.url:HTTP(S) 代理地址。
  • llm-proxy.noProxy:不走代理的地址列表。

配置變更後,插件支持即時生效,無需重啓 dsh。

狀態與測試接口

插件提供兩個本地 HTTP 接口,且 HTTP API 爲 loopback-only,用於降低 LAN 探測風險。

查看當前狀態:

GET /api/llm-proxy/status

調用後可以查看當前生效模式,以及 env.httpProxyenv.httpsProxy 字段。

測試代理連通性:

POST /api/llm-proxy/test

調用時需要提交以下字段:

  • url:待測試的代理地址。
  • probeUrl:目標端點地址。
  • timeoutMs:超時時間。

適用場景與注意

適合以下情況:

  • 你希望 dsh 的 LLM 請求統一走指定代理。
  • 你需要在運行時切換代理配置,而不是每次修改後重啓 dsh。
  • 你需要一個本地接口確認當前代理狀態,並測試目標端點是否可達。

使用前注意:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • 項目要求 Node >=24。
  • dsh 設置頁的配置命名空間白名單是硬編碼的,第三方插件無法自注冊;當前需要手動把 llm-proxy 加入白名單,設置頁表單纔可用。
  • 插件停止或禁用時,會恢復基線 dispatcher,避免留下進程級殘留。
  • 安裝命令請使用資料中給出的命令,不要憑名稱自行拼接。

結尾

dsh-llm-proxy 的價值,是把 dsh 的 LLM 請求代理能力做成了可配置、可觀察、可回退的插件能力。

項目地址:

https://github.com/Ye-Yu-Mo/dsh-llm-proxy

如果你在使用 DSH 插件目錄,可以按項目名 dsh-llm-proxy 或作者 Ye-Yu-Mo 檢索。

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

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

小夜