Skip to content

Add profile/model override parameter to delegate_task #35409

Description

@anthonyhollen

Problem

The delegate_task tool does not have a profile or model parameter in its schema. Subagents always inherit the parent's model configuration, making it impossible to route specific tasks to different model profiles.

When a user says "Use Pro profile to [task]", the agent cannot delegate that task to a higher-spec model because:

  1. delegate_task schema has no profile parameter
  2. delegate_task schema has no model parameter (though the internal function accepts one)
  3. Subagents always inherit parent model with no override mechanism

Current Behavior

  • User: "Use Pro profile to review this document"
  • Agent attempts: delegate_task(profile="pro")
  • Result: Parameter silently ignored, subagent runs on parent model
  • Expected: Subagent should run on the model assigned to the "pro" profile

Proposed Solution

Add a profile parameter to the delegate_task schema:

"profile": {
    "type": "string",
    "description": (
        "Hermes profile name to use for this subagent (e.g., 'pro'). "
        "The subagent will use the model assigned to this profile. "
        "Use `hermes profile list` to see available profiles. "
        "If not set, subagent inherits the parent's model."
    ),
}

Implementation Notes

  • The internal delegate_task() function (line 692 in delegate_tool.py) already accepts a model parameter
  • Need to add profile resolution logic: look up profile → get assigned model → pass to child agent
  • Profile resolution should use the same logic as hermes profile list
  • Add validation: if profile doesn't exist, return error with available profiles

Use Cases

  1. Quality tiering: Route complex reasoning tasks to higher-spec models (Pro), simple tasks to base models
  2. Cost optimization: Use cheaper models for routine delegations, premium models for critical work
  3. User preference: Respect explicit "Use Pro profile" instructions

Files to Modify

  • tools/delegate_tool.py: Add profile to DELEGATE_TASK_SCHEMA, update handler
  • Possibly: hermes_constants.py or profile resolution logic

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havetool/delegateSubagent delegationtype/featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions