dsh-pa:DeepSeek Harness 提示词增强插件

前言

在 DeepSeek Harness(DSH)里写提示词时,多数人只会在输入框里写一个草稿,比如“帮我加个按钮,别搞坏别的”。这类草稿缺少明确的交付物、边界条件和验收标准,模型往往只能靠运气理解意图。

dsh-pa 在输入框工具栏里放置一个菱形按钮,点击后把草稿交给 harness 自带的 LLM 服务做一次低温改写,结果直接写回输入框;再点一次,逐字恢复原始草稿。插件不创建预览面板,不把内容复制到剪贴板,原始草稿按会话保存,保证可逆。

插件概况

  • 名称:dsh-pa
  • 维护者:rg2304luyue
  • 分类:模型推理
  • 简介:供 DeepSeek Harness 使用的轻量级提示词增强插件
  • GitHub:https://github.com/rg2304luyue/dsh-pa
  • 目录页:https://www.skillhub.cn/plugins/rg2304luyue/dsh-pa

核心功能

输入框按钮与就地改写

插件在 conversation.input.right 插入一个菱形按钮,位于模型选择器左侧。点击后,本地拦截空草稿、提交中草稿、已像成品提示词的草稿等情况,只置灰按钮并给出提示,不发起请求。通过拦截的草稿会被发送到 POST /api/dsh-pa/enhance,由 harness 的 LLM 流式改写,结果直接通过 setDraft 写回输入框,按钮转为激活态。

可逆与按会话记忆

每次增强前,插件会把原文按会话保存,最多保留 32 对原文/增强文对。点击一次,输入框显示增强后的文本;再点一次,原文逐字恢复。如果用户手工编辑了增强后的文本,保存的原文会被丢弃,下次增强基于当前文本进行。

缓存与连点不花钱

同一模型下、同一草稿在 5 分钟内再次点击,会直接返回缓存的增强文本,不再调用模型。默认 temperature: 0,保证重复点击时措辞与结构保持稳定。

结构化草稿保护

已像成品提示词的草稿(例如带列表标记且带有输出预期的长草稿)会被识别为“结构化草稿”,菱形置灰,不会再次改写。该判断依据草稿长度(默认 structuredMinChars: 800)与结构特征。

模型路由

插件支持三种模型路由优先级:
1. Config.model:配置的 provider 或 provider/model;
2. 当前会话选中的模型;
3. ctx.llm 报告的第一个已配置 provider 与模型。

三者都解析不到时,端点返回 503 NO_MODEL。

安装与启用

从 Git 源安装(无需 npm 包):

dsh plugin --profile desktop add github:rg2304luyue/dsh-pa

profile 名根据实际运行环境填写:desktop(Electron 桌面应用)、web(DSH Web)。插件 bundle 声明了 dsh.bundle.patch,加载器会自动插入 dsh-pa 行。

如需从本地 tarball 安装:

npm pack --pack-destination ./dist          # 生成 dist/dsh-pa-0.4.6.tgz

# 在 DeepSeek Harness 里:
plugin_manager  action=install_bundle  target=<./dist/dsh-pa-0.4.6.tgz 的绝对路径>

卸载:

plugin_manager  action=remove_bundle  target=dsh-pa

配置

在用户层(cordis.patch.yml,在所有 bundle 层之后生效)追加同 id 的配置行:

- id: dsh-pa
  name: dsh-pa
  config:
    model: ''            # '' = 跟随当前会话选中的模型
    temperature: 0
    timeoutMs: 120000
    maxDraftChars: 24000
    structuredMinChars: 800
    cacheTtlMs: 300000

配置说明:

键 默认值 说明
model '' 用于改写的 provider 或 provider/model;留空则跟随输入框当前选择
temperature 0 采样温度,0–2;低值让重复改写时措辞与结构更稳
timeoutMs 120000 单次改写时限,5 秒 – 10 分钟;超时返回 504 ABORTED
maxDraftChars 24000 超过该长度直接拒绝,返回 413 DRAFT_TOO_LARGE,不截断
structuredMinChars 800 达到该长度即视为成品提示词、菱形置灰
cacheTtlMs 300000 同一模型下复用同一草稿改写的时长;0 关闭缓存

model、temperature、timeoutMs、maxDraftChars 每次请求读取,改动立即生效;structuredMinChars 与 cacheTtlMs 在按钮挂载时从 GET /api/dsh-pa/enhance 读取,刷新或新会话后生效。

内置改写策略

插件使用约 1500 字符的 SYSTEM_PROMPT,分三档策略:

  1. 永不做:不回答请求、解释改写、用前言/引号/代码围栏包裹结果;不把草稿复述成条目;不改变含义、范围、术语、数字或语气;不编造事实、文件、API 或验收标准;不重命名标识符;不切换语言;不添加草稿没有要求的流程规则、错误处理或测试内容。
  2. 总是做:先写一句目标,用草稿自己的措辞点明交付物;然后补上目标句缺少的要求,沿用草稿自身的顺序与编号;把含糊措辞落实成草稿隐含的具体条件;最后给一条收尾的输出要求。这是唯一允许模型主动添加的条目。
  3. 风格:纯 markdown,目标句 + 列表,60–200 词、上限 250。问句可转成分析请求,但陈述句不得改成反问。同一草稿重跑时措辞、结构、顺序保持稳定;已经精确的草稿只做最小改动。仅当歧义会影响实现(尺寸、位置、默认状态、持久化)时,才在结尾加一句假设/Assuming。

默认 temperature: 0,重复点击同一草稿时返回完全相同的文本。本版本不支持自定义策略,Config 管的是调用参数,不是提示词。

异常与边界

情况 行为
空 / 纯空白草稿 本地拒绝,按钮置灰并显示 button.empty 提示
草稿处于 submitting / adjudicating 本地拒绝,按钮置灰并显示 button.blocked 提示
草稿已像成品提示词 本地拒绝,按钮置灰并显示 button.structured 提示
运行时没有 inputActions.setDraft 本地拒绝,按钮置灰并显示 button.unsupported 提示
超过 maxDraftChars 返回 413 DRAFT_TOO_LARGE,拒绝而非截断
请求体为空或 JSON 非法 返回 400 BAD_REQUEST
请求体超过 512 KiB 返回 413 BAD_REQUEST,直接销毁 socket
解析不到模型 返回 503 NO_MODEL
上游模型失败 返回 502,附带稳定错误码(AUTH、RATE_LIMIT、NO_ADAPTER、CONTEXT_WINDOW_EXCEEDED 等)
模型没有返回可用文本 返回 502 EMPTY_RESULT,草稿不动
超过 timeoutMs 返回 504 ABORTED,调用被中止
处理函数里的意外错误 返回 500 INTERNAL,绝对路径脱敏成 <path>
任何失败 输入框文本一律不改,tooltip 显示 error.prefix + 宿主消息,6 秒后自动消失

适用场景与注意事项

dsh-pa 适合需要快速把口语化草稿转化为结构化提示词的场景,尤其是需要反复调试 prompt 的智能体开发与实验阶段。插件以当前 dsh 进程权限运行,安装前建议查看源码与许可证。

插件不提交消息,不碰附件、队列与会话历史,在你亲自按下发送之前,任何内容都不会进入对话。

总结

dsh-pa 在 DSH 输入框中提供一个菱形按钮,把草稿一次性改写成结构化的提示词,再点一次即可还原。它通过本地拦截、按会话记忆、五分钟缓存、结构化草稿保护等机制,在保证原意不变的前提下,提升提示词的清晰度与可复现性。

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

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

小夜