NousResearch/hermes-agent · error · RuntimeError
MoA aggregator cannot be another MoA preset
Error message
MoA aggregator cannot be another MoA preset
What it means
Error "MoA aggregator cannot be another MoA preset" thrown in NousResearch/hermes-agent.
Source
Thrown at agent/moa_loop.py:1757
ephemeral advisor result. Reusing the guidance avoids a second costly
fan-out while keeping the aggregator request aligned with the compacted
history.
"""
guidance = prepared.get("guidance")
agg_messages = [dict(message) for message in messages]
if guidance:
_attach_reference_guidance(agg_messages, str(guidance))
return {**prepared, "messages": agg_messages}
def _call_prepared_aggregator(
self, prepared: dict[str, Any], api_kwargs: dict[str, Any]
) -> Any:
"""Send an already prepared MoA aggregator request exactly once."""
agg_messages = prepared["messages"]
aggregator = prepared["aggregator"]
aggregator_temperature = prepared["aggregator_temperature"]
if aggregator.get("provider") == "moa":
raise RuntimeError("MoA aggregator cannot be another MoA preset")
agg_kwargs = dict(api_kwargs)
max_tokens: Any = agg_kwargs.get("max_tokens")
tools: Any = agg_kwargs.get("tools")
extra_body: Any = agg_kwargs.get("extra_body")
agg_runtime = _slot_runtime(aggregator)
try:
from agent.agent_runtime_helpers import (
plan_cache_sections_for_destination,
)
guidance = prepared.get("guidance")
planning_messages = agg_messages
if guidance:
planning_messages = peel_reference_guidance(
agg_messages,
str(guidance),
)
# plan_cache_sections_for_destination never mutates its inputsView on GitHub (pinned to c896c09c42)
Solutions
- Choose a non-MoA model/preset as the aggregator.
- Flatten the MoA configuration so the aggregator is a plain model.
When it happens
Trigger: Thrown at agent/moa_loop.py:1757 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/f0fc16673df81f2e.
Report an issue: GitHub.