前言¶
在 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