官方 dsh vs 装配层对照
官方 dsh ⊗ dsh-custom
核心命题三线:首次回填模型分(v1.4 首次把 dsh 纳入精装度 v2.0:官方 3.6 / 装配层 3.9,旧单点分 2.5 属历史口径、不可相减)· 单维小步跃升 3.6→3.9(v1.5 的 8 维变动仅 memory +1)· 迁移损失已追平(R 环由 R-A 载体接通,E 环因 run_gate 门控通道达 Δ+2.0 反转阈值)。
00口径披露 · 单点分 vs 模型分
09-src-data/gen_html.py 的 FRAMEWORK_DATA——它不是 8 维模型的输出,没有硬门槛、没有权重、没有一票否决。
② 新口径(本轮首次):首次把 dsh 纳入精装度 v2.0 模型(硬门槛 + 8 维加权 + 一票否决),得官方 3.6 / 装配层 3.9。
③ 不可相减:3.6 与 2.5 不同源,故「2.5 → 3.6」在数学上不成立,本页拒绝给出该数字;旧单点分作为历史口径保留并标注。
④ 同步校正:本轮把 FRAMEWORK_DATA 里 opencode 的 3.0 校正为模型口径 2.9(原值属口径漂移,一并归位)。
⑤ 排名隔离:dsh_custom_scores.py 独立于 premium_scores.PRODUCTS,不参与 14 产品市售排名;官方 dsh 与 dsh-custom 构成同源对照对,只回答「装配层带来多少增量」。
⑥ v1.5 两条新披露:(a) 沙箱证据文本更正——v1.4 记「本机无可用后端(bubblewrap/Landlock 均不可用)→ 实际 fail-closed」,v1.5 实测 bwrap 已装、enforcement=full,该断言已证伪;此为环境事实更正,沙箱维分值未变(4),⛔ 不得呈现为装配层收益。(b) skill 计数口径唯一化——主根 49 = 派生 47 + DSH 原生 2;模型可见 46 = 49 − 3;_overlay 6(详见契约 §2.6)。01六环雷达 · 官方内核 vs 装配层综合
| 环 | 官方 | 装配层 | Δ | 标注 |
|---|---|---|---|---|
| SP 设定值 | 4.5 | 5.0 | +0.5 | 增强 |
| M 记忆 | 4.0 | 4.5 | +0.5 | 增强 |
| P 规划 | 4.5 | 5.0 | +0.5 | 增强 |
| R 反思 | 3.0 | 4.0 | +1.0 | 增强 |
| T 执行 | 5.0 | 5.0 | +0.0 | 持平 |
| E 评估 | 2.0 | 4.0 | +2.0 | 反转 |
分值 0–5,取自 09-src-data/dsh_custom_scores.py(RING_SCORES)。判据:Δ≥2.0 记「反转」,Δ>0 记「增强」,Δ=0 记「持平」。SP 环按 RING_ORDER 单列,不计入五环但为五环提供目标参考序列;v1.5 下 E 环 Δ+2.0 达反转阈值(run_gate 消解抑制项),R 环 Δ+1.0、M 环 Δ+0.5;最弱环为 R 与 E 并列 4.0。
02逐环 delta 卡片(含 SP)
设定值 增强
3 preset 层固化 persona 15 节(GATE/COMPLEXITY/契约委派/留档 5 段)+ plan-mode section 追加逐题访谈指引;v1.5 新增命令注册(/arch /rd /reflection)作为显式设定值入口 → 维持 5.0
记忆 增强
v1.5 反转项:R-A 载体落地(ADR-012)——~/.dsh/MEMORY.md(14 段 / 10815 B / 14 条 [src:])+ 候选目录 15 份 + archive 1 份 + dsh-reflection skill;v1.4 的「装配层未新增跨会话记忆」已推翻 → 4.0 → 4.5(增强)
规划 增强
+7 专职 worker + oc_* 别名 + delegation 编队(12 子行)+ 全局控制面(send_message/interrupt_agent/list_agents)→ 维持 5.0
反思 增强
v1.5 反转项:反思链由「断裂」变为「可用」——候选→主 Agent 审阅→落库链 + 零和预算 + 生命周期五件(准入去重 / 退役三态 / 陈旧引用机检 / Coverage-Citation 双机检 / 零和)+ 容量口径(memory_capacity_check.py);v1.4 的「迁移损失、Δ0」已推翻 → 3.0 → 4.0(增强,Δ+1.0)
执行 持平
permission 5 档(defaultPreset → opencode-plan)+ 工具面按 preset 收敛 + plugin_manager 收口;v1.5 新增 run_gate 窄通道与命令注册插件;本机沙箱 enforcement=full → 维持 5.0(已封顶)
评估 反转
v1.5 达反转阈值:run_gate 门控执行通道(ADR-010)为产出方恢复脚本执行能力 ⇒ v1.4 的抑制项「门控脚本依赖 bash 而子 Agent 无 bash」消解;叠加 oc_architect + gate_architecture.py / oc_requirement + 分层定档 / oc_search 证据包 + 信源分级 / criterion-design-validation;仍为领域级覆盖(架构 / 需求两域)故不取 4.5+ → 3.5 → 4.0(对官方 2.0 为 Δ+2.0,反转)
03精装度 8 维对比
| 维度 | 权重 | 官方 | 装配层 | Δ | 依据 |
|---|---|---|---|---|---|
| 多Agent编排 | 16% | 4 | 4 | 0 | 3 preset 编队(opencode-standard/creator/ptc,order 11/12/13)+ 7 worker(general/explore/architect/requirement-discovery/search/reflection/pdf)+ 全局控制面 send_message/interrupt_agent/list_agents;v1.5 新增 preset 顶层 gate-runner 行(窄工具 run_gate);无真 DAG/画布 → 与 4 档一致,不升 5 |
| Skill库 | 12% | 3 | 4 | +1 | 主根 49 = 派生 47 + DSH 原生 2(dsh-config / dsh-reflection),模型可见 46 = 49 − 3 件 disable-model-invocation;_overlay 另 6 件 openspec 系叠加;精选个人库、无市场/分发 → 4 档 |
| 工作流 | 13% | 4 | 4 | 0 | persona 15 节把 GATE/COMPLEXITY/契约委派/留档 5 段等流程纪律迁入 preset 层 + plan-mode section 追加 grill-me 逐题访谈指引;v1.5 新增 dsh-opencode-commands 插件注册 `/arch` `/rd` `/reflection` 三条命令(命令级工作流入口);无通用可视化画布 → 维持 4 |
| 模型接入 | 14% | 4 | 4 | 0 | 宿主 profile 提供 4 provider(zai/opencode-go/commandcode/opencode-go-tmp)+ deepseek;v1.5 新增 reasoningEfforts 三档映射(low/high/max,刻意不声明 off)与 maxTokens 输出上限治理(8192→32768 撤销「方案 D」);仍非「千级模型开箱」→ 维持 4 |
| 一键部署 | 15% | 3 | 3 | 0 | bundle 需手动 install_bundle 且**不可移植**(persona 含本机绝对路径、node_modules 符号链接指向本机源码树);无 npm/docker/SaaS 分发 → 维持 3 |
| 沙箱 | 10% | 4 | 4 | 0 | 宿主 permission presets 5 档(read-only / workspace-write / opencode-plan / opencode-build / danger-full-access),defaultPreset 由 read-only 改为 opencode-plan;opencode-plan/build 属**审批档**而非隔离档。✅ v1.5 事实更正:本机沙箱后端已可用且 enforcement=full(v1.4 记「本机仍无沙箱后端」已证伪)——但此为环境事实更正、非装配层新增隔离能力 → **维持 4(Δ0)** |
| MCP生态 | 10% | 3 | 3 | 0 | 宿主 0 个 MCP 配置(对比 opencode-custom 侧 4 个)→ 维持 3(迁移相对损失,见 diff §5) |
| 记忆 | 10% | 4 | 5 | +1 | R 环 R-A 载体已落地(ADR-012,门控 6/6):`~/.dsh/MEMORY.md` 存在(14 个 § 段 / 10815 B / 14 条 [src:] 签名)+ `~/.dsh/reflection/candidates/` 15 份候选 + `archive/` 1 份 + `dsh-reflection` skill 承载零和预算 / 生命周期五件 / 容量口径;档位措辞「跨 session 知识库 + 长期记忆 + 结构化状态」三项齐备 → **4 → 5**。⚠ 机制齐备但内容体量小(14 段 / 10.8 KB),写入为显式链非自动自省 |
数值唯一来源:dsh_custom_scores.py 的 SCORES / WEIGHTS(与 premium_scores.WEIGHTS 同源);官方加权 3.63→3.6,装配层加权 3.85→3.9,均过端到端硬门槛、无一票否决。v1.5 的 Δ+0.3 来源 = memory 维度 +1 × 权重 10% = +0.10,叠加四舍五入后的显示差——这是一次「单维小步」而非「全面跃升」;二者同落 tier() 的「成品化受限」档(≥3.5 且 <4.5),均未跨档。
0410 类改造清单
| 类别 | 改造内容 | 对环权重 | 对环影响 |
|---|---|---|---|
| preset 编队层 | 新增 3 preset:opencode-standard(order 11) / opencode-creator(12) / opencode-ptc(13);顶层插件行 21/22/22、递归展开子行 34/35/35 | SP 主 + P | SP:三档设定值固化;P:模式即编队 |
| persona 层 | 15 节 / 6524 字符(v1.5 收敛后;v1.4 为 8018)persona 逐字符进三 preset 的 dsh-persona 行;遮蔽宿主 system-prompt.personaPrefix(2790 字符 / 8 小节 → 变死配置);v1.5 把机器特定事实外迁至 dsh-config 技能的 local/host-env-facts.md | SP + E | SP:行为纪律随模式走;E:判据可复算 |
| skill 库 | 主根 49 = 派生 47 + DSH 原生 2(dsh-config / dsh-reflection);模型可见 46 = 49 − 3 件 disable-model-invocation;_overlay 6 件 openspec 系叠加 | T + E | T:能力密度提升;E:门控 0 问题 |
| 委派编队 | 7 worker(general/explore/architect/requirement-discovery/search/reflection/pdf)→ 别名 subagent/oc_explore/oc_architect/oc_requirement/oc_search/oc_reflection/oc_pdf;delegation 组 12 子行;worker 均省略 maxDepth,靠 toolFilter.deny 阻止再委派 | P 主 + T | P:主 Agent 编排 + 专职执行;T:工具面按 worker 隔离 |
| 权限层 | 宿主 presets 由 3 档 → 5 档(+opencode-plan / opencode-build);v1.5 defaultPreset 由 read-only 改为 opencode-plan | T(安全) | T:审批档增加,非隔离档增加 |
| 模型接入层 | 宿主 4 provider(zai / opencode-go / commandcode / opencode-go-tmp)+ deepseek 直连;含 inputModalities 视觉声明 | T(基建) | T:模型接入面扩大,支撑视觉降级路径 |
| plan-mode 层 | plan:policy section 由内置 2358 → 2515 字符,追加 3 行中文逐题访谈指引(指向 grill-me) | SP + P | SP:计划门附访谈约束 |
| 工具面分层 | 内置 standard 31 / opencode-standard 37(含 6 个 oc_*)/ opencode-creator 40(+cordis_inspect_*、plugin_manager)/ opencode-ptc 1(仅 run_code,workflow 双禁) | T | T:同一内核派生 4 种执行面 |
| 插件收口 | plugin_manager 计数 188 → 191(+3 行 preset);standard/ptc 硬禁、creator 条件启用 | T(治理) | T:自省面按模式收口,防越权自改 |
| 领域门控栈 | architecture-judgment(gate_architecture.py ADR schema 门控)+ requirement-discovery(分层定档)+ search-methodology(信源分级)+ criterion-design-validation | E 主 + P | E:首个领域级自动评估门;P:领域任务路由固化 |
| 门控执行通道(v1.5) | 三 preset 各 +1 顶层 gate-runner 行(本地插件 dsh-opencode-gate-runner):脚本路径 + argv 数组、roots / 扩展名白名单、超时 120s/600s、输出 16KB 封顶后 spill;负向用例 18→30 条,node --test 56/56 | E 主 + T | E:产出方恢复门控执行能力 ⇒ Δ 达反转阈值;T:工具面新增受限执行通道 |
| dsh-config 能力包(v1.5) | 本机分层实况索引:SKILL.md + ref/ 8 + local/ 11 + ops/ 4 + troubleshooting/ 1 + claims.yaml(声明账本)+ conflicts.md;与官方自带面(settings seam / config-editor / plugin_manager / cordis_inspect_query)分工不重叠 | E + SP | E:判据锚点与层归属可机检;SP:口径唯一化 |
| R 环 R-A 载体(v1.5) | ~/.dsh/MEMORY.md(14 个 § 段 / 10815 B / 14 条 [src:] 签名)+ reflection/candidates 15 份 + archive 1 份 + dsh-reflection skill(零和预算 / 生命周期五件 / 容量口径);写入链=候选→主 Agent 审阅→落库 | R 主 + M | R:闭环接通(迁移损失追平);M:跨会话记忆载体落地 |
| 命令注册插件(v1.5) | dsh-opencode-commands 注册 /arch、/rd、/reflection 三条命令(命令级工作流入口) | SP + P | SP:显式设定值入口;P:领域任务路由 |
| 模型路由治理(v1.5) | reasoningEfforts 三档(low/high/max,刻意不声明 off)+ maxTokens 8192→32768(撤销「方案 D」止损)+ deepseek-v4-flash 16384→32768 | T(基建) | T:输出上限与思考档可治理 |
| 门控判据扩面(v1.5) | verify_bundle 判据 13 → 20 项:新增 14 门控执行通道 / 15 真实挂载审计 / 16 工具 output.schema 子集 / 17 会话 PATH 引导 / 18 dsh-config 账本漂移 / 19 迁移状态 / 20 命令注册插件 | E | E:判据面覆盖「插件能否真实挂载」与「迁移是否落地」 |
05四大核心发现
迁移损失已追平
v1.4 判「R 环迁移断裂(Δ0)」——v1.5 已推翻。
R-A 文件载体落地(ADR-012,门控 6/6):~/.dsh/MEMORY.md 存在(14 个 § 段 / 10815 B / 14 条 [src:] 签名)+ reflection/candidates 15 份 + archive 1 份 + dsh-reflection skill 承载零和预算 / 生命周期五件 / 容量口径。写入链=候选→主 Agent 审阅→落库。⇒ R 环 3.0 → 4.0(Δ+1.0,增强),「最弱环=R」的结论随之作废。
E 环达反转阈值
v1.4 的抑制项「门控脚本依赖 bash 而子 Agent 无 bash」——v1.5 已消解。
run_gate 窄通道(ADR-010)实机生效:三 preset 各 +1 顶层 gate-runner 行(本地插件 dsh-opencode-gate-runner),参数面受限(脚本路径 + argv 数组、roots / 扩展名白名单、超时 120s/600s、输出 16KB 封顶后 spill),负向用例 18→30 条。产出方恢复门控执行能力 ⇒ E 环 3.5 → 4.0,对官方 2.0 为 Δ+2.0,达反转阈值(v1.4 因该抑制项只记「增强」)。仍为领域级覆盖(架构 / 需求两域)故不取 4.5+。
门控判据
bundle 自家门控曾假阳性 FAIL——判据应绑「被消费字段」而非「整文件指纹」。
原判据对「活文件」取整文件 sha256,脆性极高:GUI 写回一个 ui-theme.fontSize 即导致指纹漂移 → 门控 FAIL,而 bundle 实际消费的字段一个都没变。已改为 scoped_digest,只判 bundle 实际消费字段。教训具跨域普适性:门控判据的对象须与被消费的真实形态对齐;对「既存且会被他方合法改写」的文件取整文件指纹,同时制造假 FAIL 与覆盖错觉。
结构性代价
persona 税与 PTC 空指向——装配层的两处结构性代价。
其一,persona 税:每请求 +6524 字符(v1.5 收敛后;v1.4 为 8018),而内置 standard 的对应 section 仅 54 字符(v1.4 实测值,v1.5 未复测)——约百倍开销,且三 preset 各自完整复制一份。其二,PTC 空指向:PTC 模式下工具面坍缩为单 run_code,但 persona §二 仍写「本模式提供 subagent、oc_explore…」→ 指向了不存在的工具(v1.4 实测,v1.5 未复测)。
口径漂移是复评的主要风险
同一事实出现多套口径,且两条线存在同名件——比数值本身更容易致错。
① skill 计数四套并存(v1.4 时点 45 / README 46 / reconcile 47 / 实测主根 49),v1.5 已把口径唯一化写入契约 §2.6;② 沙箱:v1.4 记「本机无可用后端」,v1.5 实测 bwrap enforcement=full ⇒ 属环境事实更正,⛔ 不得当作装配层收益;③ 迁移线与 0928 线各有一个 ADR-011(不同域)⇒ 引用必须带路径限定。