Fix: garder l'inférence sur GPU et réparer l'erreur 400 de template

- agent_config: num_gpu auto (-1) par défaut au lieu de forcer un nombre
  de couches codé en dur (RTX 3060), qui faisait basculer Ollama sur CPU
  quand la config ne tenait pas en VRAM. num_gpu/main_gpu ne sont transmis
  que si l'utilisateur force explicitement une valeur (>= 0).
- agent_config: migration v4 remettant a -1 les profils deja enregistres
  avec un num_gpu fige.
- agent: la boucle de reparation d'appel d'outil reinjecte son rappel en
  role "user" au lieu de "system" (les templates Gemma/Mistral refusent un
  message system hors tete -> 400 "System message must be at the beginning").

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 4.8 committed 2026-06-30 12:26:49 +02:00
1 parent e24d397d31
commit aed5f8148c
2 files changed
+23 -5

No files matched your search

+6 -1
View File
@@ -122,9 +122,14 @@ async def run_agent(
int(request_options.get("num_predict", 0)), 4096
)
thinking_buf = ""
# NB : on réinjecte ce rappel en `user`, pas en `system`.
# Beaucoup de templates (Gemma, Mistral…) lèvent
# « System message must be at the beginning » dès qu'un
# message system apparaît ailleurs qu'en tête, ce qui
# ferait échouer toute la requête en 400.
convo.append(
{
"role": "system",
"role": "user",
"content": (
"L'appel d'outil précédent contenait un JSON "
"tronqué. Réessaie immédiatement avec des arguments "