dsh-prompt-enricher:在 DSH 里把「写提示词」从输入框独立出来

前言

DeepSeek Harness(DSH)的输入框适合快速发一句话,不适合在框里推敲一段长提示词:回车会发送、长文本难改、Earlier 的提示词在长会话里也不一定能从界面侧完整找回来。社区插件 dsh-prompt-enricher(维护者 msciu,分类:工作流)在输入框上方加了一块提示词工作台,理念是 write first, send once——先写清楚,再发出去。

这是什么

dsh-prompt-enricher 是面向 DeepSeek Harness 的插件:草稿、已发送历史、Markdown 编辑、技能补全,以及基于 grill 方式的澄清(elicitation)流程。仓库:github.com/msciu/dsh-prompt-enricher;社区目录页:skillhub.cn/plugins/msciu/dsh-prompt-enricher(独立站点,与 DeepSeek / 幻方无官方从属关系)。当前 package 版本 0.2.0,许可证 MIT。

核心功能

两个入口,同一块面板

  • 已有会话:切到顶部的「提示词」tab。
  • 新开的空白会话:没有 tab 条时,由输入框工具行里的「提示词」按钮就地打开(与权限、模型控件同一行)。

已发送历史

列表不是「最近一页消息」。插件通过宿主读取会话完整日志,按 seq 合并成只增不减的列表;长会话也不会因浏览器侧 PAGE_MESSAGES = 50 的窗口而缺条目。宿主接口:

GET /_dsh/prompt-enricher/sent?sessionId=<id>

活会话读 Session.events;非活会话回退 sessionPersistence.inspect。过滤规则与客户端共用(只认用户 append、有 seq 的非空文本等),避免把 runtime-context、skill-catalog 等注入内容误算成你写的提示词。

草稿

可编辑、可发送、可删除;按会话持久化在浏览器 localStorage(键名空间 dsh.prompt-enricher),重启 DSH 后仍在。

Markdown 编辑器

回车只换行,不发送;输入 / 调出技能补全(与 shell 同一份技能目录)。

澄清提升(elicitation)

把当前草稿交给宿主创建的子会话,按内嵌的 grill-me 式协议逐条追问,每题带推荐答案;你逐条裁决后,产出消解歧义后的完整提示词,回填为草稿(不会自动发送)。子会话逻辑在宿主半完成(浏览器不能建子会话、也不能读子会话 transcript)。

中英双语

界面文案跟随 DSH 的 locale。

安装与启用

插件以 DSH 桌面版 profile 的 file 依赖 + bundle 方式接入,不是 dsh plugin add 一类命令;以下步骤来自仓库 README。

前置

  • DSH 桌面版 host 0.2.x(0.1.x 也做了兼容,见下文兼容性表)。

步骤

  1. 把仓库放到一个长期保留的目录(示例路径按你的环境改):
   git clone https://github.com/msciu/dsh-prompt-enricher.git D:\tools\dsh-prompt-enricher
  1. 在 DSH profile 的 package.json 里加依赖与 bundle。Windows 下 profile 目录一般是 C:\Users\<you>\.dsh\profiles\desktop,macOS / Linux 是 ~/.dsh/profiles/desktop:
   {
     "dependencies": {
       "dsh-prompt-enricher": "file:D:/tools/dsh-prompt-enricher"
     },
     "dsh": {
       "profile": {
         "bundles": [
           "@deepseek-ai/dsh-base",
           "@deepseek-ai/dsh-web-app",
           "dsh-prompt-enricher"
         ]
       }
     }
   }

dsh.profile.bundles 里原有的 @deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app 不要删,只追加 dsh-prompt-enricher。

  1. 在 profile 目录安装依赖:
   cd C:\Users\<you>\.dsh\profiles\desktop
   pnpm install
  1. 重启 DSH。

仓库已附带 lib/,安装时不需要构建。若你改 src/,可选执行 pnpm install 与 pnpm build(工具链为 tsdown)。

装进去的必须是链接,不能是拷贝

pnpm install 对 file: 依赖可能拷一份目录而不是建链接;拷贝发生后,改源码只更新源目录,桌面版仍读旧拷贝,表现为界面完全没变。README 建议在 Windows 上用 PowerShell 检查 node_modules\dsh-prompt-enricher 的 LinkType,必要时删掉目录并建 Junction 指向源仓库。

卸载

从 profile 的 bundles 与 dependencies 各删一行,pnpm install,重启 DSH。草稿不会自动清除,仍留在浏览器 localStorage。

兼容性(子会话)

动作 0.1.x 0.2.x
建子会话 startContinuable startActivation(优先)
释放 drainContinuableChildren drainChildren(优先)

两版 API 都不存在时,澄清流程的 start 路由返回说明性错误,而不是抛栈。

典型用法

  1. 打开「提示词」面板,在 Markdown 区写长草稿;需要技能时用 / 补全,避免在 composer 里误触发送。
  2. 从已发送历史里找回同一会话里较早的 user 提示词(含仅图片的条目会显示为 [N 张图片的提示词])。
  3. 需求仍含糊时,走澄清提升:逐条回答问题,定稿回填草稿后再自行点发送。
  4. 草稿可多条并存于同一会话,按需在面板里编辑、发送或删除。

适用场景与注意

适合谁:经常在 DSH 里写长 system / task 提示词、需要草稿与完整历史、希望在发送前用结构化追问消歧的开发者。

权限与安全:插件随当前 DSH 进程与 profile 加载,澄清流程会在宿主侧创建子会话并访问会话日志;安装前应阅读源码与 MIT 许可证,确认符合你的环境策略。

已知限制(README):已发送列表一次返回该会话全部提示词,面板尚未虚拟化,数万条级超长会话可能偏重;engines.dsh 声明是否被宿主用于拦截安装尚未验证。

结尾

dsh-prompt-enricher 把提示词从 composer 里拆成独立工作台:草稿持久化、历史读宿主全量日志、澄清在定稿后再发送。详情见 GitHub 仓库 与 SkillHub 目录页。

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

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

小夜