Перейти к основному содержимому
H

dsh-logos-forge

hua-1111/dsh-logos-forge

Prompt forge for DeepSeek Harness: one draft becomes three parallel rewrites, read for intent first and scored blind by the model, with the sentences each version added highlighted — then bind one back into the composer.

Установка

dsh plugin --profile web add github:hua-1111/dsh-logos-forge

README

言灵炼成阵 · Logos Forge

一稿三体,盲评择契。 Three forgings of one draft, judged blind.

一个给 DeepSeek Harness 用的提示词优化插件:同一份草稿并行生成三个取向不同的版本,再让模型在不知道版本来源的情况下评分排序,最后由你采用其中一版写回输入框。

A prompt-optimization plugin for DeepSeek Harness: one draft goes in, three differently-aimed rewrites come out in parallel, and the model scores them blind before you apply one back into the input box.


为什么不是「一键优化」

单结果工具只能告诉你「这是改好的版本」,却回答不了「哪一版更好」。所以这里是:

常见做法言灵炼成阵
输出一版三版并行(通用增强 / 精简 / 结构化)
挑选自己看盲评:模型不知道哪版是哪种策略,按清晰度、完整度、可执行性打分并排名
对比前后两栏三栏并置 + 句级新增标注(绿色为新增句)
回填替换全文只替换输入框草稿,可撤销;不发送
意图各写各的先侦察再分头写:先推断你要什么(目标 / 必须保留的事实 / 隐含要求 / 要写明的假设),三版和裁判共用同一份意图

盲评的意义在于防偏:三版以随机的列序呈现,评分用的只有 A / B / C,策略名在打分完成后才揭示。你自己的偏好也不会被「结构化」这种标签先入为主。

意图侦察(intent-scout)解决的是另一半问题:三个流若各猜各的,产出的差异只是文风差异,不能比较。所以每次优化前先做一次小调用,把草稿读成结构化意图;随后三版都按同一份意图写,裁判也按同一份意图打分。改写规则同时禁止「向执行者提问」和「留下待填空」——缺信息就选一个合理默认值并写成一行显式假设,而不是把一个 <待确认> 丢给下游。

怎么用

  1. 在输入框写下草稿(不需要发送)。
  2. 点输入框左侧的按钮 ✦(conversation.input.left 槽位)。
  3. 面板自动开始:顶部先出现一行「意图」(推断出的目标与假设条数),随后三栏同时流出文字,原始草稿可折叠。
  4. 评分回来后:最佳列描边、显示评分(0–100)与三维分项,底部给出评语。
  5. 点任意一栏的「采用」,或按 Ctrl/Cmd + Enter 采用最佳;Esc 关闭。

切换「标出新增 / 纯文本」可以看模型到底加了什么,而不只是变了什么。

几个省事的细节:

  • Alt + O 在任意位置开关面板,不用先摸鼠标;Tab 只在面板内循环,不会跑到背后的输入框。
  • 同一份草稿重开不花钱:面板会记住上次的结果,再点按钮立刻原地还原(标题后出现「上次结果」),想换一批再按「重新生成」。草稿改过了才重新调用模型。
  • 「重新生成」不重复猜意图:草稿没动过就不重新侦察,直接按已知意图重跑三版——省一次调用。
  • 意图猜歪了自己改:面板顶上那条「意图」右边有『改意图』。侦察把目标判偏了(例如把「顺手修个登录 bug」读成重构),就地改目标、类型、必须保留、假设、卡点,按『按此重炼』——这次不再重新侦察,直接按你写的意图重跑三版。
  • 首页也能用:还没选工作区时面板照样开、照样改写,只是「采用」写进的是你接下来打开的那个工作区的草稿,所以会在按钮上方提示一句去哪儿看。
  • 采用后有回执:面板关掉的同时,按钮上方会写清「已采用 壹 结构化 · 新增 15 句」,不用再点开确认。
  • 复制:每栏除了「采用」(写回输入框),还有「复制」,方便把结果拿去别的工具。
  • 某栏不合意就单栏重炼:每栏底部的「重炼」只重跑这一版,然后只做一次重新评分,另外两栏一个字都不动——花的是「一次改写 + 一次打分」,不是重跑三版。
  • 数字键 1/2/3 采用对应版本:Ctrl/Cmd+Enter 采用最佳,1/2/3 直接选你看着顺眼的那一版;光标在输入框里时按数字仍然是打字。
  • 连接抖动自动重试一次:还没收到第一个字就断的话,面板自己重来,不弹错误让你再点一次。
  • 钱花在哪看得见:底栏写着这个面板累计用掉的 token 与模型调用次数(意图侦察 + 改写 + 评分)。数字来自模型接口回报的用量;旧版宿主不发这个字段时,这一行自动不显示。

安装

dsh plugin --profile desktop add dsh-logos-forge        # npm 发布后
dsh plugin --profile desktop add github:hua-1111/dsh-logos-forge  # 直接从 GitHub

或者本地开发态:

node install.mjs            # link: 进 ~/.dsh/profiles/desktop
node install.mjs --uninstall

客户端改动刷新页面即生效;宿主侧(lib/)改动需要完整重启 DeepSeek Harness。

想把它提交到插件市场?见 market/README.md——索引仓库收的是一行 YAML,不手改 README。

它怎么工作

  • 宿主(lib/index.js):在本地 web 服务上挂 POST /logos-forge/forge,用 NDJSON 把三个并行流一起推给浏览器;打分复用同一路由。模型取自当前会话的默认选择(agentDefaultModel),不额外配置密钥。每次炼成先用一次小调用做意图侦察(scout),把 brief 同时喂给三路改写与裁判。
  • 客户端(client/client.js):注册 conversation.input.left 槽位,读写通过 conversation.input 服务完成;弹窗用 createPortal 挂到 document.body,配色全部走 --dsw-* 主题变量,深浅色自动跟随。

流帧形状(给自己写插件的人参考):

{"variants":3}
{"brief":{"genre":"debug","goal":"修复登录超时并补上测试","mustKeep":["src/auth/session.ts"],"implicit":["先复现再改代码"],"defaults":["超时阈值按 30s 计"],"blocking":""}}
{"v":0,"delta":"..."}          // 三路交错到达
{"v":0,"done":true}
{"scores":[{"v":0,"total":87,"dims":{"clarity":9,"completeness":8,"actionability":9},"note":"..."}]}
{"ranking":[2,1,0]}
{"verdict":"..."}
{"reveal":["improve","structure","concise"]}   // 打分之后才揭示策略
{"done":true}

brief 帧是尽力而为的:侦察失败(超时、返回非 JSON、模型抛错)只少这一行,三版与盲评照常进行。

兼容性

在 dsh 0.2.0-rc.2 上开发与验证(engines.dsh 同)。按钮挂在 conversation.input.left 槽位;该槽位缺失时自动退到 conversation.input.right。宿主改动需重启,客户端改动刷新即可。

隐私

草稿只在你自己的 DeepSeek Harness 里流转:浏览器 → 本地宿主进程 → 你配置的模型供应商。没有任何第三方中转,也不写盘。

许可

MIT

Похожие плагины