Preface

Using DeepSeek Harness (DSH) for single-agent conversations is sufficient, but as tasks grow longer and roles multiply—where planning, implementation, and review need to be separate, and model routing must differ for each—many still revert to old methods like “manually opening multiple sessions” or “temporarily writing a subagent script.” The problem is: this kind of orchestration is often one-off; switching projects or conversations requires starting over. Long-running background tasks also lack a unified observability entry point.

The community plugin dsh-agent-team-gui (maintainer: toolclub) addresses exactly this gap: it transforms workflows with “multiple members, multiple models, and dependencies” into persistent, cross-conversation reusable “squad” objects within the DSH Web interface, complete with a run center and token insights. It is categorized as a “workflow” plugin in the SkillHub plugin repository. The GitHub repository currently has about 129 stars (MIT license). SkillHub is a community directory site for Chinese users and has no official affiliation with DeepSeek / High-Flyer; installation commands and capability descriptions are based on the repository’s README.

What Is This

In one sentence: It provides a persistent, reusable multi-model agent squad GUI for DeepSeek Harness—each member can independently configure models, role prompts, fallback routes, output token limits, and tool policies. After selecting a saved squad next to the normal chat input box, the main model of the current conversation performs bounded planning and executes a directed acyclic graph (DAG) without tools, then synthesizes results from all members.

The core problem it solves is not “making another chat window” but treating squads as long-term usable product objects: create them once in Settings → Squads, then reuse them across different projects and conversations without having to re-fill assignment forms each time.

Core Features and Highlights

Member-Level Model and Tool Policies

Planners, implementers, reviewers, and domain experts can bind different DSH provider/model routes and configure tool whitelists/blacklists individually. Credentials remain in the DSH configuration and are not copied into the plugin records. Members can also set a maxTokens hard limit and an optional fallback route (for a single retry).

Dynamic Orchestration and Bounded DAG

By default, the plugin uses the current conversation’s provider/model to initiate bounded, tool-less planning subtasks, generating a division of labor and a DAG based on member roles. Ready nodes can execute in parallel up to maxConcurrency, and dependent nodes only receive bounded structured handoffs. Full outputs are stored in persistent run history. If “fixed order” is enabled, it follows a repeatable serial pipeline, bypassing DAG planning.

When plans are invalid, cyclic, or unavailable, it falls back to deterministic role-specific task assignments, preventing a single bad plan from derailing the entire squad.

Three Modes: Squad / Solo / Inherited

Next to the chat, you can select Team (Squad), Solo (Single), or Inherited (Inherit project defaults). You can also queue a different mode for the “next message” alone. These states remain operable after page refresh, host cold start, or online reconnection, and saved selections are not silently deleted when the directory is temporarily empty.

Trigger strategies support Always / Smart / Manual: in Smart mode, the planner can skip tasks that are too simple or unsuitable for a squad; in Manual mode, normal sends remain single-agent, and squads are queued or explicitly dispatched by model tools when needed.

Run Center and Token Insights

Each execution is written to persistent records before planning begins. The Run Center displays the DAG, member states, review/rework rounds, full outputs, errors, duration, retries, and supports stopping, retrying the entire run or individual members, exporting, and filtering.

Token usage reuses DSH’s official tokenUsage projection, divided into four buckets: non-cached input, cached read, cached write, and output. Attribution is provided separately for planning, members, review, and rework. Coverage status is clearly marked as full/partial/none, and before measurement, the UI displays “Measuring…” instead of a false zero. The plugin does not fabricate prices—it does not guess costs when the Harness provider does not publish unit prices through a stable contract.

Quality Gates, Background Runs, and Version Management

Optional quality gates specify a reviewer, rework owner, criteria, and up to 2 rework rounds. Foreground runs complete the main agent’s synthesis of bounded handoffs only after ending; background runs return a short confirmation immediately and remain visible in the Run Center. If the official DSH Jobs service exists, the same run is also registered in the official interface and shares cancellation logic.

Squads support version snapshots, credential-free “recipe” import/export, and merge/replace previews for defining backups. From v0.5 onward, fetching recipes from URLs is prohibited; reviewed local JSON must be used to reduce SSRF risks.

Installation and Enablement

Prerequisites (according to the official README):

  • DeepSeek Harness >=0.1.0-rc.5 <0.2.0 (currently CI-verified rc.6)
  • Web profile
  • Node.js >=22.19.0 <23 or >=24.0.0 (Node 23 is not supported)
  • pnpm
  • At least one configured DSH provider/model route

Recommended installation command (fixed v1.0.1 tag):

dsh plugin --profile web add -w github:toolclub/dsh-agent-team-gui#v1.0.1
dsh --profile web

Git dependencies will execute the repository’s prepare build. pnpm 10+ may require authorization for the first build; follow the prompts to allow only this package in the Web profile’s pnpm-workspace.yaml (usually at ~/.dsh/profiles/web/pnpm-workspace.yaml), then repeat the fixed-version command:

allowBuilds:
  dsh-agent-team-gui: true

If DSH Web is already running after installation or update, restart the process. Verify that the bundle is loaded:

dsh --profile web --dump-config | grep -E "agent-team-gui|dsh-agent-team-gui"

Expected output should include both the dsh-agent-team-gui bundle layer and the agent-team-gui line.

If the terminal cannot find dsh, you can use pnpm dsh --version in the Harness source directory and replace dsh ... in the text with pnpm --dir /absolute/path/to/deepseek-harness dsh ....

Security note: allowBuilds allows Git dependencies to execute builds on your machine. Review the source code before installation and pin to a tag or full commit SHA. Pre-compiled release tarballs do not require Git prepare permissions.

Uninstall:

dsh plugin --profile web remove dsh-agent-team-gui

Removing the package does not automatically delete persistent plugin tables in the DSH storage backend.

Typical Usage: Five Steps to Create Your First Squad

  1. In Settings → Member Library, create reusable members: select configured provider/model, write a role prompt, set up a fallback route as needed, and authorize only the tools required for that role.
  2. In Settings → Squads, create a squad and select members: if “fixed order” is not enabled, dynamic orchestration is used by default; if enabled, you get a repeatable serial pipeline.
  3. Configure triggers (Always / Smart / Manual), member selection (all or adaptive subset), response mode (foreground or background), and optional recovery, budget, and review strategies.
  4. Next to the chat input box, select Squad / Solo / Inherited; you can queue the next message separately or set a project default squad.
  5. Send the task as usual; open Squad Run to view the plan, phases, member outputs, errors, retries, and token metering.

Advanced starting point: The repository provides a full-stack delivery recipe without credentials. You can preview it first, then map the your-provider / your-model placeholder routes to your local DSH configuration.

The model tool dispatch_to_squad can still be used for explicit dispatch: it accepts a squad ID or unique name, a task, and optional division of labor/order. The content returned to the model is bounded, and full run records can be accessed via the Run Center or export.

Use Cases and Considerations

Who Is This For

  • Teams that need to maintain long-term “planning + implementation + review” multi-role pipelines in DSH Web, with different models or tool policies for each role.
  • DSH users who want long tasks to be observable, cancellable, and retryable, and need to attribute token usage by member.
  • Scenarios where squad definitions need to be exported and shared with colleagues (credential-free recipes) or the same member configuration is reused across multiple projects.

Considerations

  • Only the Web profile provides a Settings GUI; there is no headless settings interface. Exported host services can be called by other in-process plugins after providing necessary services.
  • The plugin runs with the permissions of the current dsh process; member-authorized tools define their capability limits. Before installation, review the source code and MIT license, and configure tools on a least-privilege basis.
  • Both DSH and the plugin are in a pre-stable phase; it is recommended to pin the Harness and plugin versions. Compatibility is declared for >=0.1.0-rc.5 <0.2.0.
  • Soft squad token budgets can only prevent subsequent scheduling and cannot precisely truncate a running provider at a threshold; the member-level maxTokens is the provider’s hard limit.
  • Definition exports include member system prompts and route names; run exports also include user tasks and member outputs—desensitize before sharing.
  • Local persistent storage includes role prompts, route names, conversation/project identifiers, tasks, and outputs; protect your DSH home directory.

Conclusion

If you have already configured multiple model routes in DSH but are still troubled by “multi-agent collaboration being only a temporary patch,” dsh-agent-team-gui transforms squads into saveable, observable, versioned workflow objects, making it a workflow plugin worth adding to your trial list.