前言¶
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 系統代理
代理發現順序如下:
- 顯式
proxy參數 HTTPS_PROXY/HTTP_PROXY環境變量- 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