dsh-prompt-studio:DSH 提示词工作台

前言

在 DeepSeek Harness(DSH)的开发流程中,提示词的迭代与优化往往是高频操作。传统的做法是在对话窗口中反复复制粘贴、手动修改,不仅效率低,而且难以追溯修改历史或对比不同版本的效果。

dsh-prompt-studio 是一个 DSH 插件,它在 DSH 的左栏提供了一个专门的「提示词」面板。它的核心价值在于将提示词的优化、多轮迭代和版本管理集中在一个工作区中,解决了碎片化操作的问题,并提供横向对比能力。

插件定位

  • 名称:dsh-prompt-studio
  • 分类:模型推理
  • 维护者:CECILIALOVE0616
  • 协议:MIT
  • 核心能力:提示词优化、多轮迭代、版本横向对比、模板与历史管理

核心功能

该插件在左栏提供统一的提示词工作区,主要包含以下能力:

  1. 提示词优化与改写:输入原始提示词,选择已配置的模型,获取改写后的结果。
  2. 多轮迭代:基于上一版提示词,通过输入调整方向(如“更简洁”、“补上输出格式约束”)生成版本链,支持回退到任意历史版本。
  3. 版本横向对比:版本以列形式铺开,无需展开即可查看。提供行级对比视图,新增内容标绿,删除内容标红并划掉。
  4. 模板与历史管理:提供通用优化、结构化扩写、精简压缩等五个内置模板,支持自定义保存。历史记录按时间倒序排列,支持筛选和删除。
  5. 在新对话中使用:优化或编辑后的提示词可直接点击按钮填入新对话的输入框并发送,免去复制粘贴步骤。
  6. Agent 工具调用:注册了 prompt_optimize 函数,供 Agent 在配置中直接调用。

安装与启用

本插件是一个 DSH profile bundle。它必须被安装进某个 DSH profile 中才能注册面板、工具与路由。它没有运行时依赖,安装后即可使用。

安装命令

最简单的方式是通过 DSH 的 CLI 安装:

dsh plugin --profile <profile> add dsh-prompt-studio

从源码构建安装

如果需要从源码构建安装,可执行以下步骤:

git clone https://github.com/CECILIALOVE0616/dsh-prompt-studio.git
cd dsh-prompt-studio
npm pack

随后在 CLI 中使用生成的 .tgz 文件安装:

dsh plugin --profile <profile> add ./dsh-prompt-studio-<version>.tgz

注意事项

  • Desktop Profile:desktop profile 由 Electron 桌面应用独占管理,CLI 无法对它执行 add 命令。桌面场景请使用应用内的插件安装接口。
  • 重载生效:安装后需要重载 DSH,左栏才会出现「提示词」入口。
  • 热更新:除了 toolEnabled 设置外,其他配置修改通常支持热更新;toolEnabled 修改后必须重启 DSH 才能生效。

配置项

在 DSH 的设置页插件分区中,可以配置以下参数:

字段 默认值 说明
defaultMode user 打开面板时的默认模式(用户提示词 / 系统提示词)
defaultProvider / defaultModel 空 默认模型;留空则使用会话当前路由
maxTokens 4096 单次调用的输出上限
timeoutMs 120000 单次调用超时时间(上限 30 分钟)
maxPromptChars 20000 单条提示词长度上限
historyLimit 200 历史列表一次取多少条
toolEnabled true 是否注册 prompt_optimize 工具

也可以通过环境变量进行配置,优先级为:插件设置 > 环境变量 > 内置默认。

数据存储

插件使用本地 SQLite 数据库进行存储,每个工作区拥有独立的数据库文件:

路径:<工作区>/.dsh-prompt-studio/prompt-studio.db

数据库包含三张表:
* prompts:存储提示词版本(包含 parent_id 以维护版本链)。
* runs:记录每次模型调用(优化或迭代)。
* templates:存储模板(内置模板与用户自定义模板)。

工具调用 API

Agent 可以直接调用 prompt_optimize 工具。函数签名如下:

prompt_optimize(prompt, mode?, direction?, provider?, model?)
  → { optimized, provider, model, elapsedMs }

参数说明:
* prompt:必填,原始提示词。
* mode:system 或 user,默认 user。
* direction:提供则按迭代模式走(在上一版基础上调整),不提供则为通用优化。
* provider / model:不传则使用会话当前路由。

返回值:
* optimized:优化后的提示词。
* provider / model:实际使用的 provider 和 model。
* elapsedMs:耗时。

中断:调用过程中可以通过 exec.signal 中断。

常见问题排查

症状 原因
插件完全没出现 cordis.patch.yml 的 insert 没并入 profile,或者没重载 DSH
左栏有入口但面板打不开 客户端 id 与左栏项的 id、主区的 key 不一致;或 exports.inject 少了 slots
设置页没有本插件的分区 Config 没导出,或 schemastery 软导入拿到的不是 builder
tool "prompt_optimize" is already registered agent preset 里重复声明了这个工具
LLM 调用报 503 / undefined ctx.get('llm') 是空的

总结

dsh-prompt-studio 是一个专注于提示词工程的 DSH 插件。它通过提供可视化的工作台,让提示词的优化、迭代和对比变得系统化。对于需要频繁调试提示词的开发者或构建智能体的用户,它提供了从手动操作到代码调用的完整解决方案。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜