dsh-ikun-pet
August 15, 2026 · View on GitHub
DSH 每次回答问题的 Deep diving 期间,插件在「Deep diving...」状态行下方的整行区块渲染:
- 坤宠动图(
assets/spritesheet.webp,沿进度条行走) - 进度条:
0% → 100% - 每 20% 切换一档:动图动作与文案同步变化
档位 → 动作 → 文案
| 进度区间 | 动图动作(精灵图行) | 文案 |
|---|---|---|
| 0% – 20% | waiting(第 6 行 · 期待) | 深潜启动!准备出发… |
| 20% – 40% | runRight(第 1 行 · 向右跑) | 正在收集线索… |
| 40% – 60% | working(第 7 行 · 专注干活) | 埋头苦干中… |
| 60% – 80% | review(第 8 行 · 思考审阅) | 认真思考中… |
| 80% – 100% | wave(第 3 行 · 挥手) | 快好啦!马上见结果~ |
| 100%(完成) | jump(第 4 行 · 跳跃庆祝) | 完成啦!你干嘛~哎哟 |
进度策略(v1.2 · 通用自适应模型)
DSH 的回合没有真实百分比总量,插件采用分层估算,真实信号优先、时间模型兜底:
| 层 | 信号 | 说明 |
|---|---|---|
| 锚点 | 回合开始 / 结束 | 0% 与 100% 永远真实,100% 只在真正完成那一刻出现 |
| 真实进度 | goal 回合进度 | 目标模式开启时,按 已进行回合数 / 目标回合上限 直接给出真实百分比(Host RPC 每 2s 同步) |
| 自适应预期 | 本会话历史回合时长 | 取最近 8 个回合时长的中位数作为预期时长(自校准:短任务快跑、长任务慢跑),无历史时默认 45s |
| 活动调速 | 工具调用 / 流式输出 / 等待 | 工具执行 ×1.8、流式输出 ×1.2、等待用户审批/回答 ×0.05(诚实减速,不会在你阅读时涨满) |
| 收缩保留量 | 完成保留量 | 封顶从 88% 起,跑得越久越接近 98%,永不假 100%、也永不卡死 |
进度计算(每个 200ms 刻度):
$ \text{timeP} = 100 \times (1 − \text{e}^(−\text{workTime} / \text{tau})) # \text{tau} = \text{expected} / 3 \text{workTime} += \text{dt} \times \text{pace} # \text{pace} 随活动信号变化 \text{goalP} = \text{roundsStarted} / \text{maxGoalRounds} \times 100 # 真实信号 \text{reserve} = \text{max}(2, 12 \times \text{e}^(−\text{elapsed} / (2 \times \text{expected}))) \text{progress} = \text{min}(100 − \text{reserve}, \text{max}(\text{timeP}, \text{goalP})) # 单调不减 $
- 完成后停留 1.8s 播放跳跃庆祝动画(进度条变成功色),随后整块退场
- 完成瞬间由宿主进程用系统命令播放
assets/voice.mp3(「你干嘛~哎哟」), 与浏览器静音无关;可用CONFIG.playVoiceAtDone/playCommand开关或更换播放器
全部模型参数集中在 src/client.js 的 MODEL 常量中,可直接修改。