hermes - 💡(How to fix) Fix Feature: per-call model/provider override in delegate_task [1 comments, 2 participants]

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…
GitHub stats
NousResearch/hermes-agent#17732Fetched 2026-05-01 05:56:14
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×4commented ×1

delegate_task currently inherits the parent session's model/provider for all subagents. A global override exists via delegation.model and delegation.provider in config.yaml, but there is no way to specify a different model on a per-call basis.

Root Cause

delegate_task currently inherits the parent session's model/provider for all subagents. A global override exists via delegation.model and delegation.provider in config.yaml, but there is no way to specify a different model on a per-call basis.

Fix Action

Fix / Workaround

Workaround today

Code Example

{
  "model": {
    "type": "object",
    "properties": {
      "model": { "type": "string", "description": "Model name (e.g. 'claude-opus-4-5')" },
      "provider": { "type": "string", "description": "Provider name (e.g. 'anthropic'). Omit to pin current provider." }
    },
    "required": ["model"]
  }
}
RAW_BUFFERClick to expand / collapse

Summary

delegate_task currently inherits the parent session's model/provider for all subagents. A global override exists via delegation.model and delegation.provider in config.yaml, but there is no way to specify a different model on a per-call basis.

Motivation

Different subagent roles benefit from different models. For example:

  • Heavy reasoning tasks (architecture, security, code review) → a large reasoning model (e.g. claude-opus-4-5)
  • Code generation tasks (backend, frontend, devops) → a strong coding model (e.g. gpt-4-1)
  • Long-context planning tasks (PM, docs) → a long-context model (e.g. gemini-2-5-pro)

Without per-call model routing, all subagents are forced onto the same model as the parent session, regardless of what's optimal for the task.

What already exists

The internal _build_child_agent() function in tools/delegate_tool.py already accepts a model parameter, and the delegation config block supports model + provider overrides globally. The plumbing is there — it just isn't exposed in the delegate_task tool schema.

Proposed change

Add optional model and provider parameters to the delegate_task tool schema, mirroring the existing delegation.model/provider config keys but scoped to a single call:

{
  "model": {
    "type": "object",
    "properties": {
      "model": { "type": "string", "description": "Model name (e.g. 'claude-opus-4-5')" },
      "provider": { "type": "string", "description": "Provider name (e.g. 'anthropic'). Omit to pin current provider." }
    },
    "required": ["model"]
  }
}

This should also apply to per-task entries in batch mode (tasks[].model).

Workaround today

acp_command + acp_args can route to a specific model if an ACP-capable CLI (e.g. Claude Code) is installed, but this requires an external binary and adds overhead for simple use cases.

Use case example

Skills that define specialized agent personas (e.g. a "crew" of architects, security engineers, PMs) need to route each persona to the model best suited for their domain — without requiring the user to switch their global session model or install a second agent binary.

extent analysis

TL;DR

Add optional model and provider parameters to the delegate_task tool schema to enable per-call model routing.

Guidance

  • Review the proposed change to add model and provider parameters to the delegate_task tool schema and consider implementing it to address the issue.
  • Verify that the internal _build_child_agent() function in tools/delegate_tool.py can handle the new parameters and that the delegation config block supports the overrides.
  • Test the change with different models and providers to ensure it works as expected for various use cases, such as heavy reasoning tasks, code generation tasks, and long-context planning tasks.
  • Consider the workaround using acp_command and acp_args for routing to a specific model, but note that it requires an external binary and adds overhead.

Example

No code snippet is provided as the issue does not require a specific code change, but rather a schema update.

Notes

The proposed change requires updating the delegate_task tool schema, which may have implications for existing workflows and integrations. It is essential to test the change thoroughly to ensure compatibility and expected behavior.

Recommendation

Apply the proposed workaround by adding optional model and provider parameters to the delegate_task tool schema, as it provides a more flexible and efficient solution for per-call model routing.

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