dsh-squeeze: Using an auxiliary model to read long context and return only the answer to the conversation

前言

在 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye