Skip to content

Auxiliary tasks don't inherit provider-level base_url/api_key from config #17737

@wjameswen888

Description

@wjameswen888

Issue: auxiliary tasks don't respect user's provider-level base_url (falls back to hardcoded PROVIDER_REGISTRY)

Summary

When a user configures a custom base_url for a provider (e.g., xiaomi with token-plan-sgp.xiaomimimo.com), auxiliary tasks (session_search, compression, title_generation, flush_memories, approval) ignore the user's providers.<name>.base_url and instead use the hardcoded inference_base_url from PROVIDER_REGISTRY in hermes_cli/auth.py. This causes silent failures — auxiliary tasks timeout/401 and fall back to other providers, creating cascading issues (gateway idle timeouts, broken session_search).

Root Cause

auxiliary_client.py_resolve_task_provider_model() reads auxiliary.<task>.provider but not base_url. When the task config only has provider: xiaomi, it returns with base_url=None, and later _resolve_api_key_provider() uses pconfig.inference_base_url — the hardcoded default.

Workaround (current)

Users must explicitly set base_url and api_key in EACH auxiliary.<task> section, requiring credential duplication across 5+ auxiliary tasks.

Desired Behavior

auxiliary.<task>.provider should inherit base_url and api_key from providers.<name> when not explicitly overridden. Resolution chain:

  1. auxiliary.<task>.base_url / api_key (explicit override)
  2. providers.<task_provider>.base_url / api_key (inherit from provider)
  3. Hardcoded PROVIDER_REGISTRY default

Affected Code

  • agent/auxiliary_client.py: _resolve_task_provider_model() — returns None for base_url when only provider is set
  • agent/auxiliary_client.py: _resolve_api_key_provider() — uses pconfig.inference_base_url unconditionally

Environment

  • Hermes v0.11.0
  • Provider: xiaomi (MiMo) with non-standard base_url

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existsarea/configConfig system, migrations, profilescomp/agentCore agent loop, run_agent.py, prompt buildertype/bugSomething isn't working

    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