Summary
When provider = "deepseek" is set as the main provider, Hermes emits the following warning at startup and during auxiliary operations:
WARNING: No auxiliary LLM provider configured — falling back to main provider for compression
This happens because deepseek is missing from _API_KEY_PROVIDER_AUX_MODELS_FALLBACK in agent/auxiliary_client.py, and DeepSeek is a direct API-key provider (no ProviderProfile plugin with default_aux_model).
Impact
- All auxiliary tasks (context compression, vision, web extraction, session search) fall back to the main provider model
- For DeepSeek users with
deepseek-chat as aux model, the fallback works but the warning is misleading — it implies a misconfiguration when none exists
- For users with a reasoning model as primary (e.g.,
deepseek-reasoner / deepseek-v4-pro), the fallback sends aux tasks to the reasoning model instead of the cheaper chat model, wasting tokens
Root Cause
_get_aux_model_for_provider() in agent/auxiliary_client.py:255 returns "" for deepseek because:
- DeepSeek has no
ProviderProfile.default_aux_model (it's a direct provider, not a plugin)
_API_KEY_PROVIDER_AUX_MODELS_FALLBACK does not include "deepseek"
Steps to Reproduce
- Set
provider: deepseek and model: deepseek-chat in config.yaml
- Leave auxiliary models unset (or set to deepseek-chat explicitly)
- Start Hermes or run any cron job
- Observe: "No auxiliary LLM provider configured" warning
Proposed Fix
Add one line to _API_KEY_PROVIDER_AUX_MODELS_FALLBACK in agent/auxiliary_client.py:
"deepseek": "deepseek-chat",
This is consistent with how other direct API-key providers (minimax, stepfun, kimi-coding) are handled in the same dict.
Environment
- Hermes commit: 9fb40e6
- Python: 3.11
- Provider: deepseek
- Model: deepseek-v4-pro
Summary
When
provider = "deepseek"is set as the main provider, Hermes emits the following warning at startup and during auxiliary operations:This happens because
deepseekis missing from_API_KEY_PROVIDER_AUX_MODELS_FALLBACKinagent/auxiliary_client.py, and DeepSeek is a direct API-key provider (noProviderProfileplugin withdefault_aux_model).Impact
deepseek-chatas aux model, the fallback works but the warning is misleading — it implies a misconfiguration when none existsdeepseek-reasoner/deepseek-v4-pro), the fallback sends aux tasks to the reasoning model instead of the cheaper chat model, wasting tokensRoot Cause
_get_aux_model_for_provider()inagent/auxiliary_client.py:255returns""fordeepseekbecause:ProviderProfile.default_aux_model(it's a direct provider, not a plugin)_API_KEY_PROVIDER_AUX_MODELS_FALLBACKdoes not include"deepseek"Steps to Reproduce
provider: deepseekandmodel: deepseek-chatin config.yamlProposed Fix
Add one line to
_API_KEY_PROVIDER_AUX_MODELS_FALLBACKinagent/auxiliary_client.py:This is consistent with how other direct API-key providers (minimax, stepfun, kimi-coding) are handled in the same dict.
Environment