dsh-optimizer:本地用量观察、上下文按轮裁剪与任务指令

前言

在 DeepSeek Harness(DSH)里长时间跑 Agent 时,输入上下文会随对话轮次增长,本地很难直观看到 Token 与费用的大致走向;若希望在不删原始日志的前提下缩短「模型可见」的历史,也需要在 DSH 提供的会话表面上做合规替换。社区插件 dsh-optimizer(维护者 Ironman888-star)针对这类需求:在本地统计用量与预算告警、可选按最近轮数做上下文打包,并在设置页维护可注入后续请求的任务指令。它是非官方开源插件,不替代 DSH 或模型服务商的账单。

下面按定位、能力、安装与使用注意说明,事实以仓库 README 与 package.json(当前源码版本 0.3.6,MIT)为准。

这是什么

dsh-optimizer 是适用于 DSH 的插件,包名 / ID 为 dsh-optimizer。插件运行数据落在 <DSH_HOME>/storages/dsh-optimizer,不属于插件仓库本身。

README 写明:用于查看本地模型用量和费用估算、预算提醒、任务检查点与异常情况;可选对模型可见的旧对话按最近轮数进行安全裁剪,并提供自定义任务指令编辑区。插件自身的本地统计及裁剪不主动调用额外云端模型,但正常 DSH 请求仍由你配置的模型服务处理;估算不等于官方账单,也不保证固定百分比的 Token 或费用节省。

兼容性方面,资料记录 DSH Desktop 2.0.21-next 实测通过,其他 DSH 版本尚未验证。开发与测试要求 Node.js ≥ 20。

核心功能

费用与用量观察

本地用量流水、缓存命中估算、按日 / 任务 / Agent 的预算与告警。数据在本地汇总,便于对照任务节奏调整用法;仍须以服务商账单为准。

上下文打包(按轮次)

单独开关,默认关闭。开启后可保留最近 1–20 轮已完成对话(默认 3 轮)。符合安全条件的旧消息通过 DSH Session surface 替换为带 UUID 的标记;原始追加式聊天日志仍保留。

v0.3.6 修复了 v0.3.5 上下文替换标记缺少 data.id、可能导致会话重启后校验失败的问题;请勿安装已知存在该缺陷的 v0.3.5。升级至 v0.3.6 不会自动修复已损坏的会话文件,需按仓库 docs/session-identity-fix.md 等说明处理。

任务指令改写

在设置页编辑、保存和恢复预置任务指令;内容保存在本机配置,并由 DSH systemPrompt.section() 供后续模型请求使用。这是行为指导,不是文件系统权限限制。

工具结果、检查点与异常

在 enforce 模式下可根据配置精简工具输出;默认 audit 模式只观察不改写相关输出。检查点与异常监测按现有配置执行。

本地仪表盘

提供配置、诊断报告和用量摘要。README 提醒:本地仪表盘及接口不构成强身份认证边界,不要向公网暴露 DSH 的本地 Web 端口。

v0.3.5 起已移除「禁止 DSH 主动回顾历史会话和扫描工作区」的权限审批能力;本插件不控制 DSH 的文件访问权限。

安装与验收

安装前应先备份现有 DSH 插件和状态目录。可使用 DSH 插件管理器安装仓库根目录(含 package.json 与 cordis.patch.yml),或在仓库根目录内用 CLI(profile 名以实际环境为准):

# 在本仓库根目录内,profile 名以实际环境为准
dsh plugin --profile desktop add .

确认来源与版本后批准安装,按需重启 DSH,在「设置 → 智能优化管家」查看版本 v0.3.6。新版开关不会自动开启。建议先在测试会话里检查工具消息、历史裁剪和重启恢复,详见仓库 docs/install.md。

从 v0.3.5 升级时:先关闭上下文打包,备份 config.json、整个会话目录和插件源码;升级到 v0.3.6 后先确认正常会话,再自行开启打包测试。仅升级源码不能修复已落盘的匿名替换事件;已报 lacks an identified message 的会话需单独诊断。不要在运行中的 DSH 内直接编辑 .jsonl.zstd。见 docs/upgrade.md。

典型用法流程

  1. 安装并重启后打开「设置 → 智能优化管家」,确认版本为 v0.3.6。
  2. 在仪表盘查看本地用量摘要与预算告警配置,建立对单次任务成本的粗略预期。
  3. 若对话轮次很长且需控制模型可见历史:在测试会话中开启上下文打包,将保留轮数设为 1–20 中的一档(默认 3),观察工具链配对与重启后是否仍能正常恢复。
  4. 按需编辑任务指令并保存;后续请求通过 systemPrompt.section() 携带该指导内容。
  5. 若使用工具输出精简:了解当前为 audit 还是 enforce 模式,避免在审计阶段误以为输出已被改写。

更细的字段与行为见仓库文档:docs/configuration.md、docs/context-packing.md、docs/task-instructions.md。

适用场景与重要限制

适合谁:长期在 DSH Desktop 上开发 Agent、需要本机可观测的用量与预算提示,并希望在可控条件下缩短模型可见历史或统一任务侧行为指导的开发者。归类上常见于「模型推理」相关插件目录(如 SkillHub 目录页)。

安装前:插件以当前 DSH 进程权限运行,会访问本地任务、工具结果和会话元数据,可能将原始工具结果写入插件状态目录。请自行审阅源码与 MIT 许可证,不要公开状态目录、真实会话、诊断原件或含个人路径的日志。

能力边界(README「重要限制」摘要):

  1. 历史轮数限制只作用于可安全裁剪的模型可见历史;系统 / 开发者有效指令、未配对工具链、模型工具定义及宿主运行时上下文可能继续占用输入,没有整个请求的 Token 硬上限。
  2. 裁剪不删除原始聊天日志,也不能保证价格按裁剪字符数同比下降;提示词缓存命中率可能变化。
  3. 公开版预置任务指令编号规范为连续 1–5,个人在后台保存的自定义指令仍以 config.json 为准。

生态上,DSH 强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本插件亦非 DSH 官方发行。

结尾

dsh-optimizer 把本地用量与预算观察、可选的按轮上下文打包、可编辑任务指令和诊断仪表盘收进一个非官方插件,适合在实测通过的 DSH 版本上按需启用。查阅目录与源码:

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

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

小夜