aaravarr/dsh-subagent-max 预览 preview

aaravarr/dsh-subagent-max

DeepSeek Harness (DSH) 插件——一个子代理带模型工具,外加一个实时多面板子代理查看器。

项目介绍Project Overview

dsh-subagent-max 是 DeepSeek Harness 的双面插件,同时承担宿主与客户端角色。宿主端注册 subagent_with_model 工具,在委派子代理时把 model 与 provider 透传至子级 agentOptions,未指定 provider 时优先复用父级。客户端在 Web UI 中以可拖拽悬浮面板实时流式渲染子代理的提示、推理、工具调用与文本,并提供按活动状态分组的 Subagents 卡片视图与拖出落点定位。适用于需要并行多子代理可视化与按调用切换模型的工作流。需注意模型显示源自会话请求头,部分子代理可能缺失;客户端仅支持 Web 平台。

dsh-subagent-max is a dual-face DeepSeek Harness plugin. The host side registers the subagent_with_model tool, forwarding model and provider into a child's agentOptions; when no provider is given, the parent's provider is reused. The client side adds a Web UI that streams each subagent's prompt, reasoning, tool calls, and text in draggable, resizable floating panels, plus a Subagents tab with active/inactive cards sorted by last activity. It is used for parallel multi-subagent workflows with per-call model override. Caveat: the model label is read from session request headers and may be missing for some children, and the client targets the web platform only.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add @aaravarr/dsh-subagent-max

aaravarr/dsh-subagent-max 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-subagent-max

English | 中文

npm license

Multi-panel live subagent viewer for DeepSeek Harness (DSH), plus a subagent_with_model tool for per-call model/provider override.

Screenshots

Subagents tab — a card grid grouped into active / inactive and sorted by last activity.

Subagents tab

Floating viewer panel — a draggable panel streaming a subagent's live output: task, reasoning, tool calls, and text.

Floating viewer

A two-face DSH plugin:

  • Host face (lib/index.js) — a Cordis plugin that registers the subagent_with_model tool, a thin wrapper over ctx.subagents that forwards model / provider into the child's agentOptions.
  • Client face (lib/client.js) — a Web UI that renders every subagent as a draggable, resizable floating panel with live token-by-token output, plus a Subagents tab with a card grid.

Features

  • Per-call model / provider override — delegate to a subagent and pick its model explicitly.
  • Smart provider selection — when no provider is given, prefer the parent's provider if it serves the requested model, otherwise auto-find a provider that carries it.
  • Multi-panel live viewer — open several subagent panels at once; each streams output in real time.
  • Rich block rendering — prompt block, reasoning (think) blocks, tool-call cards with input/output, streaming shimmer, markdown.
  • Subagents tab — card grid grouped into active / inactive and sorted by last activity; shows model, tokens, steps, context % and relative update time.
  • Drag to pop out — drag a card onto the canvas to open its panel exactly where you drop it (with a ghost preview).
  • Notifications — side-top toasts when a subagent starts or receives a message.
  • i18n — zh / en, switchable from DSH settings.

Install

dsh plugin --profile web add @aaravarr/dsh-subagent-max

or, manually, place the package under <profile>/node_modules/@aaravarr/dsh-subagent-max/ and add the entry to cordis.patch.yml (see Config).

Config

- insert:
    - id: dsh-subagent-max
      name: '@aaravarr/dsh-subagent-max'
      config:
        subagentProvider: spawn        # spawn | fork | acp
        toolName: subagent_with_model
        backgroundMode: continuable    # one-shot | continuable
        maxDepth: 3
Field Type Default Description
subagentProvider string spawn Subagent transport provider.
toolName string subagent_with_model Model-facing tool name; must be unique among loaded tools.
backgroundMode string one-shot continuable returns a durable subagent id; one-shot runs foreground.
maxDepth number 3 Absolute delegation-depth cap for children (0 forbids further delegation).

Usage

Ask the model to delegate with an explicit model:

Start a subagent with deepseek-v4-flash to review this repo's test coverage.

Tool parameters:

Arg Type Required Notes
model string yes Child model id (e.g. deepseek-v4-pro, deepseek-v4-flash, k3-256k).
provider string no LLM provider route. Omitted -> auto-selected: the parent's own provider is preferred when it can serve the requested model; otherwise the first provider carrying that model is used; if none does, the parent's provider is inherited (the child may then fail with UNKNOWN_MODEL).
description string yes Short (3-5 word) task label.
prompt string yes Complete, self-contained task.
run_in_background bool no Background routing; default follows backgroundMode.

Known Limitations

  • Model display is derived from the session's request/header; it can be absent for some children.
  • Last-activity time is tracked client-side and cached in localStorage; the first open after a fresh load may fall back to the session's updatedAt.
  • Client UI targets the web platform only.

Development

pnpm install
node --check lib/index.js lib/client.js

License

MIT

上一个 Prev dsh-thinking-notifier 下一个 Next Liltloom