从「神鬼二相性」到「深度效率」:DeepSeek V4 思维模式路由的 30 次实验

一篇关于「同一个模型,为什么有时是神、有时是鬼」的实测研究。
全部结论来自官方 API 的真实调用(thinking.enabled + reasoning_effort=max),
30 轮实验(P1–P30),开源代码与数据见文末。

一、开场:你遇到的「神鬼二相性」

如果你长时间使用过同一个前沿模型,一定见过这种场面:

不是抽卡,不是模型状态,是「提示词条件化」在换挡。

在 Project2 评测(V4.1b,冻结)里,我们把差距量化了:同一模型,官方极简模式(一句 system prompt + 两个工具)两跑 99/96;完整标准模式 91;代码模式 92。约 10 分的差距,只来自「第一个请求长什么样」。

二、背景:极简模式为什么强?

DeepSeek Harness 官方 minimal 预设的源码快照测试写得很直白——"sends the exact RL prompt and schemas":一句 You are a helpful software engineer assistant. + 两个训练时工具。这意味着:

极简模式不是「标准模式的精简版」,它是训练分布本身。

而完整标准模式把 25 个工具 + 工具指导 + 上下文压缩 + 65536 字节的工作区说明全部塞进首轮——模型被迫在「训练时见过」和「训练时没见过」的两种接口之间做选择。它选后者时,行为就开始飘。

于是有了第一个方案:首轮锚定——先用极简条件开局,首个工具调用后再放行全部工具。Project2 两跑 98/99(dsh-anchored-standard)。这证明了「先窄后宽」可行,但也引出了更深的问题:为什么窄面能锚定轨迹?模型内部到底发生了什么?

三、理论:双吸引子行为策略

30 轮实验指向一个统一的解释——双吸引子模型:

训练分布:spec scaffold(极简型)  ←──────────→  react scaffold(代码型)
              │                                        │
          强对齐(99/96)                          强对齐(10/10)
              │                                        │
              └──── 中间 persona = 训练分布间隙 ────────┘
                     (离域 → 行为熵高 → 实测陷阱区)

假设 A1(双 scaffold):后训练在至少两种提示分布上对齐了行为策略——「计划-集体」吸引子(spec)和「执行-个体」吸引子(react)。各自在自己的盆地内稳定且强。

假设 A2(分布间隙):两个盆地之间是训练没采样的中间提示。这里的行为是高熵的——模型随机混合两套轨迹。21 点细粒度探针(0.05 步进)实测:行为沿 persona 轴坍缩为三区——

区间行为判定
0 – 0.15We 计划轨迹,稳定spec 盆地
0.2 – 0.45We/The/Let 随机混合分布间隙(陷阱)
0.5 – 1.0The/Let 执行轨迹,11 个值行为一致react 盆地

「无极调节」是幻觉:persona 的 6 个离散状态在行为层坍缩成 3 区。数值旋钮(mode 0.37)只是量化到最近档位。

假设 A3(路径提交):行为条件化整段会话历史——首轮一旦进入某个盆地,后续条件变化最多扰动一个 reasoning 块,然后轨迹回归。实测:首轮锚定后放开 25 工具,后续 191 个 reasoning 块只有 1 次 Let me。

假设 A4(条件化主导):同任务上,两个条件之间的分数差可以超过模型间的分数差。马里奥任务:代码模式 10/10(2566 行单文件、读-写比 2.9:1 验证驱动),极简模式 6/10(1102 行、读-写比 1:2 盲改)。两轮零工具错误——分数差是纯条件化效应。

四、实验脉络:三十轮探针

4.1 触发矩阵:persona 是主开关,schema 面是副开关

4.2 相变探针:三区,不是连续轴

21 点 × n=2:稳定 spec 区 [0, 0.15]、相变点 0.2(首段 react 片段激活即丢 We)、陷阱区 [0.2, 0.45]、稳定 react 区 [0.5, 1.0]。旋钮有 3 个位置——设计上必须量化,不能假装连续。

4.3 域重叠扫描:内部路由存在,但只在一个窄域

单轮自路由(P3/P5)被证伪:固定 persona 下任务怎么变,轨迹都不变;路由器 persona(指令式/few-shot/显式分类)全部被执行吸引子吸收。但 P8 域扫描找到唯一窗口:

persona任务区分度
neutral(弱 persona)+3.3(方向正确的内路由!)
router-v2(few-shot 路由指令)+2.3
mixed(竞争区)0.0(纯陷阱)
spec 侧-7.0(反向路由:生成任务更计划)

内部路由只在「弱 persona」域存在,且是「倾斜」不是「翻转」——模型能按任务调整方向,但不能达到强模式的确定性。这也是马里奥 6 分的机制:spec 条件下生成任务 planScore 飙到 +8。

4.4 双模型分化:同一个 persona,两个模型行为相反

P11 细扫(9 persona × 双模型):

personaProFlash
spec 句 + few-shot+5.0(最优)-2.0(反路由!)
neutral + 显式分类+0.3+5.7(最优)

最优区间不共享——Pro 需要 spec 句做计划基底,Flash 的 spec 句会钉死计划吸引子。结论:必须按模型选 persona。

4.5 近距离引导:位置决定一切

P13 证伪了「远距离协议」:把路由指令放进 system(远距离)不但不防衰减,还加速衰减。P14 反转结论:同一句指令放在用户消息之后(近距离)→ 零衰减。P17(log 级验证)显示模型真的在推理里显式分类("The task is a fix task"),且行为严格跟随分类(修→先探索、建→直接产出)。

P15 更进一步:生成自锚定——要求首 token 为 We/Let,模型自己续写时自回归一致性把语域越锚越牢(区分度 0→+2.0 反衰减)。但强制「回顾开头」是负效果(P22:33%)——锚定应是提醒,不是格式要求。

4.6 多轮反稀释:从 75% 到 98%

里程碑配置多轮路由正确率
P12 基线w7 弱 persona83%(第 4 轮起平局)
P14 近距离内部指令每轮引导「自己分类」零衰减(+1.0 稳定)
P19 boost第 3 轮起「这是新任务,重新分类」96%,后半 12/12 反稀释
P20 deep-guide「分类 + 深度思考 + commit and act」96% 路由 + 100% 收敛
P28 Pro 20 轮w6c + deep-guide98%,后半 20/20,越跑越稳

关键机制:每轮重新分类 = 对抗路径提交;固定引导文本 = 缓存命中 92-95%。

4.7 单任务长链:真正的敌人是「探索失控」

分析真实会话(马里奥开发):plan 边界后模型重做探索(重复列目录、重复搜索)——最初诊断为「失忆」,修复是保留 plan-mode section(v6)。但 P22 的基线实验推翻诊断:重复率只有 13%,真正的问题是探索失控——8 步里模型在跑 echo TEST123、whoami、穷举 grep,0% 完成率。

三个锚依次生效:

P27 修正了又一个误判:Pro 的「67%」是 8 步上限的假象——16 步(≈无限)下天然 100%。Pro 的「慢」是深度思考的代价,不是缺陷。

4.8 深度自适应:该深度深度,该快速快速

实战反馈:flash「过于自信、思考浅」——硬收敛锚催停了复杂任务的探索。v19 改为复杂度分派:简单任务快速收敛(1 步零浪费),复杂任务深度引导。P30 量化「深度效率」:

五、落地:统一预设 + 自动匹配

最终形态(dsh-router-standard,v0.1.0+):

Router Standard(一个预设,零配置)
├─ 首轮:任务分类(build/fix)× 复杂度(simple/complex)
├─ 模型自动匹配:
│   ├─ Pro  → w6c(spec 句 + 分类指令)——20 轮路由 98%、单任务 100%
│   └─ Flash → w7 + 回顾/反跑题锚 —— 96% 路由、单任务 100%
├─ 每轮引导(近距离注入,缓存中性 92-95%):
│   ├─ 简单任务 → 快速收敛版
│   └─ 复杂任务 → 决策闭环深度版
└─ AI 自优化工具:dev_router_status / dev_router_mode / dev_mode_subagent

配套:注入器引导铁律 10 条(dsh-super-injector v0.3.3)、三步安装套装(dsh-routing-suite)。

六、教训与设计原则

  1. 硬指标是约束,不是目标:把「完成率」当目标会牺牲深度——「性能」= 深度 × 速度按任务分配;
  2. 收敛指令要「边界」不要「倾向」:预算(硬截止线)有效,软建议("别过度规划")反而负效应;
  3. 位置敏感是铁律:所有行为引导必须在近距离;system 里的动态文本既衰减又炸缓存;
  4. 优化指标要对应真实质量:路由正确率 ≠ 任务质量(单任务场景不需要路由);深度字符数 ≠ 深度质量(方向正确 + 闭环才算);
  5. n=2-3 的采样波动很大:96% 和 88% 可能是同一次采样,趋势看多个实验的交叉验证;
  6. 评测环境会撒谎:合成 tool result 的信息空洞会诱发模型「环境怀疑」——真实环境的行为可能更好。

七、开放问题

八、资源


*所有结论基于公开 API 实测,n 值 2-5,样本量有限;「双吸引子」是对观测行为的解释模型,不代表模型内部实现。*


router-standard · 实测研究(P1–P30)· GitHub