dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Prompt rewrite workbench for DeepSeek Harness: four rewrite modes, cancellable streaming output, and a token-level before/after diff.
English | 中文
一个给 DeepSeek Harness(
dsh)用的提示词重写工作台:四种重写模式、可中断的流式输出,以及真正的增强前后逐词差异对比。
写好提示词是你在 agent harness 里收益最高的一步,也是最容易被跳过的一步。你打一句模糊的话,agent 只能猜,三轮之后你才开始解释自己到底想要什么。
dsh-prompt-workbench 就停在输入框上方,把那句模糊的话变成 agent 能准确执行的任务说明——不用离开你正在打字的那个框。
它刻意不只是一个「增强」按钮。三点让它更像个工作台,而不是一次性的改写器:
[!WARNING] 安装插件等于在你的 harness 里以你自己的权限运行第三方代码。本插件会把你放进面板的草稿发送到当前会话已经在用的模型路由,且仅此一项——分析本身在浏览器本地完成,不发任何请求。仓库公开不等于安全审计:装之前请先读源码。
dsh plugin --profile web add github:fufuyin/dsh-prompt-workbench
装完重启 profile 并刷新 Web GUI。多数插件刷新页面即可生效;若输入框工具行没出现胶囊按钮,请重启 profile。
开发时从本地检出安装:
git clone https://github.com/fufuyin/dsh-prompt-workbench.git
cd dsh-prompt-workbench
npm install
npm run build
dsh plugin --profile web add .
自动 模式会识别草稿语种并同语种输出。--dsw-alias-* 变量,亮暗色都正常,并遵循 prefers-reduced-motion。@路径 引用、{变量}、<占位>、TODO、URL 与代码块,且绝不回答它正在重写的那条提示词。◎ 按钮(以及 GET /api/diag)会报告宿主如何看待本插件的浏览器半——这正是坏掉的界面无法自问自答的那个问题。⭯ 把当前输入框内容拉进来。Ctrl/Cmd + Enter)。右栏按结构流式呈现重写结果。上方的分析会作为显式缺口清单交给模型,所以重写针对的是这份草稿,而不是通用模板。若发现异常,点面板标题栏的 ◎ 做宿主侧自检,或直接打开 /dsh-prompt-workbench/api/diag。
点面板标题栏的 ⚙。这些都是插件自己的偏好,按浏览器 profile 存在 localStorage 的版本化键下;存储损坏或被禁用时会退回默认值,而不是让面板坏掉。
插件刻意不做服务端持久化设置:它不改变宿主任何运行方式,因此不需要设置 schema,也不需要写你的配置。它跟随你当前会话的默认模型路由——在输入框的模型选择器里换模型,下一次重写就用新模型。当前路由会以只读标签显示在面板标题栏。
以下限制全部在 Host 侧强制:
everything-is-a-plugin 的 harness 意味着这是两个半成品加一个 patch 层:
cordis.patch.yml 安装本插件的 profile patch
src/analyze.ts SHARED — 解析、维度、建议、骨架(纯函数)
src/index.ts HOST — 插件入口;注册插件的 HTTP 路由
src/runs.ts HOST — 任务表与每次运行的那一次模型调用
src/prompt.ts HOST — 模式与系统指令(纯函数)
src/http.ts HOST — JSON / 同源 / 请求体辅助
src/client/index.ts CLIENT — inject 声明、样式注入、挂载
src/client/panel.ts CLIENT — 两个输入框入口
src/client/api.ts CLIENT — fetch 通道
src/client/prefs.ts CLIENT — 版本化 localStorage 偏好
src/client/store.ts CLIENT — 两者共用的那个 store
src/client/diff.ts CLIENT — token 级 LCS 差异
src/client/styles.ts CLIENT — 整份样式表,一个字符串
scripts/preflight.mjs prepack 跑的后构建断言
tests/ 每个纯模块的单元测试
src/analyze.ts 是最有意思的一个:它是纯函数,且两个半成品都 import 它。浏览器端每次按键(防抖)跑它,所以建议即时、免费、离线;Host 端每次重写跑一次,把得到的缺口清单交给模型。一份实现、两个消费者,还有一套直接断言它的测试。
Host 半负责模型调用与任务表;浏览器半以固定节奏轮询,且只接收自上次游标以来的增量,所以长文本重写的流量是有界的,而不是反复回传整个缓冲区。
走插件自己在 ctx.webServer.register() 上注册的 HTTP 路由,而不是 @Remote / ctx.remote。这不是风格选择:宿主网关确实能从第三方包发现 @Remote 标记,但客户端的 $mount 路径会拒绝一切非生成式 strict codec 的描述符,而且挂载远程命名空间的清单是闭源内建列表。要提供生成式 codec,就得用 harness 自己的代码生成工具链。
由于插件自有路由不受连接层的 Host/Origin 检查保护,两个写路由自行做同源校验。轮询路由刻意不做:浏览器在同源 GET 上不发 Origin,在那里强制会把自己插件的流量拒掉。
GET /api/diag 报告宿主如何看待本插件的浏览器半,并附带一个有界的最近请求环(方法、路径、状态码、耗时、原始 origin 头,以及据此得出的判定)。插件路由在会话日志里完全不可见,所以这是唯一能报告浏览器侧故障的入口。
面向 DeepSeek Harness 开发者预览版。harness 本身会带来破坏性变更,请固定你构建所依据的版本。
欢迎提 issue 与 PR。CONTRIBUTING.md 包含开发环境、项目结构、项目红线,以及如何报告缺陷。
MIT © 2026 fufuyin
这是一个社区插件,与 DeepSeek 官方无关,按「现状」提供,不附带任何担保。安装它等于在你自己的权限下于 harness 内运行第三方代码,请先阅读源码,风险自担。