Back to home

Socialist-Sister

dsh-collaboration

Multi-agent collaboration suite for DeepSeek Harness: specialist roster with on-demand dispatch, roundtable, model comparison and a multimodal vision bridge — models via the official provider flow.

Stars
1
Language
TypeScript
Created
Aug 14, 2026
Updated
Aug 15, 2026

Introduction

dsh-collaboration

Multi-Agent Collaboration Suite for DeepSeek Harness

A user-configured roster of specialists with on-demand dispatch — models come from the official provider flow, teamwork comes from here.

English · 中文

License: MIT Release CI

team tool-team tool-model-compare tool-vision


Contents

What is this

Inspired by the multi-agent workbench idea of oh-my-openagent, rebuilt on DeepSeek Harness native mechanisms:

  • Model providers are connected through the official Settings → Models → "Add provider" flow (this suite bundles NO model adapters — zero conflict with the official catalog);
  • This suite organizes the team: specialist roster, on-demand dispatch, roundtable review, model comparison, and a multimodal vision bridge.

Features

FeaturePackageNotes
Specialist roster@dsh-collaboration/teamTen pre-defined identities (main/planner/coder/debugger/reviewer/researcher/critic/writer/looker/painter), each with a duty; per-identity models configured in settings.yaml, applied live; empty = follow the session model. Identities are templates that can be hired as PERSISTENT specialist instances (with clones). v0.4: the child-scoped team_help tool lets a specialist ask another specialist for help through the main agent
Team console@dsh-collaboration/tool-teamteam_call hires persistent specialists (instances clones one identity, tasks gives each clone its own task); team_message follow-ups/relays (star topology, v0.4 relay routing); team_status live board; team_close dismisses; roundtable one-shot parallel panel
Model comparison@dsh-collaboration/tool-model-compareOne prompt to several models in parallel, answers side by side
Vision bridge@dsh-collaboration/tool-visionA text-only main agent sends images to a vision-capable model and works from the text analysis
One-line presetconfig/agent-presets/collaborationFull standard toolset + the tools above (display name: 协同模式 / Collaboration Mode)

How it works

Official Settings → Models: deepseek-official + user-added providers (OpenAI-compatible, …)
        │  registered routes
        ▼
collaboration-team roster (settings.yaml)  ←──  each identity: duty + optional model
        │  host service collaborationTeam
        ▼
Main agent (Collaboration preset)
  ├─ team_call     → hire persistent specialist instances (with clones) → report / settlement notices
  ├─ team_message  → follow up or relay to any instance (specialists ask each other via team_help, you relay)
  ├─ team_status   → live team board; team_close → dismiss an instance
  ├─ model_compare → same prompt across models, side by side
  └─ vision        → images to a vision model → text analysis back

Team topology

Every identity can be hired multiple times as separate instances (reviewer#1, reviewer#2, …). The main agent is the star hub — all traffic flows through it.

                     ┌─────────────────────┐
                     │   Main agent (you)  │
                     │     the star hub    │
                     └──────────┬──────────┘
        team_call hires  ·  team_message relays (both directions)
     ┌──────────────┬────────────┼────────────┬──────────────┐
     ▼              ▼            ▼            ▼              ▼
 planner#1      coder#1      looker#1      writer#1      reviewer#2   …
     │              │            │            │              │
     └───────────── report / settlement notices ────────────┘

Specialists never talk to each other directly. When one needs another — for example researcher asking looker to read an image — the request circles through the main agent:

researcher#1 ── team_help ──►  main agent receives [team-relay]
      ▲                             │
      │                             ▼  team_message → looker#1
      │                             │
      └──── team_message ◄────  looker#1 reports the answer

The specialist roster

Ten pre-defined identities, each with its own specialty. The tool surface is tiered by duty: research-type identities get read-only tools, execution identities get shell/file/skill tools, visual identities get read + vision.

idNameSpecialtyTool surface
main主代理 (Main agent)Coordinates the whole effort: breaks down the goal, dispatches specialists, and makes the final call — prefers delegating over doingFull session toolset (never hired as an instance)
planner规划师 (Planner)Splits complex goals into steps and milestones with dependencies, ordering, and acceptance criteriaRead-only: read/glob/grep/web_search
coder工程师 (Engineer)Writes production code, lands features, fixes defects; follows the project's existing style and conventionsExecution: pwsh/read/write/edit/glob/grep/web_search/skill/todo_write
debugger调试员 (Debugger)Hunts bugs: reads errors and logs, produces minimal reproductions and fix plansExecution: pwsh/read/glob/grep/edit
reviewer审查员 (Reviewer)Reviews code and designs for security holes, edge cases, performance, and maintainability risksRead-only: read/glob/grep/web_search
researcher研究员 (Researcher)Researches technology, competitors, and facts; cites sources in its conclusionsRead-only: read/glob/grep/web_search
critic评论家 (Critic)Challenges assumptions, hunts blind spots, plays devil's advocate — hardens the plan before it shipsRead-only: read/glob/grep/web_search
writer写手 (Writer)Writes docs, reports, READMEs, and copy — precise language, clear structureExecution: read/write/edit/glob/grep
looker观察员 (Looker)Multimodal analysis of images, screenshots, and UIs: describes layouts, extracts text, spots visual issuesVisual: read/read_image/vision
painter画家 (Painter)Image creation and generation: turns a description into visual assets or conceptsVisual: read/vision

Repository layout

packages/
  host/team/                     Specialist roster (settings.yaml-configurable)
  tools/tool-team/               team_call dispatch + roundtable
  tools/tool-model-compare/      Same-prompt model comparison
  tools/tool-vision/             Multimodal vision bridge
config/
  agent-presets/collaboration/   Ready-to-use agent preset
docs/                            Installation & usage guide
scripts/                         Validation scripts

Quick start

Full guide: docs/installation.md.

  1. Install the four packages into the DSH profile workspace:

    pnpm add -w @dsh-collaboration/team @dsh-collaboration/tool-team @dsh-collaboration/tool-model-compare @dsh-collaboration/tool-vision
    

    Before npm publication, grab the .tgz assets from Releases.

  2. Insert the roster host row (cordis.patch.yml):

    - insert:
        - id: collaboration-team
          name: '@dsh-collaboration/team'
    
  3. Add model providers via the official Settings → Models → Add provider card:

    ProviderProvider IDEndpointProtocol
    Zhipu GLMzhipuhttps://open.bigmodel.cn/api/paas/v4OpenAI-compatible
    OpenAIopenaihttps://api.openai.com/v1OpenAI-compatible
    Moonshotmoonshothttps://api.moonshot.cn/v1OpenAI-compatible
    OpenRouteropenrouterhttps://openrouter.ai/api/v1OpenAI-compatible
    SiliconFlowsiliconflowhttps://api.siliconflow.cn/v1OpenAI-compatible
  4. Configure the roster + preset: collaboration-team section in settings.yaml (see below); copy config/agent-presets/collaboration into ~/.dsh/.agent-presets/.

  5. Restart DSH → start a new conversation on the Collaboration preset → done.

Roster configuration

collaboration-team:
  agents:
    - { id: main, name: 主代理, role: Coordinates and dispatches specialists }
    - { id: planner, name: 规划师, role: Breaks goals into steps, provider: deepseek-official, model: deepseek-v4-flash }
    - { id: reviewer, name: 审查员, role: Reviews code and designs, provider: deepseek-official, model: deepseek-v4-flash }
    - { id: looker, name: 观察员, role: Vision analysis, provider: zhipu, model: glm-4v-flash }
  • provider = a provider ID added in the official Models page; empty = follow the session model (chat-box selector)
  • Give vision identities (e.g. looker) a vision-capable model, or image tasks fail at runtime
  • Changes apply live — no restart needed

Usage examples

ScenarioWhat the main agent does
Parallel auditsteam_call with instances: 2 hires two reviewer clones, one per module
Follow-up questionteam_message to reviewer#1 about session-fixation attacks
Relay an objectionteam_message critic's objection to planner
Specialist asks specialistresearcher calls team_help for looker; you forward the request and relay the answer back
Group deliberationroundtable with planner, reviewer, critic on one topic
Model comparisonmodel_compare deepseek-v4-pro vs zhipu/glm-4.5 on the same prompt
Read an imagevision sends a screenshot to the vision model and returns text analysis

Development

pnpm install      # install dependencies
pnpm typecheck    # typecheck all packages
pnpm build        # build

Validation

node scripts/e2e-tools.mjs     # drives each tool package's apply() in a fresh process (mirrors preset mount checks)
node scripts/e2e-team-host.mjs # drives the team host service: instance lifecycle + team_help relay
node scripts/check-roster.mjs  # validates the collaboration-team roster in settings.yaml