
seven282/oss-prompt-optimizer
oss-prompt-optimizer
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-optimizerRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](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.errorCode:MISSING_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)
…

