dsh-prompt-reforge:在 DSH 输入框里把草稿改写成更精确的提示词

前言

在 DeepSeek Harness(DSH)里写提示词时,常见做法是先在输入框里打一段粗略草稿,再手动润色、补约束、改结构。草稿和最终提示词往往要来回改好几遍;若改过头,还要从记忆里或别处找回原文。DSH 社区插件 dsh-prompt-reforge(维护者 Cloud017,分类:模型推理)把这一步做成输入区工具栏上的一个控件:用当前会话已选中的模型把草稿重写为更具体、更可用的提示词,并支持一键恢复改写前的原文。

下面介绍它的定位、交互方式、安装步骤,以及使用时需要注意的边界。

这是什么

dsh-prompt-reforge 是 DSH 的 Composer 控件插件。它挂在输入框工具栏里,紧挨模型选择器一侧,不额外打开面板或弹窗;改写结果直接写回你正在编辑的输入框。

改写请求走本机 Harness 已路由的 provider / model,草稿不会发到插件之外的其他服务。插件只增加一条 host 注册与一个工具栏按钮,不改动你的模型路由、提供商配置或默认模型。

核心功能

工具栏上的改写与恢复

工具栏示意(来自项目 README):

[ + ]  [ permission ]            [ ✨ ]  [ ▾ model ]
                                   │
                                   └─ press to reforge, press again to revert

按状态不同,按钮会处于不可用、可改写、改写中、可恢复等阶段。README 中归纳的主要行为如下:

情况 表现
输入为空 按钮不可用,提示需先写内容再改写
未选模型 不可用,提示先选模型
模型列表加载失败 仍可点击,点击会重试加载
草稿里带有 reference chips 不可用,需先移除 chips(改写会丢掉 chips)
就绪 可点击,开始改写
改写中 显示进行中状态,再次点击可取消
改写完成 草稿被替换,同一按钮变为「恢复原文」
改写后继续打字 备份被丢弃,避免静默覆盖你的新编辑
改写过程中你仍在输入 结果会被丢弃,并通过 tooltip 说明
失败 草稿不变,tooltip 给出原因

服务端与浏览器分工

包内两部分协同工作:

  1. Host 半部(lib/index.js):在 Harness Web 服务上注册 POST /plugins/dsh-prompt-reforge/enhance,校验请求后通过 ctx.llm.stream() 调用当前会话路由到的模型,返回规范化文本。拒绝非 loopback 请求;请求体上限 256 KiB,草稿上限 20 000 字符;浏览器断开或超过 60 秒会中止调用。
  2. 浏览器半部(lib/client.js):向 conversation.input.right 槽位注册控件,维护按钮状态机,用 fetch 调用上述路由,并通过 Composer 的 inputActions.insertText 写回结果;若编辑器 API 不可用或拒绝编辑,则回退到 inputActions.setDraft。

改写以整段 insertText 写入,便于作为单步撤销;应答到达时会用 ref 读取当前草稿,若与发送时不一致则丢弃结果,避免覆盖正在输入的内容。

请求约定(节选)

POST /plugins/dsh-prompt-reforge/enhance 请求体示例:

{ "draft": "rough text", "provider": "workbuddy", "model": "deepseek-v4.1-flash", "sessionId": "session-…" }

成功:200 { "ok": true, "text": "…" }。失败:{ "ok": false, "error": { "code": "…", "message": "…" } },常见状态码包括 400(空草稿、缺 provider/model 等)、403(非可信来源)、413(超长)、499(中止)、502/503/504(上游或超时)等,详见项目 README 表格。

安装与启用

DSH 生态里第三方插件可通过插件管理器或 GUI 安装;社区目录站点 SkillHub 上的 dsh-prompt-reforge 页 与 GitHub 仓库 为公开来源,与 DeepSeek / 幻方无官方从属关系。

插件管理器

按包名安装:

plugin_manager action=install_bundle target=dsh-prompt-reforge

或指定 release 压缩包(README 示例为 v0.2.2):

plugin_manager action=install_bundle target=https://github.com/Cloud017/dsh-prompt-reforge/releases/download/v0.2.2/dsh-prompt-reforge-0.2.2.tgz

或指向本地目录:

plugin_manager action=install_bundle target=<absolute path to this directory>

同一 release 轨道上另有别名 dsh-prompt-reforge.tgz,可将固定版本 URL 换成 .../latest/download/dsh-prompt-reforge.tgz 以跟踪最新包。

GUI

路径:Plugins → Add plugin → Install third-party plugin,粘贴包名、release URL、仓库 URL 或本地目录,然后重启 DSH。

安装完成后,dsh.profile.bundles 会增加一条 bundle 记录。当前包版本为 0.2.2(见 package.json),许可证 MIT © Cloud017。

兼容性

engines.dsh 要求:>=0.2.1-rc.1 <0.3.0-0 || >=0.2.2-0 <0.3.0-0(README 说明了 prerelease 区间写法的原因)。@deepseek-ai/* 类 peer 依赖在包内声明为 optional,由 Harness 组合提供;缺失时功能降级而非直接拖垮客户端。

典型用法

  1. 在 DSH 中为本会话选择 provider 与 model(改写会使用这一对,与即将对话的助手一致)。
  2. 在 Composer 输入框写下粗略草稿;若挂了 reference chips,先去掉再改写。
  3. 点击工具栏上的改写按钮(✨)。等待过程中可再次点击取消。
  4. 若满意,直接发送对话;若不满意,在未继续大幅编辑的前提下,再次点击同一按钮恢复原文。
  5. 若在改写完成后继续编辑输入框,原文备份会被丢弃,此时不应再指望「恢复」覆盖你的新内容——这是刻意设计,避免静默吞掉编辑。

默认无需配置文件。若要 fork 调整上限,README 列出常量位置:MAX_DRAFT_CHARS(20 000,host 与 client 须一致)、MAX_BODY_BYTES(256 KiB)、MAX_TOKENS(2048)、TIMEOUT_MS(60 000)、提示词侧 LENGTH_BUDGET(800 字符)等,分别位于 lib/index.js、lib/client.js、lib/prompts.js。

适用场景与注意

适合谁:经常在 DSH 里写长提示、希望用当前已选模型快速「压一遍结构」的开发者;需要无面板、就地编辑、可撤销的提示词润色流程时。

权限与安全:插件以当前 DSH 进程权限运行,host 路由会调用本机 LLM 运行时处理你的草稿。安装前建议阅读仓库源码与 MIT 许可证;仅接受来自 loopback 的 enhance 请求,但仍应在你信任的环境中安装第三方 bundle。

局限:带 reference chips 的草稿不能改写;草稿超过 20 000 字符会被拒绝;改写依赖模型输出,失败时原文保持不变。

结尾

dsh-prompt-reforge 把「草稿 → 更精确的提示词 → 一键还原」收进 Composer 工具栏,改写与对话共用同一会话模型,交互状态在 README 中有完整说明。进一步了解可查看 SkillHub 目录页 与 GitHub:Cloud017/dsh-prompt-reforge。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye