dsh-prompt-polish:输入框里的「优化」按钮

前言

在 DeepSeek Harness(DSH)里写提示词,常见卡点不是「有没有模型」,而是把脑子里的模糊想法写成一段可执行的话。你可以先手写一版再反复改,也可以切到别的工具做改写——但那样往往要复制粘贴,改完还要贴回输入框。

dsh-prompt-polish 是社区维护者 Lstalu 发布的 DSH 插件,分类为模型推理。它在对话输入框工具行增加一个「✦ 优化」按钮:草稿写好、尚未发送时按一下,用当前默认模型把这段提示词改得更清晰、更可执行,结果直接回填到输入框,你可以继续手改或发送。它不发送消息、不进入会话上下文、不产生新 Agent 回合,只是一次独立的模型调用。

这是什么

插件仓库:Lstalu/dsh-prompt-polish。目录页:skillhub.cn 条目。许可证 MIT,当前 package 版本 0.1.0,要求 Node.js >= 20。

DSH 生态的理念是「一切皆插件」;社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。安装前建议自行查看源码与许可证——插件在与你相同的 DSH 进程权限下运行,优化请求会计入账户用量。

核心功能

按钮出现在输入框左侧工具行,示意位置如下(来自 README):

+  [完全权限] [计划] [✦ 优化]                     [模型] [发送]
                     ^^^^^^^^ 这里

已核实的行为包括:

  • 用 ctx.agentDefaultModel.currentSelection() 所指的当前默认模型做一次性改写;暂不支持在按钮上单独选模型。
  • 改写完成后用 setDraft() 替换整段草稿;满意可发送,不满意可用 Ctrl+Z 或继续编辑。
  • 草稿为空或正在提交时按钮自动置灰;点击后图标脉动、文案变为「优化中」;失败时按钮变红约 3 秒,hover 可看具体错误。
  • 草稿里若带有 @文件 或会话引用类标记,按钮提示会说明这些标记在优化后会被替换掉(纯文本回填会移除已有 @ 引用 chip)。
  • 草稿上限 12000 字符;每次点击都是独立模型请求。

宿主侧提供 GET /prompt-polish/health,用于确认插件是否加载以及当前使用的模型;POST /prompt-polish/optimize 带同源校验(Origin 须与 Host 一致),避免第三方页面借道消耗你的模型额度。

安装与启用

推荐按 desktop profile 安装:

dsh plugin --profile desktop add Lstalu/dsh-prompt-polish

装完后重启 DSH 宿主(关窗口再开);服务端插件不会热加载。

本地开发可走 link,不走 registry:在 $DSH_HOME/profiles/desktop 的 package.json 里把 dsh-prompt-polish 加到 dependencies(link:<你的路径>/dsh-prompt-polish),并在 dsh.profile.bundles 里加入 dsh-prompt-polish,再执行 pnpm install。

卸载时从 dependencies 和 dsh.profile.bundles 各删掉对应行,pnpm install 后重启。

典型用法

  1. 把提示词写在输入框里,先不要发送。
  2. 点「✦ 优化」。
  3. 模型返回后,改写结果替换当前草稿。
  4. 满意就发送,不满意就 Ctrl+Z 或继续手改。

可调参数

在 profile 的 cordis.patch.yml 里为该插件条目增加 config:

- id: prompt-polish
  config:
    temperature: 0.2   # 默认 0.2,越低越保守
    maxTokens: 2048    # 默认 2048

改写用的系统提示词写死在宿主 index.js 的 SYSTEM_PROMPT;若要调整改写风格,需直接修改该处(README 已说明)。

架构简述

插件分宿主与浏览器两半(README 表格摘要):

半部 文件 做什么
宿主 index.js 在 ctx.webServer 上挂 POST /prompt-polish/optimize;调 ctx.llm.stream() 做一次性模型调用
浏览器 lib/client.js 在 conversation.input.left 槽注册按钮;用 useInput 读草稿与提交状态,用 inputActions.setDraft() 写回

开发时注意:window.__ModuleLoader__.load({ id }) 里的 id 必须等于 package.json 的 name(dsh-prompt-polish),不能写成 cordis 行 id(prompt-polish),否则可能触发 client-modules 重复注册并导致 Web 入口导入失败。cordis.patch.yml 里的 entry id 保持 prompt-polish 是正确的——它与 bundle 加载用的包名是不同层级的标识。

适用场景与限制

适合:已经在 DSH 里写草稿、希望少花时间在「把话写清楚」上、又希望改完仍留在同一输入框里微调的场景。

限制(README 已知项):

  • 仅使用当前默认模型。
  • setDraft() 整体替换草稿,@ 引用 chip 会丢失。
  • 每次点击独立计费;系统提示词风格需改源码中的 SYSTEM_PROMPT。

装完后可用仓库自带的 verify.ps1 自检:遍历运行中的 DSH 进程监听端口,逐个请求 /prompt-polish/health,无需手动指定端口。

结尾

dsh-prompt-polish 把「提示词润色」压成输入框旁的一次点击:不打扰会话、结果仍在你掌控的草稿里。需要安装命令、配置项与实现细节时,以 GitHub README 为准。

  • 目录页:https://www.skillhub.cn/plugins/Lstalu/dsh-prompt-polish
  • 源码:https://github.com/Lstalu/dsh-prompt-polish
羽毛球分组比赛记分
小程序二维码

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

小夜