dsh-force-compact:面向本地的激进上下文压缩插件

DSH 智能体在长对话场景中常面临上下文窗口限制或 API 调用成本的问题。dsh-force-compact 通过在本地 llama.cpp 上运行 Qwen3.8‑27B,并在对话历史本身上执行压缩逻辑,在保持常驻 Prompt 小而快的同时,提供“大窗口”的体验。

核心定位

这是一个 DSH Cordis 插件,旨在通过“收缩历史”而非单纯依赖超大上下文窗口来维持智能体运行。它默认运行在本地环境,数据不出本机,无 API 成本。

工作机制

插件在 resolveCompaction 这一单一接口下提供双引擎支持,自动切换:

  • 官方引擎:当 compaction 服务在智能体域中可解析时优先使用,委托给 compaction/basic。
  • 内置引擎:作为回退方案。当官方服务不可用(如标准预设隔离了该服务)时接管。它直接操作 ctx.sessions / ctx.llm.stream / ctx.tokenMeter,复用官方的事件词汇,确保安全回放。

触发机制

压缩通过以下路径触发:

  1. 请求前守卫 (agent/pre-step):读取会话的 projectedTokens(即 UI 右下角显示的数字)。当达到 autoThresholdTokens 时,拒绝当前请求,转而执行压缩,保留最新的 retainLatestTokens。低于阈值则放行。
  2. 回合结束/空闲 (agent/status → idle):智能体静止时,通过 compactNow 触发压缩(需开启 turnEndForceCompactionEnabled)。
  3. 手动命令 (/force-compact):仅在空闲时立即压缩;若智能体忙碌,则设置本地标志,在下一模型步执行。
  4. 会话刷新 (session/flush):在持久化检查点触发压缩。

所有路径最终都汇入“压缩结果写入会话”这一边界,并触发 LiveUI 状态更新。

思考控制

默认设置 disableThinking: true,该控制仅对压缩调用生效。

  • 压缩调用:携带 reasoningEffort:'off'(或 llama.cpp 的 reasoning_effort:"none"),强制关闭思考。
  • 其他请求:机器的 LlmCallConfig 保持不变,不受影响。
  • 兼容性:如果模型不支持 off 级别,插件会探测路由能力并自动降级到最低支持的级别(如 low),而非直接报错。对于完全不支持推理的模型,则不添加该字段。

LiveUI 状态

插件通过 LiveUI 发送实时状态文本:
* [强制压缩中>>>]:压缩提交前。
* [压缩完成!]:压缩完成后。

依赖与安装

插件作为 DSH Cordis 插件运行,需满足以下 peer 依赖:

{
  "@deepseek-ai/cordis": ">=4.0.4",
  "@deepseek-ai/dsh-agent": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-compaction": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-commands": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-store": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-ui-primitives": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-ui-settings": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-client-locale": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-llm": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-session": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-session-projection": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-settings": ">=0.2.0-rc.1",
  "@deepseek-ai/dsh-token-meter": ">=0.2.0-rc.1",
  "@deepseek-ai/schemastery": ">=3.18.4"
}

注:安装方式通常通过包管理器或 DSH 插件机制,具体需参考该插件在 package.json 中的 exports 与 files 字段(包含 index.js、src/、web/、cordis.patch.yml 等)。

适用场景

适合需要在本地运行大模型、对上下文窗口敏感且希望零 API 成本的场景。由于插件运行在当前 DSH 进程权限下,安装前建议检查源码与许可证。

羽毛球分组比赛记分
小程序二维码

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

小夜