前言¶
在 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 后重启。
典型用法¶
- 把提示词写在输入框里,先不要发送。
- 点「✦ 优化」。
- 模型返回后,改写结果替换当前草稿。
- 满意就发送,不满意就 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