dsh-context-ops:DSH 上下文运维(交接、压不压、诊断)

前言

在 DeepSeek Harness(dsh)里做长会话开发,常见三类麻烦:对话变长后不知道何时该压缩上下文;压完仍丢约束或压不动,却说不清原因;换天或新开会话又要重读整段历史。宿主自带 token 计量和自动压缩,但「该不该动手」「压不了怎么办」「怎么把状态带走」往往仍靠经验和试错。

dsh-context-ops 是社区维护的工作流类 DSH 插件,把交接、压缩决策、上下文诊断做成可触发的技能,并附带自包含的压力读数工具与斜杠命令。压缩摘要本身仍走 DSH 原生 compaction-basic 配置(可走更强模型),插件不写死任何账号或模型。下面介绍它做什么、怎么装、怎么用。

这是什么

  • 名称:dsh-context-ops(仓库 OnebugIS/dsh-context-ops)
  • 维护者:OnebugIS(package.json 作者字段为「廷宇」)
  • 分类:工作流(SkillHub 目录归类)
  • 许可证:MIT;要求 Node.js ≥ 20;零 npm 运行时依赖
  • 当前版本(package.json):0.1.3

一句话:给 dsh 的上下文管理插件——三个技能(交接 / 决策 / 诊断)、两个读数工具(压力 / 历史)、三个斜杠命令,以及可选的压力提醒。

核心功能

三个技能

技能 ID 实现 作用
context-handoff lib/skills/handoff.js 产出五行 brief(目标 / 现状 / 下一步 / 未决 / 证据)写入 CHECKPOINT.md
context-decision lib/skills/decision.js 先读真实压力数,再按阶梯给一句处方
context-diagnose lib/skills/diagnose.js 一次体检,逐层核对,输出完整诊断报告

交接常见触发词:交接、收尾、存档、checkpoint、handover、续接项目等。不适合 1–2 轮小任务、纯问答无项目状态、或用户明确说不用。

上下文决策常见触发词:该压了吗、上下文管理、压力多少、还有多少余量等。流程是先调 context_pressure,再按阶梯给处方;能压时会把 /compact 复制到剪贴板(macOS 用 pbcopy,其他平台提示手输),不能压时建议走交接。

上下文诊断常见触发词:上下文诊断、体检、ctx-check 等。报告包含现状 / 落档 / 能压吗 / 处方 / 告警;规则与决策技能一致。

工具与斜杠命令

名称 说明
context_pressure 自包含读数,依赖 DSH tokenMeter,不依赖外部脚本
context_history 会话峰值、末次输入侧 token、压缩尝试 / 成功 / 失败次数
/handoff /pressure /diagnose 显式触发对应技能(commands 服务缺失时自动跳过)

硬判据(插件建议,不是宿主自动压缩阈值):能压缩 ⇔ pressureTokens < window × 0.95。判断压缩时用 pressureTokens ÷ window,不要用界面上的 projectedTokens。

压缩摘要与宿主行为

插件文档说明:DSH 默认 compaction-basic 约在 min(contextWindow × 0.8, contextWindow − 预留 output − 65536) 触发自动压缩;本插件的阶梯是建议,不改变宿主行为。要改触发点,在 profile 里配 compaction-basic 的 thresholdRatio / headroomTokens。

压缩失败三归因(README 原文):

  1. context overflow → 换大窗口模型再压,或交班;
  2. stream idle timeout → 别重试,直接交班;
  3. summary is not smaller → 已到极限;要降只能新会话。

换模型后若立刻压仍走旧模型行为,诊断技能会提示:先跑一轮普通对话再 /compact。

可选:压力提醒

配置 enableReminder(默认 false)时,压力 ≥ remindAt(默认 85%)会把一句提示挂进宿主「运行时上下文」快照,不伪造 user 消息。≥ handoffAt(默认 92%)时提醒可升级为「自动执行交接」。

安装与启用

安装命令来自 README,勿自行拼接 github:owner/repo 形式:

# 1) 安装(把 <profile> 换成你的 profile,如 desktop / web)
dsh plugin --profile <profile> add dsh-context-ops

# 2) 重启 DSH(改 profile 必须重启才生效)

本地开发可从目录安装:

dsh plugin --profile <profile> add "file:/绝对路径/dsh-context-ops"

典型用法

经过上面的安装并重启后,可以用自然语言或斜杠命令触发:

  1. 交接:说「交接」或执行 /handoff,得到项目根目录下的 CHECKPOINT.md 五行表。
  2. 该不该压:说「该压了吗」或 /pressure;插件调 context_pressure 后给一句处方,必要时复制 /compact。
  3. 完整体检:说「上下文诊断」或 /diagnose,拿到分层诊断与处方。

context_pressure 无参数调用,返回 JSON,例如(README 示例结构):

{
  "pressureTokens": 82341,
  "surfaceTokens": 71022,
  "window": 800000,
  "declaredWindow": 1048576,
  "realWindow": 800000,
  "windowInflated": true,
  "windowSource": "override",
  "routeKey": "zicode/deepseek-v4-pro",
  "pct": 10.3,
  "cacheHitRate": 0.995,
  "provider": "zicode",
  "model": "deepseek-v4-pro",
  "note": ""
}

要点:pct 分母是有效窗口 window(可能被 realWindows 实测值收窄),宿主自动压缩仍按 declaredWindow 算——两把尺子不要混用推断「宿主没压是不是坏了」。要让占用率按真实容量算,在插件配置 realWindows 里按 provider/model 填实测安全值。

插件配置(节选)

未知键会报 unknown config key。资料中明确出现的键:

键 默认 说明
enablePressureTool true 是否注册 context_pressure + context_history(缺 tokenMeter 时跳过)
enableCommands true 是否注册三个斜杠命令(缺 commands 时跳过)
enableReminder false 是否主动压力提醒
remindAt 85 提醒阈值百分比(50–95)
handoffAt 92 强制交接线百分比(50–95)
realWindows {} 按 provider/model 填实测安全窗口

适用场景与注意

适合:长会话、多轮改代码的智能体开发;需要可复现的「读数 → 处方 → 交接文件」工作流;希望在任意安装 DSH 的环境读压力,而不绑某台机器上的外部脚本。

注意:

  • 插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 源码 与 MIT 许可证。
  • SkillHub 目录(plugins/OnebugIS/dsh-context-ops)是社区站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」。
  • 决策阶梯与宿主默认 80% 左右自动压缩并存:人看到 85% 建议档时,自动压缩往往早已发生过;插件帮助的是判断与交接,不是替代 profile 里的压缩策略。

结尾

dsh-context-ops 把上下文运维拆成可执行的交接文档、基于 tokenMeter 的压力读数、以及带硬判据的决策与诊断,并保留 /handoff、/pressure、/diagnose 三条快捷入口。需要详情与更新以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/OnebugIS/dsh-context-ops
  • GitHub:https://github.com/OnebugIS/dsh-context-ops
羽毛球分组比赛记分
小程序二维码

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

Xiaoye