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
| Field | Type | Default | Description |
|---|---|---|---|
toolName | string | "run_moa" | Tool name registered in DSH. |
proposers | { provider, model }[] | [] | Models that independently answer the prompt in parallel. |
aggregator | { provider, model } | required | Stronger model that synthesizes the final answer. |
minProposers | number | 2 | Minimum successful proposers required to run aggregation. |
proposerMaxTokens | number | 1500 | Output cap for each proposer. |
aggregatorMaxTokens | number | 2500 | Output cap for the aggregator. |
fallbackLongest | boolean | true | If the aggregator fails, fall back to the longest proposer output. |
temperature | number | — | Optional sampling temperature passed to every call. |
reasoningEffort | string | — | Optional adapter-owned reasoning effort id. |
maxRetries | number | 0 | Retries per proposer/aggregator on transient errors, with exponential backoff. |
iterations | number | 1 | Iterative MoA rounds (1 = single layer + aggregator). |
License
MIT