用 dsh-router-standard 给 DeepSeek Harness 自动选推理模式

前言

DeepSeek Harness(dsh)把模型、工具、会话、循环都做成插件,同一套智能体可以换预设、换工具面、换系统提示。实际跑任务时,问题往往不在「有没有工具」,而在首轮请求把模型送进了哪条思维链:有的任务适合先想清楚再动手,有的任务适合想一段做一段。同一条提示词、同一套工具目录,首轮 persona 和可见工具稍微不同,后续轨迹就可能完全岔开。

社区仓库 dsh-router-standard 做的就是这件事:在第一次模型请求之前,按任务把会话放到可观测的行为档位上,并注入对应的 persona 与首轮工具面。它由 yjh051108 维护,MIT 许可,当前 package.json 版本为 0.2.0。本文按社区目录页、GitHub README、源码与勘误声明交叉核对后整理。文中提到的 DeepSeek Harness 插件库 是独立社区站点,与 DeepSeek / 幻方没有官方从属关系;官方发现入口仍是 GitHub topic dsh-plugindeepseek-ai/deepseek-harness

这是什么

dsh-router-standard 是一套面向 DeepSeek Harness 的 agent preset(智能体预设),目录分类为「会话与消息」。它不是换模型,也不是再包一层聊天 UI,而是改写会话在 agent 平面上的系统提示与首轮工具目录。

仓库 README 把它概括为:一个预设、两套路由模式(v0.2.0 命名),背后是一条 react ↔ spec 轴上测到的三个行为区间。目录页的定位与此一致:在首个模型请求前自动选档,支持 persona 与首轮工具注入,并把调参工具暴露给 agent。

截至 2026-08-17,GitHub 仓库 yjh051108/dsh-router-standard 与目录页均显示 270 stars。NOTICE 写明:这是社区产物,未经 DeepSeek 背书;preset/agent.cordis.yml 派生自官方 Standard 预设(MIT),首轮锚定机制移植自 xiaobright/dsh-anchored-standard

需要先分清两套「模式」名字,否则后面会混:

  • 路由预设(安装时二选一或都装):Router StandardRouter Spec,对应配置项 routerMode: standard | spec
  • 行为带(分类与调参用):spec / mixed / react,另有分类不明确时走的 weak(内部路由)。

核心功能

两套路由预设

v0.2.0 把用户可安装的预设收成两个,README 给出的对照如下。

路由预设 首轮请求长什么样 思维形态(仓库实测描述)
standard(默认推荐) 只保留 RL 训练句 You are a helpful software engineer assistant.,工具面收成 shell + str_replace_editor 没有「雷霆大思考」:想一段做一段
spec 按任务分类注入 persona(spec / react / weak),保留完整 prompt sections 首轮超长思维链;README 写「101K 推理 0 行动是其特征,不是缺陷」

preset/router-standard/preset.yml 里显示名为 Router Standard (experimental)preset/router-spec/preset.ymlRouter Spec (experimental)agent.cordis.ymlrouter-bootstrap 的默认配置是 routerMode: standard

standard 模式会在首轮把身份、Web、工具引导等 section 拿掉,只留下 RL 那一句(plan-mode 的 section 会保留)。spec 模式则用 applyPersona() 只替换 persona,其余 section 不动。无论哪一套,第一次持久工具调用之后都会放开完整 Standard 工具目录,路由器不再改工具面。模式来自会话里可持久化的事件,resume / reload 后仍然有效。

三个可观测行为带

仓库在 V4 Pro 上做了细粒度探针(README:21 个 mode 点 × n=2,官方 API,reasoning_effort=max),结论是 persona 轴上的行为会塌缩成三个区间,而不是连续可调:

行为带 数值区间 仓库描述的可观测行为
spec 0 – 0.19 稳定的计划-集体轨迹(We,let-me 接近 0)
mixed 0.2 – 0.49 过渡陷阱:We / The / Let 混用,不稳定
react 0.5 – 1.0 稳定的执行者轨迹(The / Let 第一人称)

自动分类不会选 mixed。dev_router_mode 仍接受 0–100 或 0.0–1.0,但内部会量化到这三个带。V4 Flash 在 README 里被写成阈值型:0–0.5 都偏 spec 侧,到 0.75 以上才跳变。

任务分类在 preset/router-standard/router-core.mjsclassifyTask():用中英文关键词分别统计「构建/开发」与「修复/调试」命中;哪边多就落到 react 或 spec,打平或没命中则返回 weak,交给模型按任务自己选风格。

首轮 Persona 与工具注入

spec 路由预设下,首轮核心工具随行为带变化(bootstrap 还会自动补上当前平台的 bashpwsh):

  • spec:read / edit / glob / grep(先读)
  • react:read / write / edit(先写)
  • weak:str_replace_editor(与 shell 组成 README 所说的 RL 双工具面)

standard 路由预设不走这套分类工具面,首轮固定为 RL 句 + shell + str_replace_editor

weak 带还会在每条真实用户消息后追加一条近场引导。简单任务用快速收敛指引;被 isComplexTask() 判为复杂(长度超过 120,或命中「架构 / 重构 / architecture」等词)则换成决策闭合的深引导。README 把这套深度自适应引导标为 v20。

对 agent 可见的调参

预设向模型注册三个工具:

  • dev_router_status:当前路由预设、mode、band、persona、首轮核心工具、是否存在覆盖
  • dev_router_mode <spec|weak|mixed|react|0-100|0.0-1.0|auto>:显式改档;auto 清掉覆盖,回到任务分类
  • dev_mode_subagent <spec|react|balanced> <task>:在全新隔离上下文里用另一套推理模式跑一次任务,不改当前会话轨迹

README 强调:会话中途改 persona 会作废整段 prefix cache,尾部再塞 persona 基本无效(实验编号 P6),原生 subagent 还会继承当前 persona。因此中途换档只认模式隔离的子代理。

按模型自动匹配

没有单独的 Pro / Flash 配置项。personaFor(mode, modelId) 读当前会话的模型路由:model id 匹配 /flash/i 时走 Flash 的 weak persona(带回顾 / 反跑题锚点),否则走 Pro 的 w6c(spec 句 + 分类指令、无锚点)。persona 在首次请求锁定;在 GUI 里换模型会开新会话,再匹配一次。

安装与启用

社区目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行:

dsh plugin add github:yjh051108/dsh-router-standard

目录页同时说明:如需可复现安装,应固定 commit 哈希。当前 main 最新提交为 f9667f72d45e743f1683f36420ce34c2027fe7b2(2026-08-15):

dsh plugin add github:yjh051108/dsh-router-standard#f9667f72d45e743f1683f36420ce34c2027fe7b2

仓库 package.json 没有 dsh.bundle 声明,README 把真正启用路径写成「复制 agent preset」,而不是只依赖 bundle 层挂载。克隆仓库后,把两套预设拷进 ~/.dsh/.agent-presets/(README 原文是 PowerShell;Linux / macOS 等价写法如下):

# 标准路由预设(RL 接口还原,默认推荐)
mkdir -p ~/.dsh/.agent-presets
cp -R ./preset/router-standard ~/.dsh/.agent-presets/router-standard

# spec 路由预设(深度思考优先)
cp -R ./preset/router-spec ~/.dsh/.agent-presets/router-spec

Windows 上按 README:

# 标准路由预设(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

README 有一条加载器限制:已安装副本必须保持互不相同的模块文件名。ESM 按 URL 缓存模块,不要在原地覆盖同名文件。

然后重启 dsh,新开一个会话,在 Agent preset 里选择 Router Standard (experimental)Router Spec (experimental)。已有会话不会切换预设。

package.json 要求 Node.js >=22。自测命令:

node --test router.test.mjs

典型用法

下面的步骤来自 README 与源码,可以按原样复现。

1. 新会话选标准路由,让它按任务自动选档

重启后开新会话,选 Router Standard (experimental)。第一条用户消息会被分类;standard 预设下首轮系统提示收成 RL 那一句,模型进入想-做循环。若任务更像「先把方案想透」,改选 Router Spec (experimental)

2. 让 agent 自己汇报当前档位

在会话里让模型调用:

dev_router_status

返回内容包括 router-mode(standard / spec)、modeband、persona 文本、首轮 core 工具列表,以及是否处于 override。

3. 显式改档,或清回自动分类

dev_router_mode spec
dev_router_mode react
dev_router_mode weak
dev_router_mode 0.3
dev_router_mode auto

数值输入会被量化到三个行为带。mixed / 0.3 可以手动打开,但 README 标明这是过渡陷阱,自动路径不会选它。改档在下一次请求生效。

4. 当前会话不动,用隔离上下文跑另一种推理

dev_mode_subagent spec 给当前仓库写一份迁移方案,只输出计划

子代理使用独立 system prompt,返回文本(过长会截断)以及 reasoning 字符数。当前会话的轨迹、persona、工具面都不变。

适用场景与注意事项

适合已经在用 DeepSeek Harness、并感觉「同一模型有时极简高效、有时首轮把上下文耗在长思维链上」的人。维护任务、排错、需要先读再改时,spec 带 / spec 预设更接近计划-集体风格;从零搭建、直接出可运行产物时,react 带 / standard 预设更接近执行循环。分类模糊的任务会落到 weak,由模型按 build / fix 自行选风格。

使用前有几条边界需要看清。

这是实验预设。 两个 UI 名称都带 (experimental)。它改的是 agent 平面的系统提示和首轮工具目录,不替换宿主上的沙箱、审批、模型路由。NOTICE 写明未经 DeepSeek 背书。

路径一旦提交就锁住。 首次请求决定本会话 persona;中途在 GUI 换模型等于新开会话。若要在同一轮对话里用另一种推理,走 dev_mode_subagent,不要指望改一句 persona 就能翻盘。

测量数据是作者仓库记录,不是公开基准。 README 引用了 Project2、Mario 等分数差,以及 Flash / Pro 上的路由率。NOTICE 指出 Project2 数字来自 xiaobright/modeltest(V4.1b,冻结,个人 harness),不是公开 benchmark。文中数字请回到 docs/experiments.md 核对,不要当成官方评测。

理论部分已作废,工程部分仍在。 仓库 README 顶部和 docs/statement.md(2026-08-16)写明:论文不撤回,但「双吸引子」假设 A1–A4,以及 god/ghost、自路由不可能等强归因已标注作废。作者现在的表述是现象学的:把测到的行为断层当路由层来用。写配置、看工具时以 README 的 Usage 和源码为准,不要把已作废的理论解释当成确定机制。

安装会以当前 dsh 进程权限跑代码。 目录页原文提醒:插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证;需要可复现安装时固定 commit 哈希。本仓库许可证为 MIT,版权声明为 Copyright (c) 2026 yjh051108

不要和套装仓库混用安装路径。 同一维护者还有 dsh-routing-suite(注入器 + 本预设的打包),安装步骤不同。本文只覆盖 dsh-router-standard 仓库自己的 README。

小结

dsh-router-standard 把 DeepSeek Harness 会话的推理形态,从「同一套 Standard 提示碰运气」收成可安装的两套预设,并在首轮请求前注入 persona 与收窄的工具面。standard 走 RL 接口还原的想-做循环,spec 走深度思考优先;背后的 spec / mixed / react 三个带来自仓库自己的探针,mixed 默认不选。调参工具对 agent 可见,中途换档则要走隔离子代理。

它是社区实验预设,不是官方应用商店里的一键开关。安装前读源码、看许可证、固定 commit;理论叙事以仓库勘误为准。目录页与仓库地址:

  • 目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-router-standard/
  • GitHub:https://github.com/yjh051108/dsh-router-standard
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜