dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
中文 · English
会话级自动上下文压缩插件(DeepSeek Harness / DSH)
在输入区右侧显示一个阈值圆环:当前会话上下文用量实时显示,拖动滑杆设置该会话的压缩阈值(1%–90%,默认 50%)。每当用量超过阈值,插件自动触发上下文压缩(compact)——回合中每走一步之前检查一次,回合结束时再检查一次——压缩摘要注入上下文后会话自然继续,全程无需手动干预,也不发送任何「继续」消息。
sessionId 持久化)useProjection("contextPressure")),面板打开即实时刷新,无需轮询agent/pre-step(waterfall 中间件)与 agent/turn-stopping(串行事件)里做,全程 try/catch,绝不抛出$DSH_HOME/dsh-auto-compact.json,默认 ~/.dsh/dsh-auto-compact.json),重启不丢compaction-basic(默认 80% 压力阈值)保留为兜底,互不干扰前置:已装好 DSH(dsh web 能正常运行),Node.js ≥ 20、pnpm ≥ 10。
从旧版 auto-compact 升级:旧包名是
auto-compact,新包名是dsh-auto-compact。请先卸载旧包再装新版,避免双挂载(两个 Host 半、两个圆环):npx -y --package @deepseek-ai/dsh dsh plugin --profile web remove auto-compact
macOS / Linux(Windows 装 Git Bash 或 WSL 也可):
curl -fsSL https://raw.githubusercontent.com/JohnathonYe/auto-compact/main/scripts/install.sh | bash
脚本自动完成全部步骤:安装 npm 依赖 → 注册官方挂载(dsh.profile.bundles)→ 清理旧版残留的挂载行。你只需要:
--restart 让它自动重启:curl ... | bash -s --restart)Cmd+Shift+R / Windows·Linux Ctrl+Shift+R),输入区右侧出现阈值圆环 ✅脚本内部已自动处理:
dsh命令通常不在全局 PATH(DSH 一般经 npx 安装,直接敲dsh会报 command not found),脚本会自动改用 npx 调用,无需用户手动处理。
npx -y --package @deepseek-ai/dsh dsh plugin --profile web add dsh-auto-compact
装完同样需要重启 DSH + 强刷浏览器。
dsh-auto-compact 目前尚未发布到 npm,上面的 dsh plugin --profile web add dsh-auto-compact 需要可用的 npm 源。若你只想跑本地代码,直接把 checkout 链接进 profile:
git clone https://github.com/JohnathonYe/auto-compact.git
cd auto-compact
npx -y --package @deepseek-ai/dsh dsh plugin --profile web add "$PWD"
pnpm 会以 link: 方式把 profile 指向这份 checkout(改完代码重启 DSH 即生效,无需重装);包内声明的 dsh.bundle.patch 仍会被 CLI 协调进 dsh.profile.bundles。
npx -y --package @deepseek-ai/dsh dsh plugin --profile web remove dsh-auto-compact,卸载后重启生效;若曾手动在 cordis.patch.yml 写过挂载行,一并删除,避免双挂载(两个 Host 半、两个圆环)lib/index.js):监听 agent/pre-step(回合中每步之前,waterfall 中间件)与 agent/turn-stopping(回合结束,串行事件)两个事件,读取当前会话阈值与用量(tokenMeter.measure() / contextPressure 投影),超阈值时调用 agentPresets.serviceFor(agent, 'compaction').compactIfNeeded(agent, 'context-overflow', signal) 执行压缩 —— 走 context-overflow 分支,绕过引擎自身的 0.8 阈值检查,完全由滑杆决定。lib/client.js):在 conversation.input.right 槽注册圆环 UI;阈值经自定义 webServer 路由 /dsh-auto-compact/api(host 侧读写上面的 JSON 阈值存储)读写;用量来自 useProjection("contextPressure") 实时投影。compaction-basic(@deepseek-ai/dsh-compaction-basic)处于启用状态 —— 默认预设(standard / code / cordis)均已内置,minimal 预设除外pnpm run check:compat # 针对当前安装的 dsh
node scripts/check-compat.mjs --runtime 0.2.0 --runtime 0.2.5
脚本调用的是 DSH 自带的那个评估器(@deepseek-ai/dsh-app-boot 的 evaluatePluginCompatibility),
所以这里的判定与 DSH 加载插件时的判定完全一致——不是另写一套 semver 规则。
peer 上界刻意写成"下一个 minor 的预发布地板":
>=0.1.0-rc.6 <0.3.0-0 # 收下整个 0.2.x(含 0.2.0 正式版),挡掉 0.3.0-rc.1
DSH 升到新 minor(例如 0.3)时:把上界改成 <0.4.0-0,用新运行时跑一遍上面的检查,再发版。
上界的 -0 不能省——写成 <0.4.0 反而会把最危险的 0.4.0-rc.1 放进来。
不想改包时应急:dsh plugin allow-version 给"插件@精确版本"开豁免。
MIT