dsh-context-effort:Composer 上下文计量与思考等级一键切换

前言

在 DeepSeek Harness(DSH)里写长对话或换模型时,上下文还剩多少、当前思考等级(reasoning effort)是什么,往往要进设置或模型弹窗才能看清。自定义 provider 的模型若未声明 contextWindow,宿主还会落回适配器默认(例如 llm-pi-ai 的 262144),与实际支持的 512K、1M 不一致。下面介绍社区插件 dsh-context-effort(维护者 striver8):把上下文占用与思考等级挂到对话输入区右侧,与官方 token-meter、模型选择共用同一套 DSH 服务,不写 fork 状态、不发网络请求。

这是什么

dsh-context-effort 是 DSH 的纯 Web UI 插件(dsh.bundle + dsh.client,无 host 侧行为)。它在 composer 的 conversation.input.right 座位(模型选择器同行、右侧)提供:

  • 当前模型的上下文上限与已用 token 的紧凑指示(对齐 ekko studio 对话窗口上的上下文/已用指示器,并做成可操作控件);
  • 一键切换 reasoning effort;
  • 内联编辑并持久化模型的 contextWindow。

数据只读官方服务:sessionProjections、modelDirectories、configForms。分类上可归入「模型推理」相关工具。当前 GitHub 星标为 0;包版本 0.1.0,许可证 MIT。

核心功能

折叠态与展开面板

折叠态示例(有用量数据时):

◐ 上下文 ~25K / 128K  │ High  ⌄

环表示占用百分比;~已用 / 上限 来自 token-meter 的 contextPressure 投影;│ High 为当前思考等级。无用量时退化为「上下文 + 等级 + 展开箭头」。

展开后可看到:占用百分比与数值行(已用、上限、剩余);按 contextBreakdown 着色的系统提示 / 工具 / 对话消息占位条;上下文长度(生效值、配置声明、输入框、快捷预设、保存);思考等级(模型声明的等级列表,点击切换);模型(默认折叠,面板最大高度约 70vh 可滚动)。

上下文长度编辑

行 含义
生效值 host 解析后的实际值(contextPressure.contextWindow)
配置声明 配置里是否写了 contextWindow;未写显示「未设置(继承默认)」

输入 512K、1M 后保存,写入该模型配置,下一条请求生效。留空保存等于删除字段、继承适配器默认,语义与官方「设置 → 模型」一致。

换算与官方 CAPACITY_SCALE 一致:K = 1000、M = 1000000(十进制)。例如 256K 存为 256000,与适配器默认 262144 的差异是刻意的。

思考等级

模型情况 等级来源 行为
适配器声明了 reasoningEfforts 模型自带 使用适配器声明的等级与显示名
未声明(常见于自定义 provider) 全局兜底集 显示 off/minimal/low/medium/high/xhigh/max,并提示首次切换会写入模型配置

兜底集与 dsh-llm-pi-ai 的 THINKING_LEVELS 一致。首次点击某等级时,插件经 ctx.configForms 把 reasoningEfforts 写入该 provider 的模型配置(不走 remote.settings.describe()),随后 UI 切换为「模型自带等级」形态。写入会落到 profile 的 cordis.patch.yml(官方 minimal settings.mutate)。

安装与启用

环境要求: DeepSeek Harness >= 0.2.1-rc.2,Web 或桌面 GUI(composer 槽位;TUI 无此 UI)。安装后需完全退出并重启 DSH(桌面版含托盘,只关窗口不够)。

推荐方式(插件管理器或 CLI):

dsh plugin add dsh-context-effort

也可在 DSH 内:设置 → 插件 → 安装。桌面应用的 desktop profile 由应用独占时,dsh plugin 可能拒绝直接操作,请走界面或使用仓库提供的 install.ps1 便携脚本。

Release 预构建包(资料中的固定 URL,版本与 README 一致):

dsh plugin add https://github.com/striver8/dsh-context-effort/releases/download/v0.1.0/dsh-context-effort-0.1.0.tgz

包自带 cordis.patch.yml,安装后由 profile 的 bundle 层自动插入图层栈,无需手改 profile 配置。

插件以当前 DSH 进程权限运行;安装前建议在 GitHub 查看源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

  1. 安装并重启 DSH 后,在 composer 输入区右侧看到折叠控件。
  2. 点击展开:查看上下文构成与剩余;若模型未声明窗口大小,在「上下文长度」输入 512K 或 1M 并保存,下一条请求使用新上限。
  3. 在「思考等级」区点击目标等级;若模型原先无 reasoningEfforts,首次点击会写入配置并持久化。
  4. 需要换模型时,在面板内展开「模型」列表选择(与官方模型座位、/model 弹窗共用同一 per-session 目录,三处状态一致)。

开发调试可用独立 profile,避免影响日常使用:

dsh --profile ce-debug --port 19389 --no-open

适用场景与注意

适合: 经常在 composer 里切换思考强度、需要一眼看到上下文压力、或为自定义 provider 模型补写 contextWindow / reasoningEfforts 的 DSH 用户。

已知限制(README 明确说明):

  • 新会话或未发请求时没有 contextPressure,控件只显示标签与思考等级,属设计行为。
  • contextWindow 是配置字段,不是可拖动滑杆;插件只做填值与保存,不做容量协商。
  • contextBreakdown 为启发式估算(约 4 字符 ≈ 1 token),面板以 ~ 标注;CJK 与 JSON schema 可能被低估。
  • 子代理会话不暴露独立模型选择,此时上下文为只读。
  • 全局等级兜底首次切换必须写配置,宿主才能按等级派发请求。

社区插件目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件是其中面向 composer 的 UI 扩展。

结尾

dsh-context-effort 把上下文计量、思考等级与模型窗口配置集中到输入区一侧,依赖官方投影与配置表单,避免重复造状态。若要安装或读完整架构说明,可访问插件目录页与 GitHub 仓库:

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

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

Xiaoye