Skip to content

fix(providers): add deepseek to _API_KEY_PROVIDER_AUX_MODELS_FALLBACK (#26924)#26926

Closed
kriscolab wants to merge 1 commit into
NousResearch:mainfrom
kriscolab:fix/deepseek-aux-fallback
Closed

fix(providers): add deepseek to _API_KEY_PROVIDER_AUX_MODELS_FALLBACK (#26924)#26926
kriscolab wants to merge 1 commit into
NousResearch:mainfrom
kriscolab:fix/deepseek-aux-fallback

Conversation

@kriscolab

Copy link
Copy Markdown
Contributor

Summary

Fixes #26924 — adds deepseek to _API_KEY_PROVIDER_AUX_MODELS_FALLBACK so DeepSeek users no longer get the misleading "No auxiliary LLM provider configured" warning.

Problem

When provider = "deepseek", every Hermes startup and cron job emits:

WARNING: No auxiliary LLM provider configured — falling back to main provider for compression

Root cause: DeepSeek is a direct API-key provider (no ProviderProfile plugin with default_aux_model), so _get_aux_model_for_provider() falls through to the legacy _API_KEY_PROVIDER_AUX_MODELS_FALLBACK dict — which didn't include deepseek.

Fix

One-line addition to the fallback dict:

"deepseek": "deepseek-chat",

Consistent with how minimax, stepfun, kimi-coding, and other direct API-key providers are handled.

Tests

Two new regression tests in test_minimax_provider.py (TestDeepseekAuxModel):

  • test_deepseek_aux_is_chat — asserts _get_aux_model_for_provider("deepseek") == "deepseek-chat"
  • test_deepseek_aux_not_empty — asserts the return value is non-empty

Verification

venv/bin/python -m pytest tests/agent/test_minimax_provider.py::TestDeepseekAuxModel -v
# 2 passed in 2.00s

Type

🐛 Bug fix (non-breaking)

…NousResearch#26924)

DeepSeek is a direct API-key provider without a ProviderProfile plugin,
so _get_aux_model_for_provider() falls through to the legacy hardcoded
dict.  Without an entry there, it returns "" which triggers the
misleading "No auxiliary LLM provider configured" warning.

Add "deepseek": "deepseek-chat" to the fallback dict, consistent with
how minimax, stepfun, and kimi-coding are handled.

Add two regression tests verifying DeepSeek resolves to deepseek-chat
and never returns empty string.
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/agent Core agent loop, run_agent.py, prompt builder provider/deepseek DeepSeek API labels May 16, 2026
@cardtest15-coder

This comment was marked as spam.

teknium1 added a commit that referenced this pull request May 17, 2026
…firing

Closes #26924 (and supersedes #26926) in spirit.

DeepSeek was missing `default_aux_model` on its `ProviderProfile`, so
`_get_aux_model_for_provider("deepseek")` returned an empty string and
the compression / vision / session-search paths emitted

  "No auxiliary LLM provider configured -- context compression will
  drop middle turns without a summary."

on every DeepSeek session, even when the user had perfectly working
DeepSeek credentials.

Fix lands at the profile layer rather than the legacy
`_API_KEY_PROVIDER_AUX_MODELS_FALLBACK` dict the original PR targeted.
Every modern provider (gemini, zai, minimax, anthropic, kimi-coding,
stepfun, ollama-cloud, gmi, novita, kilocode, ai-gateway, opencode-zen)
sets `default_aux_model` on its `ProviderProfile`; the fallback dict
only exists for providers that predate the profiles system.

Tests added under `tests/plugins/model_providers/test_deepseek_profile.py`:
- `test_profile_advertises_deepseek_chat`  -- pins the profile attribute
- `test_consumer_api_returns_deepseek_chat` -- pins the consumer API behavior
- `test_consumer_api_returns_non_empty`     -- regression guard for the
  symptom in the issue

Original diagnosis and aux-model choice from @kriscolab in PR #26926;
moved one layer up.

Co-authored-by: kriscolab <71590782+kriscolab@users.noreply.github.com>
teknium1 added a commit that referenced this pull request May 17, 2026
…tors

Adds release-note attribution mappings for 10 contributors from the
low-hanging-fruit salvage group 2 batch:
- @shellybotmoyer (PR #26661, #25576)
- @ether-btc (PR #26632)
- @LifeJiggy (PR #26516)
- @nekwo (PR #26481)
- @flooryyyy (PR #26374)
- @dgians (PR #26034, incl. zealy-tzco bot-committer alias)
- @flanny7 (PR #27030)
- @hermesagent26 (PR #26438)
- @kriscolab (PR #26926, co-author on salvage commit)
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #27292 — the bug you diagnosed (deepseek users seeing the bogus 'No auxiliary LLM provider configured' warning) is fixed, but the salvage shape diverged from your patch.

The legacy _API_KEY_PROVIDER_AUX_MODELS_FALLBACK dict you targeted has been superseded — modern providers set default_aux_model on their ProviderProfile instead (every other provider in plugins/model-providers/ does this: gemini, zai, minimax, anthropic, kimi-coding, etc.). Deepseek was the only one missing the attribute. The fix sets default_aux_model="deepseek-chat" on DeepSeekProfile() directly.

Your diagnosis and aux-model choice were correct — credited via Co-authored-by: on the salvage commit. Thanks for the contribution.

@teknium1 teknium1 closed this May 17, 2026
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…firing

Closes NousResearch#26924 (and supersedes NousResearch#26926) in spirit.

DeepSeek was missing `default_aux_model` on its `ProviderProfile`, so
`_get_aux_model_for_provider("deepseek")` returned an empty string and
the compression / vision / session-search paths emitted

  "No auxiliary LLM provider configured -- context compression will
  drop middle turns without a summary."

on every DeepSeek session, even when the user had perfectly working
DeepSeek credentials.

Fix lands at the profile layer rather than the legacy
`_API_KEY_PROVIDER_AUX_MODELS_FALLBACK` dict the original PR targeted.
Every modern provider (gemini, zai, minimax, anthropic, kimi-coding,
stepfun, ollama-cloud, gmi, novita, kilocode, ai-gateway, opencode-zen)
sets `default_aux_model` on its `ProviderProfile`; the fallback dict
only exists for providers that predate the profiles system.

Tests added under `tests/plugins/model_providers/test_deepseek_profile.py`:
- `test_profile_advertises_deepseek_chat`  -- pins the profile attribute
- `test_consumer_api_returns_deepseek_chat` -- pins the consumer API behavior
- `test_consumer_api_returns_non_empty`     -- regression guard for the
  symptom in the issue

Original diagnosis and aux-model choice from @kriscolab in PR NousResearch#26926;
moved one layer up.

Co-authored-by: kriscolab <71590782+kriscolab@users.noreply.github.com>
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…tors

Adds release-note attribution mappings for 10 contributors from the
low-hanging-fruit salvage group 2 batch:
- @shellybotmoyer (PR NousResearch#26661, NousResearch#25576)
- @ether-btc (PR NousResearch#26632)
- @LifeJiggy (PR NousResearch#26516)
- @nekwo (PR NousResearch#26481)
- @flooryyyy (PR NousResearch#26374)
- @dgians (PR NousResearch#26034, incl. zealy-tzco bot-committer alias)
- @flanny7 (PR NousResearch#27030)
- @hermesagent26 (PR NousResearch#26438)
- @kriscolab (PR NousResearch#26926, co-author on salvage commit)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent loop, run_agent.py, prompt builder P2 Medium — degraded but workaround exists provider/deepseek DeepSeek API type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DeepSeek missing from _API_KEY_PROVIDER_AUX_MODELS_FALLBACK — misleading "No auxiliary LLM provider" warning

4 participants