Skip to content

Support provider-dependent agent defaultModel selection in config.json #501

@adrianf0

Description

@adrianf0

Hi,
Thank you for ECA.

I’m trying to configure multiple providers and would like agent/subagent model selection to follow the currently selected provider.

Problem

The current config schema supports:

  • multiple providers
  • per-provider models
  • per-agent defaultModel

For example, an agent can be configured like:

{
  "agent": {
    "explorer": {
      "defaultModel": "github-copilot/raptor-mini"
    }
  }
}

However, agent.<name>.defaultModel is a single fixed string, so it is not possible to express:

  • if selected provider is github-copilot, use github-copilot/raptor-mini
  • if selected provider is company-litellm, use company-litellm/hf-qwen3-32b-awq

Use case

I have two providers configured:

  • github-copilot
  • company-litellm

I would like the built-in explorer subagent to use a small/fast model from the currently selected provider:

  • github-copilot/raptor-mini
  • company-litellm/hf-qwen3-32b-awq

Right now, as far as I can tell, the options are only:

  1. hardcode one model in agent.explorer.defaultModel
  2. create separate agents like explorer-copilot and explorer-litellm
  3. maintain separate config overlays/files

None of these gives simple automatic provider-relative model selection.

Request

Would it be possible to support provider-dependent agent model configuration?

Possible approaches:

Option A: defaultModelByProvider

{
  "agent": {
    "explorer": {
      "defaultModelByProvider": {
        "github-copilot": "raptor-mini",
        "company-litellm": "hf-qwen3-32b-awq"
      }
    }
  }
}

or with full names:

{
  "agent": {
    "explorer": {
      "defaultModelByProvider": {
        "github-copilot": "github-copilot/raptor-mini",
        "company-litellm": "company-litellm/hf-qwen3-32b-awq"
      }
    }
  }
}

Option B: provider-local model alias resolution

Allow agent models to reference a logical alias, resolved within the currently selected provider:

{
  "providers": {
    "github-copilot": {
      "models": {
        "explorer-small": {
          "modelName": "raptor-mini"
        }
      }
    },
    "company-litellm": {
      "models": {
        "explorer-small": {
          "modelName": "hf-qwen3-32b-awq"
        }
      }
    }
  },
  "agent": {
    "explorer": {
      "defaultModel": "explorer-small"
    }
  }
}

That would let the same agent config work across providers.

Why this would help

This would make it much easier to:

  • switch providers interactively
  • keep the same agent/subagent setup
  • use provider-appropriate small/fast models for helper agents like explorer

Question

Is there already a recommended way to do this today, especially for built-in subagents like explorer?

To upvote this issue, give it a thumbs up. See this list for the most upvoted issues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions