dsh-squeeze:用輔助模型讀長材料,只把答案帶回對話

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,一旦工具把整頁 HTML、大段日誌或 PDF 原文塞進主對話,上下文會迅速膨脹,成本和延遲都會上去。常見做法是手動摘要,或讓主模型自己「掃一遍」——前者費人工,後者仍佔用主會話窗口。

下面介紹的 squeeze 是社區插件 dsh-squeeze(維護者 q8atnight),在 DSH 裏增加一個同名工具:Agent 帶着具體問題調用它,插件下載或讀取材料,交給你配置的輔助模型作答,只把答案和一行狀態信息返回,原文不進主對話。

這是什麼

dsh-squeeze 歸類爲聯網工具類 DSH 插件(社區目錄:skillhub 條目)。當前發佈版本 2.1.0(MIT 許可證),依賴 DSH 0.2.1-rc.5 或更新。它不引入 Python 或額外 npm 包,複用 DSH 已有的模型連接與登錄。

一句話:長網頁、多頁批量、文本文件、帶文字層的 PDF → 輔助模型按 prompt 回答 → 主 Agent 上下文保持短小。

核心功能

工具行爲

Agent 可見參數:prompt(必填);來源三選一——url、urls(列表)或 file(也接受 file_path);配置了多個輔助模型時還可傳 model(暱稱)。

返回格式爲答案正文 + 狀態行,例如:

squeeze: ok | model quick (Qwen Flash Next) | 6.9s | source 16,856 chars | thinking medium

失敗時以可行動的錯誤類型開頭(如 REQUEST PROBLEM、SOURCE PROBLEM、TOO BIG、MODEL UNAVAILABLE、NO ANSWER、TIMED OUT、CANCELLED),並說明下一步該怎麼做。例如無文字層的掃描 PDF 會提示需要 OCR。

輔助模型與設置頁

在 Plugins → squeeze → Configure 中:

  • 從 DSH 已有模型列表裏選默認模型,最多再配 2 個額外模型;同一模型不能重複出現。
  • 每個模型可設暱稱(如 quick、careful)和一行 when to use 說明,Agent 在工具描述裏看到後會按暱稱選型。
  • 每個模型的 thinking 等級由你在設置裏固定,Agent 不能改。
  • Context fill (%) 默認 80:材料最多佔用該模型上下文窗口的這一比例,其餘留給思考與回答;Agent 會看到各模型對應的體積上限估算。

可選 Fallback:某模型不可用、報錯、已從列表移除或上下文裝不下材料時,可自動嘗試列表中的下一個(超時不會走 fallback)。狀態行會說明最終是誰答的、以及跳過了哪些模型。

聯網與文件

  • 單次最多 20 個 URL(可配置),並行下載時 4 個一批;死鏈跳過並列出,不拖垮整次調用。
  • 單頁下載超時默認 30 秒;部分政府站點響應頭超過 Node 內置 16 KB 限制時會用更大上限重試。
  • 頁面文本過短(默認低於 300 字符)可視爲 JS 殼頁或攔截頁:默認原樣交回 Agent(也可改爲直接拒絕)。
  • PDF:鏈接或本地 PDF 在已安裝 pdftotext(poppler,macOS 上 brew install poppler)時轉爲文本;掃描件無文字層則拒絕並建議 OCR。
  • 同一 provider 上 squeeze 調用排隊,避免打爆單個本地模型;不同 provider 之間不互相阻塞。

其他默認限制(可在設置中調整)

配置項 默認值 含義
Output budget (tokens) 16,000 思考 + 回答上限,且不超過模型自身上限
Time limit per model call (s) 600 單次模型調用超時
Longest answer (characters) 6,000 更長會在換行處截斷並標記 ANSWER CUT

未在設置裏選任何輔助模型時,squeeze 使用 DSH 默認對話模型。

安裝與啓用

環境要求:DSH ≥ 0.2.1-rc.5;需要 PDF 時再裝 pdftotext。

官方推薦從 GitHub Release 安裝 bundle。在 DSH 裏讓 Agent 通過插件管理器安裝,原文示例爲:

Install the bundle `https://github.com/q8atnight/dsh-squeeze/releases/download/v2.1.0/dsh-squeeze-2.1.0.tgz` with the plugin manager.

(底層爲 plugin_manager → install_bundle 使用該地址;也可下載 .tgz 後把本地路徑交給 Agent 安裝。)

也可將倉庫解壓到固定目錄(例如 ~/.dsh/plugins/dsh-squeeze),再讓 Agent 對該文件夾執行 bundle 安裝。若插件管理器提示需要重啓,則重啓 DSH 後打開 Plugins → squeeze → Configure 選擇模型。

插件以當前 DSH 進程權限運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認是否符合你的安全與合規要求。

典型用法

README 中的真實調用片段(2026-11-03,本地模型,答案此處略 shorten)說明用法:Agent 針對約 1.7 萬字符的政府 PDF 提問,對話裏只出現幾百字的結論,而不是全文。

Agent 側調用形態示意:

squeeze  url: https://tax.gov.ae/…/Cabinet Decision No. 75 of 2023 and amendments - For Publishing.pdf
         prompt: What penalty (AED) applies for failing to submit a corporate tax registration application on time?
                 Quote the item number.

典型場景包括:從長報告裏摳數字、在大日誌或代碼文件裏定位一段、對比若干網頁、摘要 transcript 等——README 列出的用途與此一致。

適用場景與注意

適合:主 Agent 需要「從外部長材料裏按問題取一點信息」,且你希望材料走指定輔助模型(含本地與雲端組合),而不是堆進主上下文。

侷限(以 README 爲準):

  • 僅支持文本、HTML、帶文字層的 PDF;Word/Excel 需先轉文本;純 JS 渲染頁讀不了,應改用瀏覽器類工具。
  • 體積上限按字符→ token 估算,模型仍報過長時會 TOO BIG(或開啓 fallback 時換模型)。
  • 答案來自輔助模型,重要數字應回源覈對。
  • 隱私:材料會發給實際作答的模型;開啓 fallback 且混用本地/雲端時,本地不可用可能導致材料落到雲端。

社區插件目錄(如 skillhub.cn)與 DeepSeek / 幻方無官方從屬關係;DSH 生態本身是「一切皆插件」的思路,squeeze 是其中面向「讀長網文/文件/PDF 並壓縮回對話」的一種實現。

結尾

dsh-squeeze 用單一工具 squeeze 把「下載/讀取 → 輔助模型問答 → 只返回答案」串成固定流程,並透過暱稱、thinking 固定、fallback 與清晰的錯誤分類,讓 Agent 在長材料場景裏仍可控地省上下文。

  • 目錄頁:https://www.skillhub.cn/plugins/q8atnight/dsh-squeeze
  • 倉庫與文檔:https://github.com/q8atnight/dsh-squeeze
羽毛球分组比赛记分
小程序二维码

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

小夜