4.3 KiB
Migration provider → OpenCode Go (consolidé)
Date : 2026-07-09 (fusionne migration-provider-opencode-go.md 14/06 + OPENCODE-GO-MIGRATION.md 16/06 ; état mis à jour) Tags : infra, opencode, hermes, family-help, bifrost, fallback
État actuel des modèles (09/07/2026)
| Instance | model.default | Fallback |
|---|---|---|
| hermes-tt | deepseek-v4-flash (opencode-go) | opencode-go/deepseek-v4-flash |
| hermes-nyora | mimo-v2.5 (verdict pilote 08/07 : GARDER — voir hermes-nyora/verdict-pilote-mimo-v25.md) | opencode-go/deepseek-v4-flash |
| hermes-perso | deepseek-v4-flash (opencode-go) | opencode-go/deepseek-v4-flash |
⚠️ Depuis le 06/07, les fallbacks pointent vers opencode-go (forfait) et non plus openrouter (payant) — voir common/bifrost-vk-incidents.md.
Source de vérité compose : /volume1/docker/hermes-platform/docker-compose.yml (top-level), confirmé par le fix DNS du 09/07 (recreate des 3 agents). Les compose per-instance sont en .disabled ; les mentions historiques « stacks Portainer 291/292/294, top-level obsolète » ne sont plus valables.
Endpoint & modèles OpenCode Go
Provider built-in opencode-go : base_url https://opencode.ai/zen/go/v1, auth Authorization: Bearer <clé> uniquement (pas de x-bf-vk, pas de HTTP-Referer/X-Title). IDs sans préfixe (deepseek-v4-flash, glm-5.1, mimo-v2.5…), jamais openrouter/ ni deepseek/.
Utilisables en OpenAI-compat : deepseek-v4-flash/pro, glm-5/5.1, qwen3.6/3.7-plus, kimi-k2.6, kimi-k2.7-code, minimax-m3, mimo-v2.5(-pro).
NE FONCTIONNE PAS :
qwen3.7-max→Model not supported for format oa-compat(dispo seulement format Anthropic). Consommateurs OpenAI-compat →glm-5.1.- MiniMax M2.7 vision =
prompt_tokens:0(vision cassée). Vision/OCR → Gemini via Bifrost.
config.yaml Hermes
/volume1/docker/hermes-platform/hermes-{tt,nyora,perso}/data/config.yaml :
model:
default: <modele>
provider: opencode-go
fallback_providers:
- provider: opencode-go
model: deepseek-v4-flash
key_env: OPENCODE_GO_API_KEY # nom réel injecté par le compose top-level (PAS OPENCODE_API_KEY)
Hermes réécrit config.yaml au shutdown → toujours docker stop → éditer → docker start (jamais éditer à chaud). Healthcheck port 8642, API /v1/chat/completions, modèle proxy hermes-agent.
⚠️ data/ en 0700 uid 1026 : illisible depuis mcp-nas post-hardening — édition via Mac ou canal autorisé.
family-help
medical_service.py → helper _llm_complete() (OpenCode primaire, OpenRouter fallback web/erreur), routing par skill : medical/nutrition glm-5.1, homework qwen3.7-plus, legal_admin deepseek-v4-pro, tech/general deepseek-v4-flash. max_tokens ≥ 2048 obligatoire (modèles de raisonnement : le reasoning mange le budget avant le content → finish_reason=length, content vide). Même piège vu sur mimo-v2.5 (fix : max_tokens 8192 sur hermes-nyora).
Bifrost (rappel)
Bifrost ne recharge PAS les clés provider au restart → config.json chargé au boot + allow_all_keys=1 en DB. Providers dans config.json ≠ store (DELETE FROM config_providers/config_keys, bifrost stoppé). Éditer via l'UI peut re-casser. Détails : common/bifrost-access.md et common/bifrost-vk-incidents.md.
n8n
- Code nodes LLM → Bifrost obligatoire (common/runbook-n8n-llm-bifrost.md).
require('https')+ parsing manuel, jamais fetch/new URL/$helpers. - 15 workflows AO/veille archivés contiennent encore OpenRouter : l'API n8n refuse d'éditer un archivé. Pour réutiliser : désarchiver (UI) → migrer le Code node (endpoint zen/go/v1, clé OpenCode, retirer HTTP-Referer/X-Title) → re-tester → ré-archiver.
- Restent volontairement sur OpenRouter direct :
Mode-nedya,FAMILLE | Recettes Weekend,Labellisation Auto.
Pièges DSM/NAS
dockerhors PATH SSH →/usr/local/bin/docker(Best0f groupe docker, sans sudo).hermes model/hermes fallback adden SSH → « requires an interactive terminal » → éditer le YAML.- Vérif :
docker exec hermes-agent-<i> hermes fallback ls+ test curllocalhost:8642/v1/chat/completions.
Références
- https://opencode.ai/docs/zen · hermes-agent.nousresearch.com/docs (fallback-providers)
- hermes-nyora/verdict-pilote-mimo-v25.md · common/bifrost-vk-incidents.md