Back to home

morphlinglan

dsh-moa

DeepSeek Harness plugin: Mixture of Agents (MoA) on-demand tool.

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-moa

A DeepSeek Harness plugin that adds Mixture of Agents (MoA) as an on-demand tool: run_moa.

Instead of using one model, MoA sends the same prompt to several proposer models in parallel, then has a stronger aggregator model synthesize the best final answer from all their outputs. It is not on the normal request path — the agent calls the tool only when multi-model synthesis is worth the extra tokens/latency.

Install

dsh plugin --profile web add github:morphlinglan/dsh-moa

Then restart dsh web if it is already running.

Usage

Configure the proposer pool and aggregator in your profile's cordis.patch.yml:

- insert:
    - id: dsh-moa
      name: dsh-moa
      config:
        toolName: run_moa
        # Replace with your own providers/models.
        proposers:
          - provider: proposer-provider-a
            model: proposer-model-a
          - provider: proposer-provider-b
            model: proposer-model-b
        aggregator:
          provider: aggregator-provider
          model: aggregator-model
        minProposers: 2
        proposerMaxTokens: 1500
        aggregatorMaxTokens: 2500
        fallbackLongest: true
        maxRetries: 2

The providers/models above are placeholders only. Replace them with providers and models you actually have access to.

Then ask the agent to use run_moa for complex analysis, synthesis, translation, or review tasks.

Config

FieldTypeDefaultDescription
toolNamestring"run_moa"Tool name registered in DSH.
proposers{ provider, model }[][]Models that independently answer the prompt in parallel.
aggregator{ provider, model }requiredStronger model that synthesizes the final answer.
minProposersnumber2Minimum successful proposers required to run aggregation.
proposerMaxTokensnumber1500Output cap for each proposer.
aggregatorMaxTokensnumber2500Output cap for the aggregator.
fallbackLongestbooleantrueIf the aggregator fails, fall back to the longest proposer output.
temperaturenumberOptional sampling temperature passed to every call.
reasoningEffortstringOptional adapter-owned reasoning effort id.
maxRetriesnumber0Retries per proposer/aggregator on transient errors, with exponential backoff.
iterationsnumber1Iterative MoA rounds (1 = single layer + aggregator).

License

MIT