fix: veille Nexum cron job pin bypassait bifrost-proxy, bascule silencieuse DeepSeek/OpenRouter (ticket infra-2026-09-037)
This commit is contained in:
@@ -456,3 +456,15 @@ Une fois la regle DSM `baserow-schema.bolbol.tn` -> 3101 creee (cert Let's Encry
|
||||
|
||||
Détail complet : `common/piege-virtual-key-nabil-key-bifrost-hermes-20260904.md`.
|
||||
|
||||
|
||||
## FIX -- Job cron veille Nexum bascule silencieusement sur DeepSeek/OpenRouter par pin de provider bypassant bifrost-proxy (2026-09-10)
|
||||
|
||||
**Symptome** : Nabil signale que les 3 veilles quotidiennes (07h/12h/20h Tunis) tournent sur DeepSeek V4 Flash via OpenRouter au lieu de MiMo-V2.5 via OpenCode -- aucune erreur visible cote Telegram/site, le contenu est simplement genere par un autre modele.
|
||||
|
||||
**Cause racine** : le job cron `veille-ia-nexum-4ee61494` portait un pin explicite au niveau du job (`model=mimo-v2.5`, `provider=opencode-go`) qui court-circuite le `model.default` de config.yaml (`provider: custom`, `base_url: http://bifrost-proxy/v1`). Ce pin envoie donc la requete DIRECTEMENT a `https://opencode.ai/zen/go/v1` sans passer par bifrost-proxy -- or c'est precisement bifrost-proxy qui injecte le header `x-bf-eh-x-opencode-session` requis par l'API OpenCode Go (regle du 04/09, piege-virtual-key-nabil-key-bifrost-hermes). Sans ce header : `HTTP 400 MissingSessionID`. Le meme echec se reproduit sur le `fallback_providers` du job (opencode-go/deepseek-v4-flash, meme chemin direct), et la requete finit par toucher le dernier filet `fallback_model: openrouter/deepseek-v4-flash` de config.yaml -- qui, lui, fonctionne, d'ou le contenu genere sans erreur visible.
|
||||
|
||||
**Diagnostic** : `docker logs hermes-agent-nyora` montre la sequence complete (2 echecs MissingSessionID puis `Switched to fallback model: deepseek-v4-flash via opencode-go -> deepseek/deepseek-v4-flash via openrouter`). Comparaison avec les autres jobs cron actifs : le seul autre job active (`35d81e5260bb`) a `model=None/provider=None` et herite correctement de config.yaml.
|
||||
|
||||
**Fix** : `hermes cron edit veille-ia-nexum-4ee61494 --model "" --provider ""` pour retirer le pin et faire heriter le job du `model.default` de config.yaml (custom -> bifrost-proxy -> mimo-v2.5). Verifie par appel direct `curl` vers `http://bifrost-proxy/v1/chat/completions` depuis le conteneur : HTTP 200, `resolved_model_used: mimo-v2.5` via provider `opencode` (donc bifrost-proxy actif et sain).
|
||||
|
||||
**REFLEXE** : tout job cron / profil Hermes avec un `model`/`provider` pin explicite qui pointe `opencode-go` EN DIRECT (au lieu de `custom` + `base_url: http://bifrost-proxy/v1`) perd l'injection du header de session et tombe silencieusement dans la chaine de fallback jusqu'a DeepSeek/OpenRouter -- sans erreur remontee a l'utilisateur puisque le fallback reussit techniquement. Auditer systematiquement tout pin `provider=opencode-go` au niveau job/profil (ex: `hermes cron list` puis verifier chaque job avec model/provider non-null) : soit le retirer (heriter de config.yaml), soit le reecrire en `provider=custom` + `base_url=http://bifrost-proxy/v1`. Ticket infra-2026-09-037. Detail : common/veille-cron-pin-bypass-bifrost-20260910.md.
|
||||
|
||||
Reference in New Issue
Block a user