Bug Description
delegate_task always runs subagents on the parent session's model, ignoring the delegation model configured in config.yaml.
Steps to Reproduce
- Configure a delegation model in
~/.hermes/config.yaml:
delegation:
model: claude-sonnet-4-20250514
provider: anthropic
-
Run the parent session on a different model (e.g. claude-opus-4-6)
-
Use delegate_task to spawn a subagent and have it report its model:
delegate_task(goal='Report what model you are running on.')
-
The subagent reports claude-opus-4-6 (the parent model), not claude-sonnet-4-20250514 (the configured delegation model).
-
The result metadata also confirms: "model": "claude-opus-4-6"
Expected Behavior
Subagents spawned via delegate_task should use the model specified in delegation.model config, not inherit the parent session's model.
Actual Behavior
The delegation model config is ignored. Subagents always run on the parent model regardless of config. This persists across /reset commands and config reloads.
Environment
- Hermes Agent v0.10.0 (2026.4.16)
- Python 3.11.15
- Provider: anthropic
- OS: Linux aarch64
Impact
This defeats the purpose of model tiering for cost efficiency — delegated grunt work that should run on a cheaper model (Sonnet) instead consumes expensive Opus tokens.
Workaround
Spawning a subagent profile via terminal (iris chat -q "...") correctly uses the configured model.
Bug Description
delegate_taskalways runs subagents on the parent session's model, ignoring the delegation model configured inconfig.yaml.Steps to Reproduce
~/.hermes/config.yaml:Run the parent session on a different model (e.g.
claude-opus-4-6)Use
delegate_taskto spawn a subagent and have it report its model:The subagent reports
claude-opus-4-6(the parent model), notclaude-sonnet-4-20250514(the configured delegation model).The result metadata also confirms:
"model": "claude-opus-4-6"Expected Behavior
Subagents spawned via
delegate_taskshould use the model specified indelegation.modelconfig, not inherit the parent session's model.Actual Behavior
The delegation model config is ignored. Subagents always run on the parent model regardless of config. This persists across
/resetcommands and config reloads.Environment
Impact
This defeats the purpose of model tiering for cost efficiency — delegated grunt work that should run on a cheaper model (Sonnet) instead consumes expensive Opus tokens.
Workaround
Spawning a subagent profile via terminal (
iris chat -q "...") correctly uses the configured model.