DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

xiaozuishuai-eng /

xiaozuishuai-eng/prompt_optimize_dsh

Verified

DeepSeek Harness (DSH) 提示词优化器插件:一句口语化需求 → 结构化高质量提示词,结果自动填入会话输入框。复用 DSH 内置模型路由,零 API Key 管理。

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@b0b4d894

DSH AI 提示词优化器(Prompt Optimizer)

一个 DeepSeek Harness(dsh web / DSH Desktop)插件:把你口语化、含糊、缺结构的需求,一键转化成结构清晰、逻辑严谨、可直接执行的高质量提示词,并自动填入会话输入框——你不用手动复制粘贴。


✨ 它能做什么

  • 一键优化:在任意会话里输入 /optimize 你的原始需求,产出一份符合"八大板块"结构的专业提示词(角色定位 / 任务目标 / 输入材料 / 输出格式 / 内容要求 / 风格语气 / 约束排除 / 成功标准)。
  • 自动填入输入框:优化结果直接出现在下方的会话输入框里(输入框闪一下蓝光即代表成功),你可直接发送或先编辑,全程零手动复制。
  • 上下文锚定:需求指代不明("这个""它""继续")时先反问 ≤3 个关键问题而不是瞎猜;回答后直接再发 /optimize <你的回答>,插件自动与原始需求合并(--fresh 可强制换话题)。
  • 会话上下文感知(默认 auto):当输入含指代或过短时,插件自动读取本会话最近几条消息辅助锚定——优化完一段内容后直接发 /optimize 把它改得更正式 即可正确工作。自包含需求不附加、零额外 token;成本敏感可设 contextAware: false 彻底关闭。
  • 迭代改写:/optimize revise 你的修改意见 在上一版基础上增量修改,不用重来。
  • 纯输出模式:/optimize --pure ... 只回提示词本体,不带任何解释说明。
  • 零密钥:复用 DSH 自身已配置的模型路由(ctx.llm),插件不碰任何 API Key,不额外产生独立计费账号。

🔍 优化前后对比(真实输出示例)

优化前 —— 你原本会这样问 AI(口语化、约束缺失):

帮我弄个课程结课作业的PPT大纲,是关于数据分析的,别太长

直接把它丢给大模型,常见的翻车姿势:不知道给谁看、"别太长"到底几页、要不要图表、 每页讲多深全凭模型心情——往往要来回追改三四轮才能凑出能用的东西。

优化后 —— /optimize 的产出(以下为真实输出节选,实际含完整八大板块):

# 角色定位
你是一位资深的数据分析课程助教,擅长梳理逻辑清晰、重点突出的学术汇报结构。

# 任务目标
为一份"数据分析课程结课作业"生成一份精简版PPT大纲。

# 输入材料
- **主题**:数据分析(具体数据集未指定,保持通用并留占位符)
- **受众**:课程讲师及同学
- **时长/篇幅限制**:"别太长" → 量化为 10-12 页以内,每页核心观点不超过 3 个

# 输出格式与结构
Markdown 列表:1. 幻灯片标题 2. 核心内容要点 3. 视觉/图表建议

# 内容要求
按标准数据分析流程极度精简展开:封面 → 问题定义 → 数据概览 → 数据清洗
(仅列最关键的 1-2 个预处理步骤)→ EDA(最重要的 1-2 个发现)→
建模/深入分析(核心方法及结果)→ 结论与建议 → Q&A

# 约束与排除项
- 禁止生成逐字演讲稿;禁止堆砌理论背景;页数不得超过 12 页
- 未提供具体数据处,用 [此处填入具体数据集名称] 占位,不得虚构

# 成功标准
结构符合数据分析逻辑闭环;总页数 10-12;每页重点一目了然
---
**思维链引导**:生成前先思考——如果这只能向讲师展示 5 分钟,哪三页绝不能省?

差别在哪:

维度 优化前 优化后
模糊词 "别太长"(每人理解不同) 10~12 页、每页 ≤3 个要点
边界 没说不能做什么 禁逐字稿、禁虚构数据、硬上限
格式 任模型发挥 三级结构锁定,直接可搬进 PPT
验收 "感觉不太对" 显式成功标准,一眼可判
性能激发 无 内置思维链(5 分钟展示拷问)

一句话:优化前是"许愿",优化后是"需求文档"。 产出自动填入输入框,改两个占位符即可发送。


📈 预计收益(实用性说明)

以下为基于插件设计目标与日常使用经验的预期性效果,非对照基准测试;绝对幅度会随所用模型、任务类型和你原始描述的完整度而变化。

对模型输出:从"大概能用"到"精确可用"

机制 预期提升
八大板块结构化(角色/目标/输入/格式/约束/成功标准…) 把模型"猜意图"的自由度收敛到显式约束:显著减少答非所问、格式跑偏、漏要求;"成功标准"内置在提示词里,产物可对照验收,首轮可用率上升
性能激发注入(思维链引导 / 多角度拓展 / 边界加压) 推理与创作类任务不易停在表面答案,一次产出更接近"人类返工一稿"后的质量,减少追改轮次
上下文锚定追问(指代不明先问不猜) 把"一次跑偏 = 事后 2~5 轮返工"变成"一个追问先对齐方向",避免整轮废稿的 token 与时间双浪费
迭代改写(revise 增量修改) 改一处不必重发整段,版本间差异可控,长提示词的维护成本大幅下降

对人力效率:从"学写提示词"到"说人话"

事项 手写高质量提示词 使用本插件
首次产出一份八板块提示词 10~30 分钟(熟悉套路者;新手需先学提示词工程,常以小时计) 15~40 秒(一行 /optimize)
二次修改 整段回头找、手动改 一句 /optimize revise 意见
交给下一步使用 选中 → 复制 → 切换窗口 → 粘贴 自动填入输入框,直接发送
沉淀复用 散落在笔记/聊天记录 一句话存进提示词库,随时检索

综合预计:对"每天要和 AI 打交道的重度用户"(写方案、出大纲、提需求、编排 agent 任务),单次提示词准备的耗时从分钟级压到秒级;因方向跑偏产生的无效对话轮次明显减少——这两项在高频场景下是可以累积成每日节省数十分钟到小时级的复利。

成本几乎可忽略

一次优化的输入 = 规范全文(约 1.5k tokens)+ 你的需求原文,输出约 12k tokens。按主流按量计费的对话模型价格,**单次成本在几厘一分钱量级**(以你 DSH 实际所配路由的计费为准;跟随主对话路由时无需任何额外配置与密钥)。

上下文感知的 token 开销:auto 模式只在需求含指代词或输入过短时才附加会话摘要(≤1.3k tokens,封顶 contextMaxChars),且只有命中时计费——"帮我写个 XX"这类自包含请求完全不附加、零增量。相比一次"跑偏重跑"要付的整轮 3~4k tokens,省掉的远比加的多。对成本极度敏感可直接 contextAware: false。


🧩 它是怎么接进 DSH 的(技术选型)

DSH 是"一切皆插件"的微内核 + Cordis 运行时。本插件作为 Host + Client 双半插件挂载:

通道 形态 作用
/optimize 命令 Host commands.register 人在会话里用斜杠命令触发
optimize_prompt 工具 Host tools.register Agent 判断"用户在求优化"时自动调用
promptOptimizer 服务 Host ctx.provide 供其他插件 / 测试复用核心管线
/api/prompt-optimizer/* 路由 + Client 半 Host webServer + Client rider 优化结果自动填入浏览器输入框(轮询 + 原生 setter)

模型接入采用 复用 DSH 内置 ctx.llm 路由(而非网页版 DeepSeek 逆向 / 独立 API Key)——最稳定、零密钥管理、成本与主对话一致。设计缘由见文末「为何不接网页版 DeepSeek」。


📦 安装

前提:你有一个可运行的 DSH(dsh web 或 DSH Desktop),且环境里有 Node.js ≥ 18。

方式 A:本地插件目录 + 运行时注入(推荐,需 dsh-super-injector)

如果你装了 dsh-super-injector(很多 DSH 桌面版自带),这是最快的:

git clone https://github.com/xiaozuishuai-eng/prompt_optimize_dsh.git
cd prompt_optimize_dsh
# 把插件 import 的 @deepseek-ai/* 链接到你的 DSH 部署(脚本会自动探测常见路径;失败就手动传参)
node scripts/link-deps.cjs
#   手动指定:node scripts/link-deps.cjs "<你的DSH安装>/resources/dsh/node_modules"

然后在 DSH 里用注入器把本目录注入即可(dev_inject_plugin → 本插件绝对路径)。注入后刷新一次页面让 client 半的自动填入脚本生效。

方式 B:作为 bundle 装进 profile

把本仓库放进你 DSH profile 的 node_modules(或用 npm pack 安装),再在 profile 的 cordis.patch.yml 里追加:

- insert:
    - id: prompt-optimizer
      name: 'dsh-prompt-optimizer'
      config: {}

重启 DSH(桌面版建议彻底退出再打开,以确保前端脚本重新加载)。


⚙️ 配置(可选,写进 patch 的 config:)

字段 默认 说明
specPath 包内 spec/prompt-engineer-spec.md 优化所依据的规范文档;改成你自己的 .md 即可定制优化风格,保存即热生效(mtime 缓存)
provider + model 不设(跟随主对话路由) 成对填写才覆盖,如 provider: deepseek + model: deepseek-chat;只填一个会被忽略
pure false 设 true 后所有调用默认只输出提示词本体
autoFill true 设 false 关闭"结果自动填入输入框"(仍会输出到聊天 / 工具返回)
contextAware 'auto' 上下文感知三档:'auto'=仅指代不明/输入过短时附加会话摘要(自包含需求零增量);true=总是附加;false=从不(零 token 增量)
contextMaxChars 1800 自动读取会话上下文的上限(约 ≤1.3k tokens;仅 contextAware 命中时才产生)
timeoutMs 90000 单次优化调用超时
maxInputChars 6000 原始输入长度上限(防超长/控成本)

示例:

- insert:
    - id: prompt-optimizer
      name: 'dsh-prompt-optimizer'
      config:
        specPath: 'D:/my-docs/my-prompt-spec.md'
        provider: 'deepseek'
        model: 'deepseek-reasoner'

🚀 使用(分享后可直接照做)

入口 1 · 命令(最快) —— 在 DSH 会话输入框里:

/optimize 帮我弄个提示词,让 AI 每周给我出一份行业新闻简报

约 15~40 秒后(视模型),提示词会自动填入输入框 + 右下角弹提示;完整优化说明也可在聊天流里看到。

迭代修改:

/optimize revise 受众改成金融从业者,篇幅压到 300 字

只想要提示词本体:

/optimize --pure 帮我把这段需求写成提示词……

上下文感知(默认 auto,无需任何参数)——优化完上一段后直接说指代,插件自动读最近消息锚定:

/optimize 把它再压缩到 5 页,面向管理层汇报

被追问时插件会把 /optimize 前缀自动放进输入框——直接打字回答按回车,即与原始需求自动合并;换话题用 --fresh 开头:

/optimize --fresh 帮我写一条完全不同的开场白

入口 2 · 自然语言 —— 直接对会话说:

把下面这段话优化成一个高质量提示词:让 AI 帮我把简历润色一遍,我投产品经理岗

Agent 会自动调用 optimize_prompt 工具完成优化并填入输入框。

入口 3 · 存入提示词库 —— 若你另装了 dsh-prompt-library,优化后说一句"存进提示词库",即可用 prompt_add 归档,日后 prompt_search 找回。

💡 草稿态(全新会话)注意:在还没建会话的首页输入框里发 /optimize,插件会走自己的通道,直接把结果填进首页输入框,避免 harness 原生命令在草稿态卡死。若你的页面未加载到本插件脚本,请硬刷新(Ctrl+Shift+R)或重启 DSH。


🩺 排障 / 自检

  • 只回"已受理"却不出结果:多半是页面未加载自动填入脚本。在浏览器打开 http://<你的DSH地址>/api/prompt-optimizer/status,看 pollers 是否非空、ageMs 是否在几秒内;空则硬刷新页面。注意 pollers 反映的是 DSH 应用窗口自身的心跳,单独开一个标签访问 status 接口不会出现在列表里。
  • 重启后一度不填入:脚本注入、路由注册、结果投递现已三侧重试自愈(客户端脚本加载失败自动重试;服务端路由 10s 看门狗;投递结果持久化,页面重载后 5 分钟内未被消费的最近结果会自动补填一次)。若仍未恢复,多半是模型路由不可用,看 status 的 arms 是否增长即可区分。
  • 结果没填进输入框:确认 autoFill 未被关闭;确认输入框里没有草稿(有草稿时会弹"覆盖填入"按钮,不自动覆盖,防止吞掉你的内容)。
  • 中文界面依赖:自动填入靠识别输入框占位符(默认中文 UI:"给智能体发消息" / "描述你想要构建的内容"),并有兜底策略(选取页面最靠下的可见 textarea)。若你用了非中文 UI 导致识别不准,可在 lib/client-core.js 的 findComposer() 里补充你的占位符。
  • 优化风格不对:改 specPath 指向你自己的规范文档即可,无需改代码。

🔒 隐私与安全

  • 插件不存储、不上传任何密钥;模型调用全部走 DSH 已有的 ctx.llm 路由,密钥由 DSH 的 credentials 服务统一管理。
  • 自动填入的脚本仅通过同源 /api/prompt-optimizer/* 通信,不外发任何数据。
  • 规范文档、会话内容均留在本地,不出你的 DSH 部署。

🗂️ 目录结构

prompt_optimize_dsh/
├─ lib/
│  ├─ index.js         # Host 半:命令 / 工具 / 服务 / HTTP 路由
│  ├─ prompt.js        # 纯函数层:请求组装、锚点协议解析、渲染、轻量质检
│  ├─ client.js        # Client 半:薄 rider,注入自动填入脚本
│  ├─ client-core.js   # 浏览器逻辑:草稿态拦截 + 轮询填入输入框 + toast/浮层
│  └─ spec-snapshot.js # 内置规范快照(外部规范不可读时兜底)
├─ spec/
│  └─ prompt-engineer-spec.md   # 默认优化规范(可自行替换)
├─ scripts/link-deps.cjs        # 运行时依赖链接(方式 A 用)
├─ cordis.patch.yml             # 自带 patch(bundle 安装用)
├─ package.json
└─ LICENSE

🤖 Agent 实装指引(写给协助安装本插件的 AI 助手)

读者是用户 DSH 里的 agent(Claude/Codex/DSH 自身等)。按本节顺序执行可以把事做对;每条"铁律"都对应一次真实事故。

0 · 先探测运行环境(决定安装方式)

探测结果 结论 走
当前会话工具里存在 dev_inject_plugin / dev_install_package / dev_plugin_status 装有超级模组(dsh-super-injector) 方式 A(免重启热注入 → 转正式)
终端可用 dsh CLI,或能确定 <dshHome>/profiles/ 目录 常规 dsh web / 桌面部署 方式 B(bundle 装配 + 重启)
两者都没有 无法自动化安装 给用户手动步骤并让其重启

1 · 安装动作

方式 A(有超级模组,推荐顺序)

  1. git clone https://github.com/xiaozuishuai-eng/prompt_optimize_dsh.git 到本地稳定目录;
  2. node scripts/link-deps.cjs(自动探测 DSH 部署的 node_modules;失败则把该路径作为第一个参数传入。桌面版常见位置:安装目录 resources/dsh/node_modules);
  3. 用注入器的"注入本地目录"能力装载该目录(如 dev_inject_plugin dir=<目录绝对路径>),注入成功输出应含 host ✓;
  4. 立刻执行 §3 验收,不要只看注入返回;
  5. 验收通过后用安装能力转正式(如 dev_install_package dir=<同一目录>),使其重启后常驻。

方式 B(bundle 装配)

  1. 把仓库放进 profile 可解析目录(如 <dshHome>/profiles/<profile>/node_modules/dsh-prompt-optimizer,或 package.json 里 link: 依赖);
  2. 二选一登记:profile 的 package.json → dependencies + dsh.profile.bundles 各加一项;或 <dshHome>/profiles/<profile>/cordis.patch.yml 追加(不要同时用两种,见铁律 1):
    - insert:
        - id: prompt-optimizer
          name: 'dsh-prompt-optimizer'
          config: {}
    
  3. 完全退出 DSH 再启动(桌面版是 Electron,窗口内 F5 可能命中缓存,退出重开最可靠)。

2 · 铁律(违反必坏过)

  1. 单挂载通道:同一插件绝不同时存在于"注入器恢复注册表"和"profile bundles/patch"两条装配路径——双 fiber 竞态会互删共享路由表,症状是"命令活着但 HTTP 全 404"、时好时坏。转正式(bundles)后必须清掉注入器注册表里的该条目。
  2. 草稿态斜杠命令是 harness 缺陷路径:部分版本在"首页草稿输入框"提交 slash 命令会导致界面卡死并丢失会话。本插件从 v1.1.0 起由页面脚本拦截绕开(hero 输入框内 /optimize 开头的回车改走自身 /submit 通道)——因此安装/升级浏览器端脚本后,用户窗口必须重载一次,否则拦截不存在。
  3. 验证先于交付:安装类操作的成功输出 ≠ 功能可用,以 §3 清单为准。
  4. dshHomePath 服务是函数不是字符串(dshHomePath(...segments));写任何 DSH 插件持久化时注意,按字符串拼接会静默抛错。

3 · 验收清单(逐项做,全绿才算装好)

  1. GET http://127.0.0.1:<port>/api/prompt-optimizer/status → 200,version 为预期版本(≥1.1.3 才含全部自愈能力);
  2. 同响应 pollers 数组存在 ageMs < 3000 的条目(= 用户窗口页面脚本在跑;刚装完为空属正常——让用户重载窗口后再查一次;注意另开标签看 status 本身不产生 poller);
  3. 既有会话发送 /optimize 写一句问好文案 → 约 15~40 秒后聊天流输出完整八大板块结果;
  4. 新会话(首页草稿)发送 /optimize … → 秒级出现"⏳ 已受理",随后结果自动填入输入框;
  5. (可选)结果产出期间重载页面 → 5 分钟内未消费的最近结果会自动补填一次(v1.1.3 起)。

4 · 故障判定树(三字段定位)

现象 判定 处置
status 404 插件 host 未挂载/路由未起 查 bundles/patch 登记与重复;完全重启 DSH;等 10s(看门狗自愈窗口)再试
status 200,pollers 空 页面没跑脚本 重载窗口(Ctrl+Shift+R);GET / 看首页 HTML 是否含 dsh-po-client-script;仍无 → 检查 client 模块通道与 /api/prompt-optimizer/client.js 是否 200
pollers 有心跳但输入框无结果 模型调用或投递问题 看 route 字段 provider/model 是否符合预期;看 arms 是否增长——增长=服务端已产出,问题在页面(重载);不增长=模型路由问题
全部正常但结果格式异常 规范文件问题 输出头部若有 ⚠️ 回退提示 → specPath 不可读,检查路径/权限

5 · 版本选择

  • 默认部署最新 tag(或 main 顶端):本仓库每个补丁版本都对应一次真实竞态/边界修复,无保留旧版的收益;
  • 最低可交付版本 = v1.1.1;v1.1.0 及更早存在"冷启动后通道失效"缺陷;v1.1.2/1.1.3 补齐服务端与页面端自愈,强烈建议直接 ≥v1.1.3;
  • 配置项只增不减(specPath/provider/model/timeoutMs/maxInputChars/historySize/pure/autoFill/contextAware/contextMaxChars),升级无破坏性变更;
  • 若宿主机 DSH 缺少 commands/webServer 服务(异常环境),插件会自动降级为仅核心管线可用,不崩溃。

6 · 装完后给用户的三句话(建议原样转述)

  1. 任意会话说 /optimize 你的需求,结果会自己出现在输入框,改两个字直接发送;
  2. /optimize revise 意见 迭代,--pure 只要本体,追问就一句话它会自己合并上下文;
  3. 哪天不填入了,打开 http://127.0.0.1:<port>/api/prompt-optimizer/status 把 JSON 发给助手即可定位。

🧠 为何不接"网页版 DeepSeek"

最初评估过用 chat.deepseek.com 网页版做"免费"接入,但可行方案要么是浏览器自动化(登录态易失效、DOM 频繁变动、验证码/风控、违反服务条款),要么是第三方逆向封装 SDK(如 deepseek-driver / deepseek-free-api,属绕过网页端机制的非官方逆向,稳定性与合规风险都高)。因此本插件选择复用 DSH 内置的官方 API 路由这一最稳、零密钥、与主对话同成本的方案。


📄 License

MIT © xiaozuishuai-eng

—/ 5

No ratings yet

Verified DSH bundle

Commit b0b4d8949d3a

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout