mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 22:48:11 +02:00
Agent : trois filets de secours qui faisaient plus de mal que de bien
Repris d'AJEAN 0.15.5.
COMPACTAGE DE SECOURS
Sur n'importe quel refus du moteur — appel d'outil mal formé, modèle en
cours de chargement, erreur de template — runChat résumait ~75 % de la
conversation avant de rejouer, même quand elle tenait en trois messages.
contextOverflow ne laisse passer que les vrais débordements : libellés de
llama.cpp (« exceeds the available context size ») et des API
OpenAI-compatibles (context_length_exceeded), ou, à défaut de libellé, une
conversation déjà à 90 % de la fenêtre.
ARGUMENTS D'OUTIL ILLISIBLES
Un JSON tronqué était neutralisé en {} (indispensable : le template les
re-parse à chaque requête) PUIS exécuté tel quel, d'où des erreurs
trompeuses (« fichier manquant », « commande vide ») qui envoyaient le
modèle sur une fausse piste. L'appel n'est plus exécuté ; le modèle reçoit
une erreur qui dit exactement quoi renvoyer. Des arguments VIDES restent
valides (outil sans paramètre).
RELANCE SANS OUTILS
La consigne imposait le français. Elle demande désormais la langue de
l'utilisateur.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e12f07426f
commit
97378da7af
3 files changed
+68
-2
No files matched your search
@@ -649,3 +649,20 @@ Write the summary in the SAME language as the conversation.`
|
||||
}
|
||||
return c, nil
|
||||
}
|
||||
|
||||
// contextOverflow : le refus du moteur (corps d'erreur msg) signale-t-il un
|
||||
// débordement de la fenêtre de contexte ? Reconnaît les libellés de llama.cpp
|
||||
// (« exceeds the available context size », exceed_context_size_error) et des API
|
||||
// OpenAI-compatibles (context_length_exceeded, « maximum context length »). À
|
||||
// défaut de libellé reconnu, on se fie à la taille estimée : une conversation
|
||||
// déjà à 90 % de la fenêtre a toutes les chances d'être la cause.
|
||||
func contextOverflow(msg string, msgs []Message) bool {
|
||||
m := strings.ToLower(msg)
|
||||
for _, k := range []string{"context size", "context_size", "context length", "context_length",
|
||||
"context window", "n_ctx", "too many tokens", "prompt is too long", "exceeds the context"} {
|
||||
if strings.Contains(m, k) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return estimateTokens(msgs) >= int(float64(ctxWindow())*0.9)
|
||||
}
|
||||
Reference in new issue
Block a user