前言¶
在 DeepSeek Harness(DSH)里写提示词,常见做法是:先在输入框里堆一版草稿,再复制到外部工具里改写,或手动拆句、补约束。Draft 留在 composer 里,模型却看不到你「本来想说什么」;改写若改了版本号、路径或引号里的字面量,后面一轮对话就容易跑偏。
下面介绍社区插件 dsh-prompt-polish(维护者 CTX666666):在会话输入框右侧注入类似 Work Buddy 的「润色」控件,用当前会话已选的模型做单轮旁路调用,并在代码层对改写结果做保真校验,要求原文中的具体事实逐字保留。
这是什么¶
dsh-prompt-polish 是 DSH 的提示词润色插件,仓库 CTX666666/dsh-prompt-polish,许可证 MIT。它不做单独的模型选择器,也不把内容上传到插件自有服务;润色请求走你已配置的 llm 服务,与会话里选的 provider / model 一致(Host 侧按 Session 的 modelSelection、Client 上报的模型位、再到 profile 默认的顺序解析)。
插件通过 bundle 自带的 cordis.patch.yml(README 中亦写作 dsh.bundle.patch 语义)一次性注入 Host 行与 Client 脚本,无需本地构建步骤。
核心功能¶
输入框旁的润色与撤销¶
按钮位于 composer 尾部控件区——紧挨模型选择器之前,与 Work Buddy 同类位置。左键:把当前草稿改写成更清晰、更有效的 prompt;改写成功后按钮变为撤销箭头,一键恢复原文。若在结果上继续编辑,备份会被丢弃(因为已无法定义「撤销到哪一版」)。
| 状态 | 界面表现 |
|---|---|
| 草稿为空 | 按钮隐藏 |
| 草稿有文字 | 火花图标;悬停显示 tooltip 与当前风格 |
| 润色进行中 | Spinner;再次点击可取消并恢复草稿 |
| 润色成功 | 撤销箭头;点击恢复原文 |
| 润色失败 | 草稿不变;原因出现在 tooltip |
adjudicating / submitting 阶段 |
按钮禁用 |
四种风格(右键切换,刷新后记忆)¶
默认 Balanced;另三种为 Concise、Detailed、Code-oriented。右键打开风格菜单;也可用 Shift+F10 或上下文菜单键打开,点外部、Esc 或窗口失焦关闭。
保真校验(始终开启)¶
改写不得改动原文中的具体事实:数字、版本、路径、URL、引号内字符串、代码标识符等须原文逐字保留,且不得超出当前风格的长度预算。校验失败时 Host 仅再试一次 corrective 调用(在提示中点名缺失 token 与长度上限);仍失败则不用被拒绝的替换文本覆盖草稿。README 明确:失败的重试不会把拒稿内容返回给输入框。
会话上下文(始终开启)¶
Host 从 Session 日志读取最近几轮对话,便于解析「它」「上面那个」等指代。数据仅用于本次 llm 调用,README 未描述向第三方上报。
Host 调用链(便于排查)¶
- Client 向
POST /dsh-prompt-polish/polish发送 JSON,字段包括text、style,以及可选的sessionId、provider、model、reasoningEffort。 - Host 组装 system / user prompt、风格指令与 recent-context 块。
- 一次
ctx.llm.stream(),temperature: 1;只累积text-delta,finish为error或aborted则视为失败。 - 清理输出(去掉多余围栏或外层引号)后跑保真校验;必要时 corrective 重试一次。
- 成功响应形如
{ ok: true, text, provider, model, style, fidelity, contextUsed };失败为{ ok: false, code, error },code包括empty_input、no_model、llm_error、aborted、empty_result、fidelity_failed等。
进行中若编辑草稿、切换会话或提交,进行中的结果会被作废;取消会断开 Host 请求并 abort 上游生成。初始调用与 corrective 重试共享 60 秒 deadline。
安装与启用¶
先从 GitHub 一条命令安装(无需 clone 整个仓库即可完成安装;README 亦提供 clone 后本地路径安装方式,此处仅列官方推荐的一行命令):
dsh plugin add github:CTX666666/dsh-prompt-polish
安装后 bundle 自行声明 patch,插入 Host 行与 Client bundle。下次 composer 渲染时按钮出现;无需 rebuild,无额外 runtime 依赖(Client 侧 react 由 Harness loader 提供;Host 的 src/index.js 不 import Harness 包)。
环境要求¶
- DSH 的 composer 需暴露
conversation.input.right,并提供llm与webServer服务。 - Client 注入
@deepseek-ai/dsh-client-ui-conversation与@deepseek-ai/dsh-client-locale;标准 Web/Desktop profile 通常已带这些包。
仓库内可用 npm run check 做语法、清单与回归测试(README 说明含 27 项 HTTP / 组件状态测试;不替代真实 Harness 与模型服务的端到端验收)。package.json 中版本为 1.0.1,Node >=20。
典型用法¶
- 在 composer 输入框写好草稿(空草稿时按钮不显示)。
- 左键火花按钮:按当前风格润色;等待 spinner 结束。
- 满意则直接发送;不满意则点撤销箭头恢复原文。
- 需要换风格:右键按钮选 Concise / Detailed / Code-oriented 等,再左键润色。
- 润色过程中若要保留原草稿,再点一次按钮取消。
行为细节与 verbatim 提示词、保真正则等完整契约见仓库 docs/IMPLEMENTATION.md(README 称可用于在其他 Host 上复刻插件;若只需单轮工具用的 prompt 文本,文档 §11 有说明)。
适用场景与注意¶
适合:经常在 DSH 里写长 prompt、希望就地改写且不想换模型或开外部编辑器;对路径、版本号、代码符号等字面量敏感、需要代码层约束的场景。
注意:
- 插件以当前 DSH 进程的权限运行,安装前请阅读源码与 MIT LICENSE,确认可接受其行为(旁路 LLM 调用、读取 Session 最近轮次等)。
- 社区目录 skillhub.cn 上的插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」的扩展方式,本文不将其描述为官方应用商店条目。
- 保真校验依赖 Host 侧规则;极端措辞或模型不服从指令时,仍可能润色失败并保留原草稿——此时 tooltip 会给出原因。
结尾¶
经过上面的步骤,你可以在 composer 内用当前会话模型润色草稿,并用一键撤销回到原文。dsh-prompt-polish 把「改写」收进输入框右侧,用 fidelity guard 把事实性字面量锁在原文里,减少「润色改坏了约束」的常见摩擦。