xiaoshengliang2002/dsh-prompt-boost-pro

dsh-prompt-boost-pro

Enhance the composer draft before sending: a sparkle button in the DSH web GUI rewrites your prompt in a structured or light mode, with an original-versus-enhanced preview.

待分类deepseek-harnessdshprompt-engineering

dsh-prompt-boost-pro — 发送前先把提示词改好

English | 中文

DeepSeek Harness(DSH)输入框工具栏里的一个 sparkle 按钮:点一下选模式,模型把草稿改写成更好的提示词, 并以原文 / 增强对照的形式给你看——接受、换模式重试、或放弃,都由你决定。不点接受绝不碰你的草稿。

灵感来自 Trae CN 的「优化输入内容」:写下粗糙的想法,拿回一段可直接执行的指令。 与"一键改写"不同的是,这里始终先给你看两版,接受之后同一个按钮变成撤销——直到你改动或发送这段文字为止。

功能特性

  • 两种模式,每次自己选——结构化增强按任务重组草稿(目标、约束、期望输出、验收要点); 轻度增强只消歧、纠错、收紧。两者都保留你的原意与语言,都不添加你没写过的需求。
  • 绝不反问你。 提示词策略禁止把 agent 自己能查的信息(仓库结构、技术栈、改动范围、历史结论) 甩回给你;整段输出最多留 1 处 [待补充: …],且只用于真正需要你拍板、猜错代价高的事。
  • 对照预览,从不静默覆盖——原文与增强并排;接受 / 换模式重试 / 复制 / 放弃。 预览打开期间你改过草稿,它会明确提示,并把主动作改成「以增强结果覆盖当前草稿」。
  • 会过期的撤销——接受后只有"草稿仍等于增强结果"时按钮才显示撤销;发送或手改之后自动回到常态, 不会给你一个点了就报错的撤销。
  • 截断不再是黑洞——输出额度按草稿长度自适应(4000 → 8192 token),撞到上限仍返回已有内容并标注, 给提示而不是丢一个错误。
  • 模型路由四级回退——插件配置 → 界面模型选择器当前显示的 → 会话上一次请求用的 → 部署默认模型。 新会话第一次点也能用。
  • 到处都能关——再点图标、点外部、按 Esc;预览弹窗也支持 Esc。菜单打开时按钮保持可点, 不会出现"关不掉的弹框"。
  • 中英双语界面,跟随主题(用 DSH 真实设计令牌),不埋点、不写配置文件。

环境要求

  • DSH web GUI(dsh web),harness 0.1.2-alpha.1 或更新;当前 0.1.5-rc.x 线已实测。
  • Node ^22.19.0 || >=24.0.0(宿主半边跑在 harness 进程里)。
  • 会话有可路由的模型即可——部署默认模型也算,所以无需任何额外配置。

安装

# 在运行 web GUI 的 profile 里(通常叫 web)
dsh plugin --profile web add github:xiaoshengliang2002/dsh-prompt-boost-pro

# 或用 Release 上的 tarball
dsh plugin --profile web add https://github.com/xiaoshengliang2002/dsh-prompt-boost-pro/releases/latest/download/dsh-prompt-boost-pro.tgz

# 或本地目录(软链;改完重建即生效,不用重装)
dsh plugin --profile web add link:/path/to/dsh-prompt-boost-pro

然后重启 dsh web 并刷新页面。lib/ 是已构建产物并随仓库提交,所以从源码安装不需要构建、也不需要 pnpm 的构建授权。

卸载:dsh plugin --profile web remove dsh-prompt-boost-pro。

按钮在哪

+ | 权限控制 | ✨ 增强 | 召唤专家 | …… | 模型 | 上下文环 | 发送

它注册的是 conversation.input.left、order: -10,因此紧贴权限控制之后。想让它在召唤专家之后, 把 src/client/index.ts 里的 order 改成 20 即可。

工作原理

半边职责
宿主(lib/index.js)在共享 API 通道注册 POST /api/prompt-boost-pro/enhance(同源、cookie 鉴权),解析模型路由,ctx.llm.stream() 一次性调用,清洗文本后返回 JSON。
浏览器(lib/client.js)注册两个插槽:工具行的按钮与模式菜单、输入卡片浮层里的对照预览弹窗。每会话一个状态机,且只在"接受"时通过 inputActions.setDraft 写回草稿。

线协议、错误码与提示词策略见 docs/design.md; awesome-dsh-plugin 收录核对见 docs/awesome-dsh-plugin-checklist.md。

开发

这是一个普通 npm 包,lib/ 是刻意提交的构建产物(让源码安装无需构建)。

npm run typecheck      # tsc --noEmit,0 错误
npm run build          # esbuild → lib/index.js + lib/client.js
npm test               # 4 套离线测试:宿主 28、浏览器 28、UI 关闭/撤销 40、提示词策略 27
npm run release:pack   # 同步文档 + 构建 + 打包
npm run release:verify # 解包校验 31 项契约与收录条件

全程不需要联网:node scripts/link-dsh.mjs 把本地 DSH checkout 里的包(esbuild、typescript、 react、@types)联结进 node_modules,构建与测试都能离线跑。

preview/index.html 是可点击的界面预览(用 DSH 真实设计令牌 + 本插件真实样式表); preview/shot-preview.cjs 把各状态截图渲染到 preview/shots/(由 screenshots.json 声明给市场)。

版本沿革

  • 0.1.2 —— 推理档位透传。客户端随请求带上模型选择器当前的推理档位(low/high/max), 宿主把它传给 LLM 调用;部署也可用新的 reasoningEffort 配置键固定档位。 修复"始终思考"的模型(GLM-5.3-Flash 等)报 400 {"code":"1210"}:这类模型默认档位是 off,会被上游以「不支持关闭思考」拒绝。
  • 0.1.1 —— 升级窗口兼容。宿主在注册当前路径的同时注册旧的 POST /api/prompt-boost/enhance, 客户端在当前路径返回 404/405 时自动回退旧路径——"刷新了页面却没重启宿主"(或反过来)这种半更新 状态不再报「非预期响应(HTTP 404)」,而是照常工作。
  • 0.1.0 —— 首个发布。两种增强模式(结构化 / 轻度);接受前的原文/增强对照预览;随草稿过期的撤销; 点外部/Esc 关闭;自适应输出额度并在撞顶时以 truncated 标记保留产出;模型路由四级回退 (新会话第一次点就能用);中英双语与自定义 sparkle 图标。123 项离线断言 + 34 项打包校验。 线协议:POST /api/prompt-boost-pro/enhance;按钮位于权限控制之后。

许可证

MIT