hermes - 💡(How to fix) Fix delegation: add `enabled: false` (currently only `max_iterations` cap) [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

delegation.max_iterations provides a soft cap on subagent spawning but no off-switch. There is no config-level way to fully disable subagent spawning for an agent — max_iterations: 0 may or may not behave as expected, and removing the delegation tool from the toolset requires manual filtering with no documented mechanism.

Root Cause

delegation.max_iterations provides a soft cap on subagent spawning but no off-switch. There is no config-level way to fully disable subagent spawning for an agent — max_iterations: 0 may or may not behave as expected, and removing the delegation tool from the toolset requires manual filtering with no documented mechanism.

Fix Action

Fixed

Code Example

engine.py:293:    ``delegation.max_iterations`` (default 50)this means total
engine.py:295:    Users control the per-subagent limit via ``delegation.max_iterations``
runner.py:1132:        max_iterations: int = 90,  # Default tool-calling iterations (shared with subagents)
runner.py:997:    # Each subagent gets its own iteration budget capped at max_iterations
runner.py:998:    # (configurable via delegation.max_iterations, default 50).  This means
runner.py:1000:    # max_iterations.  The user controls the per-subagent cap in config.yaml.
RAW_BUFFERClick to expand / collapse

Summary

delegation.max_iterations provides a soft cap on subagent spawning but no off-switch. There is no config-level way to fully disable subagent spawning for an agent — max_iterations: 0 may or may not behave as expected, and removing the delegation tool from the toolset requires manual filtering with no documented mechanism.

Use case

Wrapping Hermes in a subordinate-agent role where subagent spawning is explicitly not wanted: single-task workers, sandboxed lab environments, deterministic test harnesses, or any scenario where blast-radius caps need to be hard rather than soft.

Evidence

Verified on Hermes Agent v0.13.0 (2026.5.7). Source inspection of ~/.hermes/hermes-agent/:

engine.py:293:    ``delegation.max_iterations`` (default 50) — this means total
engine.py:295:    Users control the per-subagent limit via ``delegation.max_iterations``
runner.py:1132:        max_iterations: int = 90,  # Default tool-calling iterations (shared with subagents)
runner.py:997:    # Each subagent gets its own iteration budget capped at max_iterations
runner.py:998:    # (configurable via delegation.max_iterations, default 50).  This means
runner.py:1000:    # max_iterations.  The user controls the per-subagent cap in config.yaml.

No delegation.enabled flag; no toolset filter mechanism to surgically remove the delegation tool from the agent's tool registry.

Proposed change

Either:

  • (a) A delegation.enabled: false config key that Hermes honors by not including the delegation tool in the agent's toolset, OR
  • (b) Toolset filter support (e.g., agent.toolsets.exclude: [delegation]) that surgically removes the tool by name.

(a) is the simplest mental model for users who just want to turn delegation off; (b) is more flexible for other toolset operations (removing computer-use, gateway, etc. per-instance).

Why filing

The current cap-only behavior is documented in the upstream-blockers section of an orchestration wrapper around Hermes; the wrapper relies on the cap (max_iterations: 10) plus a Docker sandbox + 30-min timeout for blast-radius control. A true off-switch would simplify reasoning and remove the residual concern that 10 iterations of subagent spawning is still "10 too many" for some workloads.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix delegation: add `enabled: false` (currently only `max_iterations` cap) [1 pull requests]