4.6 KiB
Migration OpenRouter → OpenCode Go — 2026-06-16
Objectif : basculer la stack LLM du NAS vers OpenCode Go (forfait Go, endpoint
https://opencode.ai/zen/go/v1, auth Authorization: Bearer <clé> uniquement —
pas de x-bf-vk, pas de HTTP-Referer/X-Title).
Modèles OpenCode Go
IDs sans préfixe (glm-5.1, deepseek-v4-pro…), PAS openrouter/ ni deepseek/.
Utilisables en OpenAI-compat (oa-compat) : deepseek-v4-flash, deepseek-v4-pro,
glm-5.1, qwen3.7-plus, kimi-k2.6, kimi-k2.7-code, minimax-m3, glm-5,
qwen3.6-plus, mimo-v2.5-pro…
⚠️ NE FONCTIONNE PAS :
qwen3.7-max→Model not supported for format oa-compat(dispo seulement en format Anthropic côté OpenCode Go). Tout consommateur OpenAI-compat (Bifrost custom provider, Open WebUI, family-help) doit utiliserglm-5.1à la place.- MiniMax M2.7 vision via OpenCode Go =
prompt_tokens:0(vision cassée).
Ce qui a été migré
| Cible | Avant | Après | Clé |
|---|---|---|---|
| hermes-tt (config.yaml) | deepseek-v4-flash | défaut deepseek-v4-pro, fallback deepseek-v4-flash, délégation (data-engineer) deepseek-v4-pro |
HERMES_TT_OPENCODE_KEY (provider opencode-go) |
| hermes-nyora | deepseek-v4-flash | défaut glm-5.1, fallback qwen3.7-plus |
HERMES_NYORA_OPENCODE_KEY |
| hermes-perso | deepseek-v4-flash | défaut qwen3.7-plus, fallback deepseek-v4-flash |
HERMES_PERSO_OPENCODE_KEY |
| Bifrost | — | provider opencode route glm-5.1, deepseek-v4-pro, qwen3.7-plus, kimi-k2.6, minimax-m3 ; alias claude-*→deepseek-v4-flash (openrouter) conservé |
BIFROST_OPENCODE_KEY |
| Open WebUI | Bifrost seul | 2e connexion directe OpenCode Go (OPENAI_API_BASE_URLS pluriel) |
BIFROST_OPENCODE_KEY |
| family-help | OpenRouter (modèle unique) | routing par skill : medical/nutrition glm-5.1, homework qwen3.7-plus, legal_admin deepseek-v4-pro, tech/general deepseek-v4-flash ; fallback OpenRouter (web + erreur) |
OPENCODE_API_KEY (=BIFROST_OPENCODE_KEY) |
| n8n actifs | commentaires/refs OpenRouter | nettoyés (NABIL.md Quotidien, Monitoring sources IA, Ingest Opportunités) | — |
Hermes — config.yaml
Modèle défini dans /volume1/docker/hermes-platform/hermes-{tt,nyora,perso}/data/config.yaml :
model.default + model.provider: opencode-go, fallback_providers[0], fallback_model.
Hermes réécrit config.yaml au shutdown → procédure : docker stop → éditer → docker start
(éditer container arrêté pour éviter le clobber). Healthcheck port 8642, API OpenAI-compat
(/v1/chat/completions, modèle proxy hermes-agent).
Bifrost — PIÈGE MAJEUR (voir mémoire bifrost-keys-config-json)
Bifrost v1.5.13 ne recharge PAS les clés des providers au redémarrage (elles ne vivaient
qu'en mémoire). Fix durable = /volume1/docker/bifrost/data/config.json (providers + clés,
chargé au boot) + allow_all_keys=1 dans governance_virtual_key_provider_configs.
- Providers dans config.json NE doivent PAS être aussi dans le store (
sqlite3 config.db "DELETE FROM config_providers; DELETE FROM config_keys;", bifrost stoppé). sqlite3 config.db "UPDATE governance_virtual_key_provider_configs SET allow_all_keys=1;".- ⚠️ éditer providers/clés/VK via l'UI Bifrost peut re-casser (reset allow_all_keys / conflit config.json).
- Backup config.db pré-migration :
/tmp/config.db.backup-*(NAS).
n8n — workflows AO inactifs : NON migrés (à faire délibérément)
Les 15 workflows AO/veille contenant encore OpenRouter sont archivés (isArchived=true) →
l'API n8n refuse de les éditer (Cannot update an archived workflow). Le pipeline AO actif
(AO — Insertion Baserow FINAL, hisVAANSYpixR4Si) est déjà propre.
Pour réutiliser un workflow AO archivé : le désarchiver (UI), migrer son Code node
(openrouter.ai/api/v1/chat/completions → opencode.ai/zen/go/v1/chat/completions, clé sk-or →
OpenCode, retirer HTTP-Referer/X-Title, modèle → deepseek-v4-pro), re-tester, ré-archiver.
Règle Code node n8n : require('https') + parsing manuel d'URL, jamais fetch/new URL/$helpers.
Liste des archivés concernés : edFMGtI2HHWW72aT, JTwurk7XVBUXSHKn, BCgZYRJcxoHOMDhm, iuxVgZFfpKdYFNqG,
xJtW4algsBcx6r1E, EEDr0xx9krRq2nwN, 7zWWJhP2aQbzQhZG, QALWT3NwMQjOuY6u, N3yQWk0XyhyS5wZX,
hcOmozHadfBnHzri, nZiXRcwSAXsoj2M6, Mdl5SRcT9rYw48VZ, dPnpoHkc6hEXdsFF, wS3SzRFfcaDDD34g, xu4smQdEGrHFx1zK, RRKUk3GvnULj7edE.
Hors scope (laissés sur OpenRouter, actifs/famille — à migrer sur décision)
Workflows n8n actifs encore sur OpenRouter en direct (endpoint+clé) : Mode-nedya,
FAMILLE | Recettes Weekend, Labellisation Auto.