DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Subagent Model Route — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-plugin-subagent-model-route

Plugin Subagent Model Route

为每个子代理标注其实际运行所用的模型路由:在父目录的每一行中添加徽章行,并在子会话自身的标头中显示相关信息。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-plugin-subagent-model-route@0.1.2
README兼容性版本

兼容性与来源证明

Plugin Subagent Model Route 以 dsh-plugin-subagent-model-route 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/10/10

版本

0.1.2stable
2026/10/10
0.1.1stable
2026/10/10
0.1.0stable
2026/10/8

相关插件

正在加载相关插件…

最新版
0.1.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
778.5 kB
文件数
12
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/10/10
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-plugin-subagent-model-route

English | 中文

Annotate every subagent with the model route it actually ran on, in both places you look at a subagent: the parent's catalog list and the child session's own header.

Catalog rows: each row stacks the name, a mode/activity/route badge line, and the durable title

The parent's catalog: fourteen subagents, each row stacking the name, a mode · activity · route badge line, and the durable title below it. The badge spells out the whole route — openai/gpt-5.6-sol · medium, openai/gpt-6-astra, qwen/qwen3-coder-flash, deepseek-official/deepseek-flash · high — exactly as those delegations ran it.

Child session header: the model route renders beside the breadcrumb switcher

Opening a child session: the full route (deepseek-official/deepseek-flash · high) sits beside the lineage breadcrumb, in the header, above the read-only one-shot composer notice.

Effect

Two surfaces change, and nothing else:

surfacebeforeafter
Parent catalog rowname, then title · one-shot · running on one linethree lines: name / one-shot running openai/gpt-5.6-sol · medium / title
Child session headerbreadcrumb switcher onlybreadcrumb switcher + openai/gpt-5.6-sol · medium

A row whose child never issued a request shows no badge. The badge spells out the whole route — provider/model · reasoningEffort — so the provider and the reasoning effort are readable without hovering; a route too long for the badge line wraps onto its own line instead of being clipped. The tooltip repeats the route under its label, and the row's accessible name carries it too.

Effect, expressed as consequences

Worth reading before installing. This plugin deliberately shadows shipped UI, and that has a price:

  1. Rows get taller. 44px → 59px, so the dropdown, capped at min(560px, 100vh - 140px), now shows roughly 9 rows instead of 12 before it scrolls. A route long enough to wrap the badge line pushes a row to 74px and shows fewer still.
  2. You fork that region of the shipped UI. The catalog contract marks this seat replaceRisk: 'shadows-shipped-ui'. Upstream improvements to those two occupants — including DeepSeek adding a model column themselves — will not reach you; you have to re-vendor and re-apply the two modifications (see PATCH-RECORD.md).
  3. A shipped-UI bug in that region becomes yours. The renderer is a verbatim copy of the shipped one (the copy even reproduces upstream's React duplicate-key warning about the child session id).
  4. The stylesheet is injected twice. The vendored CSS module is a second copy of the shipped sheet, so the page carries both. It is small, and the hashed class names differ (different file content), so nothing collides.
  5. The shipped occupants are shadowed, not unregistered. They stay registered and render nothing — a small, inert cost.
  6. It duplicates the subagent-director dock if you run both. That plugin draws the route under the composer for an opened child; this one draws it in the header. Expect the route twice in the same view until you drop one of them.
  7. The route is the last request's route. A child that switched models mid-life shows only the most recent one, and "no badge" means "never issued a request", not "unknown".
  8. Only those two surfaces change. The read-only composer, the Sidebar chat tab, and the @ reference source stay shipped.
  9. Uninstalling reverts everything. Nothing is persisted and no host-side surface changes; remove the package from the profile's bundles and restart.
  10. Activation needs a host restart. dsh.client is composition-level config and does not hot-reload.

Why this is a plugin that shadows the shipped UI

The shipped @deepseek-ai/dsh-client-ui-subagent decides what those two surfaces render, and it cannot be extended additively: conversation.session.header.lineage is a single cell with no registerOptions and no declared children, and there is no per-row slot at all. Taking the seats over is the only way to add the route from outside.

The slot registry throws when a second registration lands on an occupied cell at the same priority and shadows on any different one, so this plugin registers both seats at priority: -1 (the shipped occupants own the default 0):

seatshipped occupanthow this plugin takes it
conversation.session.header.lineage (single)SubagentHeaderLineageshadow at priority -1
conversation.session.header.actions (list)SubagentCatalogAction (id subagent-catalog)re-register the same id at priority -1

The route itself comes from the durable modelSelection projection (recorded on every request/header), read through the same summary.projectionValues the row already uses for token usage and timing — so this adds no RPC, no host change, no projection, no new slot.

Mounting

Mount it as a profile bundle, exactly like any other local plugin:

// ~/.dsh/profiles/web/package.json
"dependencies": {
  "dsh-plugin-subagent-model-route": "link:/path/to/dsh-plugin-subagent-model-route"
},
"dsh": { "profile": { "bundles": [
  // ...after @deepseek-ai/dsh-base and @deepseek-ai/dsh-web-app
  "dsh-plugin-subagent-model-route"
] } }

Or install it the supported way, which edits both lists for you:

dsh plugin --profile web add dsh-plugin-subagent-model-route     # from npm
dsh plugin --profile web add ./dsh-plugin-subagent-model-route   # from a checkout

Then restart the host.

Development

node_modules/ in this checkout is a dev-only shim of symlinks into a harness checkout (the host's own react/react-dom/@deepseek-ai/*, plus the monorepo's tooling), because the @deepseek-ai/* packages are only published to npm as a 0.0.1-rc.1 placeholder. A normal npm install against the versions listed in devDependencies replaces it.

npm run check      # typecheck -> build -> headless smoke (16 checks)
npm run build      # tsdown: lib/index.js (host half) + lib/client/index.js (closure factory)
npm run watch
npm run smoke      # renders both seized seats under jsdom
npm run preview    # writes preview.html: the same render, with the theme CSS, for a browser

The out-of-tree build in tsdown.config.ts restates the two contracts the monorepo's own clientBundle() preset enforces — the window.__ModuleLoader__.load({ id, factory }) handoff, and the lightningcss pass that turns *.module.css into a hashed class map plus a tagged <style> injection — because that preset locates packages by globbing the monorepo and cannot build a package outside it. The build needs only tsdown + lightningcss: the host-provided packages stay external and are never resolved, which is what keeps a git install from failing on unpublished @deepseek-ai/* versions.

scripts/smoke.mjs runs the real artifact through the real handoff and asserts, among other things, that the bundle's require set is exactly the four platform seed rows (react, react/jsx-runtime, react-dom, @deepseek-ai/dsh-client-ui-primitives) — a request the host's module table cannot answer would be a guaranteed runtime throw.

Publishing

See PUBLISHING.md for the full checklist, the DSH-specific traps, and the catalog-submission steps. The short version: fill in the CHANGE-ME repository fields, publish to npm with lib/ built at publish time, verify in a clean profile, tag the repo with the dsh-plugin topic, then submit to the community catalogs.

Maintenance

The vendored renderer is pinned to the shipped one at deepseek-ai/deepseek-harness master @ 5badb15009. When upstream changes SubagentHeaderLineage.tsx or its stylesheet, re-vendor and re-apply the two modifications from PATCH-RECORD.md — or, on a machine that owns the harness checkout, prefer the equivalent upstream patch (UPSTREAM-PATCH.patch), which needs no shadowing at all.

License

MIT — see LICENSE. The vendored renderer originates from the MIT-licensed @deepseek-ai/dsh-client-ui-subagent.

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Usage@linxin666/dsh-usage用于 dsh Web GUI 的使用统计插件:检测各提供商的余额和编程套餐配额,并实时记录令牌使用情况;侧边栏 Settings 行上方显示紧凑的价格概览卡片Client Ui Model Capabilities@linxin666/dsh-client-ui-model-capabilities为自定义 pi-ai 提供商声明每个模型的能力(图像输入和推理力度),可直接在 Models 设置卡片中编辑;写入官方 llm-pi-ai 设置命名空间,不更改 DSH 源代码。Codex Subscriptiondsh-codex-subscription通过 OAuth 在 DeepSeek Harness 中使用 ChatGPT 和 Codex 订阅,支持配额管理、安全重置、网页搜索、图像和快速模式Commandcode Provider@mars-sea/dsh-commandcode-provider适用于 Command Code 的非官方 DeepSeek Harness LLM 提供商插件,移植自 pi-commandcode-provider(MIT)。注册“commandcode”提供商路由,并在 Models 页面添加卡片和实时模型目录。