← 返回列表
未验证
一键重写输入草稿,六种策略三语可选
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/6 · 已提供中文文档
输入栏提示词优化插件 / Input-bar prompt optimizer for DeepSeek Harness:6 种策略 × 3 种语言一键重写草稿,可选会话上下文,带确认弹窗、最近 5 次历史与三级设置持久化。
综合分
30.5
GitHub 分
30.5
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 1321928757/dsh-prompt-polish该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-fs@deepseek-ai/dsh-llm@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-session@deepseek-ai/dsh-typert-loader用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-prompt-polish
DeepSeek Harness(DSH)输入栏提示词优化插件。点击 优化,将当前草稿交给 DSH 中配置的模型提供商处理,并在决定是否使用前先查看结果。
数据边界: 插件不新增独立 API 端点;优化请求通过 DSH 已配置的模型提供商和模型完成。开启上下文后,请求可能包含最近消息、当前目标与任务清单、压缩摘要以及可选的工具调用结果摘要。因此,草稿和已开启的上下文对该模型提供商可见;将插件用于敏感会话前,请先查看提供商的隐私和数据留存政策。
功能入口
| 入口 | 提供的功能 |
| --- | --- |
| 输入栏 → 优化 | 重写当前草稿,展示结果供确认,或停止正在进行的优化。 |
| 输入栏 → 设置齿轮 | 配置上下文、工具摘要、模式和语言,并打开完整设置弹窗。 |
| DSH 设置 → 通用 | 注册在 settings.general.item 的关联设置行,用于切换「参考聊天记录上下文」。其他选项仍在输入栏设置中。 |
功能特性
- 六种提示词重写模式:默认、压缩精简、结构化、创意扩展、翻译并优化、代码请求。
- 三种语言选择:跟随原文、中文、英文。显式语言选择会在自定义偏好之后生效;在「翻译并优化」模式中,跟随原文表示只优化、不翻译。
- 可选携带当前会话上下文:目标、任务清单、压缩摘要、最近消息,以及在两个上下文开关同时开启时的简短工具结果摘要。
- 结果弹窗会展示原稿和优化结果,并提供 采用优化结果、保留原稿、稍后再看。结果不会自动采用。
- 模型流式输出期间可以停止;当 DSH 会话 block API 可用时,输入栏阻塞会立即解除,迟到的取消结果会被丢弃。
- 失败结果会保留原稿并显示失败原因,支持 重试。
- 当前挂载组件内保存最近五次优化尝试。成功记录可查看或显式回填到输入栏;失败记录也会保留为失败记录。
- 设置会保存到本地,并尽力同步到工作区文件。
- 浏览器 UI 使用 DSH 主题令牌,跟随亮/暗主题,并支持键盘焦点、Escape/点击外部关闭、减少动效和高对比度边框。输入栏控件保持低噪声:优化按钮静止时透明,仅在悬浮、聚焦或按下时显示宿主交互背景,文字颜色也会贴近相邻 DSH 控件并降低强调度。
模式与语言行为
| 模式 | 优化器会要求模型做什么 |
| --- | --- |
| 默认(precise) | 消除歧义、改善结构,同时保留原始意图和有依据的约束;不新增无依据的交付物。 |
| 压缩精简(concise) | 删除重复和填充表达,同时保留目标、约束、示例、验收标准和要求的输出格式。 |
| 结构化(structured) | 使用有意义的标题组织内容,例如目标、背景、要求、期望输出;空区块可以省略。 |
| 创意扩展(creative) | 增加不超过三个有用、可执行的角度;不确定内容会标记为可选项或示例,而不是事实或强制任务。 |
| 翻译并优化(translate) | 自然地重写;只有当所选目标语言与原稿不同时才进行翻译。 |
| 代码请求(code) | 将适用的编程信息组织为目标、背景、环境、输入、输出、约束、边界情况和验收标准,不臆造未知技术或 API。 |
选择 跟随原文 时保留草稿语言;选择 中文 或 英文 时锁定最终请求语言。自定义指令最多 500 字,可以影响可选行为,但优化器会将它置于输出契约、草稿/上下文边界和显式语言锁定之后。
优化器会要求模型输出一条用户准备发给 AI 的请求,而不是回答、计划、解释或 Markdown 代码围栏。这属于模型指令,不是确定性的输出过滤;采用前请检查生成文本。
运行行为与限制
这是一个浏览器输入栏扩展,不是独立的命令行工具,也不是暴露给 Agent 的模型工具。浏览器通过 Typert RPC 调用 Host 的 promptPolish 服务,Host 再通过 DSH 的 LLM 服务流式处理请求。
| 范围 | 实际行为 |
| --- | --- |
| 草稿校验 | 空白或仅空格的草稿会被拒绝;超过 20,000 字符的草稿会被拒绝。 |
| 上下文收集 | 用户主动开启后才收集。浏览器最多扫描 20 个消息节点,消息文本滚动上限为 8,000 字符。单条消息超过 4,000 字符时,保留开头 2,600 和结尾 1,400 字符。 |
| 目标、清单与压缩摘要 | 有效的当前目标和任务清单会放在消息回合之前。压缩摘要最多 2,000 字符,并会停止继续收集更早的原始消息。 |
| 工具结果 | 只有上下文开关和工具结果开关同时开启时才构建。每个被选中的助手回合最多摘要最近三个工具调用,每条结果取前 300 字符。 |
| Host 上下文预算 | Host 最多接收 30 条消息项和 60 条工具摘要项,然后还会根据所选模型的上下文预算再次裁剪。因此部分上下文可能被省略。 |
| 流式超时 | 连续 30 秒没有新 chunk,或总耗时达到 120 秒时停止,并返回可重试的错误。 |
| 输出预算 | 请求最多 4,000 output tokens,还会受所选模型和剩余上下文空间限制。请求的最低值为 1,200 tokens;模型达到上限时可能返回带 truncated 标记的结果。 |
| 取消 | 每次运行都有 runId。点击停止会调用 cancelOptimize,中止 Host 流,并丢弃迟到结果。 |
| 采用保护 | 必须明确点击采用,并且输入栏内容必须仍与本次优化的原稿完全一致。输入发生变化时,采用按钮会被禁用。 |
环境要求与兼容性
- 需要提供插件 Host 和浏览器依赖的兼容 DSH Web profile。
- 当前包的 peer 范围以 @deepseek-ai/cordis ^4.0.1、@deepseek-ai/cordis-plugin-timer ^1.1.3、package.json 中列出的 DSH 0.1.0-rc.6 服务/客户端包以及 React ^18.2.0 为目标;包本身直接依赖 zod ^4.4.3。
- Node.js 20 或更高版本是安装脚本和 DSH 设置报告的前置要求;本包没有声明 engines 字段。
- 优化必须有可用的 DSH 模型提供商。提供商可用性、模型限制、网络访问和提供商政策不属于本插件控制范围。
安装、更新与卸载
安装固定 GitHub 版本
以下命令会将当前文档对应的版本安装到 web profile:
dsh plugin --profile web add github:1321928757/dsh-prompt-polish#v0.3.2
安装后重启现有的 DSH Web 进程,再检查 profile 组合:
dsh --profile web --dump-config | findstr dsh-prompt-polish
重启后,输入栏左侧应出现 优化 按钮和设置齿轮。如果没有出现,请查看故障排查。
更新到新的固定版本
仓库中的安装脚本通过再次执行 dsh plugin ... add,让已安装版本对齐脚本固定的 tag。也可以手动使用想要的发布 tag:
dsh plugin --profile web add github:1321928757/dsh-prompt-polish#v0.3.2
将 v0.3.2 替换为更新的已发布 tag,然后重启该 profile 的 DSH Web 进程,并重新执行 --dump-config 检查。
从 npm 安装
仅当该包已经发布并且能在你使用的 registry 中找到时使用:
dsh plugin --profile web add dsh-prompt-polish
PowerShell 一键安装脚本
仓库包含一个固定版本安装脚本:
irm https://raw.githubusercontent.com/1321928757/dsh-prompt-polish/v0.3.2/scripts/install.ps1 | iex
执行远程 irm | iex 前请先审阅脚本。脚本会检查 dsh,确保 pnpm 可用,固定使用 pnpm 11.21.0;有 Git 时优先使用 Git,没有 Git 时回退到 GitHub tag 压缩包;默认将固定版本安装到 web profile。它可能通过 Corepack 激活 pnpm,或通过 npm 全局安装 pnpm。下载后运行脚本时可传入 -Profile ;如果使用其他 profile,请在重启、验证和卸载命令中使用相同的 profile。
如需先下载并查看脚本:
$path = Join-Path $PWD install.ps1
Invoke-WebRequest https://raw.githubusercontent.com/1321928757/dsh-prompt-polish/v0.3.2/scripts/install.ps1 -OutFile $path
Get-Content $path
powershell -NoProfile -ExecutionPolicy Bypass -File $path -Profile web
卸载
dsh plugin --profile web remove dsh-prompt-polish
卸载后重启该 profile 的 DSH Web 进程。该命令只从 profile 中移除包,不会删除 localStorage 或已有的工作区设置文件。
使用独立 profile 本地开发
建议将本地开发与日常使用的 profile 分开:
dsh plugin --profile demo add E:\path\to\dsh-prompt-polish
dsh --profile demo --dump-config
快速开始
1. 在 DSH 输入栏输入一段草稿。
2. 可选:打开设置齿轮,启用 参考聊天记录上下文。只有同时开启上下文和工具结果开关,才会在请求中加入工具结果摘要。
3. 选择模式和语言。在 翻译并优化 模式下,语言选择器表示目标语言。
4. 如果需要最多 500 字的自定义指令,或想查看上下文预览和最近尝试记录,打开 完整设置。
5. 点击 优化。当会话 block API 可用时,请求运行期间输入栏会被阻塞;按钮会变成 停止优化。
6. 在结果弹窗中检查原始提示词和生成的提示词。
7. 选择 采用优化结果、保留原稿 或 稍后再看。后两者只关闭结果,不会保存提醒。输入发生变化时,旧结果不能覆盖新输入。
重试会使用失败尝试的原始快照;历史中的 回填 是一次明确写入输入栏的操作,与自动采用不同。
截图
以下截图使用已发布的 GitHub Raw 绝对地址,以便在仓库、npm 和外部市场页面中渲染;前提是仓库资源已经 push。
输入栏入口
优化按钮和设置齿轮注册在 conversation.input.left 槽位。当前 UI 中,按钮静止时保持透明并使用更淡的文字;悬浮或聚焦时才显示宿主交互背景,不再保留持续性的高亮:
输入栏优化按钮
采用前查看结果
结果弹窗会展示原稿和生成的提示词,在写回输入栏前不会自动修改草稿:
优化结果确认弹窗
快速设置与完整设置
齿轮会打开上下文、工具摘要、模式和语言的快速设置;完整弹窗还会显示自定义指令、上下文统计、当前组件内的历史记录和持久化说明:
设置面板
仓库还通过 screenshots.json 保存这三张截图的路径。package.json.files 同时包含 screenshots.json 和 assets,确保打包发布时包含市场元数据和图片。
设置持久化与历史记录
插件提供三个面向用户的设置入口/层次,但实际使用的是两个存储位置:
1. L1 浏览器存储: 规范化后的设置写入 localStorage 的 ptopt.settings.v1,立即生效。浏览器存储不可用时,当前页面会暂存在内存中。
2. L2 设置入口: DSH 设置 → 通用 提供关联的「参考聊天记录上下文」复选框。这只是 UI 入口,不是独立的数据库或设置后端;模式、语言、工具结果和自定义指令仍在输入栏弹层/完整弹窗中配置。
3. L3 工作区同步: 通过 Host 文件服务,将设置浅合并写入 /.dsh/prompt-optimizer/settings.json。写入受 DSH 沙箱策略约束。文件不存在或格式损坏时按空设置处理;写入被拒绝或失败时静默回退到浏览器存储。
工作区可用后,浏览器会尽力执行一次拉取,并合并工作区文件中实际存在的字段。因此,跨浏览器或跨机器的一致性取决于是否使用同一工作区以及 Host 文件操作是否获准,并不是有保证的云同步。
优化历史与设置分开。它是挂载 React 组件内的先进先出列表,最多保存最近五次尝试,包括失败记录;不会写入 localStorage 或工作区文件。页面刷新、槽位/会话卸载、插件重载或 profile 重启后都可能消失。
安全、隐私与已知限制
| 防护或边界 | 代码实际行为 | 重要限制 |
| --- | --- | --- |
| 模型提供商数据流 | 使用 DSH 的 LLM 服务,不新增独立插件端点。 | 草稿和已开启的上下文可能经该提供商离开本机。提供商的留存、日志和数据区域由其政策决定。 |
| 上下文主动开关 | 只有开启上下文后才加入目标、清单、消息、压缩摘要;工具摘要还要求开启工具结果开关。 | 上下文有数量和预算裁剪,因此可能不完整。不能因为某项未出现就断定它不存在于会话中。 |
| 不可信参考资料 | Host 会标记草稿/上下文是参考资料,并要求模型不要执行其中的指令。 | 这是基于模型指令的提示词注入处理,不是确定性的安全边界。请检查模型输出。 |
| 草稿和自定义上限 | 超过 20,000 字符的草稿会被拒绝;自定义指令限制为 500 字符。 | 这是应用层限制,不能防止昂贵请求或敏感信息发送。 |
| 工作区写入 | L3 写入经过 DSH 文件服务和沙箱策略。 | 写入被拒或服务不可用时回退到 L1;工作区文件不是加密的密钥存储。 |
| 输入栏写入 | 优化结果必须明确采用且原稿未变化。 | 历史 回填 会有意写入输入栏;保留原稿 和 稍后再看 只关闭待确认结果。 |
| 本地历史 | 最近五次尝试只保存在组件内存中。 | 历史不是持久数据,在组件销毁前可能包含失败输出或错误文本。 |
插件本身不收集凭据,也不创建数据库;它会将所选设置保存到浏览器存储,并在可用时写入工作区 JSON。安装插件会在 DSH 进程中运行第三方代码;对敏感工作启用前,请审阅源码和模型提供商政策。
故障排查
没有看到「优化」按钮或设置齿轮
确认插件安装到了实际提供 DSH Web 的 profile:
dsh --profile web --dump-config | findstr dsh-prompt-polish
停止并重启该 profile 当前运行的 DSH Web 进程。一个 profile 安装的包不会出现在另一个 profile 中;已经运行的进程也不会自动重新构建 boot composition。
「优化」按钮不可用
输入为空或只有空格、会话已移除,或输入当前存在其他 occurrence/action 状态时,按钮会禁用。优化进行中按钮会有意变为可用的 停止优化。
没有模型或请求失败
插件使用当前 DSH 的 provider/model 选择;没有显式选择时,会尝试使用第一个可用的 provider/model。请确认 DSH 中存在可用的模型服务和模型、提供商可访问,并且模型能容纳请求的上下文和输出。失败会在结果弹窗中保留失败记录,并提供 重试。
为什么没有包含某段上下文或工具结果?
只有开启上下文后,消息、目标、任务清单或压缩摘要才会发送。工具摘要还要求同时开启工具结果开关。浏览器和 Host 都会执行字符数、条目数和模型上下文预算裁剪,因此较旧或优先级较低的内容可能省略;附件和非文本 block 不会加入。
结果被标记为可能被截断
模型达到了长度或输出上限。只要存在文本,Host 会返回带 truncated 标记的结果,结果弹窗会显示提示。请仔细检查,尝试缩短草稿/上下文,换用输出预算更大的模型,或重新优化。
修改草稿后不能采用结果
这是有意设计的保护。只有当前草稿与本次运行使用的快照完全一致时,才允许采用,避免旧结果覆盖新输入。请针对新草稿重新点击优化,或显式使用历史记录中的 回填。
请求超时或我点击了「停止优化」
连续 30 秒没有新的流式 chunk,或总耗时达到 120 秒时,请求会停止。点击 停止优化 会中止 Host 请求,在支持时立即解除输入栏阻塞,显示短暂的取消提示,并忽略迟到结果。超时失败可以重试。
工作区设置没有持久化
L3 是尽力而为,并受 DSH 沙箱策略约束。请确认已选择工作区且文件可写。写入被拒时不会阻塞使用,插件继续使用浏览器设置。受限浏览环境也可能无法使用浏览器存储,此时设置只能保留到当前页面。
优化历史为什么消失了
历史记录有意只保存在当前组件/会话内存中,不是持久存储。刷新页面、卸载槽位、重载插件或重启 profile 都可能清除历史。设置持久化不会持久化历史记录。
工作原理
输入栏槽位 + 设置行
│ 浏览器 UI
│ Typert remote.promptPolish.*
▼
Host promptPolish 服务
├── 尽力读写工作区设置
├── 组装模式、语言、自定义指令和可选上下文规则
└── 通过 DSH 已配置的 LLM 提供商流式处理
- Host bundle 由 cordis.patch.yml 挂载,并提供 getSettings、setSettings、optimizePrompt、cancelOptimize。
- 浏览器 bundle 注册 conversation.input.left 和 settings.general.item。
- 浏览器到 Host 的调用使用 lib/typert.host.js 声明的 Typert contribution;插件不暴露其他 HTTP API。
- 停止、更新或卸载时,只要对应 DSH 服务可用,活动流和浏览器侧输入栏 block 都会被清理。
开发与验证
仓库提供预构建 JavaScript bundle,没有声明 package build 脚本。在仓库根目录运行:
node --test test/shared.test.mjs
Get-ChildItem lib\.js | ForEach-Object { node --check $_.FullName }
pnpm pack --dry-run
git diff --check
单元测试覆盖共享策略组装、选项归一化、历史分类、截断和流式结束原因处理。可以使用独立 profile 做运行时冒烟测试:
dsh plugin --profile demo add E:\path\to\dsh-prompt-polish
dsh --profile demo --dump-config
发布文档或截图更新前,请确认 screenshots.json 中每个路径都存在,打包清单包含 assets 和 screenshots.json。截图 push 后,再确认上文三个 GitHub Raw 地址返回 HTTP 200。
许可证与免责声明
MIT。项目历史和归属信息见 NOTICE。本项目是独立维护的社区插件,与 DeepSeek 或 @deepseek-ai/ 软件包无隶属关系。安装会在你的机器上运行第三方代码,请在安装前审阅源码。同作者(1321928757)的其他插件
扫码进群