pi-dsh-minimal

extensionmaintained

DeepSeek Harness adapter for Pi: V4 Pro + V4 Flash on the anchored-standard surface (first-turn two-tool schema, then Pi tools). Measured on DeepSWE.

by — · v0.4.2 · published 1mo ago

$ pi install npm:pi-dsh-minimal
downloads/mo
422
stars
48
last push
1mo ago
open issues
2

Signals

license: MITtestspi manifest: missinginstall size: —deps: 0peer deps: 0

Download trend

No downloads in the last 12 weeks.

README

pi-dsh-minimal

English

npm pi.dev license

DeepSWE 实测(2026-08-16,全量 113 题)

官方 DeepSWE v1.1 全量:pi agent 跑在 官方任务容器内,opencode-go/deepseek-v4-flash:max,v0.3.1 默认配置, 官方 verifier 逐题判分。

配置解出说明
V4 Flash + 本扩展 — 全量 113 题69/113 = 61.1%中位 24 分钟/题
官方榜 deepseek-v4-flash [max]53%mini-swe-agent harness
官方榜 deepseek-v4-pro [max]63%成本 ~2.4×
pi 原生 Flash(汇总 n=26)15/26 = 57.7%内部参照

解读:比官方 Flash 榜高 8pp,距 V4 Pro 只差 2pp(去掉唯一超时题后 69/112 = 61.6%)。对 pi 自身原生 表面的聚合提升更小(约 +3pp,n=26 噪声量级;最初的 10 题配对 A/B 是 9/10 vs 6/10,但未在大样本复现,应视为乐观样本)。失败画像:44 个未解 中 32 个只差 1-5 个测试,方向性全塌仅 4 题,超时仅 1 题。注意事项: 单次采样;agent 容器有网络(7/113 题抓取过上游仓库,全部剔除后 61.3%,最坏按污染计 57.5%,仍高于 53%)。完整数据: runs/deepswe/RESULTS-full.md。

这是什么

这是一个 Pi 扩展:把 DeepSeek V4 模型映射到实测过的 DeepSeek Harness 表面。

模型配置做什么
V4 Proanchored-standard首轮:官方双工具 schema。之后:恢复 Pi 原来的工具。
V4 Flashanchored-standard(v0.3.1 起)同样的引导——全量 DeepSWE v1.1 解出 61.1%,官方 Flash 榜为 53%。

V4 Pro 会过拟合首轮工具 schema。官方极简(bash + str_replace_editor) 思维链首行是 We need… / I need…;工具一变丰富就会落到 Let me…。 首轮锚定之后轨迹不会翻,所以后面可以把 Pi 的完整工具还回去。

v0.2.x 的 Flash weak-routing 配置已在 v0.3.0 移除——同一套 harness 实测无提升(见上表),且上游 P21 数据显示其近场引导在相关任务链上是 负收益。anchored-standard 引导没有引导文本,不存在该失败模式; v0.3.1 起对 Flash 默认开启。

pi install npm:pi-dsh-minimal

这是社区项目,并非 DeepSeek 或 Pi 官方预设,也不代表 DeepSeek 的认可或背书。

V4 Pro / V4 Flash — 锚定后晋升

默认触发:模型名/id 包含 deepseek-v4-pro 或 deepseek-v4-flash (v0.3.1 起两者都是)。其他模型一律不动,除非打开 useOnAllModels。 /dsh unmatch deepseek-v4-flash 可让 Flash 完全退出。

阶段何时表面
引导(第 1 次请求)新会话,或压缩后的第一次请求系统提示词 = You are a helpful software engineer assistant. 工具 = 官方持久 bash + str_replace_editor。没有 AGENTS.md,没有 skill 目录。
晋升(之后的请求)第一次持久的 助手消息 或 工具调用(promoteOn: either)只保留官方首句,不恢复 Pi identity。同一枪恢复 Pi 工具、tools-guide、文档路径、<project_context>、<available_skills>,以及其它 extension 加进 system prompt 的内容。
压缩之后session_compact回到引导面,直到出现新的晋升信号。

/dsh promote either|tool-call|assistant-message 改晋升信号。 tool-call 下如果首答是纯文字,会话会一直停在双工具。

为什么移除了 v0.2.x 的 Flash 配置

v0.2.0 移植过 dsh-routing-suite 的 weak 路由 + mode-boost(换 persona + Router: classify this task… 引导)。移除依据,按权重排序:

  1. 受控 DeepSWE A/B(2026-08-16):官方 DeepSWE v1.1 的 10 题 × 扩展开/关,同一 pi agent + opencode-go/deepseek-v4-flash:max, 官方 verifier 判分。开 4/11、关 5/10,平均 partial 0.810 vs 0.901, McNemar p=1.0。每个 run 都验证过插件正常激活;失败尸检显示的是普通的 实现走偏而非引导病态——即「无信号」,不是「移植坏了」。
  2. 上游自己的相关链数据(dsh-routing-suite P21):近场引导在同文件 演进链上是负收益(deep 46% vs baseline 63%),机制是引导让模型偏向 分类而不是读已有代码。真实 SWE 会话正是这种形态。
  3. 探针与分数的鸿沟:已发表的 Flash「提升」(路由命中率、思考深度、 收敛率)全部是 fixture 微任务探针;上游自己的 P2/P9 就注明简单任务 分数饱和、困难任务上的分数级验证从未做过。

基线合理性:不开扩展时 pi 在该子集解出 50%,与官方 DeepSWE v1.1 榜 deepseek-v4-flash [max] 的 53%(mini-swe-agent harness)一致—— 「无提升」不是 harness 伪影。

安装

pi install npm:pi-dsh-minimal

从 git 安装:

pi install git:github.com/Averyyy/pi-dsh-minimal

重启 Pi(或 /reload)。新建会话,选 DeepSeek V4 Pro。

本地检出:

pi -e /path/to/pi-dsh-minimal

设置

/dsh 打开设置界面(交互方式对齐 pi-codex-conversion 的 /codex):

页内容
General启用、对所有模型触发、Pro 晋升条件、状态栏
ModelsPro pattern(默认 deepseek-v4-pro)
AboutGitHub / changelog / 模型卡 / issues

命令:

/dsh                      打开设置
/dsh on|off               总开关
/dsh all                  切换「对所有模型触发」(未知模型走 Pro)
/dsh status               切换状态栏
/dsh models               打开 Models 页
/dsh match <pat>          添加 Pro 触发
/dsh unmatch <pat>        删除 Pro 触发
/dsh promote either|tool-call|assistant-message

配置文件:~/.pi/agent/pi-dsh-minimal.json。

{
  "enabled": true,
  "statusLine": true,
  "useOnAllModels": false,
  "modelPatterns": ["deepseek-v4-pro", "deepseek-v4-flash"],
  "promoteOn": "either"
}

(v0.2.x 配置里的 flashPatterns / flashRouting 会被忽略。)

状态栏:Pro 引导期是 dsh anchored,晋升后是 dsh anchored • promoted。

如何验证

Pro

  1. 启用扩展并选择 DeepSeek V4 Pro。
  2. 发一个小的改文件任务(main.py 打印 hello,改成 world)。
  3. 第一段 thinking 应以 We need… / I need… 开头,而不是 Let me…。
  4. 第一次请求应只暴露 bash 和 str_replace_editor。系统提示词应正好是官方那一句。
  5. 第一次助手回复或工具调用之后,后续请求应看到 Pi 原来的工具;read 开着时还应看到 skill 目录。

Flash

与 Pro 完全相同的引导(首轮双工具 + 官方 persona;首个助手消息/工具 调用后晋升)。/dsh unmatch deepseek-v4-flash 可让 Flash 完全退出。

设置 PI_DSH_MINIMAL_DUMP=/tmp/dsh-minimal-request.json 可把改写后的表面 写到文件(含 profile 和 promoted)。

npm test
npm run live:trajectory   # 需要已配置 DeepSeek V4 Pro

重要行为

  • Pro 的第一次请求决定轨迹。工具 schema 身份 是决定变量;本包装会改写 provider 请求,即使 TypeBox 本来会加上 strict / additionalProperties, 模型看到的仍是官方双工具目录。
  • 晋升之后官方 persona 仍是第一句。同一枪恢复 Pi 工具、tools-guide、 文档路径、AGENTS.md、skill 目录,并保留其它 extension 对 system prompt 的追加。Pi identity 不恢复。
  • 引导期内 bash 是持久进程。cd 和 export 会保持到晋升、会话结束,或 300 秒超时重置。
  • anchored 配置生效时,若 DeepSeek V4 把完整工具调用泄漏成助手文本(官方 <|DSML|tool_calls>、裸 <invoke>,或已观察到的 tool_calls store: 变体),扩展会在派发前把其中已存在于 Pi 当前 active tool 目录的调用转换成 原生工具调用。未知、未闭合或参数无效的标记仍保留为文字,不会执行。
  • str_replace_editor 要求 绝对路径,与 dsh 一致。
  • 扩展不发起网络请求,也不增加遥测。

相关项目

项目宿主表面
dsh-anchored-standardDeepSeek Harness两阶段:先极简锚定,再晋升 Standard
dsh-routing-suiteDeepSeek HarnessFlash weak 路由 + mode-boost(v0.2.0 已移除的 Flash 配置的来源)
pi-deepseek-anchorPi上述两阶段 preset 的 Pi 移植
pi-dshPi在 Pi 里把 DSH 当成 provider 跑
pi-dsh-minimalPiPro 锚定晋升

许可证

MIT。工具描述、schema 和编辑器回包字符串源自 DeepSeek Harness / dsh-anchored-standard(MIT)。见 NOTICE。