glh5835/dsh-prompt-refiner ↗★ 1

dsh-prompt-refiner

一键将模糊草稿改写为结构化提示词并统计用量 适合需要快速优化输入、提升模型回复质量的提示词编写者。

套件
dsh-prompt-refiner
相容性
待驗證
Harness 依賴範圍
>=0.1.0-rc.6
Cordis 依賴範圍
^4.0.1
版本
0.1.1
授權
MIT
最近更新
2026年9月27日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:glh5835/dsh-prompt-refiner

配置

配置文件 $DSH_HOME/prompt-refiner/config.json(默认 ~/.dsh/prompt-refiner/config.json),优先级:cordis 条目 config > config.json > 内置默认。

{
  "model": "deepseek-v4-flash", // 优化器模型;null = 跟随会话当前模型(省钱的关键开关)
  "provider": null,           // null = 跟随会话当前 provider
  "reasoningEffort": "off",   // 思考档位:'off'|'low'|'high'|'max';null = 跟随模型默认
  "maxTokens": 2048,
  "temperature": 0.3,
  "minChars": 0,              // 手动模式不设下限;Phase A 自动模式建议 8
  "maxChars": 8000,
  "resultMaxChars": 4000,     // 结果长度护栏:超过视为混入思考内容
  "cacheMax": 200,
  "cacheTtlMs": 86400000,
  "metrics": true             // 统计落盘开关
}

成本:为什么 reasoningEffort 默认 off

DeepSeek 适配器把模型的 thinking token 计在 outputTokens 里(TokenUsage.reasoningTokens 不单列)。 不显式指定档位时,适配器默认走 connection.defaults.reasoningEffort ?? 'high',于是「一键精炼」 每次都会先生成上千 token 的思考内容——这部分照样计费,却完全不进结果。实测同一会话下 137 字的草稿会产出 471 字结果 + 1624 output token,其中绝大部分是思考。

因此插件默认下发 reasoningEffort: 'off':精炼是改写任务,不需要思考链。下发前会先用 llm.resolveModelInfo(provider, model) 读该模型声明的档位(每个 provider/model 只查一次并缓存):

  • 请求的档位受支持 → 原样下发;
  • 不受支持 → 自动回退到该模型支持的最省档位(契约规定不支持的档位会在 provider I/O 之前 reject);
  • 模型未声明任何档位 / 能力查询失败 → 不下发该参数,避免硬报错。

面板信息行会显示实际生效的档位(如 思考 off,被回退时显示 思考 off(请求 max))。

另外 finish.reason.kind === 'max-tokens'(结果被截断)会被判为失败并丢弃,绝不会把 半截提示词当成功结果应用回输入框——思考阶段吃满配额导致正文为空时也会给出可操作的提示。