dsh-pua-receipt:给 `/pua` 施压加上可复核的回执

前言

在 DeepSeek Harness(DSH)里用 /pua 给 agent 施压时,常见困境是:聊天记录看起来「有反应」,却无法区分 agent 是真的换了做法(例如开始跑测试、查 diff),还是只换了一段更客气的说法再把同一件事重做一遍。原版 PUA 类插件提供话术与可选循环施压,但没有效果度量。

dsh-pua-receipt(维护者 dingchenhui0618-arch)在每次 /pua 前后各观察 N 个完整模型步,统计工具调用、验证类步骤、重复调用等指标,写出三分类回执,并在当天按话术聚合排行。它不证明因果,只把「这句话有没有让 agent 换做法」变成可复核的前后差异。

这是什么

dsh-pua-receipt 是 DSH 社区插件,灵感来自 michengai/dsh-pua 的产品思路,但为独立实现(MIT 许可,未复用原版代码)。核心定位:每次施压都是一次小实验——记录施压前最后 N 步与施压后接下来 N 步,窗口走满后生成回执,会话内可复查,本地 JSONL 持久化。

与原版 dsh-pua 的差异

原版 dsh-pua dsh-pua-receipt
核心能力 15 套公司话术,可选循环施压 同样是施压,但每次产出可对比的前后指标
效果度量 无 前 N 轮 vs 后 N 轮:工具调用、验证类步骤、重复峰值、失败调用、文本量
判定 无 改变了做法 / 只是重述 / 无变化,附证据说明
排行 无 按话术聚合「改变了做法」次数与验证提升
数据 话术与循环状态 回执写入本地 JSONL,面板与 /pua rank 可复查

本项目 15 条中文话术写在 src/library.js,非复制原版文案。

核心功能

窗口与「一轮」的定义

一轮 = 一个完整模型步(一次模型请求到该步结束;一步内可有多次工具调用)。默认观察窗口 N = 3,可用 /pua --rounds 5 调整(范围 1–12)。

  • 前窗:执行 /pua 时会话里最后 N 个已完成的步;不足 N 个时回执标为「部分」。
  • 后窗:施压消息进入后接下来 N 个已完成的步;会话提前结束则标「证据不足」,不进排行。

统计与验证类步骤

每个窗口统计:工具调用数、验证类步骤数、重复调用峰值、失败调用数、助手文本长度。验证类步骤采用启发式分类,例如测试/构建/lint(npm test、pytest、eslint 等)、差异与哈希(git diff、sha256sum 等)、CI 与健康检查(gh pr checks、对 localhost 的 curl 等)、读测试/日志/覆盖率或查看截图。误判可能存在,README 未将其包装为语义级精确识别。

三分类判定

窗口走满后按规则顺序判定(逻辑在 src/metrics.js):

  1. 改变了做法:后窗仍有动作,且满足验证类步骤增加、重复峰值下降、出现前窗没有的新工具且动作量未减、或失败调用从 ≥2 次下降等条件之一。
  2. 只是重述:后窗动作量 ≤ 前窗的 25%,但助手文本 ≥20 字。
  3. 无变化:以上均不满足。

排行与面板

同一天、同一话术的所有完成回执聚合后排序:优先「改变了做法」次数,其次验证类步骤正增量总和,再次施压次数。排行表示「这句话之后观察到行为改变了几次」,不是因果 KPI。

对话视图提供「回执」Tab:今日计数、进行中实验、今日排行、回执列表(含前后指标与证据)。

安装与启用

插件要求 DeepSeek Harness 0.2.x(engines.dsh 为 >=0.2.1-rc.2 <0.3.0),Node >=22。插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT 许可证。

桌面版:打开「插件」→ 安装 → 选择本插件目录。desktop profile 由 Electron 独占,命令行加 --profile desktop 会被宿主拒绝。

Web / CLI:使用仓库作为安装源,或执行:

dsh plugin --profile <你的 web profile> add github:dingchenhui0618-arch/dsh-pua-receipt

lib/ 为入库构建产物,安装时无需联网构建。装好后重启 DSH,对话视图出现「回执」Tab;/pua 由 host 半区注册。

DSH 生态理念是「一切皆插件」;社区目录页 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。

典型用法

命令 作用
/pua 施压一次,自动轮换话术,默认观察后 3 轮
/pua 7 使用第 7 条话术
/pua evidence 按 id 或语气选话术(/pua list 查看全部)
/pua --rounds 5 这次观察 5 轮(1–12)
/pua status 当前实验进度
/pua receipts 最近 5 张回执
/pua rank 今天的按句排行
/pua list 15 条话术
/pua off 取消当前实验(回执标记「已取消」,不参与排行)

一次典型回执示例(格式来自 README):

【PUA 回执 rk3f9c2】
「先别解释,把证据拿出来。」
判定:改变了做法(窗口 3/3 → 3/3 轮)
前:工具 12 · 验证 0 · 重复峰值 4
后:工具 9 · 验证 3 · 重复峰值 0
Δ:工具 -3 · 验证 +3
依据:验证类步骤 0→3;重复调用峰值 4→0。后窗确实换了做法,但不证明是这句话导致的。

数据与隐私

回执追加写入 $DSH_HOME/pua-receipts.jsonl(默认 ~/.dsh/pua-receipts.jsonl)。每条仅保存时间、话术 id/文案/语气、窗口轮数、聚合计数、判定与证据句;不保存工具参数、命令原文、文件内容、模型回复正文或 session id。插件不发网络请求。

适用场景与注意

适合需要在开发会话里反复试压话术、并希望用前后指标而非主观印象判断「有没有推动 agent 换做法」的 DSH 用户。

务必理解插件不做什么:不证明因果;「只是重述」识别不保证准确;验证类步骤增加不等于测试通过;窗口不满或宿主拒收时会标「证据不足」「已取消」或报错,不会伪造结论。

结尾

dsh-pua-receipt 把每次 /pua 变成可复核的小实验:前后 N 步指标、三分类回执与当日话术排行,帮助你在不依赖聊天记录主观感受的前提下,对照 agent 是否真的换了做法。

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

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

Xiaoye