Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
LarryE135/dsh-flash-presets: 降低Deepseek v4.1flash的Token消耗/Raising Token efficiency without lossing performance(Works for v4.1flash)

LarryE135/dsh-flash-presets: 降低Deepseek v4.1flash的Token消耗/Raising Token efficiency without lossing performance(Works for v4.1flash)

11 hours ago

dsh-flash-presets

中文 | English

GitHub stars npm npm downloads

dsh-flash-presets

面向 DeepSeek V4.1 Flash 这一档路由的 DSH agent 预设,以 DSH 组合包(dsh.bundle)形式交付。安装后向 profile 的插件列表插入若干行 @deepseek-ai/dsh-agent-preset,不改宿主代码,也不动共享工具注册表。

预设影响三件事:预算与轮数(按轮计,不按步计)、工具输出的折叠与裁剪、判定任务完成的标准。它不提升模型能力,只决定一次会话花多少轮、在哪一步停下、用什么标准收尾。

[!IMPORTANT]
当前版本:v0.2.6(未发布;GitHub Release 与 npm 上仍是 0.2.5)。一张插件卡带三个组件:预设 轻量PTC-v3、轻量PTC-v3 max,以及计划模式 plan-mode v1(1.0.0;开发期的 0.7.x 只是内部编号,不对外发布)。三个组件各自可单独开关。v3(内部代号 lean-v3)是主版本,对齐 DSH 0.2.1-rc.2 和 v41flash 1017快照。
已验证:三平台安装器回归;模拟安装(临时 DSH_HOME 安装后用 dsh 0.2.1 --dump-config 合成出三个预设,重复安装幂等,卸载后依赖 / bundle 选择 / patch 层无残留);组合包合成一致性。
未验证:macOS 真机;native 模式的同规模对照。
数字与失效场景见 实测证据 及下文「已知限制」。

预设

| 预设 | id | order | 规则条数 | 压缩 | 用途 | |---|---|---|---|---|---| | v3 | flash-lean-ptc-v3 | 27 | 13 | 0.25 / 20k | 默认安装。基础的轻量预设,满足绝大多数日常工作 | | v3 max | flash-lean-ptc-v3-max | 28 | 7 | 0.25 / 20k | 解除预算限制的全量版,应对需要发挥能力的场景 |

本版只提供这两个预设(0.2.6 起移除 v1/v2 与 v3.1 变体):两个都随包安装,选择器里就这两项。v3 适合绝大多数日常任务;只有在你需要模型放开手脚、不在乎 token 消耗时选 v3 max。

安装、更新、卸载

npm(推荐)

npm install -g dsh-flash-presets          # 全局装一份,供任意 profile 引用
dsh plugin --profile web add dsh-flash-presets

在 GUI 的「插件 → 添加插件」里填 dsh-flash-presets,效果相同。

安装后预设列表里出现 v3 与 v3 max 两项(flash-lean-ptc-v3 / flash-lean-ptc-v3-max),见上文「预设」。
屏幕截图 2026-10-29 103513

包地址:。dsh plugin add 会自动把本包写入该 profile 的依赖并加载 cordis.patch.yml,无需先手动 npm install;上面前一行只在你需要离线副本或想让多个 profile 共用时才有必要。

版本策略:不带版本号时管理器写入的是 caret 范围(如 ^0.2.2),后续任何 pnpm 操作都可能把它带到 0.2.x 最新版。预设直接决定 agent 行为,要可复现就写死版本:

dsh plugin --profile web add [email protected]   # 锁死到已发布版本

GitHub 直装

dsh plugin --profile web add github:LarryE135/dsh-flash-presets

适合跟未发布的分支或本地改动。同样写在 GUI 的「插件 → 添加插件」里也能装。

--profile 取 web、desktop、headless、acp 之一。管理器把本包写入该 profile 的 dsh.profile.bundles,并把 cordis.patch.yml 里的两个 insert 条目(v3、v3 max)叠加到该 profile,另外用一条 ptc-runtime 覆盖把 PTC 运行时切成常驻。web 为 live reload,刷新界面即可见;其他 profile 需重启。

更新时重复执行同一条 add,或先 remove 再 add。卸载时把本包从 dsh.profile.bundles 与依赖中移除后重装依赖;由脚本写入的托管块用 scripts/install.sh --uninstall 清除。

校验

node scripts/verify-presets.mjs                  # 结构与取值断言,可用 DSH_HOME / DSH_PROFILE 指向模拟安装
node scripts/verify-yaml.mjs                     # YAML 与跨平台标签检查
node scripts/compose-bundle-patch.mjs --check    # 断言 cordis.patch.yml 与 presets/* 一致
dsh --profile web --dump-config | grep -A3 'id: preset-flash-lean-ptc-v3'

与计划模式插件一起用(可选)

同一张卡里还带计划模式组件,源码在 plugins/plan-mode-ui,版本 plan-mode v1(1.0.0),做两阶段计划模式:同一回合里先出计划、你批准后再执行,结束时把实测验收数字写回卡片。两者职责不重叠——预设管每轮怎么花钱(预算、折叠、收尾判定),计划模式管这一回合先想后做。

0.2.6 起两者是两个独立包:插件列表里各占一张卡,可以只装预设、只装插件,也可以装了预设之后单独把插件卸掉或升级,互不影响。装齐:

dsh plugin --profile web add dsh-flash-presets      # 预设(两张预设行)
dsh plugin --profile web add dsh-plan-mode-ui       # 计划模式(独立一张卡)

或一次装齐(本地包/离线):

bash scripts/install.sh --with-plan-mode node scripts/doctor.mjs --profile web --all # [1]–[5] 预设、[6] 插件、[7] 合成配置

GUI 的「已安装插件」里,预设那张卡的「包含的组件」会列出 preset-flash-lean-ptc-v3 与 preset-flash-lean-ptc-v3-max 两个组件,可以逐个开关;插件那张卡只有 plan-mode-ui 一个组件。关掉组件只是停用它,卸载要卸载整个包。

插件是纯可选项:没装时预设行为完全不变,doctor 只给一行 ⚠ 未安装(纯可选),不计入失败。装了之后入口在输入框左侧,档位 off / light / full 独立于预设设置。

为什么值得一起用:v3 的预算纪律治「跑太多」,计划模式治「方向错了才跑多」——先花一个计划回合把方案定下来,比跑到第 40 轮才发现跑偏便宜。

行为约束

v3 的 persona 后缀含 13 条编号规则,分五类:

  1. 预算(规则 1):按轮计不按步计;超过预期轮数(约 60 轮)就停下重新规划,不重复同一个循环。
  2. 动手顺序(规则 2–3):先做一次短判断并跑一次廉价探测,不把设计全部展开再动手;提交答案型任务先产出最小可行产物。
  3. 验证(规则 4):验收门通过即交付,不追加随机测试与压测轮;失败时只补失败项。
  4. 工具与输出(规则 5–9):读文件用 read/glob/grep 而不是 shell 浏览;批量调用;按需折叠;控制上下文;增量改写。
  5. 交付与范围(规则 10–13):按用户语言回答、遵守范围;不把密钥写进会话;两次失败换路子;按路由与模型调整策略。

(新增)办公基准测试

仓库里新增了两个虚构的日常办公数据处理套件,用于横向比较模型在"杂乱材料 → 特定格式交付物"上的表现:

  • 办公基准测试 v1(benchmarks/office/base-v1/,包内 v5.0.0):O01–O08 共 8 题
  • 办公追加测试 v1(benchmarks/office/addendum-v1/,包内 v5.5.0):P01–P05 共 5 题
npm run bench:office       # 结构 + 完整性 + 题面表头一致性
npm run checklist:bench    # 发布前人工复核(自动收集证据,人只确认三项)

题目数据是合成数据,三层 sha256 把输入钉死;不要改 inputs/, 改题面必须回写对应的 prompt_sha256。口径细节见 benchmarks/office/README.md。

题目与评分规则文件只在仓库里,npm 包不含 benchmarks/(整包 34 个文件、约 270 kB),上面两个命令要在仓库内跑;从 npm 装到的只是预设本身。

评分规则公开、真值私有:规则在 benchmarks/office/grading/(v5 六维加权 / v5.5 单元格精确匹配,两者不可混用); 真值与评分器在独立私有仓库。公开仓库由 npm run guard:bench 保证"一个字节都不泄漏" (哈希黑名单 + 命名黑名单 + inputs/ 之外禁止出现表格文件),已接入 npm run verify 与 prepublishOnly。

实测

两个套件各跑一轮、每组取平均;OPS 指项目 dsh-ops,Token 含缓存读取,单位百万。

| 配置 | 办公基准 v1 | 相对标准模式 | 办公追加 v1 | 相对标准模式 | |---|---:|---:|---:|---:| | 标准模式 | 5.380 M(n=5) | — | 2.827 M(n=5) | — | | OPS + 标准模式 | 4.693 M(n=5) | −12.8% | 2.141 M(n=5) | −24.3% | | PTC 模式 | 3.553 M(n=5) | −34.0% | 1.560 M(n=5) | −44.8% | | OPS + PTC | 3.499 M(n=4) | −35.0% | 1.404 M(n=5) | −50.3% | | lean-v3 | 1.437 M(n=5) | −73.3% | 0.481 M(n=5) | −83.0% |

!办公基准与追加基准的平均 Token 消耗(含缓存读取)

三条口径:OPS + PTC 在基准 v1 只有 4 次有效运行(图上标 n=4),其余均为 5 次;两个套件任务不同、 不合并排名,只分别对比;这里只有 Token,质量分不在本表,评分规则与真值口径见 benchmarks/office/grading/。

补充两点:

  • 出题与打分同源,执行与评分隔离:出题与打分模型均为 GPT-6.1-Sol;执行(模型答题)与评分(对真值判分)在互相隔离的环节完成 —— 答题环境读不到真值,也读不到评分器。
  • 正确性不单独展示:各配置在正确性上没有显著差异(均为全对),所以这里只比 Token 消耗,不对正确率做额外展示。

已知偏差(相对官方 preset-ptc)

三份精简预设都是"官方 PTC 预设的裁剪版",裁剪清单如下(2026-10-29 审计补记):

| 官方有、我们没有 | 影响 | 为什么 | |---|---|---| | time-context | 提示词里没有"今天几号/现在几点" | 省 token;需要日期的任务要自己带日期 | | tool-schedule | 没有定时/周期调度工具 | 精简面里用不上 | | tool-plugin-market | 不能从对话里装插件 | 装插件走 dsh plugin,不在 agent 工具面里 |

反过来我们多了三个(官方 preset-ptc 没有):tool-subagent-codex、tool-subagent-claude-code、tool-ralph。

这不是缺陷,但必须知道:如果某类任务依赖"当前日期"或"对话内装插件",用官方预设更省事。

兼容性

本仓库在 DSH 0.2.1-rc.5(rc.2 亦实测)上做过模拟安装回归:临时 DSH_HOME 安装后用 --dump-config 合成出 v1、v2、v3,重复安装幂等,卸载后依赖、dsh.profile.bundles 选择与 patch 层均无残留(pnpm 在 profile 的 pnpm-workspace.yaml 里留下的 minimumReleaseAgeExclude 记录不属于本包,卸载时不会清除,也不影响配置合成)。0.1.7 到 0.2.0 走同一套插件行机制,安装器逻辑未改。0.1.7 以前只有 v1 提供 presets/legacy-0.1.5/ 的目录式回退,v2 与 v3 不支持。web profile 为 live reload,desktop、headless、acp 需重启,因为 provider 补丁层只在启动时读取。

安装器在 Windows PowerShell、Ubuntu、macOS 上跑过三平台 CI(矩阵见 .github/workflows/verify.yml)。macOS 未在真机验证,脚本按 bash 3.2 兼容写,变量后接非 ASCII 字符时用 ${var}。补丁里的 !!js 标签由 DSH 加载器解析,第三方 YAML 解析器会报 unknown tag。

已知限制

「先让模型评估难度、再向用户提问」这条路径在实测中无效。2026-10-20 的对照里,只加验收契约块的一臂中位比值 1.05,契约加提问与答复的一臂 1.06,都低于直接开跑的 1.02。有效的是外部判分加回灌失败清单。预设里因此没有难度自评与开工前提问。

此外,为方便量化,本插件的开发和测试都围绕洛谷公开题库展开,按 Token 消耗、完成用时、步数、运行内存占用与耗时加权评价,难免有局限;后续反响好会做其他方向的适配。

排查:装完之后不对劲

一条命令先定性,别靠猜:

node scripts/doctor.mjs --profile web      # 加 --dump 会顺手跑 dsh --dump-config

它逐条回答:DSH 版本够不够(插件行预设要 0.1.7+)、托管块是不是只有一个、块外有没有老式残留行(会导致预设列表重复)、文件里还有没有 !!js、标准 YAML 解析器能不能读通(报错给到行号)。

三种最常见的情况:

| 症状 | 原因 | 处理 | |---|---|---| | 预设列表出现两三个同名项 | 旧安装方式留下的裸行 + 新托管块并存 | node scripts/merge-presets.mjs --patch <补丁> 自动认领 | | js-yaml 报 unknown tag 'tag:yaml.org,2002:js' | 文件里还有 !!js | node scripts/doctor.mjs --fix(先备份) | | 预设根本没出现 | DSH < 0.1.7,或装错了 profile | 升级 DSH / 用 --profile 指对 |

注意:预设补丁只定义 agent 侧的插件集合(persona + 工具 + 折叠链路),不碰工作区选择器、目录选择器、终端插件这些 GUI 组件。如果装完之后 GUI 出现与本预设无关的异常(例如选不了工作区),把 doctor 的输出和浏览器 Console 的报错一起贴出来——先证明"配置是干净的",再往外查。

注意事项(人 和 AI 都要看)

  1. 使用本插件时把输出上限设到 120K 以上,有条件直接拉满 384K,避免长时间集中思考被截断。
  1. 本插件只保证对 DeepSeek V4.1 Flash 有效,不保证对其他模型有效。
  1. 实际使用时先给出明确的目标或验收标准,越明确效果越好;边界不清楚时可以配合 plan mode 或 goal mode 使用。
  1. 桌面版或 Windows 端用户,建议先安装并启用 MSI 版 PowerShell 7 或 Git Bash——实测这一项本身就能带来不少提升;不知道怎么装可以问大肥鱼。
  1. 本包只安装预设行,不携带工具:profile 缺对应插件时这些行会失效,安装器也不会补齐依赖。

仓库结构

presets/
  flash-lean-ptc-v3.patch.yml     主版本(lean-v3)
  flash-lean-ptc-v3-max.patch.yml 全量版(解除预算限制)
cordis.patch.yml                  由 presets/* 合成,勿手改,CI 断言一致性
scripts/
  install.sh / install.ps1        安装器,共用 merge-presets.mjs
  merge-presets.mjs               托管块写入与移除
  compose-bundle-patch.mjs        合成组合包补丁层
  verify-presets.mjs              结构与取值断言,逐预设切片
  verify-yaml.mjs                 YAML 与平台标签检查
  check-ps1.mjs                   PowerShell 侧静态审查(BOM、完成文案、标签守卫)
  check-bash32-cjk.mjs            macOS bash 3.2 的多字节变量守卫
  selftest.sh                     端到端自测
  publish.sh / publish.ps1        推送与建 Release,版本号从 README 解析
docs/PUBLISHING.md                维护者发布流程(npm + 标签 + Release + 收尾)
docs/                             文档与历史 README
plugins/plan-rounds/              实验插件:会话级计划轮数控制(不随 npm 包发布)
candidates/                       候选预设:未并入主版本的实验分支(不随包发布)
marketplace/                      插件市场提交材料(不随包发布)
.github/workflows/verify.yml      三平台安装矩阵与组合包安装断言

版本历史

v0.2.6(未发布)

  • 预设收敛为 轻量PTC-v3 与 轻量PTC-v3 max 两个,移除 v1 / v2 / v3.1 变体与旧式目录 presets/legacy-0.1.5/
  • 计划模式并回主包,作为同一张卡里的第三个组件(plan-mode v1);开发期的 0.7.x 编号不再对外发布
  • 运行时调优随包落地:ptc-runtime: persistent-in-memory,run_code 的固定开销从 108 ms 降到 0,嵌套 bash 从 44 ms 降到 15 ms
  • 0.2.5 的 v3 会话完全兼容:id、order 27、20 个插件、persona 逐字节不变,只有名称与描述两行文案改了
  • 旧版目录式安装入口改为明确拒绝(exit 3),不再静默跳过

v0.2.5(2026-10-30)

  • 默认只装 v3:bundle 合成默认只取 presets/flash-lean-ptc-v3.patch.yml,安装后预设列表只多一项;v1/v2 转为对照版本(--all / --all-presets / -AllPresets 显式安装)
  • 安装器:install.sh 默认 PRESETS=(flash-lean-ptc-v3);install.ps1 同形参与 -AllPresets;legacy 目录式固定走 v1
  • 校验链:verify-yaml 反向断言合成产物不得混入 v1/v2;check-ps1 名单断言改为"子集且含最新"
  • npm 首发:本包首次发布到 npm;plan mode 插件仍不在 npm 发布范围
  • 安装器认领历史残留:托管块之外的老式裸行(旧安装方式 / 手工粘贴)会被整条摘掉并并入托管块,重复安装不再产生第二份同名预设。只摘"整条都由本仓库预设行组成"的条目,别人的行一个不碰。
  • 写盘前解析 !!js:profile 补丁里不再出现非标准 YAML 标签(tool-bash/tool-pwsh 的 disabled 落成 true/false),js-yaml、yamllint、GitHub 预览、第三方插件工具都能直接读这个文件。
  • 新增 scripts/doctor.mjs:一条命令体检 DSH 版本、托管块数量、块外残留、!!js、标准 YAML 解析;--fix 就地修,--dump 顺手跑 dsh --dump-config 确认预设真被认。
  • 校验器防线修复(issue #4):v3 纳入 YAML 解析断言、合成产物 cordis.patch.yml 也参与校验、安装器分支覆盖 v1/v2/v3;js-yaml 缺失改为退出码 2(不再 fail-open);CRLF profile 不再误报安装层失败。
  • 文档对齐:v2/v3 压缩参数注释改为实际值(0.25 / 20000);版本表补 0.2.2–0.2.5;marketplace/plugin.json 与包版本同步。
  • candidates/flash-lean-ptc-v4-plan-accept.patch.yml 改为 - insert: 形态(扁平 - id: 行在预设包里会被静默忽略,此前该候选不生效)。

v0.2.4(2026-10-24)

  • 修复 npm 包内容:presets/legacy-0.1.5/(DSH 0.1.7 以前的目录式回退)与 .gitattributes 之前没被打包,导致「从 npm 装」的人拿不到旧版回退,且包内自带的 verify-presets.mjs 会报 3 项失败。

v0.2.3(2026-10-24)

  • v3 规则 5/6 消除自相矛盾(不再一边禁用 head 一边要求 | head -40),临时目录改为 PowerShell / cmd / POSIX 三态。
  • 新增预设文本审计与运行时合成断言两个脚本,CI 增加最小权限与对应步骤。
  • 修正 0.2.3 幽灵版本引用、tarball 文件数与仓库结构清单。

v0.2.2(2026-10-21)

  • 发布到 npm:dsh-flash-presets,可直接 dsh plugin --profile web add dsh-flash-presets 安装。
  • verify-presets.mjs 修正安装层判定的两个误报:只装 v3(常态)时不再因 v1/v2 缺失而报 25 项失败;预设行写在托管块之外(dsh plugin 合并的形态)时也能正确切片。
  • 新增开关:--repo-only 只跑仓库层(供发布前守卫与 CI 使用),--all 要求三个预设都已安装。
  • package.json 增加 prepublishOnly 守卫:合成一致性 + YAML 校验 + 仓库层结构校验,任一失败即中止发布。

v0.2.1(2026-10-20)

  • v3(lean-v3)定为主版本:order 27、13 条规则、压缩 0.25 / 20k。
  • 安装器、合成器、校验器支持三个预设。此前多处只处理 v1 与 v2。
  • verify-presets.mjs 改为逐预设切片断言,分别核对 order、规则条数、压缩阈值、保留预算、裁剪阈值、PTC 与 tool-workflow。
  • 对齐 DSH 0.2.1-rc.5(rc.2 亦实测)完成模拟安装回归。

v0.2.0(2026-09-30)

  • 声明为 DSH 组合包:单文件 cordis.patch.yml、合成脚本、CI 真实安装校验。
  • 新增 v2:步数预算、少想多试、一次合并验证、先交最小可行产物。

v0.1.0(2026-09-23 至 09-24)

  • 首个发布:v1,压缩 0.3 / 50k、14 条约束、PTC 展示层。
  • 更早的 v1.0.0、v1.0.1、v1.1.0 三个标签属于同一代(0.1.x 之前),已折叠进本版;这些标签已随 0.2.5 的标签重写一并移除,远端现仅存 v0.1.0、v0.2.0–v0.2.5(原先指向 2026-09-23 至 09-24 的提交)。

文档

实测证据、版本与兼容性、0.2.0 历史 README、变更日志

实现与内部机制:技术文档 · 实现方式与路径、技术文档 · 省 token 的四套机制

审计记录:0.2.5 全量审计、0.2.5 复检、0.2.5 审计

许可证

MIT。

维护者

LarryE135
LarryE135
Chat with me