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