deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DSH(DeepSeek Harness)上下文压缩阈值滑块插件 —— 在 web 输入栏的上下文使用量圆环旁提供实时滑块,拖动即可调整当前会话的自动压缩触发比例(thresholdRatio,范围 0.4 ~ 1.0,默认 80%)。
/threshold 0.65 等效设置compaction-basic 的总结/保留尾部/工具结果裁剪/溢出恢复逻辑,只替换触发比例来源~已用 / 容量install.ps1 自动完成全部接线,带备份与幂等保护| 项目 | 要求 |
|---|---|
| Node.js | ≥ 22.19(LTS) |
| dsh | @deepseek-ai/dsh 0.1.0-rc.6(同版本安装:npm install -g @deepseek-ai/dsh) |
| 系统 | Windows PowerShell 5.1+(其他平台可手动安装,见下文) |
| 已运行过 | 至少启动过一次 dsh web(自动初始化 profile) |
git clone https://github.com/nvnoa57-star/dsh-compaction-slider.git
cd dsh-compaction-slider
./install.ps1
脚本自动完成:安装插件包 → 注册 profile 插件行 → 安装 auto-compact 预设 → 设为默认预设。每次修改前自动备份到 $DSH_HOME/install-backups/<时间戳>/。
安装完成后重启 dsh web,新开会话即可看到滑块。
若提示执行策略限制,先执行:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
常用参数:
./install.ps1 # 安装(幂等,可重复执行)
./install.ps1 -Force # 预设已存在时覆盖
./install.ps1 -NoDefault # 不修改默认预设(需自己在 UI 选择 auto-compact)
./install.ps1 -Uninstall # 卸载(-Force 同时删除预设)
dsh-compaction-ui、dsh-compaction-live 两个目录放入 $DSH_HOME\profiles\node_modules\@my-scope\(可拷贝或建 junction)$DSH_HOME\profiles\web\cordis.patch.yml 追加:- insert:
- id: compaction-settings
name: '@my-scope/dsh-compaction-ui'
presets\auto-compact 复制到 $DSH_HOME\.agent-presets\auto-compact$DSH_HOME\settings.yaml 添加:agent-presets:
default: auto-compact
dsh web无需修改任何 node_modules 内部文件。
打开 web 页面进入任意会话,消息输入栏 发送按钮左侧、ContextMeter 圆环(上下文占用环形指示器)旁边,有一个「压缩 XX%」的小 chip:
~已用/容量| 值 | 含义 | 效果 |
|---|---|---|
| 0.4 | 会话占用达到模型上下文的 40% 即触发压缩 | 最激进,模型始终工作在窗口前半段,最不易「上下文腐化」;压缩频率最高 |
| 0.8 | 达到 80% 触发(默认) | 官方默认水平,保留较多原文 |
| 1.0 | 几乎不主动压缩 | 仅靠溢出恢复兜底,最保守 |
压缩触发时,系统把最早的对话总结为一段 checkpoint,仅保留最近 16% 的原文(保留尾部),之后请求使用压缩后的上下文。
auto-compact 预设);安装前创建的旧会话仍使用旧预设,需新建会话浏览器滑块 ──commands.execute(sessionId, "/threshold 0.65")──▶ host /threshold 命令
│
会话日志追加 command/run 事件(官方已知事件,可重放)
│
┌───────────────────────────────────────────────────────┤
▼ ▼
compactionThreshold 会话投影(折叠,默认0.8) live 压缩后端每次检查逆向扫描日志
│ │
▼ ▼
滑块回显(useProjection) 重建 thresholdRatio → 官方压缩逻辑
dsh-compaction-ui:host 半体注册 /threshold 命令与 compactionThreshold 投影;浏览器半体渲染滑块dsh-compaction-live:preset 平面压缩后端,按会话从日志读取最新阈值,其余逻辑 100% 复用官方引擎详细设计见 DESIGN.md。
Q: 没有看到滑块?
Q: 拖了滑块但感觉没变化?
滑块改变的是触发比例,当会话占用还没到该比例时不会压缩。可观察弹窗中的 ~已用/容量 判断距离阈值有多远。
Q: 切换会话后阈值不一样? 这是设计行为:阈值按会话独立,每个会话默认 80%,各自可单独调整。
Q: 滑块显示红色「保存失败」? 正常情况不会出现;若出现,请把错误文字反馈给插件作者。
Q: 升级 dsh 后插件失效? 本方案不修改 node_modules,一般无需重装;若 dsh 主版本变化导致 API 不兼容,请检查版本要求。
/threshold 命令输入的数值会被 clamp 到 0.4~1.0@my-scope,如需发布 npm 请换为真实 scope 并同步修改引用dsh-compaction-slider/
├── install.ps1 # 一键安装/卸载脚本
├── dsh-compaction-ui/ # 滑块插件(host 命令/投影 + 浏览器 UI)
│ ├── lib/index.js # host 半体:/threshold 命令 + compactionThreshold 投影
│ └── lib/client.js # 浏览器半体:ThresholdControl 滑块组件
├── dsh-compaction-live/ # preset 压缩后端(按会话读日志)
│ └── lib/index.js # LiveCompactionEngine
├── presets/auto-compact/ # 推荐 agent 预设(使用 live 后端)
└── DESIGN.md # 完整设计文档
MIT(未附带 LICENSE 文件,使用者自行决定)。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。