xinmo114514 / dsh-prompt-optimizer

Listed

✨ DSH 持久化 Web 插件:输入框旁一键把模糊需求改写成 AI 智能体可执行的超级提示词。复用当前所选模型,探索优先协议 + Skills 感知,彩虹跑马边框与输入锁定,重启自动加载。MIT 开源。

mainToolSkill View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:xinmo114514/dsh-prompt-optimizer

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit a5c514aSynced Aug 18, 2026

✨ Prompt Optimizer · 提示词优化器

DSH 持久化 Web 插件(Persistent Cordis Plugin)—— 把模糊需求,变成 AI 智能体一次就能执行的超级提示词

License: MIT Version Platform Language

在输入框模型选择器左侧点一下 ✨,模糊需求 → 结构化可执行指令, 全程跑马彩虹渐变边框陪伴,优化完成后结果自动填入输入框,直接发送。


🎯 为什么需要它

同一个需求,两种问法,AI 的完成度天差地别:

模糊的问法 ❌清晰的指令 ✅
"帮我写个好看的主页""设计并实现一个个人作品集主页:单文件 HTML+CSS+JS,包含 Hero/作品卡片/技能区/联系区,响应式(375/768/1440px 无横向滚动),主色 ≤3 种,验收:浏览器直接打开可用"

但把每个需求都手动写清楚,太累了。这个插件做的就是这件事:你在输入框里随手写一句模糊需求,点一下 ✨,它用你当前选择的模型,把这句话改写成一份任何 AI 智能体都能自主规划、动手执行、自我验证的高质量指令。


✨ 功能特性

特性说明
🪄 一键优化输入任意需求 → 点 ✨ → 优化结果自动替换输入框内容,随时可发送
🧠 使用当前所选模型优化请求完全复用你在模型选择器里选的 provider / model / 推理等级,无需额外配置
🤖 面向编程智能体内置系统提示词 v4,专为 DSH 这类具备规划/执行/验证能力的 Agent 设计
🔎 探索优先协议缺失信息不预设假设,而是写成探索指令(读配置、列目录、跑命令、查网络),查不到才允许保守默认并在交付时注明
🔗 Skills 感知指示执行者先盘点自身已加载的 Skills,按任务领域调用匹配技能;技能与任务不匹配时不强用
🧩 双模板自适应内容任务 →「结构化指令」模板;执行任务 →「Agent 执行说明书」模板(可验证目标 / 执行前侦察 / 分阶段计划+验证点 / 验收清单 / 自纠错协议 / 汇报要求)
🌈 跑马彩虹渐变边框优化进行中输入框边框流动彩虹渐变(纯 CSS,不侵入原生 DOM),按钮同步彩虹旋转
🔒 优化期间锁定输入通过 DSH 官方 conversation.blocks 机制锁定输入框与发送按钮,防止输入被覆盖
📊 状态可见输入框上方状态行实时显示:✨ 正在优化(模型名) / ✓ 完成 / ⚠️ 失败原因
🧰 插件设置页在 DSH 设置 → 插件中注册「提示词优化器」标签页:功能特性、使用方法、GitHub 链接一目了然

🎬 效果演示

输入一句模糊需求,点击 ✨ 按钮:

帮我写个好看的主页

↓ 优化后自动填入输入框 ↓

你是一位资深前端开发与 UI 设计师。任务是设计并实现一个高颜值、现代感的个人作品集主页,最终交付一份完整可运行的单文件 HTML 代码(内嵌 CSS 和 JS)。

假设: 这是个人开发者/设计师的作品集主页……(如实际需要公司/产品主页,请自行替换背景与内容)

具体要求:

  1. 页面结构必须包含:顶部导航、Hero 首屏(大标题/副标题/主次按钮)、关于我、作品展示区(≥4 个卡片)、技能区、联系区、页脚;
  2. 视觉风格:现代极简 + 科技感,主色 ≤3 种,注重留白、圆角、卡片阴影、字体层级;
  3. 响应式:Flex/Grid 布局,375px / 768px / 1440px 均无错位,移动端菜单折叠为汉堡按钮;
  4. 动效:平滑锚点滚动、悬停反馈、作品卡片滚动进入视口淡入上移;
  5. 所有个人信息用占位符("你的名字"),并在代码中注释"此处替换为真实内容";
  6. 技术栈:仅原生 HTML5 + CSS3 + 少量 JS,不依赖任何框架;
  7. 输出格式:先给 3 行使用说明,再输出完整单文件代码;
  8. 验收标准:视觉惊艳;三种宽度下无横向滚动;交互反馈自然;占位符位置清晰。

[!NOTE] 以上为真实优化输出示例(节选)。原需求仅 8 个字,优化后变成一份可直接执行、可验收的完整任务书。


📦 安装

本插件是 DSH 持久化插件(Persistent Cordis Plugin):通过 dsh plugin 安装进 profile,作为 bundle 层挂载到宿主进程,重启 DSH / 刷新页面后按钮始终存在

方式一:GitHub 克隆 + dsh plugin(推荐)

git clone https://github.com/xinmo114514/dsh-prompt-optimizer.git
cd dsh-prompt-optimizer

# 安装到 web profile(等价于 dsh web)
dsh plugin --profile web add .

重启 DSH(dsh web),刷新页面,即可在输入框模型选择器左侧看到 ✨ 按钮。

方式二:本地路径 / npm 包

# 任意本地路径
dsh plugin --profile web add /path/to/dsh-prompt-optimizer
# 或 registry 包(若已发布)
dsh plugin --profile web add dsh-prompt-optimizer

dsh plugin 会把包 pnpm 安装进 profile,并自动将其加入 dsh.profile.bundles 层列表(包声明了 dsh.bundle,安装后自动激活)。

卸载

dsh plugin --profile web remove dsh-prompt-optimizer

[!TIP] 插件宿主端注册 POST /prompt-optimizer/api/optimize(仅限本机回环地址访问),浏览器端由 DSH 客户端模块系统自动发现并分发 lib/client.js,无需手动配置。


🚀 快速上手

① 在输入框输入模糊需求(如:帮我写个好看的主页)
② 点击模型选择器左侧的 ✨ 按钮
③ 观察:输入框锁定 + 彩虹跑马边框 + 状态行「✨ 正在优化提示词…」
④ 几秒后自动解锁,优化结果填入输入框 → 直接发送

🏗️ 技术架构

浏览器端 (Client half · lib/client.js)            宿主进程 (Host half · lib/index.js)
┌──────────────────────────────────┐   HTTP    ┌────────────────────────────────────┐
│ ✨ 按钮  conversation.input.right │ ────────► │ webServer.register 前缀路由        │
│ 状态行  conversation.input.dock  │  fetch    │  POST /prompt-optimizer/api/optimize│
│ 彩虹边框  CSS :has() 纯样式       │  JSON     │   ├─ 仅回环 Host 放行(403 围栏)   │
│ 输入锁定  conversation.blocks    │ ◄──────── │   ├─ agentDefaultModel 兜底取模型   │
│ 设置页  settings.plugins.tab     │ {ok,text} │   ├─ llm.stream(当前所选模型)        │
└──────────────────────────────────┘           │   └─ 结果缓存 + single-flight 去重   │
                                               └────────────────────────────────────┘
关注点实现方式
挂载方式包声明 dsh.bundle.patchcordis.patch.yml)→ 作为 bundle 层随 profile 启动自动挂载
客户端分发包声明 dsh.client + exports["./client"] → dsh-client-modules 扫描发现,/plugins/dsh-prompt-optimizer/client.js 自动注入浏览器
按钮位置槽位 conversation.input.right —— 渲染在模型选择器正左侧
读取当前模型客户端 modelDirectories 共享状态(useInput/directoryStore props);宿主端回退 agentDefaultModel
模型调用llm.stream()maxTokens: 8192;空输出自动去掉推理等级重试一次
彩虹跑马边框[data-composer-card]:has(...) + background-position 关键帧动画(动画属性不可带 !important,否则会被覆盖)
输入锁定conversation.blocks.set(sessionId, { reason }) / set(undefined)
前后端通信fetch('/prompt-optimizer/api/optimize')webServer.register,纯 JSON,仅本机回环可访问
性能优化相同请求 200 条 LRU 结果缓存 + single-flight 并发去重(warm 重复点击毫秒级返回,且结果一致)

📂 项目结构

prompt-optimizer/
├── package.json                  # 项目元信息 + dsh.bundle / dsh.client 声明
├── cordis.patch.yml              # bundle patch:把插件行插入 profile 组合
├── dsh.plugin.json               # 插件元数据(信息性;加载以 package.json dsh.* 为准)
├── lib/
│   ├── index.js                  # 宿主端:HTTP 路由 + LLM 调用 + 结果缓存 + 系统提示词 v4
│   └── client.js                 # 浏览器端:按钮 / 状态行 / 彩虹边框 / 输入锁定 / 设置页
├── src/
│   ├── host.js                   # 动态插件版宿主端(历史参考,逻辑与 lib/index.js 一致)
│   └── client.js                 # 动态插件版浏览器端(历史参考)
├── bench/                        # 性能基准:samples / harness / bench / profile-run
├── test/                         # 回归测试(零依赖,node test/run-tests*.js 运行)
├── docs/
│   ├── optimizer-system-prompt.md  # 内置优化系统提示词(可独立审阅、修改)
│   └── performance-report.md       # 性能优化实测报告(warm 提速 ~80%)
├── README.md                     # 你正在看的文件
├── UPLOAD_GUIDE.md               # 从零上传 GitHub 的详细中文指南(含 15 个坑点补救)
├── LICENSE                       # MIT
└── .gitignore

🧠 内置优化系统提示词(v4 · 探索优先 + Skills 感知)

三句话概括它的设计:

  1. 先分类:内容/对话任务走「结构化指令」模板;代码/执行任务走「Agent 执行说明书」模板;
  2. 探索优先:缺失信息一律写成探索指令让执行者自己查证,查不到才允许保守默认并在交付时注明,方向性重大歧义才允许问一次澄清问题;
  3. Skills 感知:执行者先盘点自身已加载的技能,按任务领域调用匹配的 skill,不匹配不强用;
  4. 闭环可验证:可验证目标 → 分阶段计划+验证点 → 验收清单 → 自纠错协议(≤3 次重试)→ 按清单汇报。

完整正文见 docs/optimizer-system-prompt.md


❓ 常见问题

[!NOTE] 插件是持久化的:安装后随 DSH 进程启动自动加载,重启 / 刷新页面后按钮始终存在,无需手动重新运行。

问题解答
点击 ✨ 没反应 / 状态行报错?确认宿主端已挂载(dsh plugin --profile web list 应能看到 dsh-prompt-optimizer);新版失败原因会直接显示在状态行
提示"模型没有返回有效内容"?已修复:maxTokens 提升至 8192 并支持自动降级重试(推理等级 Max 曾吃光 2048 预算导致空输出)
优化结果把我正在输入的内容覆盖了?已修复:优化期间通过 conversation.blocks 锁定输入框,无法打字;且回填前校验 draftRev,输入有变化则不覆盖
想换一个优化风格?修改 lib/index.js 中的 OPTIMIZER_SYSTEM_PROMPT(或参考 docs/ 下的独立文档)后重新安装/升级插件

📜 版本历史

版本亮点
v1.0.0(当前)持久化插件化(dsh plugin 安装、重启不丢);探索优先协议:去掉"假设"预设,缺失信息改为探索指令;Skills 感知;锁定输入框;状态行可见;空输出自动重试;设置 → 插件 专属标签页;warm 重复优化毫秒级返回(LRU 缓存 + single-flight)
v0.9面向编程智能体重构:双模板(结构化指令 / Agent 执行说明书)、篇幅分级、自纠错协议
v0.8修复空输出:maxTokens 2048→8192,block-end 兜底,去推理等级重试
v0.7彩虹跑马边框修复(!important 会覆盖 CSS 动画);新增状态行
v0.1首个可用版本:按钮 + 优化 + 彩虹边框

🤝 贡献与许可

欢迎提交 Issue / PR 改进系统提示词、UI 或稳定性。提交前请阅读 UPLOAD_GUIDE.md 了解协作流程。

本项目基于 MIT License 开源,自由使用、修改、分发。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

TestsDetected
DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Last updated
Aug 14, 2026, 9:09 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.