Moeblack/dsh-prompt-studio

Plugin插件 Native原生 ⭐ 2 BSD-3-Clause Prompts & Skills提示词与技能

DSH 插件:编辑用户与内置系统提示段落,实时预览(Prompt Studio)

Project Overview项目介绍

dsh-prompt-studio is the DeepSeek Harness distribution of Prompt Studio. It adds a Prompt Studio tab to the conversation page, listing runtime-native and user supplement components together with editing, native overrides, and full request preview. Components merge automatically by role, position, and order, folding system sections into one field and inserting message supplements at after_system, anchored, or tail slots, with anchored sitting after the last real user message and tail at the sequence end. Templates support {{user_input}}. The web bundle and CLI do not share memory, so restart dsh web after swapping the plugin.

dsh-prompt-studio 是 Prompt Studio 的 DeepSeek Harness 插件。它在对话页注册 Prompt Studio 标签页,统一展示运行时原生与用户补充组件,支持编辑、原生覆盖与完整请求预览,并按 role、position、order 自动合并 system sections 与消息间隙。适用于需要稳定编排 system 区与消息级补充的场景。模板支持 {{user_input}} 引用当前用户输入。需注意 Web bundle 进程内存独立,替换插件后须重启 dsh web 并刷新浏览器。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:Moeblack/dsh-prompt-studio

把 Moeblack/dsh-prompt-studio 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-prompt-studio

Prompt Studio 的 DeepSeek Harness 插件分发形态。插件在对话页注册 Prompt Studio 标签页,以同一组件列表展示运行时原生提示词和用户补充,并提供编辑、原生覆盖与完整请求预览。

组件模型

每个编排项使用同一结构:

interface PromptComponent {
  id: string
  kind: 'native' | 'supplement'
  role: 'system' | 'user' | 'assistant'
  position?: 'after_system' | 'anchored' | 'tail'
  order: number
  enabled: boolean
  template: string
  origin?: string
}

这些字段分别描述不同维度,不以 kind 代替角色或用途:

  • kind 只区分来源:native 是 Host 在运行时发现的只读组件;supplement 是用户可编排并持久化的补充组件。
  • role 决定内容归宿:
    • system 一律注册为有序 system section,最终与原生 sections 合并到全局唯一的 system 字段;此时不得设置 position;
    • user、assistant 进入消息序列,必须设置 position。
  • position 只描述 user/assistant 消息所处的间隙:
    • after_system:全局 system 字段之后、第一条原生会话消息之前;
    • anchored:最后一条真实用户消息之后,找不到锚点时跳过;
    • tail:原生消息序列末尾。

anchored 与 tail 的区别:简单对话中最后一条消息往往就是用户输入,两者重叠;但存在工具调用流(user → tool_call → tool_result → assistant)时完全不同——anchored 插在用户输入之后、工具调用流之前,tail 插在整个序列最末尾(工具结果与助手回复之后)。需要紧贴用户问题补充指令用 anchored,需要模型读完完整上下文再看到的内容用 tail。

  • order 有两种与归宿对应的含义:
    • system 组件的 order 是 system section 的全局混排层级,和原生 sections 一起升序排列;约定 -100 是身份区、0 是 persona、100–199 是工具区,其他负值也在 persona 之前;
    • user/assistant 组件的 order 只在同一个 position 间隙内排序,不参与跨间隙比较。
  • origin 只用于覆盖。补充组件未设置 origin 时是普通注入;设置为某个原生组件 id 时,同一个补充组件即覆盖该原生组件,不存在单独的覆盖 kind。

同一消息间隙的补充组件按 (order, 声明顺序) 排列。system sections 由 Host 依 order 与原生 sections 全局混排。

内容合并

所有 system sections 最终渲染为同一个 system 字符串,补充内容以纯文本直接并入,不加任何包装标记。

user/assistant 补充先进入选定间隙。若补充组与间隙左侧或右侧的相邻原生消息 role 相同,补充内容会按先后关系合并进该原生消息的 content;若角色不同,则在该间隙创建新消息。相邻且同角色的补充也合并为一条消息。

原生覆盖

覆盖仍使用有序 marker section 和 system-prompt/assemble waterfall,不依赖静态原生目录:

  1. origin 指向当前组装中存在的原生组件时,waterfall 移除原始组件。
  2. 覆盖组件启用时,其替换文本按自身 role 归宿:system 覆盖保留 marker 的全局 order 并进入唯一 system 字段;user/assistant 覆盖按 position 进入消息间隙。
  3. 覆盖组件设为 enabled=false 时只移除原始组件,相当于关闭该原生组件。
  4. origin 在本次组装中不存在时,不会凭空生成替换内容。

运行时组装

配置集合由 ComponentPipeline 激活。每次设置变更先调用旧组合效果的 disposer,再把新集合施加为一个 Cordis 生成器效果;marker、覆盖映射与补充消息映射分别返回原子逆,组合逆由 ctx.effect() 按结构生成。

原生目录在运行时动态发现。插件监听 system-prompt/change 并重新执行真实 systemPrompt.assemble();waterfall 在覆盖前捕获原生 name、text 与组装次序,在覆盖后捕获实际 system 槽序列。浏览器通过同源 GET /prompt-studio/state 读取该单值快照。

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-git-hygiene 下一个 Next dsh-chinese-thinking →