dsh-prompt-enhance:在 Composer 输入框旁一键改写提示词

前言

在 DeepSeek Harness(DSH)里写任务时,常见做法是先在输入框里打一句短需求,再指望模型自己补全结构。这样往往缺目标、约束和验收标准,首轮回复容易跑偏。另开对话专门「写提示词」又会多占上下文、多一次模型调用。

下面介绍社区插件 dsh-prompt-enhance(维护者 xiex16070-jpg):在会话输入框底部、模型选择器左侧注册一颗「增强」芯片,用当前会话已选的 provider/model 把草稿改写成更清晰、可执行的提示词,并写回输入框——不新发消息、不写入会话历史。

DSH 生态遵循「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系。安装前请自行查看 GitHub 源码 与 MIT 许可证;插件在 当前 dsh 进程权限 下运行,改写请求会经宿主调用 LLM。

这是什么

dsh-prompt-enhance 归类为「模型推理」相关插件(目录简介:One-click prompt enhancement for the DeepSeek Harness composer)。当前 npm 包版本 0.1.1,要求 DSH >=0.2.0-rc.1、Node >=22.19。

定位可以概括为:不是另开一个「提示词助手」对话,而是输入框内的编辑器——把你已经写下的意思补齐结构(目标、约束、上下文、交付物、验收标准),专有名词、路径、命令、版本号尽量逐字保留;模型自行补充的背景需标为「假设:…」。

核心功能

输入框旁的芯片与插槽

芯片通过 DSH 正式插槽 conversation.input.right 注册(会话作用域、列表型,可与其它插件共存),默认落在模型选择器左侧。若当前 shell 未声明该座位,插件会按优先级依次探测 conversation.composer.dock、conversation.input.left、conversation.input.dock,首个可用座位生效;控制台可看到类似 [prompt-enhance] chip seated in conversation.input.right 的日志。

三种触发方式

  1. 单击芯片「增强」:按当前默认模式改写输入框草稿并写回。
  2. 芯片右侧「▾」:选择模式后立即改写。README 列出的模式包括:结构化(structured)、精简(concise)、详尽(detailed)、译成英文(translate-en)、规格化(spec)。
  3. 斜杠命令:在会话中执行 /enhance <你的提示词>,结果以命令回复形式返回,不修改输入框,适合纯键盘操作。

改写成功后芯片短暂显示「已增强」,并提供一次「撤销」(原文仅保存在页面内存,刷新后消失)。失败时会展开面板说明原因,必要时提供复制。

宿主与浏览器分工

  • 宿主半侧(lib/index.js):注册 HTTP 路由 prompt-enhance/*、调用 ctx.llm.stream 完成改写、读写配置、注册 /enhance 命令。
  • 浏览器半侧(lib/client.js):注册 UI 芯片、读取/写回输入框草稿;改写本身通过同源、文档相对路径 POST prompt-enhance/rewrite 完成(避免子路径部署时根绝对路径失效)。

改写使用 ctx.agentDefaultModel.currentSelection() 取得的当前模型,不额外配置 key、不切换计费模型。

配置(可选)

用户配置默认路径:~/.dsh/prompt-enhance/config.json(也可通过 $DSH_HOME 定位),每次请求重新读取,改完无需重启 DSH。常用字段包括:

键 默认 含义
enabled true 关闭后改写返回 disabled
mode structured 默认改写模式
language auto auto / zh / en
temperature 0.3 改写任务温度
timeoutMs 45000 单次超时
maxDraftChars 8000 草稿超长则拒绝(不静默截断)
maxOutputChars 12000 输出超长则丢弃

示例:

{
  "mode": "spec",
  "language": "zh",
  "temperature": 0.2,
  "maxDraftChars": 4000
}

安装与启用

DSH 插件作为 npm 包装入 profile(默认目录 ~/.dsh/profiles/<名字>/,本机常用 profile 名为 desktop),并在 profile 的 dsh.profile.bundles 中登记。

推荐:官方命令从 GitHub 安装(README 提醒:npm registry 上同名包可能指向他人仓库,勿仅写包名安装):

# 从 GitHub 仓库安装(推荐)
dsh plugin --profile desktop add github:xiex16070-jpg/dsh-prompt-enhance

# 从本地目录安装(开发时用;本地开发宜用 file:,慎用 link:)
dsh plugin --profile desktop add file:~/code/dsh-prompt-enhance

# 卸载
dsh plugin --profile desktop remove dsh-prompt-enhance

dsh plugin add 会将包装入 profile 的 node_modules(内部走 pnpm),并写入 bundles。包的 cordis.patch.yml 会随 bundle 自动叠加,一般无需手改 profile 的 cordis.patch.yml。

装完后必须重启 DSH:宿主半侧在启动时注册路由,浏览器半侧在页面加载时注册插槽。

临时停用可在 ~/.dsh/profiles/desktop/cordis.patch.yml 中对对应 id 设置 disabled: true:

- id: prompt-enhance
  disabled: true

典型用法

  1. 在 Composer 输入框写一句短需求,例如:帮我写个爬虫,要快。
  2. 确认当前会话已选择可用的 provider/model。
  3. 点击「增强」,或先选「规格化」等模式再改写。
  4. 检查写回后的结构化提示词,满意后照常发送;若误改,点「撤销」恢复原文。

键盘流示例:直接输入 /enhance 帮我写个爬虫,在命令回复中查看改写结果,再自行粘贴或继续编辑。

验证是否加载成功(README 建议):

  1. 新会话输入框动作行是否出现「增强」芯片。
  2. 浏览器控制台执行:fetch('prompt-enhance/health').then(r=>r.json()),期望 {ok:true, value:{enabled:true, model:"…", llm:true}} 一类响应。
  3. 试 /enhance 帮我写个爬虫,命令回复中应出现改写文本。

健康检查路由:GET prompt-enhance/health;改写:POST prompt-enhance/rewrite, body 形如 { draft, mode?, locale? }。

适用场景与注意

适合:已在 DSH 里用 Composer 写任务、希望发送前把草稿整理成结构化提示词,且愿意用当前会话模型多一次改写调用(仍不占用对话轮次、不写入历史)的开发者。

注意:

  • 改写走宿主 LLM,受当前模型能力、超时(默认 45s)与草稿/输出长度上限约束;空草稿、含插件定界标记 <<<草稿开始>>>、无模型等情况会按 README 中的 error.reason 拒绝。
  • 读写 Composer 草稿依赖 Lexical 编辑器的启发式适配(README「已知边界」一节有说明);极端 UI 或 DOM 结构变化可能导致「改写成功但写回失败」,此时结果会出现在错误面板供复制。
  • 插件分类为模型推理,但本质是提示词编辑;安装、启用前请阅读源码与权限边界,勿在未审计的 profile 中盲目添加第三方 bundle。

结尾

dsh-prompt-enhance 把「随手一句需求」收敛成「可发送的结构化提示词」,集成在输入框与模型选择器旁,并用会话自有模型完成改写,避免污染上下文。需要详情与完整 API、错误码说明时,以仓库 README 为准。

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

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

Xiaoye