dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
One-click prompt enhancement beside the DeepSeek Harness composer: rewrites a draft in place without sending it.
English | 中文
把输入框里那句没头没尾的草稿,原地改成能直接执行的任务说明。
只改内容,不发送、不运行。 不满意就 Ctrl+Z 回去。
非官方社区项目,与 DeepSeek 无隶属或授权关系。内嵌素材的归属见 NOTICE.md。
一句话的草稿缺的是目标、格式、边界。模型只能猜——猜错了你得换个说法再问一轮。 这个按钮把这三样补进你原本那句话里:
| 你写的 | 放回输入框的 | |
|---|---|---|
| 你写的 | 帮我写个爬虫抓豆瓣电影 | 同一句话 |
| 补上目标 | 抓取电影 Top250 的名称、评分和链接 | |
| 补上格式 | 输出为 CSV 文件 | |
| 补上边界 | 遵守 robots 协议、请求间隔不少于 2 秒、遇到反爬降低频率而不是绕过限制 |
第三列不是你打上去的,是它读了你那句话之后补的。补出来的东西你随时能改——它落在输入框里,不在别的地方。
Ctrl+Z,或点按钮变成的回退箭头。中途想放弃就再点一下,草稿保持原样,不会给你留下半截文字。
增强是一次真实的模型调用,结果多快出来,主要取决于你当前选的模型。
如果觉得等得久,把会话用的模型换成一个更稳定、响应更快的——同一个草稿,换个模型往往就是几秒和十几秒的差别。这个按钮不挑模型,你选哪个它就用哪个。
想固定用某个模型专门做增强(不影响正常对话)?去
设置 → 提示词增强打开「用哪个模型改写」。
点了按钮之后不必守着它。切到别的会话,任务会继续跑完。
回来的时候,结果已经写进输入框了;如果还没跑完,按钮仍然是那个旋转的鱼尾。两个会话可以同时各跑一个,互不影响。
这一点在 1.0.x 里不是这样:那时切换会话会直接中断任务,回来什么也没有。
附件和链接算「你已经说过的东西」——改写只动旁边那句文字,不会把它们吃掉。
@D:\... 这样的完整路径;链接同样只保留域名。你本机的目录结构不会跟着提示词被复制出去。到 设置 → 提示词增强 → 快捷键 打开开关。桌面端为 Ctrl+E(macOS Cmd+E),浏览器端为 Ctrl+Alt+E(macOS Cmd+Alt+E)。
Ctrl+Z 负责。Esc 取消;恢复默认一键还原。| 状态 | 你看到的 | 意味着 |
|---|---|---|
| 空闲 | 静止的鲸鱼尾巴 | 可以点 |
| 改写中 | 鱼尾旋成螺旋 | 在跑;再点一下是取消 |
| 完成 | 变成回退箭头 | 一键还原,或用 Ctrl+Z |
| 失败 | 红色重试图标 + 原因 | 原因就在按钮旁边,不用翻日志 |
按钮右下角有没有那个小圆点,就是全部区别:
圆点描述的是此刻点下去会怎样,不是上次发生了什么。所以它在运行中隐藏、失败后恢复、按钮变成回退箭头时消失——那时点击是还原草稿,与增强无关。
读前文是要花 token 的。长对话里觉得慢或觉得贵,去设置里关掉「参考之前的对话」,按钮上的圆点随之消失。
只读你现在放在输入框里的图片,历史消息里的图片永远不读。这条边界是刻意的:旧截图既慢又容易看偏,不纳入范围。
设置 → 提示词增强。四个开关一个下拉,只影响这个按钮,不影响正常发送。页面底部是更新日志。
| 选项 | 默认 | 打开会怎样 |
|---|---|---|
| 用哪个模型改写 | 关 | 关:跟随当前对话的模型。开:固定用下拉选定的模型。 |
| 参考之前的对话 | 开 | 读前面的内容。更准,但多耗 token、长对话更慢。 |
| 参考输入框里的图片 | 关 | 输入框里的图一起参与。历史消息里的图片始终不读。 |
| 快捷键 | 关 | 打开后可用键盘触发改写。默认关闭,不会在你没要求时抢占按键。 |
CHANGELOG.md,不联网也能看。需要 DeepSeek Harness,node >= 22。装完必须重启 Harness——本插件没有 HMR。
dsh plugin --profile web add dsh-prompt-rewriter # Web 版
dsh plugin --profile desktop add dsh-prompt-rewriter # 桌面版
用你实际在跑的那个 profile。插件是 web 平台的前端插件,两种都能用。
dsh plugin --profile web add github:huaguoxingkong/dsh-prompt-rewriter
源码安装会跑构建步骤,首次可能要求你授权。只对你信任的包给这个权限。
到 Releases 下载 zip,解压后 npm install && dsh plugin --profile web add .。
点了没反应? 输入框是空的,或者「用哪个模型改写」打开了但没选模型。如果用的是快捷键,先确认「快捷键」开关已打开、且没有提示冲突。
报「当前模型尚未配置可用的凭据」? 这个模型没配 key。换个模型,或在设置里固定一个能用的。
改写完想全撤? 一次 Ctrl+Z 就回到原文,它只是输入框里一个普通编辑步。
改写完,我贴的附件还在吗? 在。附件引用和链接原样保留,改写只替换文字部分。
会把我已经发出去的消息也改了吗? 不会。它只改草稿,从不发送。
profile 插件行的 config 全部可选。前六项由设置页托管,后七项是运维上限,不暴露在界面上:
- id: dsh-prompt-rewriter
name: dsh-prompt-rewriter
config:
# 设置页托管
useCustomModel: false # 是否固定使用 enhanceProvider/enhanceModel
enhanceProvider: "" # 空 = 跟随会话模型
enhanceModel: ""
referenceImages: false # 是否参考输入框图片
referenceContext: true # 是否参考前文
shortcutEnabled: false # 键盘快捷键(默认关闭)
# 运维上限(不暴露在设置页)
maxDraftChars: 8000 # 草稿字符上限
maxOutputChars: 12000 # 输出字符上限
maxOutputTokens: 2000 # 单次请求输出 token 上限
timeoutMs: 90000 # 端到端超时
historyTokenBudget: 6000 # 历史注入的 token 预算
historyMaxMessages: 24 # 历史最多取多少条
historyMessageChars: 4000 # 单条历史字符上限
| 半边 | 文件 | 职责 |
|---|---|---|
| Host | index.js | 注册 POST /api/prompt-enhance(改写)与 GET/POST /api/prompt-enhance/settings(设置),走 ctx.connection.fetch,继承 Harness 鉴权与来源校验。读取会话投影得到当前模型,经 ctx.llm 生成结果。 |
| Client | client.js | 在 conversation.input.right 渲染按钮;在 settings.section 渲染设置页。通过 inputActions.insertText 原位替换草稿。 |
三处值得说明的设计:
min(historyTokenBudget, 上下文窗口 × 5%),从最新往回收集;单条超预算时按比例一次算准目标长度(最多 4 次校正兜底),截断而非丢弃,保证「有上下文」不会静默退化成「无上下文」。remote.session.modelCatalog;该面不可用时下拉会明确提示读取失败,而不是留空。插件分 Host 与 Client 两半:Host 只依赖 ctx.connection、ctx.llm、ctx.settings 等宿主服务,Client 通过 window.__ModuleLoader__ 注册槽位组件。两半都随 bundle 在启动时加载,改动后需重启验证。
单元测试未随本仓库发布。 开发期测试依赖宿主私有的 @deepseek-ai/schemastery、宿主 React 副本与本机 profile 目录结构,直接开源会让使用者拿到跑不起来的文件。
node --check index.js # 语法
node --check client.js
npm pack --dry-run # 检查发布内容
代码采用 MIT,详见 LICENSE。内嵌素材分两类:
| 素材 | 许可 | 是否在 MIT 范围内 |
|---|---|---|
| 插件代码 | MIT | 是 |
鲸鱼尾巴 36 帧轮廓(来自 dsh-status-rotator v0.38.0,作者 01Virex) | MIT,已在上游核实(36 帧逐条比对一致) | 是,保留其版权声明 |
DeepSeek「大肥鱼」品牌标(来源 dsh-web-frontend) | 源包内未找到许可证 | 否,已在 LICENSE 中显式排除 |
本项目为非官方社区项目,与 DeepSeek 无隶属或授权关系。完整归属与核实过程见 NOTICE.md。