🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

首轮锚定优化 Saolence/pi-dsh-optimizer

DeepSeek Harnessv0.4.0
Saolence35 天前有提交已提供中文文档扫描:含敏感能力

改写首轮提示词,让 DeepSeek 在 pi 里发挥出训练时的水准

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Saolence/pi-dsh-optimizer
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/01·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 35 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包pi-dsh-optimizer @ 0.4.0
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/15 09:46:02

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
  • 读取本地文件
    src/adapter/config.ts:84
    if (!existsSync(path)) return { config: { ...DEFAULT_IDENTITY_CONFIG }, path };
  • 读取本地文件
    src/adapter/config.ts:86
    return { config: normalizeIdentityConfig(JSON.parse(readFileSync(path, "utf-8"))), path };
  • 写入本地文件
    src/adapter/config.ts:95
    mkdirSync(agentDir, { recursive: true });
  • 写入本地文件
    src/adapter/config.ts:96
    writeFileSync(
  • 写入本地文件
    src/index.ts:41
    appendFileSync(dump, `${JSON.stringify({ surface, payload })}\n`, "utf-8");
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 改写首轮提示词
  • 先发极简首轮请求
  • 注入思维链
展开完整介绍(156 字)↓

DeepSeek 是在极简 harness 上做后训练的——那就给它配一个。这个 pi 扩展先发官方 dsh `minimal` 首轮请求(一行人设 + bash + str_replace_editor),再放出 pi 完整提示词,还带一段 `we need to` 思维链,专治 `let me…` 死循环。

README

由 DeepSeek 最新模型翻译生成
pi-dsh-optimizer 把 dsh 官方 minimal 的首轮请求搬给 pi —— 再顺手掐掉思维链里那句 "Let me…" 的循环。 DeepSeek 在 pi 里表现不好,不是 pi 不行,是 pi 喂给它的那段提示词,它压根没被这么训练过。 这个扩展把它被训练过的那一面还回去:官方 minimal 的原样开场,然后再把 pi 的东西全部交还。 pi 扩展 · 零配置 · 默认只认 DeepSeek · 52 个测试 先说那个 33 分 同一个模型,同一个基准,只因为外壳换了: | 分数 | 外壳 | | 87.9 | DeepSeek 官方 Harness | | 54.68 | Terminus 2(第三方复跑) | DeepSeek V4 Pro(0813)跑 Terminal-Bench 2.1。33 分的差距,最初闹成"DeepSeek 是不是作弊了",最后留下一个更有用的结论:不写清楚外壳的跑分,就是一个没有单位的数字。 然后是最关键的那一下——同一个 Harness 内部,换预设也有同样的落差: | 预设 | 分数 | | minimal(只有 2 个工具) | 99 / 96 | | standard | 91 | | PTC(Code) | 92 | 如果 V4 Pro 只是"认自家的房子",这三个数应该差不多。它们不是。
展开完整文档(README 剩余 1 节)
pi-dsh-optimizer

把 dsh 官方 minimal 的首轮请求搬给 pi —— 再顺手掐掉思维链里那句 "Let me…" 的循环。

DeepSeek 在 pi 里表现不好,不是 pi 不行,是 pi 喂给它的那段提示词,它压根没被这么训练过。

这个扩展把它被训练过的那一面还回去:官方 minimal 的原样开场,然后再把 pi 的东西全部交还。

pi 扩展 · 零配置 · 默认只认 DeepSeek · 52 个测试

先说那个 33 分

同一个模型,同一个基准,只因为外壳换了:

| 分数 | 外壳 |
| 87.9 | DeepSeek 官方 Harness |
| 54.68 | Terminus 2(第三方复跑) |

DeepSeek V4 Pro(0813)跑 Terminal-Bench 2.1。33 分的差距,最初闹成"DeepSeek 是不是作弊了",最后留下一个更有用的结论:不写清楚外壳的跑分,就是一个没有单位的数字。

然后是最关键的那一下——同一个 Harness 内部,换预设也有同样的落差:

| 预设 | 分数 |
| minimal(只有 2 个工具) | 99 / 96 |
| standard | 91 |
| PTC(Code) | 92 |

如果 V4 Pro 只是"认自家的房子",这三个数应该差不多。它们不是。变量是开场提示词和工具表——当外壳长得像它后训练时那副样子,模型表现最好。

接着是一个让这个扩展几乎成了必然的实验:

用 minimal 模式的提示词和那两个工具开一个会话。第一次工具调用之后,把完整的 25 个工具全部恢复,后面的运行照常。
分数几乎没动:98 / 99。

模型第一轮做了什么,远比后面名义上能用多少工具重要。

这就是全部的原理。这个扩展,就是把这个实验搬到 pi 上自动执行。

它做什么

会话的第一条请求,被改写成 dsh 官方 minimal 的样子。

| | 第一条请求 | 之后的回合 |
| 系统提示词 | You are a helpful software engineer assistant.——46 个字符,原样 | pi 的完整提示词 |
| 工具 | bash + str_replace_editor | pi 的整个工具表 |
| pi 的提示词分节 | 一节都没有 | 全部回来 |
| 思维风格 | 模型默认 | 你自己选(默认:we need to… 那段) |

然后它就让开了。 会话一旦产出过真实的一轮,锚定永久解除:跨压缩、跨 --continue、跨 fork 都不会退回。不需要存状态,也就没有状态可以丢。

pi 的其它部分一个都没动。你的会话文件、pi 的工具注册表、界面——原样。被改写的只有那一条真正出网的请求。

第二个问题:"Let me…"的死循环

推理模型会打转。这是有专门论文研究的失败模式:"想太多"(overthinking)有自己的一整套文献,"让每一步思考尽量精简"也早就是思考模型的常规建议。

DeepSeek 的思维链有个标志性的版本——用叙述代替行动:

Let me… Let me check… Let me think about that… Let me…

同一个计划,反复复述,什么都不推进。

所以解除锚定的那一步,同时把 pi 的官方身份句换成一段严格风格的 we need to… 规则:每一步都是一个具体动作,第一人称复数,一句话一步,用情态动词(I'll · I can · I should · I will)推进到下一步。只写决策,不写评论,不复述。

实际感受:思考更短、重启更少、第一次动手之前的废话更少。

换掉它,或者删掉它 —— /dsh-optimizer

| 菜单项 | 作用 |
| text | 用你自己的一段替换掉身份句 |
| mode | replace(默认)· remove(只删身份句,不加任何东西)· keep(完全保留 pi 的原文) |
| preview | 提交前先看解除后到底长什么样 |
| reset / path | 恢复默认 / 打开配置文件 |

安装

pi install npm:pi-dsh-optimizer

重启 pi,完事。不用声明模型,不用配 provider——DeepSeek 开箱即中,其他模型完全不受影响,而每个会话的第一条请求都会被锚定。

功能

- 首轮锚定 —— 官方 minimal 那行 persona 和那两个工具,原样出现在真正到达模型的那条请求上。
- 自动解除,且粘性 —— 会话第一轮真实产出后,pi 的完整提示词和工具表全部回来,并且不再退回。
- 思维风格可换 —— 默认 we need to…,三种模式,支持预览。
- 自带官方 str_replace_editor —— 和 dsh minimal 用的是同一套两工具表面,锚定不是虚的。
- DSML 桥 —— 模型把工具调用当文本吐出来时,该调用照样执行。零配置。
- 可自查 —— PI_DSH_OPTIMIZER_DUMP=1 把真正出网的请求落到磁盘,锚定有没有生效自己验。
- 不破坏 —— 不改写、不回滚、不留痕迹。锚定是"某一条请求的属性",不是"你这个会话的状态"。
- 默认只认 DeepSeek —— 由 models 白名单决定。DeepSeek 大小写无关地命中(deepseek,provider 也算);其他模型完全不受影响。写 "models": [] 则对所有模型生效。

命令与配置

| 东西 | 作用 |
| /dsh-optimizer | 菜单:思维风格、模式、预览、重置、路径 |
| pi_dsh_status | 工具——打印 phase= · model= · active= · models= · surface= · tools= |
| PI_DSH_OPTIMIZER_DUMP=1 | 导出出网请求用于自查 |
| ~/.pi/agent/pi-dsh-optimizer.json | { "mode": "replace", "text": "…", "models": ["deepseek"] } |

配置里故意没有 enabled 开关:models 白名单就是开关,大小写无关。不在白名单里的模型完全不受影响——pi 的提示词原样发出、工具表一个不动;写 "models": [](或 ["*"])则对所有模型生效。在它上面再加一个开关,只会多一个和事实不同步的地方。

常见问题

只对 DeepSeek 有用吗?
不是。它搬过来的那个预设,就是 DeepSeek 后训练时的分布,所以 DeepSeek 收益最大。其他模型只是开场那一条请求更轻。

pi 的 rules、skills、项目上下文会丢吗?
只丢第一条请求——这正是重点。从第二个回合开始全部回来。

会变慢吗?
它做的工作比 pi 的常规路径更少:46 个字符的提示词 + 两个工具声明,而不是几十 KB 提示词 + 几十个声明。

那条被锚定的请求,真的是官方的吗?
是。persona 字符串和两个工具声明都抄自官方 minimal 预设。打开 dump,自己 diff。

我用的是 standard / PTC 预设呢?
这个扩展只搬 minimal 的开场。有数据支持的就是这一个。

对提示词缓存有帮助吗?
它给了 DeepSeek 前缀缓存喜欢的形状:开场极小、解除后的前缀稳定。但它本身不是一个缓存功能。

会不会和别的扩展打架?
它不 patch pi 的提示词,所以不会。但有一个坑:它注册的工具名是官方的 str_replace_editor——如果另一个扩展注册同一个名字,pi 只留一个,另一个会被静默丢掉。

兼容性

| pi | @earendil-works/pi-coding-agent |
| 模型 | 任意——DeepSeek V4 Pro / V4 Flash / V4.1 收益最大 |
| 相关场景 | DeepSeek Harness(DSH)、DSH minimal 预设、pi + DeepSeek |

老实说几句

- 那个 33 分和 99 / 91 / 92 都是社区报告,不是 DeepSeek 官方声明。来源在下面,建议自己去读,别只信这份 README。
- 首轮锚定实验是在 DSH 内部做的。这个扩展把它搬到 pi,你的数字会不一样。
- we need to… 是提示词风格干预:它改变推理读起来的样子、通常会变短,但不保证一定更短。
- DSML 桥代码不大,而且没有专门的测试覆盖。遇到它解析不了的泄漏调用,它会原样放过、不碰你的流。

来源与致谢

- DeepSeek Harness 开发者预览——官方预设清单(Standard / PTC / Minimal / Creator):
- Why DeepSeek Harness Benchmark Scores Differ So Wildly —— 87.9 vs 54.68、99 / 91 / 92 的预设落差、以及首轮锚定实验:
- DeepSeek Pro Looks Brilliant in Minimal Mode. That Is Also the Problem —— 反方观点,值得一读:
- Pi Agent + DeepSeek: Why the Harness Can Matter More Than the Model —— "外壳乘数",以及为什么 minimal 提示词适合那些没被大厂外壳训过的模型:
- Wait, Wait, Wait… Why Do Reasoning Models Loop?
- Stop Spinning Wheels: Mitigating LLM Overthinking via Mining Patterns for Early Reasoning Exit
- 数字背后的社区分析:@shmidtqq(由 @ST4RHaze 转发)以及 @ZhihuFrontier 翻译分享的中文长文,标题译作《DeepSeek V4 Pro 是否过拟合了自己的 harness?真正的问题可能是接口敏感性》。
- minimal 预设本体:DSH 仓库里的 apps/cli/config/agent-presets/minimal/agent.cordis.yml。

更新日志

| 版本 | 变化 |
| 0.4.0 | 模型白名单——默认只认 DeepSeek,大小写无关;其他模型完全不受影响。首轮表面按 Web app 的 Minimal 预设重新对齐:bash 描述、编辑器的 null 占位说明、oneOf [X, null] 参数 schema |
| 0.3.0 | 首轮锚定 + 自动粘性解除、思维风格三种模式与预览、DSML 桥、官方 str_replace_editor、出网请求 dump |
| 0.2.x | 最早的公开版本:minimal persona 与两工具表面 |

许可协议

MIT。
预览分享卡片长什么样 ↓Saolence/pi-dsh-optimizer
分享 · DeepSeek Harness Hub
Saolence/pi-dsh-optimizer

改写首轮提示词,让 DeepSeek 在 pi 里发挥出训练时的水准

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部