dsh-prompt-brief:把口语需求写成结构化产品简报

前言

在 DeepSeek Harness(DSH)里做产品或界面类任务时,输入框里往往只有一两句口语化的想法。直接发给模型,定位和约束容易散在对话里,设计和研发也不好拆任务。手动整理成「定位 + 功能列表 + 视觉与规范」又费时。

dsh-prompt-brief 是维护者 ly14278 发布的客户端插件:在对话输入框右侧增加「✦ 优化」按钮,用当前 profile 的 LLM 把原文改写成固定结构的结构化产品需求,并在弹窗里左右对照后再决定是否写回输入框。与只做单句润色的插件不同,这里强调完整简报结构和接受 / 重新生成 / 取消 三段式确认。

这是什么

插件纯 JS 实现,无运行时依赖(react / react-dom 由 DSH 基座提供)。按钮、对比弹窗、改写规则与系统提示词均在仓库内实现,只使用 DSH 公开的插件契约(dsh.bundle.patch、dsh.client、exports["./typert"]、Typert Remote、ctx.llm)。

核心功能

输入框「优化」按钮

按钮挂在 conversation.input.right 槽位,位于发送按钮左侧,文案为「✦ 优化」。与 dsh-better-input 的 ✨ 是两套独立按钮,可同时安装。

结构化输出格式

优化结果固定为四段(按用户原文取舍,不臆造):

  1. 一句话定位
  2. 核心功能(通常 3–6 条)
  3. 视觉参考(用户提到时写入)
  4. 设计规范(用户提到或明显必要时写入)

系统提示词要求不丢用户事实、不输出代码块或 JSON,成品可直接粘进输入框发送。

左右对比与三选项

点「优化」后弹出「原文 / 优化结果」双栏对比:

  • 接受:结果写回输入框;快捷键 Ctrl+Enter
  • 重新生成:再请求一版,弹窗保持打开
  • 取消:不改原文;Esc 或点遮罩

优化结果也可单独复制,不必覆盖输入框。出错时弹窗展示原因并支持重试。

Host 调用链

客户端经 remote.promptForge.optimize(text, context, signal) 进入 Gateway,由 PromptForgeService 通过 ctx.llm.prepareCall() 流式生成文本返回弹窗。

安装与启用

推荐用 DSH 自带的 dsh plugin 安装到指定 profile(示例为 desktop):

# Release 预构建包(README 示例版本 v0.1.0)
dsh plugin --profile desktop add https://github.com/ly14278/dsh-prompt-brief/releases/download/v0.1.0/dsh-prompt-brief-0.1.0.tgz

# 或从 GitHub 仓库安装(源码,无需本地构建)
dsh plugin --profile desktop add github:ly14278/dsh-prompt-brief

若包已发布到 npm,也可:

dsh plugin --profile desktop add dsh-prompt-brief

安装后需重启 DSH Desktop(或重启 dsh web)并刷新页面,按钮才会出现。

手动方式(复制到 profile 的 node_modules 并在 dsh.profile.bundles 或 cordis.patch.yml 中挂载)见仓库 README;两种方式勿同时使用,否则会重复插入 entry。

典型用法

  1. 在输入框用口语写需求,不必讲究措辞。
  2. 点「✦ 优化」,等待弹窗展示左右对照。
  3. 满意则「接受」写回后再编辑并发送;不满意则「重新生成」或「取消」保留原文。

README 中的示例:口语输入为「多平台比价、历史低价或区间提醒购买」类想法,优化后会得到带核心功能条目、视觉参考(如值得买、小米商城、Chrome 插件风格等用户侧表述)以及设计规范(配色、圆角、间距等用户原话中的约束)。示例里的品牌与色值来自用户原文,插件不内置品牌预设。

可选配置

在 profile 的 cordis.patch.yml 里为 dsh-prompt-brief 增加 config: 可覆盖模型与限制(均可省略):

- id: dsh-prompt-brief
  name: dsh-prompt-brief
  config:
    provider: deepseek-account     # 留空则用 profile 默认模型
    model: deepseek-flash
    reasoningEffort: off
    timeoutMs: 90000
    maxInputChars: 12000
    extraInstructions: ""

不填 provider / model 时,会依次尝试 profile 的 agent-default-model 与第一个可用 provider 的首个模型。若报「找不到可用的模型」,应在 config 中显式指定 provider 与 model。

适用场景与注意

适合:需要在 DSH 里先把「想法」整理成可交给设计、研发的产品简报,再进入长对话或 Agent 任务的用户;与 dsh-better-input 的单句润色可并存,按是否需要固定四段结构选择。

运行与权限:插件随当前 DSH profile 进程加载,LLM 调用走 profile 已配置的账号与模型;安装前应阅读仓库源码与 MIT 许可证,确认符合本机合规要求。profile 需具备可用 llm 服务(如 @deepseek-ai/dsh-llm 且已登录),否则可能出现「LLM 服务还没就绪」等提示。

排错要点(摘自 README):按钮不出现则检查 package.json 的 dsh.client.inject 与 lib/client.js 是否就绪并刷新/重启;Host 侧改 lib/index.js / lib/typert.js 需完全退出 DSH 再开,浏览器侧改 lib/client.js 一般刷新即可。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文仅介绍该开源插件本身。

结尾

dsh-prompt-brief 把「写清楚需求」收成输入框旁的一步:口语进、结构化简报出,对照确认后再发送。进一步了解实现与卸载步骤,见 GitHub 仓库 README 与 SkillHub 目录页;问题可提交 Issues。

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

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

Xiaoye