← 返回列表
需源码安装
按任务阶段注入匹配的思维模式与工具面
暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明。 · 最近上游提交 2026/8/25 · 已提供中文文档
已并入 dsh-routing-suite(单仓库化);本仓库为历史镜像/归档 —— 注意力工程主线 v1.19.1/v34 研发线未发布。新代码见 github.com/yjh051108/dsh-routing-suite
综合分
64.4
GitHub 分
64.4
用户评分
—
★ Stars
358
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add yjh051108/dsh-router-standard缺少 main/exports/bin 入口声明,改用 GitHub 源安装
🟢实装验证通过· 2026/9/17
由 dsh-plugin-verify(GitHub Actions)在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/15(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-router-standard(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
缺少 main/exports/bin 入口声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 00:30:02
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-router-standard
任务感知思维模式路由预设:把 DeepSeek V4 在 persona 轴上"非连续、分相变"的实测特性,
量化到稳定区(spec / react / weak),在首轮注入匹配的 persona 与工具面。
属于 dsh-routing-suite 套装,与 dsh-super-injector
(免重启运行时注入)配合开发。
📄 研究史说明:docs/statement.md(勘误声明)| docs/apology.md(道歉函)
当前状态(v1.19.1,2026-08-24 · 研发线,尚未发布)
Router Standard 处于「严格 workflow」研发线(以 CHANGELOG 为准,版本线文件 router-bootstrap-v34.mjs):
- 严格阶段 workflow:完成信号驱动晋级(0→1 需澄清/计划、1→2 需计划锁定、2→3 需交付自检),
阶段 0 强制对齐(歧义先 ask_user_question、复杂任务先 todo_write);"工具名/文本即跳级"已删除。
- 任务回显:stageText 新增 Task: ——模型每轮都看得清在为什么事工作,不跑题。
- 渐进披露:阶段化解锁 + 两档预放 + 直达语义 + 交付全量开放;tools_catalog 全量索引 / tools_help 完整 schema;
已删除 all:true(无全量出口,未解锁工具不进入视野)。
- 标准模式基底:native 直调(无 PTC/run_code 包装,SDK 全量段不存在,工具面注意力税大幅下降)。
- 页面验证内置:dev_page_check = 截图 + DOM smoke + console/pageerror/title/selector/scale;
{js:…} 模式 = 本地 JS 引擎(零外部 node 依赖);external 证据一等公民。
- 描述 ⇄ 行为对齐:presentation=native 自检、阶段文案只说真话、平台事实(win32 以 Git Bash 私有 shell seam 为准)。
- 主动性引导:Proactivity 常驻段(自检信号,不是停手命令);压力感应器已退役。
配套预设:router-react(v17)/ router-spec(v10)(基于标准模式的两大执行预设,均支持首轮读图);
router-pro 线已退役删除。完整演进:见 CHANGELOG.md 与 docs/STANDARD-PLAN.md。
【历史文档 · v0.3 时代】 Task-aware reasoning-mode router for DeepSeek Harness. One preset, two
routing modes (v0.2.0 naming), plus the measured three-band axis behind them:
| routing mode | first request | thinking shape |
|---|---|---|
| standard(标准路由预设) | 分类 persona(spec/react/weak)+ 完整 prompt sections + 分带首轮工具面 | 按分类带行动:react 直接产出、spec 先读后改、weak 内路由(每轮近距离引导) |
| spec(spec 路由预设) | 分类 persona(spec/react/weak)+ 完整 prompt sections | 雷霆大思考:首轮超长思维链(101K 推理 0 行动是其特征,不是缺陷) |
选择:安装两个预设之一(Router Standard / Router Spec,见 Usage)。
dev_router_status 显示当前路由模式。
This is a research artifact. It encodes a measured property of DeepSeek V4
Pro / V4 Flash: model behavior along the persona axis is not a continuum
— it collapses into a few stable regions separated by phase transitions.
The router therefore quantizes to the stable regions instead of pretending
the axis is continuously tunable.
v0.3.0 — real-assembly-chain fixes
v0.2.x shipped routing logic that was validated against bare-API probes but
was broken on the REAL DeepSeek Harness assembly chain. v0.3.0 fixes all of it,
verified against @deepseek-ai/dsh-agent-loop (0.1.0-rc.7) event ordering:
- First-turn routing actually works (issue #13): the loop claims the inbox
BEFORE assembling the system prompt, and inbox.claim() emits the
agent-scoped agent/inbox/claimed event synchronously — the router captures
the first REAL user message there (source.kind === 'user' only), so the
first request is classified instead of unconditionally falling into weak.
(The captured text is CLASSIFIED, not fed to bandOf raw — the old capture
- 路径静默地将每条捕获的消息映射到规范带。
- 近场引导移至 agent/pre-step(问题 #34/#36/#55):
session/event 在 agent 平面预设内从不触发(dsh-scope 将其过滤出
入口本地领域),因此旧的收件箱重新追加从未传递
引导——而在它确实触发的地方,next-step 追加强制每条用户消息产生第二次
模型请求(2 倍 API 调用峰值)。该引导现在在 agent/pre-step 处插入到
decision.messages 中:与用户消息相同的请求,近场,缓存中立,零额外往返。
- 修复:两个引导文件中缺失的 extractText/bandOf 导入
(#11)——session/event 处理器在触发时因 ReferenceError 崩溃;
sessionMode 在固定带时忽略插件来源消息;router.test.mjs 导入路径;
preset.yml YAML 引号(#53);子代理会话跳过(#5);从
assembled.variables 选择会话模型(#9);规范预设的 RL 标准模式现在在首次工具/调用后
原样返回组装结果(#44)。
- 新增:router.integration.test.mjs 针对实际引导代码重放真实的 claim → assemble →
pre-step 顺序。
它的作用
router-standard:读取会话的第一条真实用户消息,对
任务进行分类(build → react / fix → spec / ambiguous → weak),并在首次
模型请求时注入匹配的角色,同时保留完整的提示词
部分;首轮核心工具面遵循该带
(spec=read/edit/glob/grep,react=read/write/edit,weak=read/write/edit,每个
加上平台 shell)。弱带会话还会在与每条真实用户消息相同的请求中获得近场路由
引导。
router-spec:相同的路由核心,带有深度思考优先的品牌标识;保留
v0.2.0 双模式代码路径(routerMode),因此配置了
routerMode: standard 的副本仍会获得 RL 接口首轮(RL 句子 +
shell/str_replace_editor),并在首次持久
工具/调用后恢复完整部分。
在首次持久工具调用后,完整的 Standard 目录会被暴露,并且
路由器停止触碰任何内容。模式派生自持久会话
事件,因此恢复/重新加载会保留它。计划模式提示词部分被保留,
因此计划边界不会重置模型的焦点。
三个实测行为带
细粒度探测(21 个模式点 × n=2,官方 API,reasoning_effort=max)
在 V4 Pro 上显示,沿角色轴的行为坍缩为三个带:
| 带 | 模式 | 实测行为 |
|---|---|---|
| spec | 0 – 0.19 | 稳定的计划集体(We 轨迹,let-me ≈ 0) |
| mixed | 0.2 – 0.49 | 过渡陷阱:We/The/Let 的不稳定混合 |
| react | 0.5 – 1.0 | 稳定的执行者(The/Let 第一人称,we ≈ 0)——11 个模式值表现相似 |
V4 Flash 呈阈值式(0–0.5 全在 spec 侧,在 0.75+ 跳跃)。数值
dev_router_mode 接口被保留,但它会量化到三个频段——过渡带永远不会被自动选中。
原因:双吸引子 RL 策略
跨项目的证据(见 docs/paper.md 和 docs/experiments.md):
- 同一个模型在维护基准测试中于 spec 条件下达到顶带分数(Project2:minimal 99/96,anchored 98/99),并在绿地构建任务中于 react/code 条件下达到顶带分数(Mario:10/10),而错误的模式分别只得到 91 / 6——仅凭提示词条件作用就有约 10 分的摆动(“god/ghost 二元性”)。
- 人设是主导触发因素(一句话替换即可翻转轨迹);工具 schema 表面是次要条件;用户消息中的目录文本没有效果。
- 行为是路径承诺的:一旦锚定,扩展工具目录最多扰动一个推理块,且永远不会翻转模式。
- 中间人设是分布外的(训练分布差距),这就是实测到的不稳定带。
模型无法自我路由:P3(相同人设,任务替换 → 轨迹不变)、P5(路由器人设 → 执行者吸引子吸收指令)和 P8(领域重叠扫描)表明,唯一的内部路由窗口是 WEAK 人设 + 少样本路由指令(倾斜,而非翻转;区分度 +2.3..+3.3)。会话中途切换模式没有奖励信号,而且行为相变意味着模型在第一个请求时就已承诺。模式选择必须来自外部——人类(“streamer”)、启发式分类器或学习到的路由器。本预设就是该外部路由的自动化版本。
用法
两个预设(v0.3.0;router-pro 产品线已退役):在 ~/.dsh/.agent-presets/ 下安装一个或多个:
标准路由预设(RL 接口还原,默认推荐)
$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\router-standard'
Copy-Item -Recurse .\preset\router-standard $target
spec 路由预设(深度思考优先)
$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\router-spec'
Copy-Item -Recurse .\preset\router-spec $target
免重启安装(推荐):装好 dsh-super-injector
后(见套件 scripts/install-injector.ps1),改预设代码不再需要换文件名/重启:
dev_reload_preset router-standard # 预设热更新:?v=N query 绕 ESM 缓存,新会话立即用新代码
注意事项(实测血泪):
1. ESM 缓存:loader 按 URL 缓存模块——原地覆盖文件内容不生效(改代码必须
dev_reload_preset 或换文件名)。
2. 首次会话必须新开:路由模式在首个请求锁定(路径承诺),中途切 GUI 模型/
改配置不影响已运行会话。
3. 子代理不路由:parentSession 会话跳过路由层(社区 #5 修复),shell-less
子代理不再崩溃。
4. 引导注入通道(v0.3.0):近场引导走 agent/pre-step,每个真实用户消息
注入一条(weak 模式);rc.6 起 session/event 在 standing scope 收不到事件,
旧版本引导是死的。
5. 首轮真实分类(issue #3/#13):首轮路由读 agent/inbox/claimed 的原始
消息文本并经 classifyTask 分类——首轮即真实 band(不再 weak 兜底)。
6. 自举卸载:dev_uninject_plugin --self=true 可卸载注入器自身(保留
装配链,重启自动恢复)——用于验证安装闭环。
重启 DSH(或通过套件脚本安装以实现零接触),启动新会话,选择 Router Standard (experimental)(RL 接口,think-act
循环),Router Spec(实验性)(深度思考优先,首轮长链正是其要点)或 Router Pro(V4 Pro 实测最优)。
- dev_router_status — 当前模式、档位、人格、核心工具、覆盖状态
- dev_router_mode — 显式模式
(数值输入会量化到三个档位)
- dev_mode_subagent — 在全新的隔离上下文中以
不同的推理模式运行一个任务(拥有自己的系统提示词),不触碰当前轨迹。
模式隔离是在会话中途切换模式的唯一可靠方式:会话中途切换人格会使整个
前缀缓存失效,尾部人格无效(P6),而原生子代理会继承此人格。
单一预设,按模型自动匹配。 无需配置 Pro/Flash 拆分:personaFor(mode, modelId) 读取会话的模型路由并自动选择实测最优配置——Pro → w6c(spec 句子 + 分类指令,无锚点;24/24 = 100% 路由,P24),Flash → w7 + 召回/防失控锚点(96% 路由;100% 单任务完成,P23)。模型在首次请求时即固定(路径承诺),因此人格在整个会话中锁定;切换 GUI 模型会以匹配的配置启动新会话。
深度自适应引导(v20,思考效率)。 每条消息的引导按任务复杂度分发(isComplexTask:长度或架构关键词):
- 简单任务 → 快速收敛引导(P30:1 步,零浪费);
- 复杂任务 → 决策收束深度引导:“深入思考架构、边界情况和集成点。不要在
环境或工具上耗费推理。当信息完整时即产出。
每个推理块以决策或信息需求结尾。”——
P30:深度 +12% 且收敛更快(8.0 对 8.3 步),3/3 完成。
- 反刍(怀疑环境 / 反复确认)被防失控锚点抑制:实测仅占推理 token 的 0.0-0.3%。
测试
node --test router.test.mjs # 11 个测试:分类、档位、人格、计划段存活
文件
- preset/agent.cordis.yml — 完整的 rc.6 Standard 组合 + router 行
- preset/router-core.mjs — 纯路由逻辑(零依赖,可单元测试)
- preset/router-bootstrap.mjs — Cordis 插件(零外部导入)
- router.test.mjs — 单元测试
- docs/paper.md — 理论 + 实验报告
- docs/experiments.md — 完整数据表
证据与归属
- 轨迹触发矩阵、双模型矩阵以及 21 点阶段探针:
dsh-probe(本仓库的配套脚本位于论文的附录表格中)。
- Project2 评估数据:xiaobright/modeltest
(V4.1b,已冻结)——minimal 99/96,standard 91,PTC 92,anchored-standard 98/99。
- 两阶段锚定预设:xiaobright/dsh-anchored-standard
(MIT)。路由器的首轮锚定是其 tool-bootstrap 机制的插件级移植。
- DeepSeek Harness 官方 minimal 预设快照
(sends the exact RL prompt and schemas 测试)——即规范人设与
RL 对齐声明。
许可证
MIT。preset/agent.cordis.yml 派生自 DeepSeek Harness Standard
预设(MIT);原始署名见 NOTICE。同作者(yjh051108)的其他插件
扫码进群