给每个子智能体和队友单独指定模型,点一下就换
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cslkkl/dsh-switchboard该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · model
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
- 读取本地文件index.js:74
const parsed = JSON.parse(readFileSync(path, 'utf8')); - 写入本地文件index.js:82
mkdirSync(dirname(path), { recursive: true }); - 写入本地文件index.js:83
writeFileSync(path, JSON.stringify(value, null, 2), 'utf8'); - 读取本地文件index.js:104
if (statSync(path).size <= PROBE_ROTATE_BYTES) return; - 读取本地文件index.js:105
const text = readFileSync(path, 'utf8'); - 写入本地文件index.js:108
writeFileSync(path, kept.length === 0 ? '' : kept.join('\n') + '\n', 'utf8'); - 写入本地文件index.js:117
mkdirSync(dir, { recursive: true }); - 写入本地文件index.js:119
writeFileSync(probePath(), JSON.stringify({ time: Date.now(), ...entry }) + '\n', { - 读取本地文件index.js:197
const text = readFileSync(probePath(), 'utf8'); - 发起网络请求client.js:93
const response = await fetch(path, {
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件:给子智能体和队友逐个指定模型,点一下就换。零依赖、运行时生效、不用重启。
README
由 DeepSeek 最新模型翻译生成dsh-switchboard
给 DeepSeek Harness 的每个子智能体和队友,接通各自的模型
主 Agent 用一个模型,派出去的活换一个:贵的活给强模型,琐碎的活给便宜的
为什么 · 怎么工作 · 能力 · 安装 · 界面 · 生效时机 · 边界 · 兼容性
成员模型面板
对话头部点「模型」打开的成员面板,每一行标出该成员当前的生效状态与实际模型
为什么需要它
原生工具做不到这件事:
| 工具 | 模型字段 | 问题 |
| spawn_teammate | 无 | 队友一律继承主 Agent 的路由 |
| subagent | 有 | 每次调用手写参数,且要过白名单 |
这个插件把它变成一块接线板:一个对话里的成员都在板上,每人接一条线路,点一下就换。
展开完整文档(README 剩余 1 节)
dsh-switchboard
给 DeepSeek Harness 的每个子智能体和队友,接通各自的模型
主 Agent 用一个模型,派出去的活换一个:贵的活给强模型,琐碎的活给便宜的
为什么 · 怎么工作 · 能力 · 安装 · 界面 · 生效时机 · 边界 · 兼容性
成员模型面板
对话头部点「模型」打开的成员面板,每一行标出该成员当前的生效状态与实际模型
为什么需要它
原生工具做不到这件事:
| 工具 | 模型字段 | 问题 |
| 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 的文档地图进入。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cslkkl/dsh-switchboard
给每个子智能体和队友单独指定模型,点一下就换
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1