dsh-read-url:爲 DSH 智能體讀取網頁正文

前言

DeepSeek Harness(DSH)智能體可以搜索並拿到鏈接與摘要,但要把某個 URL 讀成乾淨、可直接推理的正文,仍需要專門的讀取步驟。官方 tool-webweb_fetch 會把整頁 HTML 轉成 Markdown,導航、廣告、側欄一併保留,默認上限 200,000 字符,容易佔滿上下文。社區裏也有若干網頁抓取插件,但在正文清洗、中文編碼、默認輸出長度等方面各有取捨。

下面介紹 dsh-read-url(維護者 2672243194,GitHub 14 stars,分類:聯網工具)。它面向 DSH 的 URL 讀取場景:抓取網頁、JSON API、RSS/Atom,自動識別編碼,提取主內容,並以緊湊純文本或 Markdown 返回,默認 6,000 字符上限,附帶緩存與 offset 續讀。

這是什麼

dsh-read-url 是 DeepSeek Harness 的 URL reader 插件,零運行時依賴(Node 20+ 內置 fetch/解碼/提取),無需 API Key,無需自建服務端。安裝到 DSH 後,智能體可通過 read_url 等工具把任意 http(s) 鏈接讀成清洗後的正文,而不是整頁 HTML 堆砌。

插件遵循 DSH 官方能力接縫設計:網絡請求優先走 ctx.web.fetch(),會話緩存在 ctx.effect 下注冊並在卸載時清理,工具超時通過 timeoutMsexec.signal 協作,模型側輸出爲緊湊純文本,無需再解析 JSON。

核心功能

正文提取與 Token 控制

插件從 HTML 中定位文章/主內容容器,剝離導航、頁腳等噪聲,默認最多返回 6,000 字符,並支持按段落對齊截斷。長文可用 offset 從緩存續讀,避免重複發送已讀段落。同一會話內 5 分鐘 TTL 緩存,重複讀取同一 URL 會標註 (cached)

多格式 URL

除普通網頁外,插件原生處理 JSON API(緊湊渲染,長值裁剪)與 RSS/Atom(條目列表 + feedCount)。分頁文章(小說、新聞、論壇等)默認自動拼接最多 3 頁。

中文與多語言編碼

自動檢測並規範化 UTF-16 BOM、GBK/GB2312、UTF-8、Big5、Shift-JIS 等編碼,含 mojibake 回退。相較部分同類插件,README 中標註其對 GB2312 與中文站點的處理更完整。

頁面元數據與跳轉

正文之外,插件按 meta → schema.org JSON-LD → byline 三級回退採集 publishedauthor 等字段(v1.3.0 起 JSON-LD 可補全新聞站發佈時間)。遇到 <meta http-equiv="refresh"> 殼頁、反盜鏈跳轉或無 JS SPA 入口時,自動跟隨真實頁面(最多 3 跳,防循環);聲明 <base href> 的頁面會據此解析相對鏈接。

並行與批量

自 v1.1.0 起,四個工具均聲明 isConcurrencySafe,智能體可並行發起多次 read_urlread_url_batch 一次讀取 1–10 個 URL,併發 4,單頁失敗不影響其餘結果。

網絡層

請求優先經 ctx.web 能力接縫;接縫不可用時回退全局 fetch。配置代理時,直連與代理 curl 競速,先完成者勝出。README 實測提到:使用完整瀏覽器 UA 時,部分站點(如百度)可拿到完整靜態內容,而官方 web_fetch 在相同環境下可能因 TLS/UA 特徵拿到降級頁。

安裝與啓用

從 GitHub 安裝(README 推薦,便於更新):

npx @deepseek-ai/dsh plugin --profile web add github:2672243194/dsh-read-url

本地開發時可指向目錄:

npx @deepseek-ai/dsh plugin --profile web add ./dsh-read-url

安裝後重啓 DSH(Web 或 TUI),在 Settings → Plugins 中確認 dsh-read-url 已啓用。當前 package.json 版本爲 1.3.1,許可證 MIT,要求 Node >= 20。

典型用法

安裝完成後,直接用自然語言讓智能體讀 URL 即可,例如:

Read https://example.com/article and summarize the key points
Read https://docs.example.org/guide in markdown mode
Read these URLs together and compare their viewpoints: <url1> <url2> <url3>

單頁讀取 read_url

參數 類型 默認值 說明
url string 必填 http(s) URL
maxChars number 6000 正文最大字符數(500–20000)
offset number 0 從該字符偏移續讀(走緩存,不重複前文)
mode string text text 純文本;markdown 結構化
includeLinks boolean false 是否額外返回最多 20 條頁內鏈接

輸出示例(README 實測):

title: 新聞中心首頁_新浪網
charset utf-8
(chars 800/12398 — 截斷,offset 續讀)

批量讀取 read_url_batch

一次傳入 1–10 個 URL,並行清洗,合併爲一份緊湊報告。失敗 URL 單獨標註,例如:

讀取 2/4 頁成功,2 頁失敗
--- 阮一峯的網絡日誌 (491 字符) ---
--- Example Domain (127 字符) ---
[失敗] https://zh.wikipedia.org/... — Fetch failed: HTTP 403 ...

長文續讀

對超過 maxChars 的文章,先用默認參數讀首段,再增大 offset 繼續讀後續片段;緩存命中時不會重複抓取。

適用場景與注意

適合: 需要把網頁、API 響應或 RSS 條目讀入上下文做摘要、對比、調研的 DSH 智能體場景;中文站、老編碼頁面、分頁長文;希望控制 Token 消耗、避免整頁 Markdown 的場景。

注意:

  1. 插件以當前 DSH 進程權限發起網絡請求,安裝前請閱讀 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。
  2. 反爬、403、超時等失敗會如實返回,批量讀取時單 URL 失敗不阻斷其餘 URL。
  3. 社區目錄 SkillHub 插件頁 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係;插件列表與星標等信息以 GitHub 爲準。

小結

dsh-read-url 補上了 DSH 智能體「把鏈接讀成乾淨正文」這一步:零依賴、無 API Key,默認 6,000 字符緊湊輸出,支持編碼檢測、分頁拼接、緩存續讀與批量並行。若你已在用 DSH 做聯網調研,可按上文命令安裝試用。

  • 社區目錄:https://www.skillhub.cn/plugins/2672243194/dsh-read-url
  • GitHub:https://github.com/2672243194/dsh-read-url
羽毛球分组比赛记分
小程序二维码

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

小夜