feat(moa): support per-analyzer runtimes and Hermes providers - #4
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
agents + analyzermode-qis immediately followed by its promptWhy
The previous MoA configuration expanded
agents: Ninto N copies of one shared analyzer runtime/model pair. It could not execute a genuine heterogeneous review such as Hermes + Claude Code + Codex in one fan-out/fan-in run. Hermes model aliases also require explicit provider selection when the same model identifier may exist under several configured providers.Compatibility
Legacy mode remains supported:
Explicit heterogeneous mode:
Provider is intentionally Hermes-only; non-Hermes provider declarations fail during load instead of being silently ignored.
Verification
python3 -m pytest -q— 1961 passedgit diff origin/master...HEAD --check— passedReal E2E evidence
A read-only three-runtime MoA audit was executed against
AI_Website_Audit_Platform:custom:alibaba/qwen3.7-plusdeepseek-v4-progpt-5.6-terracustom:openai-987xyz/gpt-5.6-solThe E2E sequence found two real defects before the final routed run:
-qwas separated from the prompt by model/skill flags; fixed in1e6e034.f7fffb0.In the final routed run, all three analyzer artifacts were written. The Qwen/Hermes CLI then hit a context-compaction connection error after writing its complete report and exceeded the outer 900-second timeout, so Unison correctly halted fail-closed and did not automatically synthesize. A controlled recovery used the same Unison
HermesRunner, configured synthesizer route, and analysis input caps to produce the final synthesis while preserving and disclosing the original run failure. This PR does not claim that original run was a clean success.Commits
c62ce52feat(moa): support per-analyzer runtimes1e6e034fix(runtime): pass Hermes query argument correctlyf7fffb0feat(moa): route Hermes providers explicitly