dsh-prompt-optimizer:在 Composer 里把草稿改写成结构化提示词

前言

在 DeepSeek Harness(DSH)里和模型对话时,输入框里往往是一句口语化的需求:目标、约束和输出期望混在一行里。自己手工拆成「目标 / 约束 / 输出要求」既费时间,又容易漏掉「不要第三方库」这类否定约束。社区插件 dsh-prompt-optimizer(维护者 Misakiy1333,分类:客户端)在 Composer 输入框右下角增加「优化提示词」按钮:点一下,用当前会话的模型(或本地规则回退)重写草稿,结果直接填回输入框,不会替你发送。

这是什么

dsh-prompt-optimizer 是面向 DSH 的 Composer 按钮插件。简介原文:A composer button for DeepSeek Harness: rewrites your draft into a structured prompt and puts it back in the input box. Local rules, zero runtime dependencies, never sends.

它解决的是「草稿太散、结构不清晰」的问题,而不是替你在 Harness 里发消息。插件以当前 DSH 进程权限运行;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。社区目录页:skillhub.cn 插件条目(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

改写结果长什么样

你写一句粗略需求,点按钮后,草稿会被整理为带 目标、约束、输出要求 的结构化提示词。README 中的示例如下(改写前后对比):

帮我写一个登录页。要有记住密码。还要适配手机。不要用第三方库。
        ↓  点「优化提示词」
## 目标
帮我写一个登录页。

## 约束
- 要有记住密码。
- 还要适配手机。
- 不要用第三方库。

## 输出要求
- 直接给出可用的结果,不要复述本提示词
- 结论先行,必要的推理过程放在结论之后
- 完整可运行/可直接使用,不要留 TODO 占位
- 不确定的地方明确标注,不要编造

约束类句子(「要有…」「不要…」「必须…」)会从普通要求里拆出,单独成段。

三种意图分支

插件会按句式判断意图,并在 输出要求 段做差异处理:

意图 判断依据 输出要求差异
任务 task 出现「写 / 做 / 生成 / 实现 / 重构」等动词 完整可运行、不留 TODO
提问 question 出现「为什么 / 怎么 / 如何 / 是否」等疑问词 先答问题、展开理由、给出依据
开放 open 两者都不匹配 先确认理解、多方案列取舍

模型调用与本地规则回退

默认路径是真实模型调用,不是模板拼接。 点击按钮时,由当前会话正在使用的模型重写草稿:保留原意、拆约束、按任务性质补输出要求。调用走 Harness 的 llm 服务,使用你已在用的 provider 和 model,不需要额外配置 API key。一次调用大约几秒,期间按钮转圈并禁用。

若会话没有模型路由、模型调用报错或超时,插件自动退回本地规则引擎:按句式特征切分和意图分类,产出结构化提示词,按钮上会提示「已用本地规则」。回退不理解语义,但能整理结构。

闲聊输入不改动

ok、好的、嗯、收到、继续、thanks 等纯确认词不会被套模板。按钮会提示「这句太短,像答复而不是指令」,草稿保持不动。

安装与启用

资料中的安装步骤如下。先在插件目录执行依赖安装(主要为 Host 半边所需的 zod):

cd dsh-prompt-optimizer
pnpm install

然后在 Harness 里安装本地目录(将路径换成你机器上的绝对路径):

plugin_manager({
  action: "install_bundle",
  target: "<absolute-path-to>/dsh-prompt-optimizer"
})

也可在 DSH 界面:设置 → 插件 → 从本地目录安装,选择该目录。

装完必须重启 DSH(不只是刷新页面):Host 半边变更后,HMR 只热替换客户端。

安装后按钮出现在 conversation.input.right 槽位,order 30,位于模型选择器左侧。package.json 中版本为 1.1.0,要求 Node >=20。

典型用法

  1. 在 Composer 输入框写好草稿(任务、提问或开放描述均可)。
  2. 点击输入框右下角 优化提示词。
  3. 等待数秒;若模型不可用,会看到本地规则回退提示。
  4. 检查填回输入框的结构化内容,按需微调后再自行发送。

不要在未核对改写结果的情况下直接发送;插件只整理提示词,不代替你的业务判断。

适用场景与注意

适合谁: 经常在 DSH 里写长需求、希望统一「目标 / 约束 / 输出要求」格式的开发者;希望在模型不可用时仍能靠规则做基础整理的用户。

兼容性(来自 README):

  • 需要 Harness 提供 conversation.input.right 槽位(@deepseek-ai/dsh-client-ui-conversation)。
  • 需要 remote 客户端服务与 typert 注册表;缺失时按钮仍显示,但会提示无路由。
  • 已在 DeepSeek Harness Desktop(Windows)上实测。

已知限制(节选):

  • 模型路径:超时上限 90 秒;输出上限 1600 字符(超出按行截断);使用会话当前模型路由,未选模型时回退 catalog 默认。
  • 回退引擎:句子切分基于标点;草稿上限 6000 字符;中英混排时语言判断可能不准。

插件依赖边界:zod 声明在插件 dependencies 中;Remote 为手写 Typert 贡献,Client 经 ctx.remote.promptOptimizer.optimize 调用 Host 的 PromptOptimizerService。

结尾

dsh-prompt-optimizer 把「散句草稿 → 结构化提示词」做成 Composer 上的一键操作,默认走你已在用的模型,失败时仍有本地规则兜底,且从不自动发送。需要详情与 issue 时见 GitHub:Misakiy1333/dsh-prompt-optimizer;目录介绍见 skillhub.cn。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye