dsh-composer-enhance: Rewrite Input Draft into a Sendable Prompt Before Sending

前言

在 DSH(DeepSeek Harness)里写请求,常见做法是先在输入框打一段短草稿,再指望模型自己补全意图。草稿越短,歧义越多;路径、版本号、约束若写不全,下一轮对话就要来回澄清。自己逐句扩写也可以,但和「改提示词」是同一类重复劳动。

下面介绍社区插件 dsh-composer-enhance(维护者 GraptK):在发送键左侧增加一个「增强提示词」按钮,用一次模型调用把当前草稿改写成更清晰、更具体的提示词并写回输入框。按钮只做改写、不替用户执行任务,也不改变原意;过程中可取消,写回后可一键回退。包名自 v0.4.0 由 dsh-enhance-prompt 改为 dsh-composer-enhance(原名在 npm 已被占用)。

这是什么

dsh-composer-enhance 是 DSH 的客户端 + 宿主双半插件:浏览器半在 conversation.input.right 槽注册魔法棒按钮;宿主半注册 session 命令,读取默认模型(或配置覆盖)、可选的会话历史语境,经 llm.stream() 输出后再经保真闸、长度闸与清洗,把结果返回浏览器写回草稿。仓库里的 .js 即为发布产物,无单独构建步骤;界面文案中英双语,随 DSH 语言切换。

当前版本 0.4.1(见仓库 package.json),许可证 MIT。插件在 SkillHub 目录 可检索;源码与说明见 GitHub。

核心功能

整段增强与回退

  1. 在输入框写好草稿(中文、英文或混排均可)。
  2. 点击魔法棒:按钮进入加载态,草稿被改写成可直接发送的提示词。
  3. 加载中再点一次即取消。
  4. 写回后按钮变为回退箭头,点一下恢复原文;若你手动改过结果,回退箭头会自动消失。

空草稿时不显示按钮。

局部增强(Ctrl / Cmd + 点击)

选中输入框中的一段文字,再 Ctrl+点击(macOS 为 Cmd+点击),只把选中片段发给模型,结果只替换该段;未选中时行为与普通点击相同,仍是整段增强。写回通过编辑器的一次独立撤销操作完成,也可用 Ctrl+Z 退回,不必依赖回退箭头。

修饰键与预览

操作 行为
普通点击 整段增强,写回后可回退
增强中再点 取消
Ctrl / Cmd + 点击 仅增强选区
Alt + 点击 本次不带会话历史
Shift + 点击 本次带全部历史轮次
Alt + Shift + 点击(v0.4.0) 只预览、不写回;输入框下方出现预览卡(标题、字符差、正文、「采用 / 放弃」)

Alt / Shift 可与 Ctrl 叠加。预览模式下采用结果后仍可用回退箭头回到原文。

会话历史语境(v0.2.0 起)

改写时默认带上本会话已提交的最近对话(不含当前未发送的草稿),便于处理「再详细一点」「换个说法」这类依赖上下文的草稿。历史只进入模型输入,不会写进草稿;读历史失败时记宿主日志并继续只改草稿,不阻断功能。

范围与预算可在配置中调整(见下文);无历史时静默降级为「只改草稿」,行为与早期版本一致。

保真闸与长度闸(v0.4.0)

模型容易改坏路径、URL、版本号、反引号代码片段。保真闸要求改写结果逐字保留草稿中提取的硬事实(反引号片段、http(s):// URL、带扩展名的路径/文件名、语义化版本号等,去重后最多 40 条);缺一条则整次失败、不写回,按钮进入失败态并提示缺失项(最多展示 5 条)。

长度闸:草稿不少于 80 字符时,若输出超过原文的 maxExpansionRatio 倍(默认 2.5,可配 1–6)则拒绝写回。闸门为硬失败;若仍想自行判断被拒结果,可用 Alt+Shift 预览模式。

引用 chip 保护(v0.4.0)

草稿中含 @文件 等引用 chip 时按钮会被禁用(悬停说明原因),避免整段改写把 chip 抹成纯文本。

其它行为说明

  • 宿主侧单次调用超时默认 60s(另有 65s 客户端兜底);超时或失败时按钮进入失败态,原因写入 title 与 aria-label。
  • 每次调用有 req= 关联 ID,宿主日志与浏览器 console 可对齐排查。
  • 按钮不抢输入焦点,避免打断中文输入法组词。
  • 切换会话会中止上一会话未完成的请求;等待期间若继续输入,增强结果不会覆盖新内容,需重试。
  • 增强在聊天流中会留下 log-only 的 session 命令节点(recordInput:false,草稿原文不进命令参数),不进模型历史、不额外占对话 token。

安装与启用

宿主要求:DSH >=0.2.0-rc.2 <1.0.0(声明于 package.json 的 engines.dsh),Node ≥ 20。

在 DSH 插件市场搜索 dsh-composer-enhance 一键安装;或让 Agent 执行:

plugin_manager  action=install_bundle  target=dsh-composer-enhance

安装后刷新页面,发送键左侧即出现魔法棒按钮。

从 GitHub 或本地目录以 link: 安装时,在 profile 的 package.json 中指向仓库路径,并把包名加入 dsh.profile.bundles:

"dependencies": { "dsh-composer-enhance": "link:E:/path/to/dsh-composer-enhance" }

link: 会带上整棵源码树,仓库根目录须保留 LICENSE;改源码后刷新即生效,无需构建。

典型用法

经过上面的安装步骤,可按下面顺序试一遍完整流程:

  1. 在输入框写一句短草稿,例如「帮我把这段逻辑 refactor 一下,别动 API」。
  2. 点魔法棒,等待写回;若结果满意直接发送,不满意点回退箭头恢复原文。
  3. 若只想改其中一句:选中该句,Ctrl+点击(macOS Cmd+点击)魔法棒。
  4. 若草稿里含路径或版本号、担心被改坏:保持默认保真闸;若结果被拒,看按钮失败提示或宿主日志中的 reason=fidelity。
  5. 想先看再决定:Alt+Shift+点击,在输入框下方预览卡中点「采用」或「放弃」。

想确认本次带了几轮历史,可在宿主日志中查找类似行:

[dsh-composer-enhance] history: 3/5 turns, 286 chars dropped 2 oldest turn(s)

配置项(cordis.patch.yml / Config)

插件管理器或 Config Inspect 可编辑下列项(类型须正确,否则插件可能激活失败):

键 默认 作用
enabled true 总开关
temperature 0.3 采样温度(0–2)
maxTokens 2048 输出预算
timeoutMs 60000 宿主侧超时
history true 是否带最近对话
historyTurns 3 最近几轮(1–12)
historyMaxChars 3000 历史总字符预算
historyPerMessageChars 800 单条历史裁剪长度
fidelity true 保真闸
maxExpansionRatio 2.5 长度闸倍数(1–6)
provider / model '' 仅本插件用的模型覆盖;两个都填才生效

适用场景与注意

适合经常在 DSH 输入框里写短指令、又希望发送前自动补全约束与表述的开发者。与「直接发送短句」相比,多一次模型调用与短暂等待;与手工写长提示词相比,省的是重复扩写时间,并可通过回退、预览、局部增强控制改动范围。

安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。DSH 生态遵循「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。插件以当前 DSH 进程权限运行,安装第三方包前应确认来源与代码内容。

结尾

dsh-composer-enhance 把「发送前改提示词」收成输入框旁的一键操作:可取消、可回退、可选预览,并用保真闸、长度闸和 chip 保护降低改坏硬事实的风险。需要安装或配置细节时,以仓库 README 为准。

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

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

Xiaoye