bloodarea/dsh-agent-team-presets

dsh-agent-team-presets

DeepSeek Harness 的可复用智能体团队预设:设置页保存具名团队——队长带自己的提示词与工具白名单,成员各自带 provider/模型路由、推理强度、提示词与工具——编辑器栏的团队控件把选中的团队应用到当前会话,安装队长提示词,并注册 spawn_team_member、get_team_preset、update_team_preset 三个工具。

Uncategorizedagent-presetsagent-teamsai-agents

dsh-agent-team-presets

*Concept illustration. See Screenshots for the plugin interface; the captain uses the conversation's selected model.*

English | 中文

Community plugin v0.1.7 · Release
Requires a compatible DeepSeek Harness deployment with Agent Teams enabled. This version supports DSH rc.2 and 0.2.1-rc.2 APIs; see Requirements. Prebuilt artifacts are included, so installation does not require a source build.

Overview

dsh-agent-team-presets is a visual Team preset and private skill manager for DeepSeek Harness. Configure a Team once, assign per-agent isolated skills, then select it from the conversation composer whenever you need it.

A Team contains a captain and any number of member roles:

  • The captain uses the conversation's selected model, with its own role description, system prompt, and tool policy.
  • Each member can have an independent provider, model, reasoning effort, system prompt, tool policy, and assigned Team Skills.
  • The captain summons members through spawn_team_member; native Agent Teams provides messaging, the shared task board, and runtime coordination.

This is a community plugin, not the Harness's bundled @deepseek-ai/dsh-experimental-agent-team-presets development package.

Why this plugin?

DeepSeek Harness already ships Agent Teams with multi-agent collaboration. In the Harness versions this plugin supports, per-Team configuration, skill isolation, and reuse are still left to the user, which is what this plugin addresses:

  • Teams are hard to reuse. In those versions, native teams focus on runtime creation and collaboration, with no visual preset management; this plugin saves, duplicates, categorizes, and reuses named presets.
  • Role setup is repetitive. Each role's name, description, system prompt, and tool policies are configured once instead of re-described every time.
  • Splitting work across models is awkward. Every member picks its own model and reasoning effort, so one Team combines models by task, while the captain keeps leading on the Session's model.
  • Tool permissions have no fine-grained entry point. In those versions the native tool surface offers no per-role allow-list; here the captain and each member carry their own, so roles differ in what they may use.
  • Skills lack per-agent scope isolation. Shipped or user skills are typically registered globally, making all skills visible to every agent; this plugin provides a private Team Skill library where skills are discovered only by the specific Agent they are assigned to.
  • Switching teams is inconvenient. Pick a preset Team directly from the composer instead of rebuilding roles by hand.

Design principle: native Agent Teams owns collaboration at runtime; this plugin owns configuring, managing, isolating, and reusing teams and their skills.

Features

  • Reusable Teams: create, duplicate, edit, select, and delete named presets.
  • Per-member model routes: assign models and reasoning effort to individual roles without changing the captain's model.
  • Independent tool policies: choose all available tools or a custom allow-list for the captain and each member.
  • Nine built-in presets across two series: three software development scale teams (Lightweight, Standard, Full-Stack) and six specialized work-mode teams (Discovery, Planning, Workflow, Engineering, Security Audit, Research).
  • Display metadata: attach summary, tags, use cases, quick prompts (suggested tasks), and notes per Team. Strictly presentation-only: never injected into the runtime LLM context, saving context tokens.
  • Local categories and search: organize presets into custom categories via a dedicated category manager; instantly search over name, summary, tags, and use cases in both Settings and the Composer picker.
  • Private Team Skill library: import skill folders or ZIP archives into a plugin-owned store (~/.dsh/team-skills), completely isolated from global host skills.
  • Per-agent skill isolation: a 3-column assignment grid on member pages assigns skills to specific roles. Assigned skills are registered strictly in that Agent's scope when summoned—never leaked globally.
  • Official built-in skills & local overrides: ships two delivery skills (github-repository-presentation, git-release-hygiene) and two method skills (grilling, research), materialized into the private library and pre-bound to engineering, discovery, and research roles. Create local editable overrides and one-click restore them to the built-in copy (恢复为插件内置版本).
  • Guarded deletion with blocker modal: deleting a skill bound to any role, in use by an active member, or required as a dependency is refused, with a confirmation modal detailing every blocking holder.
  • Dependency verification & MCP boundaries: checks declared CLI executables against host PATH (flags found/missing and refuses assignment when absent) and reports declared MCP servers (declarative display; never auto-connected or hard-blocking).
  • Agent-facing tools: root sessions provide list_team_skills, assign_team_skill, unassign_team_skill, and remove_team_skill alongside get_team_preset and update_team_preset.
  • Live settings feedback: see whether a Team is idle, busy, or awaiting an update in an online Session.
  • Theme integration: robust light and dark mode adaptation across all cards, dialogs, inputs, and dropdowns.

Contents

  • Overview
  • Why this plugin?
  • Features
  • Screenshots
  • Requirements
  • Install and upgrade
  • Configure and use a Team
  • Display metadata, categories, and search
  • Private Team Skills and per-agent isolation
  • Share presets
  • Agent-facing tools
  • Tool permissions and security
  • Troubleshooting and limitations
  • How it works
  • Development and contributing
  • Related resources
  • License

Screenshots

The screenshots illustrate the v0.1.7 settings interface, Team Skill management, and composer workflow. Example provider and model names depend on your deployment.

Manage Teams: tabs, search, source and series filters

Choose a Team in the composer with search and source filters

Private Team Skill library with origin badges and actions

Assign Team Skills to a member role

Skill details: file tree, editor, and local copy actions

Guarded skill deletion with blocking holders modal

Manage custom preset categories

Team editor: display metadata, category picker, and status notices

More screenshots (model routing, custom dropdowns, prompts, and tool policies)

Category dropdown in Team editor

Filter Teams by custom source

Configure member models and reasoning effort

Model picker

Captain and member system prompts

Tool policy controls

Requirements

  • DeepSeek Harness with the required rc.2 APIs. Supported versions: >=0.2.0-rc.2 <0.3.0. The plugin manager enforces the declared engines.dsh range and refuses to install or activate the plugin outside it; the @deepseek-ai/dsh-* peer ranges serve package managers and are ignored by that check. This release was verified against `0.2.1-rc.2`; 0.2.0-rc.2 was not re-run for 0.1.7. See package.json.
  • Agent Teams enabled in the target profile. The standard integration is @deepseek-ai/dsh-experimental-agent-team-profile, which supplies the Team service, tools, and Web roster. This plugin configures and manages Teams; it does not replace that subsystem.
  • A Web or Desktop profile with Settings and the required client services. Install into the profile you actually use, typically web for the Web GUI or desktop for Desktop.
  • Durable storage and a continuable subagent backend for member execution. Member creation is refused if the storage domain or selected execution backend is unavailable. The default backend names are spawn and fork.

The plugin version (0.1.7) and the Harness version (0.2.1-rc.2, for example) are separate version lines.

Install and upgrade

One-click install in the GUI (Add plugin)

Open Global panels → Plugins → Add plugin, paste the line below into Package name or address, and click Install:

dsh-agent-team-presets@0.1.7
  • Registry selects which npm source the download comes from. Default registry uses pnpm's own configuration. Pick Official npm registry to bypass a mirror, or Custom address for an internal or cloud mirror.
  • @0.1.7 pins the version; omit it to install the latest published package.
  • The field accepts package names, name@version, github:owner/repo, tarball URLs, or absolute filesystem paths.
  • This package declares dsh.bundle, so the plugin manager automatically registers it as a profile bundle layer; do not add a loader entry by hand.
  • Once installed, reinstalling the same package identity is blocked. To switch sources (e.g. from GitHub to npm), uninstall first, then install the new spec.
  • After installation, reload or restart as prompted.

Install from GitHub

To receive repository update notifications:

dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets

Replace ` with your active profile (e.g. web or desktop`):

dsh plugin --profile web add github:bloodarea/dsh-agent-team-presets

To pin the v0.1.7 release tag:

dsh plugin --profile <profile> add github:bloodarea/dsh-agent-team-presets#v0.1.7

npm release channel

GitHub and npm are separate release channels. Verify the published version on npm before installing:

npm view dsh-agent-team-presets version
dsh plugin --profile <profile> add dsh-agent-team-presets

Verify and upgrade safely

After installation, follow the plugin manager's reload/restart prompts and navigate to Settings → Agent team presets. Verify that details display dsh-agent-team-presets, version 0.1.7, and a running component.

  • Back up profile settings, Team definitions, and Session selections before upgrading.
  • When migrating from a development link, remove @deepseek-ai/dsh-experimental-agent-team-presets first before enabling the community package.
  • Restart Harness after switching package identities, then refresh the GUI.
Install the bundle; do not add a second loader declaration. The package already supplies its own bundle patch. Duplicate hand-written declarations in profile patches can prevent settings from saving. See Configuration writes are overridden.

Configure and use a Team

  1. Open Settings → Agent team presets.
  2. Select a built-in Team, duplicate an existing one, or click New Team.
  3. Configure its name, purpose, display metadata, category, captain, and member roles.
  4. For each member, configure its provider/model route, reasoning effort, tool policy, and assigned Team Skills.
  5. Press Save in the shared footer. Edits remain staged drafts until saved.
  6. Select the Team from the conversation composer's Team control, then prompt the captain to coordinate the task.

Example prompt for a Team with execution and review roles:

Use the selected Team. Have the executor implement the agreed changes and regression tests, then ask the reviewer to inspect them independently. Summarize changes, test results, and remaining risks.

A preset role is a template. Summoning creates an instance with a unique target such as executor or executor-2. Use send_message with the returned target to continue working with an existing instance rather than spawning a new one.

Selecting No team disarms the Team application once the captain and teammates become idle, restoring standard session contributions without changing the active model.

Fields

Field · Purpose Team name and purpose · Identify the preset and explain what work it handles. Category · Assign the Team to a local category for organization in lists and picker. Display metadata · Summary, tags, use cases, quick prompts, and notes. Purely presentation-only; never injected into LLM context tokens. Captain · The lead agent. A nonempty captain prompt replaces its persona prefix; the captain keeps the conversation's model. Members · Reusable role templates the captain can summon. Name · Role display name and target base. ASCII letters/digits and hyphens (max 64 chars, not lead). Description · Role responsibilities for the captain to select appropriate members (max 200 chars). Color · Accent color distinguishing the role in settings and the roster. Provider / Model · Members only. Route from the deployment's model catalog. Reasoning effort · Members only. Options depend on model support; empty uses route default. Allowed tools · Independent all-tools or custom allow-list policy. Team Skills · Assigned private skills, registered exclusively in this Agent's scope upon creation. System prompt · Standing role instructions. {{variable}} denotes prompt template variables.

Built-in presets

A fresh installation seeds nine editable Teams across two series:

研发规模系列 (Classic Development Scale)

Preset · Roles · Intended use 轻量研发团队builtin-lightweight · Captain, fullstack-advisor, executor · Small features and module iterations. Captain plans and verifies, architecture advisor handles cross-layer technical contracts on demand, executor writes code, tests, and debugs. Pre-bound with official delivery skills. 标准研发团队builtin-standard · Captain, system-architect, executor, code-reviewer · Standard software projects. Captain coordinates, system architect establishes interface contracts and module boundaries, executor develops and tests, independent code reviewer inspects quality. Pre-bound with official delivery skills. 全栈软件研发团队builtin-fullstack · Captain, backend-architect, ui-designer, executor, reviewer · Complex full-stack engineering across Web, Desktop, and Android. Captain leads, backend architect and UI designer provide technical/UX contracts, reviewer enforces quality gates, executor implements. Pre-bound with official delivery skills.

工作模式系列 (Work Modes)

Preset · Roles · Intended use 需求探索builtin-discovery · Captain, demand-analyst, solution-explorer, independent-challenger · Open-ended ideas where goal, technical path, or product direction is still exploratory; read-only research with independent challenge. 架构规划builtin-planning · Captain, system-architect, technology-evaluator, compliance-auditor · Settled goals where systems, module boundaries, and cross-module contracts must be designed. 既定工作流执行builtin-workflow · Captain, workflow-coordinator, task-executor, delivery-verifier · Established workflows where user specifies next task, and team implements, verifies, and delivers it. 工程研发协作builtin-engineering · Captain, architect-advisor, executor, code-reviewer, repository-specialist · Feature development, cross-layer implementation, UI/UX, and debugging, with a dedicated repository delivery specialist (repository-specialist). Pre-bound with official delivery skills. 独立代码与安全审计builtin-audit · Captain, vulnerability-expert, security-auditor, compliance-inspector · Independent read-only review of specified code, vulnerabilities, security configurations, and dependency compliance. 科研协作builtin-research · Captain, domain-researcher, experiment-analyst, rigor-reviewer · Literature review, experiment design, scientific computing, data analysis, and academic rigor inspection.

Default presets are seeded once per profile. Deleting or editing a built-in preset is respected across restarts. Restore defaults restores shipped fields and official rosters while preserving local member model routes and tool policies.

Display metadata, categories, and search

Presentation-only display metadata

Each Team preset supports rich metadata:

  • Summary: One-line description shown on cards and intros.
  • Tags: Keyword chips for filtering and categorization.
  • Use cases: Recommended project scenarios.
  • Quick prompts: Ready-to-use task templates shown when selecting the Team.
  • Notes: Operational reminders or cautions.

Token economy: Display metadata is stored in the preset document and used by the UI for search, grouping, and cards, but is never injected into the runtime LLM prompt context.

Local categories and hierarchical filtering

  • Category manager: Click 管理团队预设分类 in the Settings list to open a dedicated management page. Create, rename, reorder, and delete categories, and inspect team counts per category.
  • Local isolation: Categories and team-category bindings are saved in profile settings and are never exported with shareable preset documents.
  • Two-level filters: The Teams list provides two independent filter rows:
  • 来源 (Source): 全部 (All), 插件内置 (Built-in), 自定义 (Custom).
  • 分类 (Category): For built-in teams, filters by official series (研发规模 / 工作模式); for custom teams, filters by user-created categories.
  • Instant search: A responsive search box searches team names, summaries, tags, use cases, and quick prompts with real-time matched count reporting.
  • Composer integration: The conversation composer's Team picker mirrors these source filters and search capabilities, with 不使用团队 pinned to the top.

Private Team Skills and per-agent isolation