1938 字
10 分钟
dsh-plugin-NoLetMe
2026-08-19
Human Participation
Yuer6327
/
NoLetMe
Waiting for api.github.com...
00K
0K
0K
Waiting...

NoLetMe 是 DeepSeek Harness(dsh)网页端的官方插件插槽(shell.overlay)插件,在会话页右侧边缘挂载一块实时推理关键词统计面板——只统计模型**推理块(reasoning blocks)**中的词法指纹,用以区分当前推理是「直接行动」还是「第一人称试探」。

npm version Awesome dsh-plugin

一句话:它做什么#

模型流式输出时,NoLetMe 对每一块 reasoning增量词法计数,归入三类并实时可视化:

分类信号词含义
🟢 高效 · 直接行动We need… We should… We can… We will… Let's…;首行 Good. / Great. / Excellent.高分轨迹的集体行动框架
🟠 犹豫 · 第一人称试探Let me… I think… I'm not sure… I wonder… maybe / perhaps低分轨迹的第一人称犹豫
⚪ 中性 · 复述任务The user wants… The user asked… this task… the request…Standard 工具目录的开场复述框架

面板本身是原生融入的悬浮层:复用 harness 的设计系统(--dsw-alias-* 语义令牌、DetailsPanel 头/体结构、CSS Modules、明暗与 prefers-reduced-motion),通过官方 shell.overlay 插槽挂载,不改动、不补丁任何既有 UI。数据只在浏览器本地计算与存储,不外发。

为什么要做这个面板:V4 Pro GA 0813 过拟合事件#

这不是一个拍脑袋的关键词列表,它的背景是一次被完整记录的后训练过拟合。

2026 年 8 月,社区在 xiaobright/modeltest 中对 DeepSeek V4 Pro GA 0813 做跨 harness 复测时发现:同一权重在 dsh 的 Minimal 预设下表现显著优于 Standard / Creator / Code 等更宽的工具目录——典型如 Project2 V4.1b 上 99/96 分(Minimal) vs 91–92 分(Standard)。诊断指向 RL 阶段对 Minimal 双工具脚手架(bash + str_replace_editor、固定 persona、固定 schema)的过拟合

关键分析文档(2026-08-14,modeltest docs/v4.1):

NoLetMe 的价值,就是把这份事后分析变成事中可观测——当你在 dsh 网页端与模型对话时,不必事后导出轨迹再跑脚本,面板会实时告诉你:当前推理更接近哪一类轨迹。

证据链:从冻结数据集到可复现的词频分界线#

本插件刻意把每一步都锚到可验证的公开产物上,而非「感觉像」。

1. 测试集是冻结的真实工程任务#

所用测试集为 Project2 V4.1b——一个真实损坏的 ESP-IDF 嵌入式工程修复任务,已于 2026-07-23 正式冻结PROJECT_FROZEN.md),评分规则与隐藏测试用例于 2026-07-19 做 SHA-256 固定。这保证了「Minimal 高分 / Standard 低分」不是 prompt 挑拣的结果。

2. 词频是指纹,而非猜测——看实测数据#

modeltest 的 evaluator/trajectory_evidence/derived/trajectory_stats.json已完成的助手推理块做大小写不敏感的边界匹配(流式分块已去重,每次运行 SHA-256 固定),得到一条干净的分界线。NoLetMe 的三分类直接镜像于此:

运行(模型 / 配置)得分welet melet'sI可见回复数
V4 Pro / Minimal WSL992720101171
V4 Pro / Minimal WSL962310117181
V4 Pro / anchored-standard Win98179188171
V4 Pro / anchored-standard Win99165098181
V4 Pro / Standard WSL9111208213755
V4 Pro / PTC WSL9216194023733

规律是显式的:

  • 高分运行(96–99)we / let's 密集,let me 接近零;
  • 低分运行(91–92)let me 数以百计,I 的总数也同步膨胀(137–237 vs 17–18);
  • 推理块更短(高分 p50 约 111–239 字符 vs 低分 437–550 字符),且高分只发布 1 条可见回复,低分则多达 33–55 条——前者把过程留在推理里,后者把过程外溢为可见文本。

完整矩阵与 p50 等细节见本仓库 docs/research.md

3. 分类器是保守的词法规则,有原文可对#

modeltest 自带精确词法分类器(evaluator/trigger_probe/src/classifier.mjs),NoLetMe 逐条对齐:

  • 首行 We need → minimal-like;
  • welet me → +2;
  • 出现任何 let me → standard-like;
  • 独立首行 Good. / Great. / Excellent. → +1(弱信号,仅作辅助)。

触发机制探针则记录了开场帧的差异:Minimal / anchored 首块以 We need… / Need… 开场;Standard 25 工具目录则以 The user wants… Let me… 开场——这正是 ⚪ 中性类的来源。

4. 诚实边界:指纹不是身份#

原始矩阵原文的警告被原样保留在插件与文档中:

「词法轨迹标签是观测性指纹,而非路由或身份标签。」

词频只反映推理风格,不能判定后端、路由或 checkpoint;V4 Flash 也会在分数不变时改变风格。NoLetMe 的定位因此是推理风格诊断工具,不是「模型鉴别器」。面板的 mode 徽章与占比条,回答的是「现在像哪类轨迹」,而不是「这是哪个模型」。

词表是怎么定的#

三类词表的每一条都能在上表或探针记录中找到对应(实现见 src/client/keywords.tsKEYWORD_TAXONOMY_VERSION = 1):

  • 🟢 高效we need / we should / we can / we will(集体行动框架,Minimal 首帧)、let's(高分 88–117 次 vs 低分 0–2 次)、首行 good / great / excellent(弱肯定信号)。
  • 🟠 犹豫let me(核心指纹,Minimal 为 0,Standard/PTC 为 194–249)、i think / i'm not sure / i'm not certain / i wonder / i guess / i shouldmaybe / perhaps,以及原始 I / I'm / I'll 计数作为健康度量。
  • ⚪ 中性the user wants / asked / is asking / needs / would likethis task / the request——覆盖 Standard 目录的复述开场与通用任务描述。

匹配规则:大小写不敏感、词边界匹配、最长连续 token 优先;good/great/excellent 仅在块首有效。

面板体验与工程细节#

只统计推理,与证据一致

关键词只对推理块计数,与 analyze_trajectory_exports.py 的口径完全一致。若模型几乎全部以可见文本输出、推理块很少,面板会显示推理健康告警(附原始 reasoning / text 计数),而不是拿文本去凑数。

  • 实时增量折叠:每个 reasoning-delta 流式增量到达即折叠,每动画帧至多一次,不整段重扫会话。
  • 切换会话不闪:先用 localStoragedsh-noletme.stats.<sessionId>)的本地缓存重绘,再翻页载入完整历史,期间显示「同步中」。
  • 本地持久化与健壮性:压缩重写只重置计数一次、历史翻页有上限且切走即中止、存储失败静默吞掉。
  • 动效:胶囊 ↔ 卡片是同一表面的临界阻尼弹簧形变(可打断、锚定右 dock),prefers-reduced-motion 下降级为瞬时切换;开合状态会被记住。

浏览器包通过 window.__ModuleLoader__.load(...) 闭包工厂产物加载,与 harness 自带的 clientBundle 预设同形;平台模块走冻结模块表,其余内联,*.module.css 编译为哈希类名并自动注入样式。

安装与使用#

前置:已安装 dsh CLI ≥ 0.1.0-rc.7dsh --version)并建好目标 profile。NoLetMe 的浏览器包按 rc.7 的客户端包构建与验证。

Terminal window
# 推荐:从 npm 安装(预构建,无需 allowBuilds 审批)
dsh plugin --profile demo add dsh-noletme
# 或从 GitHub 安装(prepare 会自动构建 lib/)
dsh plugin --profile demo add github:Yuer6327/NoLetMe
# 本地目录安装
dsh plugin --profile demo add ./NoLetMe
dsh web --profile demo

面板停靠于会话标题栏下方右上角(避开「Session log」按钮),浮在对话框上:折叠时为圆角胶囊(圆点 + “NoLetMe” + 当前模式),展开后显示实时状态条(流式/同步圆点、推理块数/字符数、可见回复)、轨迹模式徽章、各类占比条、原始指标(we · let's · let me · I)、关键词明细与犹豫压力健康提示。

Windows 注意:cordis.patch.yml 的行名用包名 dsh-noletme,行名写成原始绝对路径会因 ESM loader 拒绝 D:\… 而报 ERR_UNSUPPORTED_ESM_URL_SCHEME

相关链接#

注:本文所述词频与分类均可通过 modeltest 仓库的 trajectory_stats.jsonclassifier.mjs 独立复现;NoLetMe 仅做可视化与实时化,不对文本内容做语义判定。

这篇文章对你有帮助吗?
🐈
Hi,我是 YuBlogAI