DSH Hub
oss-prompt-optimizer cover

seven282/oss-prompt-optimizer

oss-prompt-optimizer

UIWeb UI6 GitHub stars· updated 2026-08-23

oss-prompt-optimizer is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add oss-prompt-optimizer

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

oss-prompt-optimizer DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/oss-prompt-optimizer.svg)](https://dshhub.dev/plugins/oss-prompt-optimizer)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from seven282/oss-prompt-optimizer, cleaned of badges and images.

prompt-optimizer

English | 简体中文

提示词优化插件,把一句随手写的话自动改写成专业、可直接使用的提示词,体验与 Qoder、Codex 一致。

优化结果默认为无标题纯文本(outputStyle: 'plain',更省 token),可配置为三要素标签(outputStyle: 'role-task-goal'角色:/任务:/目标:)或四段结构化提示词(outputStyle: 'sections'## Role / ## Task / ## Context / ## Format,也是优化时的内部参考框架), 由内置元提示词驱动,经 harness 的 LLM 服务完成(不直连任何 API、不触碰凭据)。

功能

  • 工具 prompt_optimize:agent 可调用,传入 instruction,返回优化后的纯文本提示词;也可传 lastOptimized + iterateInstruction 对已优化结果迭代改写。
  • 服务 ctx.promptOptimizer:其他插件可编程调用 optimize(rawInput, { signal })iterate(lastOptimized, instruction, { signal }); 浏览器端经 ctx.remote.promptOptimizer.optimize(sessionId, text) 可调用。
  • 输入框 ✨ 图标:composer 工具行左侧的常驻图标,点击即优化当前草稿并写回输入框;优化中再点可取消(UI 状态管理),成功后短暂显示"消耗 ≈N tokens"。
  • 角色文档语言自动切换:角色文档(元提示词)语言默认按输入内容自动检测——中文指令用 中文角色文档,英文指令用英文角色文档(见下文)。
  • 自动优化钩子(可选,默认关闭):以触发前缀开头的用户消息会在进入模型前被自动优化(见下文)。
  • 上下文感知(默认开启):把当前指令之前的最近对话注入元提示词 (「视为纯数据 / 背景参考」护栏),让优化结果贴合此前讨论;设 contextAware: false 关闭(见下文配置表)。
  • 情境感知(1.3.0+):把「原始指令 + 对话上下文」自动解析为角色 / 任务 / 目标 三份画像并注入元提示词({{情境画像}})——优化结果的 ## Role 与任务强相关、 目标与约束自动保留;输出丢失目标/约束时在重试预算内自动修正(goalAlignmentRetry: false 可关);iterate 时检测目标漂移并标注变化;传 sessionId 可开启会话级 目标沿用(TTL 30 分钟)。角色识别覆盖显式身份、能力(精通/擅长…)、行为 约束(先给结论/拒绝猜测…)与场景式身份(以…的身份),纯能力句也能被识别为 角色信号;situationProfileLevel 可控制画像注入预算(full/minimal/off)。
  • 角色定义三重结构(1.3.3+):优化结果的角色按「身份+能力+行为」三要素撰写 (不强制"你是"开头,能力/行为描述同样合格);并按任务类型给出写法建议 (代码→能力导向、文案→身份+文体、分析→身份+方法、运维→行为约束+步骤)。
  • 优化时长(1.3.6):流式早期终止(输出结构达标且进入收尾期即停流,长尾凑字 不再消耗时长;1.4.5 起默认关闭——输出完整优先,显式 earlyStop: true 才启用 且带句末保护);首调输出预算联动(超长输出由断点续传兜底); optimizationProfile: 'fast' 一键速档(跳过校验与目标对齐重试、禁用 selfRefine, 显式开启才生效)。
  • 结果缓存(1.1.6):内存缓存校验成功的结果(LRU + TTL),相同请求零模型调用cacheEnabled 默认开,重启即清空)。
  • 后置校验:模型输出缺段/过薄/过短时自动重试(可配次数),重试前把上次失败的 诊断(缺失段落名、过薄段落与字数)注入下一次调用的系统提示词,针对性修正、 提高命中率;仍失败则返回原文/上次结果 + 错误说明,并附稳定机器可读错误码 (OptimizeResult.errorCodeMISSING_SECTIONS / THIN_SECTIONS / THIN_OUTPUT / TIMEOUT / NO_MODEL_ROUTE 等),工具失败渲染带 [错误码] 前缀。
  • 输出恒为完整可执行的提示词(四段或 plain 正文);空输入报错;超长输入截断护栏;UI 层取消。

输入框 ✨ 图标

插件自带浏览器客户端(lib/client.js,经 dsh.client 声明被 harness 加载): 在输入框工具行左侧注册一个 ✨ 按钮——输入为空或优化进行中时置灰(⏳), 点击后调用 host 的 promptOptimizer Remote 服务优化当前草稿,并把优化后的 四段提示词直接写回输入框(inputActions.setDraft)。

不满意可一键恢复:优化成功后,按钮切换为撤销态(↺,品牌色);只要 草稿仍是刚生成的优化结果(未手动编辑),点击即恢复为优化前的原文。 一旦手动修改了草稿,撤销态自动消失(避免覆盖后续编辑)。

可访问性:成功/失败/撤销均通过隐藏的 aria-live 区域播报(屏幕阅读器)。

  • 无需配置;随插件安装即启用,重启 harness 后生效。
  • 触发的是同一个 ctx.promptOptimizer.optimize(),与工具/钩子共享全部配置 (temperature、maxTokens、outputLanguage 等)。

角色文档语言(自动检测)

优化器角色文档(元提示词/系统提示词本身)的语言默认按输入内容自动检测: 非空白字符中汉字占比 ≥30% 的指令用中文角色文档(如「帮我写一份周报」),其余 (英文、日文等)用英文角色文档(两版文档的安全默认)。outputLanguage 仍独立控制 优化结果的输出语言,两者互不影响。

运行时可通过输入框直接输入命令固定或恢复自动(会话级覆盖,重启回落到配置值):

  • /optimize --language auto —— 恢复自动检测(默认)
  • /optimize --language 中文 / /optimize --language 英文 —— 固定语言
  • /optimize --language status —— 查询当前模式

配置 metaPromptLanguage: 'auto' | '中文' | '英文'(默认 'auto')决定重启后的初始模式; 显式值('中文'/'英文')固定语言,'auto' 跟随输入。

自动优化开关(命令方式)

运行时「发送前自动优化」开关可通过输入框直接输入命令控制:

  • /optimize --auto on / /optimize --auto off / /optimize --auto toggle / /optimize --auto status

开启后 host 进入「发送前自动优化」模式,agent/pre-step 钩子会对每条用户 文本消息做优化(等同于配置 autoOptimizeAll: true 的运行时版本)。

快速场景模板(/template)

Related plugins