一键把输入框草稿改写成结构化提示词
28.1/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jr-create/dsh-prompt-wisp该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 37 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 读取本地文件lib/index.js:57
const manifest = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')); - 发起网络请求lib/client.js:74
var response = await fetch(API_BASE + path, init); - 发起网络请求lib/client.js:148
var response = await fetch(`${API_BASE}/watch?sessionId=${encodeURIComponent(sessionId)}`); - 发起网络请求lib/client.js:199
fetch(`${API_BASE}/config`) - 读取本地文件lib/store.js:42
const raw = await readFile(configFilePath(), 'utf8'); - 写入本地文件lib/store.js:69
await mkdir(dirname(file), { recursive: true }); - 写入本地文件lib/store.js:71
await writeFile(temp, `${JSON.stringify(next, null, 2)}\n`, 'utf8'); - 写入本地文件lib/store.js:72
await rename(temp, file);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
提示词精灵 — 在 DeepSeek Harness 输入框旁一键把草稿优化成结构化提示词
README
由 DeepSeek 最新模型翻译生成dsh-prompt-wisp · 提示词精灵
一句话:在 DeepSeek Harness 聊天输入框的发送键旁加一枚 ✦ 按钮——点一下,草稿立刻被你已配置的模型改写成清晰、结构化、可直接执行的提示词。
One-liner (EN): A ✦ button next to the composer's send key in DeepSeek Harness — one click rewrites your draft into a clear, structured, ready-to-run prompt using the model you already configured.
零运行时依赖 · 零外部网络请求(模型调用走宿主自己已配置的服务)· 零构建步骤
它做什么
| ✦ 优化按钮 | 注册在官方 conversation.input.right 槽位(composer 工具行、发送键左侧),深浅色主题自动适配 |
| 一键改写 | 读取输入框草稿 → 宿主端调用你配置的默认模型 → 结构化改写 → 写回输入框 |
| 会话上下文感知 | 自动读取当前会话最近的对话(经 sessionPersistence,最多 12 条),改写时把「它 / 上面的方案」这类指代落到具体对象上 |
展开完整文档(README 剩余 1 节)
dsh-prompt-wisp · 提示词精灵
一句话:在 DeepSeek Harness 聊天输入框的发送键旁加一枚 ✦ 按钮——点一下,草稿立刻被你已配置的模型改写成清晰、结构化、可直接执行的提示词。
One-liner (EN): A ✦ button next to the composer's send key in DeepSeek Harness — one click rewrites your draft into a clear, structured, ready-to-run prompt using the model you already configured.
零运行时依赖 · 零外部网络请求(模型调用走宿主自己已配置的服务)· 零构建步骤
它做什么
| ✦ 优化按钮 | 注册在官方 conversation.input.right 槽位(composer 工具行、发送键左侧),深浅色主题自动适配 |
| 一键改写 | 读取输入框草稿 → 宿主端调用你配置的默认模型 → 结构化改写 → 写回输入框 |
| 会话上下文感知 | 自动读取当前会话最近的对话(经 sessionPersistence,最多 12 条),改写时把「它 / 上面的方案」这类指代落到具体对象上 |
| 安全围栏 | 所有 HTTP 路由 loopback-only + same-origin;草稿单次上限 20,000 字符 |
| 失败可见 | 空草稿、超长、模型错误都在按钮旁内联提示,绝不静默失败 |
改写遵循一套内置的提示词工程规则:保留全部意图与约束、补全明显缺口(输出格式/范围)、消除模糊表述、语言跟随草稿——模型只返回改写正文,不夹带解释。
上下文感知怎么工作
- 浏览器只把 sessionId 发给宿主;会话日志只在宿主端读取(经官方 sessionPersistence 服务的只读句柄,绝不碰原始 .jsonl.zstd 文件);
- 摘要只取真人发言与模型回答——注入的上下文(文件变更通知、skill 内容等)虽也是 user/message,但 source.kind === 'plugin',被明确排除,不会污染优化依据;
- 尾部最多 80 个事件 → 最多 12 条对话消息 → 每条截断 600 字符 → 全文预算 4000 字符;
- 上下文是增强不是依赖:新会话无历史、会话读取失败、persistence 服务不在,都降级为「仅按草稿优化」,按钮照样工作,成功气泡会标注「(已结合会话上下文)」。
安装
从 GitHub 安装(推荐锁定 release tag)
dsh plugin --profile web add github:jr-create/dsh-prompt-wisp#v0.2.0
或跟踪仓库最新状态
dsh plugin --profile web add github:jr-create/dsh-prompt-wisp
本地开发(链接源目录)
dsh plugin --profile web add link:<本仓库绝对路径>
安装后重启 dsh web,输入区工具行出现 ✦ 按钮即成功。
使用
1. 在输入框正常写草稿(中英文皆可);
2. 点 ✦(草稿为空时按钮置灰);
3. 等待片刻——优化结果自动替换草稿,按钮旁出现确认气泡(失败则显示红色原因)。
模型路由(按优先级)
1. 请求显式指定的 { provider, model }(先对注册表校验);
2. 宿主设置的默认 Agent 模型(设置页「默认模型」,agent-default-model);
3. 第一个已注册 provider 的第一个模型。
GET /api/dsh-prompt-wisp/route 可随时查询「此刻会走哪个模型」。
HTTP API(全部 loopback-only + same-origin 围栏)
| 端点 | 方法 | 说明 |
| /api/dsh-prompt-wisp/status | GET | 版本、能力位(llm 服务 / 默认模型)、草稿长度上限 |
| /api/dsh-prompt-wisp/route | GET | 当前模型路由(不可用时返回原因而非 500) |
| /api/dsh-prompt-wisp/optimize | POST | { prompt, sessionId?, provider?, model? } → { optimized, provider, model, contextUsed, contextReason?, tookMs } |
错误约定:客户端可修复的问题(空草稿/超长/路由不存在/模型失败)返回 200 + { ok:false, error } 由界面内联展示;只有未预期崩溃才走 500。
设计与防回归(每条都有测试锁)
| 决策 | 理由 | 测试 |
| 彻底零依赖 | link 安装的插件从源目录被 import,够不到宿主依赖闭包;一个宿主 import 能拖死整棵插件树 | packaging.test.mjs 真实 import 每个模块 + 全文禁 @deepseek-ai |
| 晚到服务用 ctx.inject | ctx.get 的时序缺失不报错、只静默丢功能 | 宿主半侧结构断言 |
| 槽位不碰编辑器 DOM | composer 是宿主内部的 Lexical contenteditable,DOM 私有 | client.test.mjs 断言无 querySelector/contenteditable |
| 模型失败必须可见 | llm.stream 把适配器失败归一化为终止 finish 分片,只读文本分片会看到静默空答案 | collectText 对 error/aborted 都抛出并带 failure.message |
| 主题变量必须成对带 fallback | 缺 token 时整条声明静默失效;品牌色在深色主题下是白色 | 逐个 var(--dsw-) 检查 fallback |
| 诚实报错 | 空草稿/超长/无模型都是「可解释的失败」,不伪装成 500 | http.test.mjs 逐路径覆盖 |
已知边界(诚实声明):浏览器端无 React/DOM 依赖,做不了渲染测试;client.test.mjs 用结构性断言守住关键生命周期。
权限与风险声明
- 插件读取:输入框草稿(仅在你点击 ✦ 时发送到本机宿主)、宿主默认模型配置(只读);
- 插件写入:输入框草稿文本(仅优化结果写回);
- 外部服务:无——模型调用经由宿主自身已配置的 provider,插件不直连任何外部 API;
- 不读取会话记录、不修改任何 DSH 配置。
兼容性
- DSH 宿主:0.1.5-rc.2(本插件开发与全部 81 项测试所验证的版本);目标 profile:web;Node ^22.19.0 || >=24.0.0;
- 插件使用的能力面(ctx.llm.stream、ctx.sessionPersistence、ctx.agentDefaultModel、webServer 路由、conversation.input./settings.section 槽位)在该版本均已存在且稳定;
- 宿主服务均为软依赖:没有 llm 服务的 profile 里插件照常加载,按钮会明确提示「宿主没有可用的 LLM 服务」;没有 sessionPersistence 时上下文感知与执行监控自动关闭,仅按草稿优化;
- 测试:node --test,81 项,全部离线。
会话执行监控
输入区上方的全宽告警条(官方 conversation.input.dock 槽位——composer 卡片正上方、正常文档流内,不遮挡输入框与会话内容)是执行监控的出口:浏览器每 5 秒轮询一次当前会话的日志尾部(宿主端经 sessionPersistence 只读句柄分析最近 120 个事件),检测四类执行异常:
| 检测项 | 触发条件 | 级别 |
| 卡死 / 死锁 | 回合进行中,超过 45 秒没有任何新事件(工具挂起 / 模型无响应) | 🔴 alert |
| 无效输出 | 回合已执行 8+ 步,仍无任何可见文本(无意义空转) | 🟡 warn |
| 工具循环 | 同一工具以几乎相同的参数连续调用 5 次(参数按 GUID/数字/空白归一化后比较) | 🟡 warn |
| 回合失败 | 最近一个回合以错误结束(120 秒内的才提示,旧错误不算) | 🟡 warn |
告警条点击 × 关闭;关闭后若出现新的发现会自动重新弹出(按发现集合变化判定,旧发现不会骚扰)。标签页切到后台时轮询自动暂停。分析纯只读(GET /api/dsh-prompt-wisp/watch),不写入会话,不干预执行——检测到卡死时由用户决定是否中断。
双引擎与速度
| 模式 | 引擎 | 实测耗时 |
| 简便优化(默认) | 模型竞速 + 精简提示词(lean prompt)+ 无上下文读取,6s/路预算 | 0.5–1.5s |
| 详细优化 | 模型竞速 + 完整结构化提示词 + 会话上下文,10s/路预算 | 1.4–4s |
- 两种模式都向最多 3 条模型路由同时发请求,谁先给出干净答案用谁(实测常由响应最快的路由胜出);
- 竞速失败/超时时,本地规则引擎(去废话词典 + 形状规范化 + 重复句折叠)即时兜底——宁给规则改写,不给报错;
- 会话摘要只服务详细模式,自身有 15 秒预算,超时降级为无上下文。
设置页
设置界面新增「提示词精灵」分区(DSH 设置 → 提示词精灵)——本插件全部功能的集中配置,两个分组、六个独立开关,每项标注默认值,保存后立即生效:
分组一:提示词优化
| 开关 | 默认 | 作用 |
| 去废话 | 关 | 剔除草稿里的客套话、寒暄、重复与空洞修饰,只留有实际内容的指令;简便与详细模式都生效 |
| 详细优化 | 关 | 开 = 完整结构化提示词 + 会话上下文(1~4s);关 = 简便优化:精简提示词 + 模型竞速(0.5~1.5s) |
分组二:会话执行监控
| 开关 | 默认 | 作用 |
| 显示会话监控告警条 | 开 | 在输入区上方显示执行异常告警条;关闭后完全隐藏(轮询也停止) |
| 卡死 / 死锁检测 | 开 | 回合进行中超过 45 秒无任何新事件时告警 |
| 无效输出检测 | 开 | 回合执行 8+ 步仍无可见文本时告警 |
| 工具循环检测 | 开 | 同一工具以几乎相同的参数连续调用 5 次时告警 |
配置持久化在 <DSH_HOME>/dsh-prompt-wisp/config.json(临时文件 + 原子重命名,手改坏的文件自动回落默认值)。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jr-create/dsh-prompt-wisp
一键把输入框草稿改写成结构化提示词
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目