Bug Description
When auxiliary.session_search.provider is set to auto (the default),
and the environment has no credentials for OpenRouter or Nous Portal, the
auto-detect chain still walks through them sequentially before falling
through to custom_providers. Each failed hop adds unnecessary latency,
and the subsequent fallback retry can hit the same provider again,
compounding the waste.
Steps to Reproduce
- Configure a main provider via
custom_providers (no OpenRouter or
Nous API keys)
- Leave
auxiliary.session_search.provider: auto (default)
- Call
session_search on sessions that require LLM summarization
What Happens
The auto-detect chain walks:
auto → OpenRouter (no API key, fails)
→ Nous Portal (no API key, fails)
→ custom_providers (reaches target provider)
→ API call may timeout
→ fallback retries same provider
→ timeout again
→ repeats up to 3 times
From logs, a single session_search summarization call took ~560 seconds
due to this chain + retry loop. When an off-work wrapup cron reviews
multiple sessions, the cumulative delay is severe.
Expected Behavior
- If no credentials exist for OpenRouter/Nous, skip them immediately
rather than attempting and waiting for failure
- When fallback is triggered because the API timed out, try a genuinely
different provider instead of the same one
- Or: provide a config option to explicitly bypass the auto-detect chain
and go directly to a named provider
Workaround
Explicitly set session_search.provider: custom:<name> in
auxiliary config to skip the auto-detect walk entirely.
Environment
- Hermes Agent: 0.8.x
- Main provider: custom_providers
- Auxiliary affected: session_search
Bug Description
When
auxiliary.session_search.provideris set toauto(the default),and the environment has no credentials for OpenRouter or Nous Portal, the
auto-detect chain still walks through them sequentially before falling
through to
custom_providers. Each failed hop adds unnecessary latency,and the subsequent fallback retry can hit the same provider again,
compounding the waste.
Steps to Reproduce
custom_providers(no OpenRouter orNous API keys)
auxiliary.session_search.provider: auto(default)session_searchon sessions that require LLM summarizationWhat Happens
The auto-detect chain walks:
From logs, a single
session_searchsummarization call took ~560 secondsdue to this chain + retry loop. When an off-work wrapup cron reviews
multiple sessions, the cumulative delay is severe.
Expected Behavior
rather than attempting and waiting for failure
different provider instead of the same one
and go directly to a named provider
Workaround
Explicitly set
session_search.provider: custom:<name>inauxiliaryconfig to skip the auto-detect walk entirely.Environment