DeepSeek Harness plugin

Hermeslike-Mixagent-MoA

DSH plugin — Hermes-style Mixture-of-Agents request aggregator: router → parallel reference advisors → aggregator stream, with dual-provider failover (official + OpenCode Go) and V4P triple-gate cost

Jump to install

Source facts

Repository
beimianism/Hermeslike-Mixagent-MoA
Latest update
Aug 16, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/beimianism/Hermeslike-Mixagent-MoA
Plugin: Hermeslike-Mixagent-MoA
Author: beimianism

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

<div align="center">

中文 · English

hermeslike-MoA

Hermes-style Mixture-of-Agents (MoA) request aggregator — runs every routed LLM call through a router → parallel reference advisors → aggregator streaming pipeline, with dual-provider failover and a V4P triple-gate cost guard.

</div>

---

hermeslike-moa is a DSH plugin (dsh.bundle). It registers a dsh-llm LlmAdapter (provider route deepseek-moa, plus go-moa when an OpenCode Go key is configured); every model request routed to those providers runs the MoA pipeline:

user request
  → V4F router (one call, JSON verdict: does the task warrant V4P?)
  → reference advisors ×N in parallel (V4F; Hermes-style advisor system prompt;
     tool calls/results folded into plain text; tool results head+tail preview;
     reference outputs redacted; synthetic user judgement instruction appended)
  → aggregator (model: explicit user choice first → router → V4P triple gate)
  → streaming passthrough (standard dsh-llm StreamChunk)

The three model entries

The model picker offers three models:

ModelMeaning
deepseek-v4-mix (MoA Mix)Full MoA pipeline: router → reference advisors ×N (flash, parallel) → aggregator (pro or flash) → stream. Costs N+2 calls (1 router + N refs + 1 aggregator); aggregator pro is V4P-gated
deepseek-v4-proDirect single V4 Pro (no MoA overhead); still V4P-gated (anti-footgun: demotes to flash on empty budget or errors per settings)
deepseek-v4-flashDirect single V4 Flash (no MoA, cheapest/fastest; not gated)

> Any unknown model id (outside the three above) is treated as flash direct — it never silently triggers the expensive MoA path.

Highlights

  • mix model category: the model picker now lists MoA Mix · 模型混合 (deepseek-v4-mix) — selecting it pins the full MoA pipeline (a "simulate selection" entry); the aggregator model still follows settings/router; flash/pro remain explicit aggregator choices.
  • Hermes-faithful advisory view (lib/reference.js, modeled on Hermes moa_loop.py): drops the acting agent's system prompt, renders tool_calls as [called tool: name(args)], folds each tool result (head+tail preview, 4000-char budget) into the preceding assistant turn, emits zero tool-role messages (strict-provider safe), appends a synthetic user judgement instruction so the view ends on user.
  • Redaction: centralized secret shapes (sk-/Bearer/JWT/private keys/DB URLs) + safe email/phone regexes (delimited, never mangling SHAs/IDs/dates).
  • Context trim: rough token estimate, drop oldest frames, keep user-first invariant, keep trailing synthetic instruction.
  • Dual channel: official (DeepSeek pay-as-you-go) + go (OpenCode Go subscription); go-preferred whole pipeline, auto-switch to official after 3 consecutive failures.
  • V4P triple gate: budget multiple (look-ahead pool = F spend×ratio − P spend) + per-window cap + min interval.
  • New-contract accounting: dsh-llm disjoint TokenUsage (inputTokens = uncached input; cache read/write separate), rolling-window cost.

Install

# bundle: enters the profile layer stack (restart web)
dsh plugin --profile web add github:beimianism/Hermeslike-Mixagent-MoA

# or local dev path (use your own)
dsh plugin --profile web add /path/to/hermeslike-moa

> Public @deepseek-ai/* and cordis deps are intentionally undeclared (injected by the profile pnpm closure).

System settings (recommended)

The plugin ships its own web settings page (Settings → Hermeslike MoA, rendered by its client half — the official Models page disables third-party provider editors). Every field has a ⓘ hover tooltip, and each API-key field shows a live health diagnostic (keyHealth):

  • Enable / disable the MoA aggregator.
  • API keys (type them right here, robustness-first): the form has two

write-only password fields — DeepSeek API key and OpenCode Go API key. Type a key directly in the settings UI and it takes effect (stored locally in settings.yaml, never echoed back, stripped on the wire); leave blank to fall back to the env refs (apiKeyEnv/goApiKeyEnv, resolved via credentials/environment). If both are empty: missing official key → requests fail 401; missing Go key → Go channel just disabled. Health shows "✓ valid / ✗ malformed reason" live.

  • Model mix:

- reference advisor count (1–8, default 3) - reference temperatures (in order) - aggregator model: auto (router decides) / flash / pro (V4P-gated) — the Hermes aggregator-slot equivalent - prefer Go channel: OpenCode Go subscription first; auto-switch to official after 3 consecutive failures

  • V4P triple gate: budget multiple / per-window cap / min interval /

degrade-to-flash on gate block

  • Privacy: advisor-output redaction level
  • API keys are configured in the credentials seam (referencing env var names

like DEEPSEEK_API_KEY, never literal secrets)

The settings document holds the hermeslike-moa: section; the plugin row config: in cordis.patch.yml acts as the composition base (user overrides win).

Configuration (composition base)

These fields default from the plugin row config: in cordis.patch.yml; user settings override them:

KeyDefaultMeaning
apiKeyEnv / DEEPSEEK_API_KEYDEEPSEEK_API_KEYDeepSeek official key env ref
goApiKeyEnv / OPENCODE_API_KEYOPENCODE_API_KEYOpenCode Go key env ref (empty disables Go)
endpointhttps://api.deepseek.com/chat/completionsofficial endpoint
goEndpointhttps://opencode.ai/api/v1/chat/completionsGo endpoint
enabledtruemaster switch
ratio0.5V4P look-ahead pool ratio (F×ratio−P)
windowMs3600000ledger rolling window
refCount3reference advisor count
refTemps[0.5,0.8,1.1]per-reference temperature
aggregatorModelautoaggregator model (auto/flash/pro)
preferGotrueprefer Go channel
fallbackToFlashtruedegrade V4F when gate blocks V4P
minBudgetMultiple3gate: budget multiple
maxProPerWindow3gate: V4P per-window cap
minProIntervalMs900000gate: min interval

Example:

- insert:
    - id: hermeslike-moa
      name: 'hermeslike-moa'
      config:
        apiKeyEnv: DEEPSEEK_API_KEY
        goApiKeyEnv: OPENCODE_API_KEY
        ratio: 0.5
        refCount: 3

Layout

hermeslike-moa/
├── package.json
├── cordis.patch.yml
├── index.js               # apply(): config parse + registerAdapter
├── lib/
│   ├── adapter.js         # MoaAdapter extends LlmAdapter (dual + failover)
│   ├── pipeline.js        # MoaPipeline: route → refs×N → aggregate → stream
│   ├── router.js          # V4F router + keyword fallback
│   ├── reference.js       # Hermes advisory view: render/truncate/redact/trim
│   ├── wire.js            # HTTP one-shot/stream + TokenUsage normalization
│   ├── ledger.js          # spend ledger + V4P triple gate
│   ├── prices.js          # price table
│   ├── prompts.js         # three system prompts
│   └── settings.js        # settings schema (web settings form) + resolution
└── README / README.en

License

[MIT](./LICENSE)