← Back to home@cslkkl

dsh-switchboard

DeepSeek Harness 插件:给子智能体和队友逐个指定模型,点一下就换。零依赖、运行时生效、不用重启。

Stars
0
Language
JavaScript
Created
Oct 20, 2026
Updated
Oct 21, 2026

Introduction

dsh-switchboard

给 DeepSeek Harness 的每个子智能体和队友,接通各自的模型

主 Agent 用一个模型,派出去的活换一个:贵的活给强模型,琐碎的活给便宜的

License Node Dependencies Platform

为什么 · 怎么工作 · 能力 · 安装 · 界面 · 生效时机 · 边界 · 兼容性

成员模型面板

对话头部点「模型」打开的成员面板,每一行标出该成员当前的生效状态与实际模型

为什么需要它

原生工具做不到这件事:

工具模型字段问题
spawn_teammate无队友一律继承主 Agent 的路由
subagent有每次调用手写参数,且要过白名单

这个插件把它变成一块接线板:一个对话里的成员都在板上,每人接一条线路,点一下就换。

怎么工作

每个成员实际用哪个模型,按这张表从前往后找,命中即止:

顺序来源命中条件
1点名指定members[队友名],或 members['#<子会话 id>']
2本对话默认sessions[<本对话 id>]
3规则队友名精确 → 队友名包含 → 委派描述包含
4全局默认defaultRoute
5继承主 Agent 当前的路由

命中的是哪一层,界面会直接写出来,不用猜。

能力

能力说明
点成员换模型头部「模型」入口列出全部队友与子智能体,点一行即换
按规则批量指定一条规则命中多个成员,匹配名字或任务描述,子串、不区分大小写
按模型选档位规则和全局默认都能指定推理档位,选项来自模型自己声明的档位;换模型时自动调和,新模型不认的档退回「自动」
按对话设默认首次派活问一次,之后整个对话沿用,不再打扰
运行时生效运行中的成员下一步就换,不需要重启 Harness
一键全换本会话所有成员切到同一模型,或一键退回继承;批量操作要二次确认,成功后 5 秒内可撤销
点名表清理面板底部列出点名表全部键(含已结束、列表里看不见的成员),可单条恢复继承或整表清空
面板内新建直接创建队友或子智能体,首个请求就跑在所选模型上
规则试算规则行尾填个成员名或任务描述按「试算」,下发前就看它会命中哪一层、用哪个模型,未命中直接说「将继承主 Agent」
失败可见换不成时面板顶部红条讲清「谁、想换成什么、为什么没成」,可展开看历史,可关掉
失败不误伤档位不兼容时保留继承路由,子会话照常用原模型跑;子会话不会被打死

安装

dsh plugin --profile web add "<本插件目录>"

首次安装后重启一次 Harness,浏览器端界面才会加载。此后改代码不需要重启。

配置

配置写在 $DSH_HOME/storages/dsh-switchboard/rules.json,保存即时生效。

{
  "rules": [
    { "match": "cheap", "provider": "cpa-trae", "model": "trae/deepseek-v4.1-flash" }
  ]
}

成员点名以设置文件为准;patch 里的 members 仅作初始值,界面或 /spawn 写过之后就只认文件。要增删成员请走面板或接口,别改 patch。

完整字段与 HTTP 契约

字段表与写入语义、规则结构、路由对象、九个 HTTP 端点、创建路径的接口差异、 模型档位元数据、规则试算、失败可见性,全部在 docs/ARCHITECTURE.md。

界面

入口位置用途
「模型」按钮对话头部操作区点成员换模型、批量换、本对话默认、新建成员
「子智能体模型」卡片插件详情页规则编辑与试算、生效范围、最近委派与操作记录、失败红条、点名表管理

面板按作用分成三块,每块自带标题,不用猜哪个控件是干什么的:

分区作用
本对话默认这个对话里新派出的活默认用哪个模型
批量设置一次给所有成员换模型(渠道 / 模型 / 推理档位三档)
成员逐个点成员换,一行一个

成员状态分三种,界面直接标出来:运行中(下一步生效)、待唤醒使用(下次唤醒生效)、未运行(下次创建生效)。

更多截图

面板分区

面板分三块:标题下是「本对话默认」,再往下是「批量设置」的渠道 / 模型 / 推理档位三档

设置卡片

插件详情页的规则卡片:每条规则显示匹配词、目标模型、推理档位,以及最近命中的成员

模型下拉

渠道下拉按内容自适应宽度,长渠道名不截断

首次询问

一个对话里第一次派活时问一次,选完就是本对话默认

生效时机

换模型不需要重启 Harness。三种状态各自的生效点:

成员状态何时用新模型
运行中本轮后续步骤
空闲驻留下一次请求
已回收下次被唤醒

只有两种情形需要重启:首次安装,或改动 package.json 的 dsh.client 段。

边界

  • 只管本地子会话。外部后端(Codex、Claude Code、ACP)没有本地 Agent,管不到。
  • 主 Agent 不受影响。
  • 换模型不改 provider 的输出上限,maxTokens 仍由 provider profile 决定。
  • 与 monkey-patch spawnTeammate 的同类插件互斥,只启用一个。

兼容性

这个插件依赖 DeepSeek Harness 的内部接缝,不是稳定公开 API:

依赖的东西用在哪宿主变了会怎样
agent/created / agent/request委派时改写子会话的模型与档位接缝改名或改语义,插件不再生效
agent/disposed成员结束时清理点名表清理不到,残留键留在设置文件里
system-prompt/assemble给子会话注入模型说明注入失效,不影响换模型本身
--dsw-* 主题 token界面配色、圆角、焦点环变量改名,界面退回中性色(不影响功能)
plugins.bundle.config / conversation.session.header.actions / shell.overlay三个界面挂载点挂载点消失,对应界面不出现
档位元数据(efforts)下拉里的档位选项拿不到档位时退回「自动」,由路由级默认档兜底

宿主升级后如果界面不出现或换模型无效,先看这里:多半是上面某一项变了,不是配置写错。 本插件跟着宿主的具体版本走,没有做跨版本兼容层。

许可

MIT,见 LICENSE。

维护者文档(架构、脚本、决策记录)从 AGENTS.md 的文档地图进入。