dsh-prompt-optimization

uitested: passnpmMIT

Composer prompt refinement for DSH: rewrites a rough draft into a structured, unambiguous prompt with one-click undo, reference-chip protection, three model sources (composer / account / any OpenAI-compatible endpoint) and disconnect-aware cancellation.

下载量 / Downloads
848
依赖体积 / node_modules
0.55 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-prompt-optimization

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-prompt-optimization · 提示词优化

中文 | [English](README.en.md)

![License: MIT](LICENSE)

把输入框里那句“帮我把周报弄一下”,变成一份任务明确、主旨清晰、无歧义、计划合理、目标准确的专业提示词——点一下就完成,不满意一键撤回。

这是一个 DeepSeek Harness(DSH)Web 插件:「优化提示词」按钮位于输入框工具栏、紧挨模型选择器;改写结果直接回填草稿,草稿不被覆盖(改写前后可随时撤回)。插件的设置页可配置模型来源、API Key 与多候选评估,支持本地或在线 OpenAI 兼容接口。


为什么需要它

自然语言需求往往含糊:缺背景、缺范围、缺验收标准,模型只能猜。这个插件把“猜”前置成一次显式改写:

  • 改写目标:任务明确 / 主旨清晰 / 无歧义 / 条理清晰 / 计划合理 / 目标准确
  • 改写原则:忠实原意(不新增需求、不编造事实),信息不足时给标注假设或最多 3 条关键待确认问题,绝不把“反问用户”当成输出
  • 深度自适应:短需求给短提示词,复杂需求才展开「目标 / 背景 / 任务 / 约束 / 步骤 / 输出格式 / 验收标准」结构

功能

功能 · 说明

一键优化 · 工具栏按钮点击后调用模型改写当前草稿并回填

一键撤回 · 改写后按钮变为「撤回」,点击恢复原文,再点又可优化

多候选评估 · 可开启:并行生成 2–5 份结果,再由评审模型选出最优;会明确提示 token 成本

模型来源可配置 · 跟随输入框(默认)/ 跟随主程序 / 自定义模型(任意 OpenAI 兼容端点)

本地模型支持 · 由主机侧直接请求端点,不受浏览器 CORS 限制,Ollama / LM Studio / vLLM 均可

显示提示文字 · 默认只显示图标;开启后同时显示「优化提示词」和「撤回」文字

空输入引导 · 未填写内容时点击优化,提示语会逐字写入输入框,停留 2 秒后逐字删除;开始输入即自动停止

根据上下文优化(Beta) · 可开启:先压缩当前会话上下文再据此改写,使结果更贴合你的表达习惯;默认关闭

引用保护 · 草稿含文件/会话引用芯片时自动禁用,避免改写丢失引用

失败安全 · 草稿在请求期间被修改则不覆盖本次结果;请求可随页面关闭/切会话立即中止

问题分类改写 · 先判断原文属于六类中的哪类(知识理解/编程实现/内容创作/分析决策/流程方法/表达转换),按类型决定问什么

问题拆解深入 · 问「什么是 X」时不直接回答,而是拆成至少 3 个分析维度写成提示词

篇幅分五档 · 按原文字数与问题类型选档:极短/简短/标准/详尽/完整,同一篇不跨档

可中断优化 · 优化过程中点击转圈即可中断,草稿恢复为原文

最大等待时长 · 可设置单次优化的最长等待时间,默认 15 秒、最低 10 秒,超时自动中止

检查更新 · 设置页可检查是否有新版本,更新源可自定义(npm registry / GitHub Releases / 任意镜像),只读版本号、不下载安装

插件界面与词典提供简体中文、繁体中文、日语和英语。


安装

方式一:插件管理器(推荐)

在 DSH 中打开「设置 → 插件」安装,或使用包坐标:

plugin_manager install_bundle target=dsh-prompt-optimization

国内网络可指定镜像源:

plugin_manager install_bundle target=dsh-prompt-optimization registry=https://registry.npmmirror.com

需要固定版本时写完整版本号,例如 target=dsh-prompt-optimization@1.1.0。

方式二:源码安装

git clone https://github.com/KukaNo996/dsh-prompt-optimization
plugin_manager install_bundle target=<克隆目录的绝对路径>

安装后:插件行出现在「设置 → 插件」,设置页出现在「设置 → 提示词优化」。


快速开始

1. 在输入框写下需求,例如 帮我把周报弄一下

2. 点击工具栏「优化提示词」

3. 查看改写结果,满意直接发送;不满意点「撤回」

4. 首次使用若提示模型不可用,前往「设置 → 提示词优化」选择模型来源


设置项

设置 · 作用 · 默认

模型来源 · 跟随输入框 / 跟随主程序 / 自定义模型 · 跟随输入框

API 地址 · 自定义模式的 OpenAI 兼容端点,如 http://127.0.0.1:11434/v1 · —

模型名称 · 自定义模式必填;跟随模式留空表示自动 · —

Provider(可选) · 跟随模式下覆盖自动选择的 provider · 自动

API Key · 自定义端点密钥;本地模型可留空 · —

温度 · 0–2,越低越稳定 · 0.3

最大输出 token · 0 表示交给模型默认值 · 0

优化指令 · 自定义 system prompt,留空用内置指令 · 内置

多候选评估 · 开关 + 候选份数(2–5) · 关闭 / 1 份

显示提示文字 · 开启后按钮显示「优化提示词」和「撤回」文字,关闭时只显示图标 · 关闭(仅图标)

更新源 · 检查更新时使用的地址;留空按内置顺序尝试 · 自动

根据上下文优化(Beta) · 开启后先压缩会话上下文再据此改写提示词 · 关闭

最大等待时长 · 单次优化的最长等待时间,覆盖上下文压缩、多候选生成与评审 · 15 秒

可随时用「测试连接」验证当前配置;配置未保存到可调用状态时,保存仍会成功,但优化会返回可读的错误提示。

问题分类

动笔前先判定原文属于哪一类,类型决定该问什么,不用同一套模板套所有问题:

类型 · 典型问法 · 改写重点

知识理解类 · 什么是、为什么、有什么区别、原理 · 拆成多个分析维度,系统讲透

编程实现类 · 写、改、修、重构、报错、性能 · 输入输出、语言框架、约束、边界、验收方式

内容创作类 · 文案、起名、邮件、脚本、翻译 · 受众、用途、语气、篇幅、禁忌

分析决策类 · 对比、选型、评估、要不要 · 候选对象、评价维度、结论形态、判断标准

流程方法类 · 怎么做、如何入门、步骤 · 阶段划分、每阶段产出、依赖与检查点

表达转换类 · 总结、精简、改写、格式化 · 目标形态、保留什么、删掉什么

问问题时不回答

用户问「什么是闭包」「React 和 Vue 选哪个」时,插件不会以大模型口吻直接回答。

它做的是把问题改写成一条可执行的提示词,交给别的 AI 去答:

  • 问题必须拆成至少 3 个分析维度,只润色成一句问话算不合格改写;
  • 六个可选维度:定义与核心概念、原理与机制、分类与对比、应用与示例、优点与局限、实践建议;
  • 同时写明读者水平、覆盖粒度、是否要来源,并明确「不要只给一句定义就结束」;
  • 知识理解类即使原文只有五六个字,也按详尽档系统展开。

例如原文「什么是闭包」会改写成要求覆盖定义、形成机制、常见形态、典型用途、

常见误区、与其它语言同类机制的区别,并每点配最小代码片段的任务说明。

篇幅分五档

改写长度由原文字数 + 问题类型共同决定,不是所有需求都要优化成一大串:

档位 · 原文 · 输出

极短档 · 不足 20 字(如「写个快排」) · 1–2 句,核心任务 + 一个最关键约束;绝不加标题、编号、背景

简短档 · 20–50 字,单一诉求 · 2–4 句或最多 3 条短要求,不设小标题

标准档 · 50–150 字,或含 2–3 个并列诉求 · 4–8 行,可加 1–2 个小标题

详尽档 · 150–400 字,或类型要求系统回答(知识理解/分析决策/流程方法) · 结构化多段:目标 / 覆盖维度 / 约束 / 输出形态 / 验收标准

完整档 · 超过 400 字,或多条并列且彼此依赖 · 才用含背景、执行步骤、风险与检查点的完整结构

同一篇内不跨档:原文是极短档,就不会写到详尽档。知识理解类即使原文很短也落到详尽档。

判据是「原文写了多少、问题需要多深」,不是你还能补充多少。宁可偏短一档。

中断与等待时长

优化过程中点击转圈即可中断,草稿会恢复为原文。

中断会同时结束客户端请求与主机侧的模型调用,不会让模型在后台继续生成。

「最大等待时长」限制单次优化的总耗时,默认 15 秒,最低 10 秒。

该时长覆盖整个流程——上下文压缩、多候选生成与评审都在其中,

而不是只算最后一次模型调用。超时后插件会自动中止并明确提示。

根据上下文优化提示词(Beta)

设置页的「根据上下文优化(Beta)」默认关闭。开启后:

1. 读取当前会话中你真正输入过的消息(宿主注入的运行时上下文等不参与);

2. 交给模型压缩成一份简短偏好简报——表达习惯、常用措辞、关注的主题、已排除的做法;

3. 用这份简报作为参考改写提示词。

只有压缩后的简报会进入改写请求,原始对话不会直接发给模型。

压缩本身会多调用一次模型,因此 token 消耗相应增加;压缩失败时会退回普通改写,

不会让整个操作失败。

该功能仍处 Beta:它会改变改写结果,介意可随时关闭。

检查更新

设置页底部有「检查更新」区块,点击后查询是否有新版本。它只读取版本号,不下载、不安装,也不会写入设置文件。

更新源支持三种写法,填在「更新源」输入框即可:

写法 · 示例

内置别名 · npm、npmmirror、github

npm registry 包地址 · https://registry.npmmirror.com/dsh-prompt-optimization

GitHub Releases API 地址 · https://api.github.com/repos/KukaNo996/dsh-prompt-optimization/releases/latest

留空时依次尝试 npm registry → npmmirror → GitHub Releases,任一成功即返回。

  • 自定义源按响应内容识别格式(dist-tags.latest 或 tag_name),因此镜像站、代理都可用,不依赖域名。
  • 单个源超时 10 秒,失败自动回退到下一个;全部失败会逐条列出原因。
  • 版本比较遵循语义化版本优先级,正确处理预发布版本。

三种模型来源

模式 · 使用的模型 · 取不到时

跟随输入框(默认) · 输入框右下角当前选择的模型 · 报错,不切换到其它模型

跟随主程序 · 见下方解析顺序 · 逐级回退

自定义模型 · 你填写的 OpenAI 兼容端点 · 报错提示缺少地址或模型名

「跟随输入框」绝不回退:选它就是为了固定用手上那个模型,

悄悄换成别的模型会违背这个意图。因此当会话还没有可识别的选择时,

插件会明确提示,而不是替你决定。

模型解析顺序(跟随主程序)

1. 设置页显式填写的 provider + model

2. 当前会话最近一次请求使用的模型(即模型选择器所选)

3. 主程序默认模型(设置 → 模型)

4. 兜底 deepseek-account / deepseek-flash


环境要求

  • DeepSeek Harness 0.2.1 及以上(依赖 conversation.input.right、settings.section 插槽与 inputActions.setDraft)
  • 「跟随主程序」模式需已登录 DeepSeek 账户或已配置可用模型;否则请改用「自定义模型」

隐私与安全

  • API Key 存储:优先放入宿主凭据服务(keyStorage: credential),settings.json 只记录“是否已配置”;没有凭据服务时降级写入 $DSH_HOME/dsh-prompt-optimization/settings.json(POSIX 下 0600)。旧版本明文会自动迁移并清除。
  • 浏览器侧:永远只能拿到掩码(如 sk-••••1234),任何接口都不返回明文。
  • 接口防护:除 /status 外所有路由要求进程级随机票据(页面从 /status 获取)并校验 Origin;模型路由按来源限流

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::8,最后更新 2026-10-22

Links

GitHub · Homepage · npm

Same category