Skip to content

Feature Request: Per-platform model configuration #14327

@linmao1991cn

Description

@linmao1991cn

Problem

Currently Hermes Agent uses a single global model configuration (model.provider and model.default in config.yaml). All messaging platforms share the same model, with only per-session overrides via /model <name>.

Use case: A user wants Feishu to use mimo-v2.5 on a custom provider, while keeping CLI on MiniMax-M2.7.

Current Workaround

Using /model <name> --provider <provider> in a session sets a per-session override (stored in _session_model_overrides), but it does not persist and does not allow platform-wide defaults.

Desired Behavior

Allow per-platform model configuration in config.yaml:

platforms:
  feishu:
    model: mimo-v2.5
    provider: Token-plan-cn.xiaomimimo.com
  cli:
    model: MiniMax-M2.7
    provider: minimax-cn

Technical Notes

  • GatewayConfig (gateway/config.py) has PlatformConfig per platform but lacks model/provider fields
  • _session_model_overrides in gateway/run.py provides per-session switching, not per-platform
  • Model switching pipeline: hermes_cli/model_switch.py (switch_model()) handles resolution
  • Session override system already in place at gateway/run.py:1050-1122 (_resolve_session_agent_runtime)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havearea/configConfig system, migrations, profilescomp/gatewayGateway runner, session dispatch, deliverytype/featureNew feature or request

    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