DeepSeek Harness Hub
← 返回列表

自动上下文压缩JohnathonYe/auto-compact

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

按会话设定阈值,用量超标自动压缩上下文

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/25 · 已提供中文文档
综合分
29.3
GitHub 分
29.3
用户评分
★ Stars
2
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add JohnathonYe/auto-compact
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-presets@deepseek-ai/dsh-token-meter@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-settings@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-api-remotes
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-auto-compact

中文 · English

会话级自动上下文压缩插件(DeepSeek Harness / DSH)

自动压缩阈值面板

在输入区右侧显示一个阈值圆环:当前会话上下文用量实时显示,拖动滑杆设置该会话的压缩阈值(1%–90%,默认 50%)。每当用量超过阈值,插件自动触发上下文压缩(compact)——回合中每走一步之前检查一次,回合结束时再检查一次——压缩摘要注入上下文后会话自然继续,全程无需手动干预,也不发送任何「继续」消息。

特性

- 🔴 会话级阈值:每个会话独立设置,互不影响(按 sessionId 持久化)
- 📊 实时用量:与自带 ContextMeter 同源(useProjection("contextPressure")),面板打开即实时刷新,无需轮询
- 🎚️ 1%–90% 细腻调节:步进 1%,适合精细控制(未设置时默认 50%)
- 🤖 全自动:回合中每步前 + 回合结束自动检测 → 超阈值自动 compact → 摘要注入后自然继续
- 🛡️ 零崩溃风险:所有检查都在 agent/pre-step(waterfall 中间件)与 agent/turn-stopping(串行事件)里做,全程 try/catch,绝不抛出
- 💾 持久化:阈值存于 settings.yaml 的 dsh-auto-compact 命名空间,重启不丢
- 🧊 与内置安全网并存:DSH 自带的 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)→ 清理旧版残留的挂载行。你只需要:

1. 跑上面这一条命令
2. 重启 DSH(装完后脚本会提示命令;也可以加上 --restart 让它自动重启:curl ... | bash -s --restart)
3. 强刷浏览器(macOS 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 + 强刷浏览器
- 卸载:npx -y --package @deepseek-ai/dsh dsh plugin --profile web remove dsh-auto-compact,卸载后重启生效;若曾手动在 cordis.patch.yml 写过挂载行,一并删除,避免双挂载(两个 Host 半、两个圆环)

使用

1. 点击输入区右侧的圆环,打开面板
2. 面板显示当前会话的实时上下文用量(百分比)
3. 拖动滑杆设置阈值(1%–90%,会话级独立;未拖动过的新会话默认 50%,仅当前会话生效,不影响其他会话)
4. 之后每当用量超过阈值(回合中某一步之前,或回合结束时),插件自动执行 compact 并继续

工作原理

- 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 阈值检查,完全由滑杆决定。
- Client 半(lib/client.js):在 conversation.input.right 槽注册圆环 UI;阈值经自定义 webServer 路由 /dsh-auto-compact/api(host 侧直写 settings 服务,绕过 DSH api.settings 的官方命名空间白名单)读写(dsh-auto-compact.thresholds[sessionId]);用量来自 useProjection("contextPressure") 实时投影。

依赖

- 需要 DSH 的 compaction-basic(@deepseek-ai/dsh-compaction-basic)处于启用状态 —— 默认预设(standard / code / cordis)均已内置,minimal 预设除外
- 所有 peer 依赖随 DSH 自带,无需额外安装

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群