Bundle
@dsh-external/dsh-prompt-optimizer
DSH Web 输入框接管(v0.3.8-beta.1 · 复杂任务能力包:细节逐项过关 + 中英双语 · 适用于 dsh-0.1.6-alpha.1):发送前用独立 AI(传话者)把提示词优化成可直接发给工作 AI 的命令(四档强度、按难度定流程长度、按会话隔离、极简迷你窗)
- Source
- WestFox-AwA
- stars
- 44 stars
- License
- BSD-3-Clause
- Updated
- Updated 2 days ago
Readme
# dsh-prompt-optimizer **v0.2.2-beta.1** · 提示词优化器(DSH Web 插件)
> **最新实测(v0.3.1-beta.1 · 同口径 n=2)**:命令侧 10 道复杂题/满分 180 → **169 分(93.9%)**,发布版对照 127 分(70.8%)、无优化 4 分(2.2%);配对 **9 胜 / 0 负 / 1 平**,同格噪声平均极差 0.83 分/18(最大 4)。简单任务回归:复杂包泄漏 **0/4**、命令长度 **0.39×**(比发布版更短)、越权索取流程 0/4。评分卡为 0~3 四档细分、确定性判分(不额外消耗 LLM 调用)。
> **版本能力汇总(0.3.1 → 0.3.8)**:命令侧(10 题/满分 180,n=2)0.3.1 = **169(93.9%,配对 9-0-1)**,0.3.3~0.3.4 = 165(91.9%,噪声内);发布版对照 125(69.2%)。产物级 0~3 分档(三题各 4~6 份):**V3 17/45 = 37.8%(分布 8/2/0/5)· 发布版 0/45 = 0%**。仍未解决:H3 的"假完成"(自检数字与真实几何不一致,3 份样本里 2 份),0.3.8 的 ⑦c 对账要求是针对它的候选对策但**尚未测量**。
> **命令侧子指标(v0.3.4-beta.1)**:命令是否要求"统一自检入口 + 返回结构 + 真实运行输出"—— 同批 60 格:**v0.3.4 三项齐备 100%(20/20)· 发布版 0%(0/20)**;同批总分 91.9% 对 69.2%(配对 9 胜 0 负 1 平,噪声 0.87 分/18)。该子指标衡量"要求是否写进命令",执行侧落地率见产物级指标。
> **H3 可信测量(v0.3.6-beta.1,量具修复后)**:审计并修复反向面网格,两条件各 2 份 —— **v0.3.6 4/6**(1 份满分、1 份"声称修好但实测 24 个内向面")· **发布版 0/6**(0 分两份,其中一份 10 个内向面未修好)。三题合计 0~3 分档:**V3 16/42 = 38.1%(8/1/0/5)· 发布版 0/42 = 0%**。样本小(n=2),仅作辅证。
> **产物级第二主指标(0~3 分档,v0.3.4-beta.1)**:3 = 统一自检入口齐备 + 独立法线审计通过 + 全判据过;2 = 入口 + 审计过;1 = 有入口但审计未过;0 = 无入口。H1/H2/H3 三题各 4 份:**v0.3.4 12/36 = 33.3%(分布 8/0/0/4)· 发布版 0/36 = 0%(12/0/0/0)**;分题 H1 6/12、H2 6/12、H3 0/12(H3 为尚未攻下的前沿)。样本仍小,仅作辅证。
> ### 🌐 [**Read this in English →**](README.en.md)
>
> 跳到英文文档(英文文档顶部同样有回到中文的按钮)
**中文** | [English](README.en.md)
**界面语言跟随 DSH**:DSH 设成中文则全中文,设成英文则全英文(不再只支持中文)。**当前版本适用于 `dsh-0.1.6-alpha.1`**(`0.1.5-rc.1` 亦可运行)。
---
## ⚠️ 请先读这五点(作者郑重声明)
1. **本插件目的是优化提示词**,节省因为书写提示词而消耗的时间,并帮助用户更准确地传达意思;**本质上是让 AI 可以多一步自我规划、约束**。
2. 本插件在 **DeepSeek-V4.1-Flash** 这种**能力较强、但发挥受提示词影响严重**的大模型上有**明显作用**。
3. 本人**仅使用此插件测试过部分 OneShot 类型**的任务。本 README 第七节给出的实测数字,都是**特定测试题 + 特定评分卡**上的结果,**不代表你的任务也一定提升**;**建议对此插件的实际作用持保守意见**。
4. 本插件**完全开源**,支持**任何人、任何形式**使用并修改此插件,也**欢迎提出建议,以及各种测试**。
5. **语言与兼容性**:界面**已支持中文与英文**(跟随 DSH「设置 → 通用 → 语言」,`zh` / `en` 即时切换);**当前此插件版本(v0.2.2-beta.1)适用于 dsh-0.1.6-alpha.1**。升级 DSH 前请先看 [DSH-COMPAT.md](DSH-COMPAT.md);该文档记录了接口核对、升级步骤与升级后的逐项验收结果。
---
## 🆕 更新介绍(What's new)
### v0.3.0-beta.1 —— 本版:复杂任务能力包(细节逐项过关)
- 复杂任务(一次性搭大场景、精细可驾驶模型、数据迁移、并发、性能预算)命中域信号后,命令里必须逐条给出该域的**失效模式检查**:法线朝向与可见面、坐标与单位、碰撞与网格一致、输入映射与反馈、可恢复与可配置、幂等与回滚、并发去重与锁顺序、边界数据、性能预算与画质。
- 外加:现象量化(数值审计 + 视觉对照两条路)、全局验收场景、不得降级清单、范围边界与回退方式、判定标准与证据形式(没有证据不算完成);**细节要求不得变成流程开销**(是否建 goal/todo 仍只由流程规则决定)。
- 实测(8 道复杂题 × 2 次采样 = 48 格):**无优化 2.1% / 发布版 69.8% / 本版 92.0%**(满分 144 → 132),配对胜 7 负 0 平 1,噪声 ±0.75 分/18,全程 230 秒;简单任务回归 0 泄漏、长度 1.11×。数据与复现见 PROMPT-OPTIMIZATION.md 第九节。
### v0.2.2-beta.1 —— 国际化 + 两个真实缺陷修复
**1. 界面国际化(本次主功能)**
- 插件 UI **全部支持中/英双语**:控件行、上下文滑块与「回合 / 全文」按钮、模型弹层、迷你窗(含按钮与状态行)、帮助面板、通知提示、署名行。
- 语言**跟随 DSH 设置里的语言**(`zh` / `en`),切换即时生效,无需重启;读不到语言服务时按中文兜底,漏翻的文案会原样显示中文,**不会出现空白**。
- **产出语言也跟随你**:英文原话 → 通篇英文命令(含小标题与清单项,不中英混排);中文原话 → 中文命令。
**2. 修掉两个"把活推回给用户"的缺陷**(提示词层,来自真实使用反馈)
- ① 项目事实未知(哪个文件、哪个函数)原先被写成"**停下并等待用户确认**" —— 这是错的:该查的应当自己查。现在明确区分**项目事实未知**(自己去查,查不到就带着检索结论继续推进)与**用户意图未知**(才允许问)。
- ② 过度把设计选择退给用户:原先会一次抛出**7 条确认清单**。现在改为**能定的自己定**(并写明取舍),该问的**最多 1~2 条**且必须带推荐默认值,同时给出"查不到也要能推进"的兜底路径。
**3. 修复"提示词相对 0.1.1 反而退化"**(用户报的,实测确实存在)
- 把「实质优先」段重新前置、合规规则精简后置:普通档 1319 → 1172 字符,高级 1857 → 1815,极端 1877 → 1813 —— **更短,且在配对比较中更强**(见第七节)。
**4. 修复放行/回退后自动补发第二条**(会话里显示为「排队发送」)
- 运行一旦被用户终结(放行 / 回退)就带终态标记,自动发送与完成分支都会跳过;放行时同时中止后端运行。
> 更早的 v0.1.9 起还包含:上下文双模式(回合 0~10 / 全文开关)、扁平化极简底栏、以及 DSH 0.1.6 的历史读取适配(会话事件投影 + 一次性播种)。
> 完整逐条记录见 [CHANGELOG.md](CHANGELOG.md);提示词层的逐条改动(位置 → 原文 → 新文 → 意图 → 证据)见 [PROMPT-OPTIMIZATION.md](PROMPT-OPTIMIZATION.md)。
---
## 它做什么
你在输入框按回车的那一刻,消息**不会**直接发出去 —— 先由**另一个 AI(传话者)**把它整理成一条**可以直接发给工作 AI 的命令**,你看到满意结果再决定发送。
- 角色是**传话**,不是陪聊:优化 AI 明确知道自己是"把用户的意思转达给工作 AI",**不回答你、不替你干活、不向你提问**;产出是命令正文本身(没有「优化后的提示词 / 改动说明」这类元话语),可原样发给下游 AI。
- 优化用的模型、档位、权限都**与对话本身独立**,不会动你的对话模型。
- **档位与权限按会话独立**:在 A 会话调到「极端 + 自动」,B 会话不受影响。
- 迷你窗**按会话隔离**:A 会话触发的窗,切到 B 不会冒出来;切回 A 若还挂着(等你决定)会原样回来。
- **按难度决定"开发长度"(编排强度)**:优化 AI 会先判强度,并把结论与依据写进命令里 —— **轻**=直接改完跑验证即可、明确"不要建 goal/todo、不要写计划";**中**=先列 3~6 条 todo、按顺序做、做完逐条勾掉;**重**=先建立 goal(一句话目标 + 可观测验收)、分阶段推进、每阶段先验证再进下一阶段。命中高危信号(不可逆/难回退、动数据 schema 或持久化数据、权限密钥、发布上线、对外接口兼容、跨模块、没有现成测试能验证)时不得停留在"轻";**没命中就不许升档,也不许因为描述长、字数多而升档**。
- **约束写成可判定的硬要求**:必须做 / 不得做 / 做完必须满足的判据三类分明,每条硬约束都带"违反时怎么处置",命令里不出现"尽量/最好/建议"这类可被绕过的软措辞。
作者:**啃轮胎的西狐** · 版本 **0.2.2beta1** · 版本日期 **2026/09/15**(插件内 `?` 面板最底部也有同样署名)
📦 **下载**:本仓库的 [Releases](https://github.com/WestFox-AwA/dsh-prompt-optimizer/releases) 提供可安装的 `.tgz` 包(`npm pack` 产物,安装方式见下一节)。
---
## 一、安装
### 方式 A:像安装其它 DSH 插件一样(推荐)
两步:先把包装进 profile,再把包名登记为 bundle 层。
```bash
# 1) 装包(GitHub 仓库 / tarball / 本地目录都行)
dsh plugin --profile web add github:WestFox-AwA/dsh-prompt-optimizer#v0.2.2-beta.1
dsh plugin --profile web add ./dsh-external-dsh-prompt-optimizer-0.2.2-beta.1.tgz
# 2) 在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 里加一行:
# "@dsh-external/dsh-prompt-optimizer"
```
重启 DSH 即生效。**为什么还要改 bundles**:`dsh plugin` 只是把参数转发给 pnpm(只负责安装),而"哪些包作为 bundle 层参与装配"由 profile 的 `dsh.profile.bundles` 决定。本插件自带 `cordis.patch.yml`,会在装配时把自己的 entry 插进根条目表 —— 与 `@dsh-external/dsh-super-injector`、`@dsh-external/dsh-graded-mode` **完全同一写法**。
### 方式 B:不动 bundles,用 profile patch 插入
不想改 `dsh.profile.bundles` 时,也可以直接在 profile 的补丁层插一条 entry:
```yaml
# ~/.dsh/profiles/web/cordis.patch.yml (顶层 YAML 数组)
- insert:
- id: prompt-optimizer
name: '@dsh-external/dsh-prompt-optimizer'
config: {}
```
包本身仍需可解析(`dsh plugin add` 装好,或手工放好 `node_modules` 软链/junction)。
> ⚠️ **方式 A 与方式 B 只能选一种**:两种都做会让同一条 entry 插入两次,启动时报 `duplicate loader entry id`。
### 验证安装
```bash
dsh --dump-config --profile web | grep -A2 'id: prompt-optimizer' # 装配树里有它,且只有一条
node -e "console.log(require.resolve('@dsh-external/dsh-prompt-optimizer',{paths:['<profile 目录>']}))"
```
### 运行要求
- **DSH Web**(`dsh web`;本插件只在 web 平台提供 UI)。
- 至少一条可用的 LLM 路由(优化默认跟随当前会话模型;也可在插件的模型胶囊里单独指定)。
- 插件本身**零运行时依赖、无需构建**(`lib/` 里就是可直接运行的 JavaScript)。
---
## 二、30 秒上手
1. 在输入框正常打字,按 **Enter**(或点发送)。
2. 消息被拦下,右下角弹出**迷你窗**,里面有两栏:**思考**(优化 AI 的推理过程,带本次思考 token 数)与**产出**(给你要发的那条命令)。
3. 权限为 **需要审查** 时:可以直接编辑产出文本 → 点 **确认提交** 发出;不满意就 **重新生成**(会让你先填一个方向)。
4. 权限为 **自动输出** 时:优化一完成就自动发出,无需操作。
5. 不想优化了:点 **‹ 回退**(停优化 + 关窗 + **不发消息** + 原文留在输入框),或点 **放行本条** 直接按原文发出。
> 输入框左侧的控件,从左到右是:**优化档位**(滑块)、**优化权限**(滑块)、**上下文**(滑块 + 右侧贴着「回合 / 全文」转化按钮)、**优化模型**(胶囊),再右边是 **使用帮助(?)**。点 `?` 有同样的简明教程 + 署名。
---
## 三、控件怎么选
| 控件 | 取值 | 说明 |
|---|---|---|
| **优化档位** | 关闭 / 普通 / 高级 / 极端(英文界面:**Off / Low / High / Ultra**) | 关闭=完全不拦截,恢复原生发送;普通=只把话说清楚(约 3 秒);高级=**先自己把事推一遍**,再把必要假设、步骤、边界与验收标准写成要求(约 20 秒);极端=读项目真实结构(只读,不写盘)+ 按难度决定是否建 goal/分阶段,命中不可逆/发布类信号才给多情况预案(约 20 秒) |
| **优化权限** | 需要审查 / 自动输出 | 审查=产出可编辑,点「确认提交」才发;自动=优化完成即自动发出(**失败也会按原文发出**,绝不静默吞消息) |
| **上下文** | 回合 **0~10** / 全文 **关 / 开** | 滑块右侧那枚按钮点一下换一态:**回合**=读入最近 0~10 回合,只带你的原话(工作 AI 的回复只留长度与工具次数,防止它的方案/口吻被当成你的意图),总预算 1.2 万字符;**全文**=把工作 AI 现在看到的完整上下文(双方全文)交给优化模型,只有关/开两档,总预算 6 万字符。两种模式超限都**按整回合丢弃最早的**,绝不截断单条约束。 |
| **优化模型** | 任意 provider/模型 | 只影响优化,不动对话模型;弹层里会标出「会话当前」模型;某家 provider 连不上会被标注「不可达」,不会拖慢整张列表 |
| **界面语言** | 中文 / English | **跟随 DSH 设置里的语言**,插件内不单独设置 |
> **想要发挥插件所有能力且自动化,建议【极端】+【自动】。**
>
> 上下文要用哪种?**平时用「回合 0~3」**(省 token、够用);**需要它理解"现在聊到哪了"时切「全文 → 开」**(对齐工作 AI 的上下文,代价是每次多花几万字符)。
---
## 四、迷你窗
- **可拖动**:按住标题栏拖。
- **可改尺寸**:拖右下角手柄,尺寸会**记住**(下次开窗沿用)。
- **不会跑丢**:窗口缩小/切换会话后再打开,会自动夹回可见区域。
- **按会话隔离**:窗口属于触发它的那个会话。
- **关键按钮永不消失**:底部是**常驻操作栏**(确认提交 / 重新生成 / 回退 / 放行 / 重试),不随内容滚动,窗口再小也点得到;窗口很矮时会自动压缩内容区。
- **思考 token 计数**:状态行显示本次总用量(如 `Σ 1.1k tok`),「思考」标题右侧显示**思考消耗的 token**(provider 不上报时显示 `— tok`),「产出」标题右侧显示输出 token,旁边还有字数。
---
## 五、常见问题
| 现象 | 原因 / 处理 |
|---|---|
| 按回车没反应,消息也没发出去 | 说明已进入优化流程,看迷你窗的进度;若窗口不在视野,切到该会话即会出现 |
| 优化很慢 | 高级/极端档需要 20 秒左右(极端档还会读项目结构)。想快就用**普通档** |
| 提示"优化模型不可用 → 已按原文发出" | 所选模型连不上(例如本机 `ollama` 未启动)。插件会**自动回退到会话默认模型**,下次用默认模型 |
| 想临时不用 | 把**档位**滑块拉到最左「关闭」 |
| 弹层里某家模型标「不可达」 | 该 provider 当前不可用(未启动/无权限),不影响其它模型 |
| 界面能换英文吗 | **能**。跟随 DSH「设置 → 通用 → 语言」:选中文则全中文,选英文则全英文,切换即时生效(v0.2.2-beta.1 起) |
| 点了「放行本条」/「确定回退」,消息却又自动发出了一条(在会话里显示成「排队发送」) | 这是 **0.1.9 修掉的缺陷**:放行/回退后,迟到的"优化完成"事件仍会走自动发送,补发了第二条。现在运行一旦被用户终结(放行/回退)就带终态标记,`autoSend` 与 `done` 分支都会跳过;放行时还会同时中止后端运行。请升级到 **0.1.9beta1** 及以上 |
| 命令里老是让我先建 goal / 列 todo,太啰嗦 | 这是**按难度判定**的结果:只有多点改动或命中高危信号才会要求建目标/分阶段;单点小改应当只给一句命令 + 一句完成标志。若简单任务被过度编排,请把该条输出发我 —— 判定用例与规则见 `PROMPT-OPTIMIZATION.md` |
| 命令里反问我"请确认用哪个文件",明明它自己查得到 | 这是 **v0.2.1-beta.2 修掉的缺陷**(把"项目事实未知"误写成"停下等用户确认")。请升级;若仍出现,把该条输出发我 |
---
## 六、卸载
```bash
dsh plugin --profile web remove @dsh-external/dsh-prompt-optimizer
```
若用"方式 B"安装,请同时删除 `cordis.patch.yml` 里那条 `insert`。插件设置存在 `~/.dsh/prompt-optimizer.json`(档位/权限/模型/上下文模式/迷你窗尺寸/按会话设置),如需彻底清理可一并删除。
---
## 七、实测数据与证明(不吹嘘)
**测量方式**(全部为宿主内一次性测量台,不进产品代码;脚本在 `evidence/`,可复现):
```
题目(用户原话) --relay 优化--> 命令 --solve 执行--> 执行 AI 的回答 --judge 评分--> 分数
```
- 固定执行 AI 与固定评分卡,每道题跑同一批条件;**判分时不给评分员看条件标签**(盲评)。
- **命令侧**:优化器产出的命令本身注入了多少实质要求,每题满分 5 分。
- **答案侧**:执行 AI 回答质量,每题满分 10 分(严格 0/1/2 逐点评分)。
- **单格噪声**实测 ±1 分(命令侧)/ ±2 分(答案侧),所以关键结论用**重复采样**(n=2~4)并如实标注落在噪声内的差异。
### 命令侧(4 道题,满分 20)
| 条件 | 高级档 | 极端档 |
|---|---|---|
| 无优化(对照) | 4 | ≈4 |
| 0.1.1 旧提示词 | **19** | **18.7**(n=2~3) |
| 0.1.9 退化版 | **16** | **15.3**(n=2~4) |
| **0.2.1 修复后(现版基线)** | **18** | **18** |
- 退化是**真实存在**的(极端档 18.7 → 15.3),不是主观感受;修复后回到 0.1.1 水平或更好:**极端档在 10/10 次配对比较中 ≥ 退化版**(符号检验 p≈0.001)。
- 四档都测过:**关闭**=无优化对照(4/20,说明优化确实带来变化);**普通**=按设计只做语言层修复、不新增需求,故不参与"实质注入"比较。
### 答案侧(3 道硬题,满分 10)
| 条件 | T5 条件概率陷阱 | T6 物理量级估算 | T4 工程题 |
|---|---|---|---|
| 无优化 | 8 | 4~5 | 9 |
| 0.1.1 旧 | 10 | 9 / 7 | 9 |
| 0.1.9 退化版 | 8 / 10 | 9 / 9 | **4** |
| 0.2.1-beta.1 | 10 / 10 | 10 / 9 | **4** |
| **0.3.1(先防后查)** | **93.9%** | **169/180** | **9 胜 0 负 1 平** |
**必须一起读的四条限制**(否则会高估这些数字):
1. **极端档 T4 的低分(1~6/10)是测量台局限,不是提示词缺陷**:台里的执行 AI 没有文件系统/命令工具,而命令要求它"先扫工作目录",于是它只能停下。该命令本身经逐字检查是全场质量最高的,因此这一格不计入结论。
2. **答案侧在强模型上会饱和**:不少格"无优化"也能拿高分(例如 T4 的 9/10),所以答案侧的区分力**弱于**命令侧。
3. **样本量有限**:多数格 n=1~3,单格 1~2 分的差异属于噪声;本文只把"方向一致 + 活跃路径可见"的差异当作结论。
4. 以上数字来自**特定 4~7 道题**(条件概率陷阱、量级估算、工程改造等),**不能外推到你自己的任务**。
**复现入口**:`evidence/prompt-snapshot.cjs`(导出任意版本的三档提示词快照)、`evidence/prompt-invariants.cjs`(约束闸门:30 条正向 + 4 条反向断言,含 v0.2.2 新增的「输出语言跟随用户原话」)、`evidence/lab-build.cjs` / `lab-ans.cjs`(测量台)、`evidence/lab-ship.cjs`(结果汇总)。改提示词前先跑闸门,失败即回退。
**产物级验证(单文件 HTML,独立审计,不依赖浏览器)**:H1 法线盒体 / H2 操控 / H3 审计并修复反向面,**两条件各 7 份产物** —— **发布版 5/7 = 71.4% · v0.3 5/7 = 71.4%(打平)**;H1、H2 两条件**全部通过**(独立审计 `inwardFaces` 全为 0),H3 各 2/4,四份失败**全是"接口未暴露到全局"**(属执行 AI 的接口一致性,命令侧 4/4 都已要求)。**产物级目前不区分两个条件**,有区分度的是命令侧。验证器自证:正确夹具 15/15 PASS、绕序反转夹具 FAIL 且 `inwardFaces=12`。一键复跑:`node evidence/artifact-check.cjs`。
**产出语言跟随你(真跑实测,非模拟)**:走宿主生产路径各跑一条 —— 英文输入 `Add a rate limiter to the login endpoint.` → 产出全文 **3511 字符、中日韩字符 0**、首行 `First locate the login endpoint: …`;中文输入 `给登录接口加一个限流。` → 1353 字符、中日韩 **1037**(占 0.766)、首行 `任务:给登录接口加限流。`(`evidence/lang-probe.cjs` + `lang-probe.json`,统计基于全文快照而非 4000 字截断)。
---
## 八、实现要点(给想改代码的人)
- **两个半边**:`lib/index.js`(宿主:提示词部件化组装与传话框架、只读工具循环、SSE 流式运行、模型目录、状态落盘、HTTP 路由)+ `lib/client.js`(浏览器:控件行、模型/帮助弹层、迷你窗、捕获阶段拦截回车与发送按钮)。
- **提示词是部件化组装的**:`RELAY_IDENTITY` → **实质优先** → 档位正文 → `FACT_RULES` → `OUTPUT_CONTRACT` → `PROCESS_RULES`,历史纪律按运行时的**回合 or 全文**模式二选一注入(`buildSystem(tier, { historyMode })`)——同一句规则只有一份,改一处全局生效。现版长度:普通 1405 / 高级 2424 / 极端 2422 字符。
- **i18n 实现**:客户端读取 DSH 的 `locale` 服务(`getSnapshot().active` 为 `zh` / `en`)并订阅变化;文案表 `EN_TEXT` 以**中文原文为键**(179 条),查不到即原样返回中文,因此漏翻只会显示中文、**不会显示空白**;语言服务不可用时按中文兜底。
- **拦截是捕获阶段**在 `window` 上做的(早于 React 与编辑器自身处理):`Shift+Enter` 换行、`/` 命令、空草稿、仅附件、输入卡片之外的回车一律放行。
- **不改动官方发送链路**:确认发送时用官方 `inputActions.setDraft()` + `submit()`,与手动发送完全同一条路。
- **自检**:`evidence/` 下有可复现的自检(`range-demo` 滑块、`help-demo` 帮助面板在视口内、`i18n-demo` 强制 `en`/`zh` 双语断言);`ACCEPTANCE.md` 是逐格验收清单;`evidence/*.jsonl` 是机器留痕(客户端 beacon、遥测、对照数据)。
---
## 九、隐私与边界
- 优化请求只发送**你的输入文本**,以及(高级/极端档)**当前项目的目录树摘要与关键文件名**;极端档的只读查证限定在项目根目录内,不写盘、不执行命令。
- 上下文模式按你的设置读取**本会话**的历史:回合模式只带你的原话;全文模式带双方全文(受 6 万字符预算约束,超限整回合丢弃)。
- 迷你窗默认不发送任何消息:只有「确认提交」/「自动输出」/「放行本条」三条路径会把内容交回官方发送链路。
- 本插件为客户端 + 宿主本地插件,不引入任何第三方服务。
---
## 十、许可与协作
**BSD-3-Clause**。完全开源:**任何人、任何形式**使用与修改都欢迎;也欢迎提 Issue、提 PR、以及各种测试反馈。见 [LICENSE](LICENSE) 与 [CHANGELOG.md](CHANGELOG.md)。
Install
dsh plugin --profile web add github:WestFox-AwA/dsh-prompt-optimizer
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-external-dsh-prompt-optimizer from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.