前言¶
DeepSeek Harness(dsh)把模型、工具、会话、循环都做成插件,同一套智能体可以换预设、换工具面、换系统提示。实际跑任务时,问题往往不在「有没有工具」,而在首轮请求把模型送进了哪条思维链:有的任务适合先想清楚再动手,有的任务适合想一段做一段。同一条提示词、同一套工具目录,首轮 persona 和可见工具稍微不同,后续轨迹就可能完全岔开。
社区仓库 dsh-router-standard 做的就是这件事:在第一次模型请求之前,按任务把会话放到可观测的行为档位上,并注入对应的 persona 与首轮工具面。它由 yjh051108 维护,MIT 许可,当前 package.json 版本为 0.2.0。本文按社区目录页、GitHub README、源码与勘误声明交叉核对后整理。文中提到的 DeepSeek Harness 插件库 是独立社区站点,与 DeepSeek / 幻方没有官方从属关系;官方发现入口仍是 GitHub topic dsh-plugin 与 deepseek-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 Standard与Router 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.yml 为 Router Spec (experimental)。agent.cordis.yml 里 router-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.mjs 的 classifyTask():用中英文关键词分别统计「构建/开发」与「修复/调试」命中;哪边多就落到 react 或 spec,打平或没命中则返回 weak,交给模型按任务自己选风格。
首轮 Persona 与工具注入¶
spec 路由预设下,首轮核心工具随行为带变化(bootstrap 还会自动补上当前平台的 bash 或 pwsh):
- 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)、mode 与 band、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