前言¶
在 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 许可证,确认符合你的安全与合规要求。
典型用法¶
- 安装并重启 DSH 后,在 composer 输入区右侧看到折叠控件。
- 点击展开:查看上下文构成与剩余;若模型未声明窗口大小,在「上下文长度」输入
512K或1M并保存,下一条请求使用新上限。 - 在「思考等级」区点击目标等级;若模型原先无
reasoningEfforts,首次点击会写入配置并持久化。 - 需要换模型时,在面板内展开「模型」列表选择(与官方模型座位、/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