前言¶
在 DeepSeek Harness(DSH)的开发流程中,提示词的迭代与优化往往是高频操作。传统的做法是在对话窗口中反复复制粘贴、手动修改,不仅效率低,而且难以追溯修改历史或对比不同版本的效果。
dsh-prompt-studio 是一个 DSH 插件,它在 DSH 的左栏提供了一个专门的「提示词」面板。它的核心价值在于将提示词的优化、多轮迭代和版本管理集中在一个工作区中,解决了碎片化操作的问题,并提供横向对比能力。
插件定位¶
- 名称:dsh-prompt-studio
- 分类:模型推理
- 维护者:CECILIALOVE0616
- 协议:MIT
- 核心能力:提示词优化、多轮迭代、版本横向对比、模板与历史管理
核心功能¶
该插件在左栏提供统一的提示词工作区,主要包含以下能力:
- 提示词优化与改写:输入原始提示词,选择已配置的模型,获取改写后的结果。
- 多轮迭代:基于上一版提示词,通过输入调整方向(如“更简洁”、“补上输出格式约束”)生成版本链,支持回退到任意历史版本。
- 版本横向对比:版本以列形式铺开,无需展开即可查看。提供行级对比视图,新增内容标绿,删除内容标红并划掉。
- 模板与历史管理:提供通用优化、结构化扩写、精简压缩等五个内置模板,支持自定义保存。历史记录按时间倒序排列,支持筛选和删除。
- 在新对话中使用:优化或编辑后的提示词可直接点击按钮填入新对话的输入框并发送,免去复制粘贴步骤。
- 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:
desktopprofile 由 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 插件。它通过提供可视化的工作台,让提示词的优化、迭代和对比变得系统化。对于需要频繁调试提示词的开发者或构建智能体的用户,它提供了从手动操作到代码调用的完整解决方案。