izwarm195/dsh-net-tools:把 DSH 接到本地 HTTP 代理

前言

DSH 的智能體在沙箱中執行命令時,可能需要訪問外部網站、文檔或 API。若這些請求需要經過本地 HTTP 代理,代理地址就需要在抓取動作中正確指定。

下面介紹 izwarm195/dsh-net-tools:它的定位是“讓 DSH 使用你的魔法”——把沙箱裏的 agent 接上你本地的 HTTP 代理,一條命令就能抓取被牆的網站、文檔和 API。

這是什麼

izwarm195/dsh-net-tools 是一個 DSH 插件,由 izwarm195 維護,許可證爲 MIT。

項目說明指出:代碼、測試與文檔均由 AI(DeepSeek Harness 編碼代理)生成,人工僅負責審閱、驗收與發佈。

它主要解決一個具體問題:DSH 宿主進程可以使用正常的 Node.js 網絡路徑,而插件提供 net_fetch 和 net_proxy_status 兩個工具,讓 agent 能統一通過本地 HTTP 代理抓取 HTTP(S) 內容,並檢查代理狀態。

核心功能

net_fetch

net_fetch 用於抓取 HTTP(S) 內容。

它通過用戶代理的手動 CONNECT 隧道完成請求,不走 schannel,零依賴。調用後可以自動跟隨重定向,並返回文本或截斷後的響應體。

它同時執行以下限制:

  • 僅允許 http: / https: 協議
  • 超時上限默認 30 秒
  • 響應大小上限默認 1 MiB
  • 重定向最多 5 次,且每次重定向都重新執行同樣的安全校驗
  • 默認拒絕私網 / 迴環 / 鏈路本地地址;傳 allowPrivate: true 可放行

net_proxy_status

net_proxy_status 用於報告 DSH 進程會使用的代理,並檢測其可達性。

它會檢查以下來源:

  • 用戶級環境變量
  • 當前進程環境變量
  • Windows 系統代理

代理發現順序如下:

  1. 顯式 proxy 參數
  2. HTTPS_PROXY / HTTP_PROXY 環境變量
  3. Windows 系統代理(註冊表 Internet Settings)

安裝與啓用

先確認運行環境滿足以下要求:

  • node >=20
  • peerDependencies:@deepseek-ai/cordis >=4.0.0、@deepseek-ai/dsh-tools >=0.1.0-rc.5

安裝命令如下。命令中的 <本包> 爲插件包占位符,需按實際安裝來源替換:

dsh plugin --profile web add <本包>
# 或:dsh plugin --profile desktop add <本包>

經過上面的步驟後,重啓 DSH,agent 即可使用 net_fetch 和 net_proxy_status 兩個工具。

典型用法

抓取被牆的頁面

在 agent 中調用:

net_fetch(url: "https://github.com/")

這一步用於抓取頁面、文檔或 API,並按代理發現順序使用本地 HTTP 代理。

排查代理配置

調用:

net_proxy_status(checkReachability: true)

這一步用於確認 DSH 進程將使用哪個代理,並檢測該代理是否可達。

適用場景與注意

適合以下場景:

  • 需要 DSH agent 抓取外部網站、文檔或 API
  • 本地已有可用 HTTP 代理
  • 希望把代理抓取和代理診斷放在統一工具中
  • 希望避免每個抓取動作都單獨處理代理地址

使用前需要注意:

  • 工具運行在 DSH 宿主進程(Node.js)中,位於文件沙箱之外,因此會以當前 DSH 進程的運行環境工作。
  • 安裝前應檢查源碼與 MIT 許可證。
  • allowPrivate: true 會放行默認被拒絕的私網 / 迴環 / 鏈路本地地址,只在確需訪問內網資源時開啓。
  • net_fetch 僅處理 http: / https: 請求,並受 1 MiB 響應大小、30 秒超時和 5 次重定向限制。

結尾

izwarm195/dsh-net-tools 的價值是把本地 HTTP 代理接入 DSH 的 agent 工具鏈:net_fetch 負責抓取,net_proxy_status 負責診斷。

項目地址:

  • GitHub:https://github.com/izwarm195/dsh-net-tools
羽毛球分组比赛记分
小程序二维码

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

小夜