前言¶
在 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 给出原因 |
服务端与浏览器分工¶
包内两部分协同工作:
- Host 半部(
lib/index.js):在 Harness Web 服务上注册POST /plugins/dsh-prompt-reforge/enhance,校验请求后通过ctx.llm.stream()调用当前会话路由到的模型,返回规范化文本。拒绝非 loopback 请求;请求体上限 256 KiB,草稿上限 20 000 字符;浏览器断开或超过 60 秒会中止调用。 - 浏览器半部(
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 组合提供;缺失时功能降级而非直接拖垮客户端。
典型用法¶
- 在 DSH 中为本会话选择 provider 与 model(改写会使用这一对,与即将对话的助手一致)。
- 在 Composer 输入框写下粗略草稿;若挂了 reference chips,先去掉再改写。
- 点击工具栏上的改写按钮(✨)。等待过程中可再次点击取消。
- 若满意,直接发送对话;若不满意,在未继续大幅编辑的前提下,再次点击同一按钮恢复原文。
- 若在改写完成后继续编辑输入框,原文备份会被丢弃,此时不应再指望「恢复」覆盖你的新内容——这是刻意设计,避免静默吞掉编辑。
默认无需配置文件。若要 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。