Mode Code : git sur le dépôt cloné, budget de build, sous-agents moins rigides

Trois trous relevés en comparant avec OpenFox.

- git_status / git_diff tournaient à la racine de la discussion, qui
  n'est souvent pas un dépôt : git_clone range le projet dans un
  sous-dossier, et le vérificateur — dont la consigne commence par
  git_diff — tombait sur « not a git repository ». Ils visent maintenant
  le sous-dossier demandé (dir), la racine si c'est un dépôt, sinon
  l'unique dépôt présent ; plusieurs : on demande de choisir.
- Budget d'outils triplé en mode Code : lire, éditer, compiler, relancer
  les tests dépasse vite 24 appels sans tourner en rond, et le troisième
  rappel (« n'appelle plus d'outil ») coupait le build au milieu.
- Sous-agents : température 0.6 au lieu de 0 (en glouton, Qwen avec
  réflexion boucle vite ; le TEMP du preset l'emporte toujours), et seul
  le texte écrit après le dernier outil revient au builder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-02 23:36:01 +02:00
1 parent 2e0356cd6c
commit dfafca6fb2
5 files changed
+104 -8

No files matched your search

+7 -1
View File
@@ -959,6 +959,12 @@ func runChat(ctx context.Context, messages []Message, temperature float64, caps
// demande de conclure — de la pression, pas une barrière. Sans ça, un modèle
// qui tourne en rond n'avait rien en face de lui sauf le bouton stop.
toolRuns, budgetNudges, budget := 0, 0, agentBudget()
// Mode Code : lire, éditer, compiler, relancer les tests — un vrai tour de
// build dépasse vite 24 appels sans tourner en rond, et le troisième rappel
// (« n'appelle plus d'outil ») coupait le travail au milieu. Palier triplé.
if caps.Code {
budget *= codeBudgetFactor
}
for iter := 0; ; iter++ {
// Ajout en cours de réponse : entre deux étapes (après un appel d'outil ou
// une relance), on injecte les messages mis en file par l'utilisateur. Pas
@@ -1705,7 +1711,7 @@ func runChat(ctx context.Context, messages []Message, temperature float64, caps
case "bash_tail":
result = toolBashTail(args)
case "git_status":
result = toolGitStatus(ctx)
result = toolGitStatus(ctx, args)
case "git_diff":
result = toolGitDiff(ctx, args)
case "git_clone":