Les agents d'intelligence artificielle autonomes se distinguent par leur faculté à décomposer un objectif complexe en sous-tâches itératives et à les exécuter de manière récursive. Toutefois, sans mécanismes de contrôle stricts, cette exécution récursive constitue l'un des moyens les plus rapides d'épuiser les quotas de tokens d'API. Lorsqu'un agent entre dans une boucle de raisonnement redondante, tente indéfiniment d'accéder à une page web inaccessible ou multiplie les sous-tâches inutiles, les coûts de facturation peuvent exploser en quelques minutes. Dans AgentGPT (développé par Reworkd), les développeurs et utilisateurs avancés maîtrisent ce risque grâce à deux leviers essentiels : la configuration de limites strictes sur les boucles d'exécution et l'exportation multi-format des résultats de tâches.
En fixant des plafonds précis d'itérations et de tokens avant le lancement, et en extrayant systématiquement les données collectées avant de réinitialiser la session, il est possible d'exploiter des flux de travail autonomes avec rigueur et maîtrise budgétaire.
1. Le cycle récursif d'AgentGPT et la consommation de tokens
Pour comprendre la nécessité de plafonner les boucles, il convient de retracer la séquence d'exécution d'AgentGPT :
- Prise en charge de l'objectif (Goal Ingestion) : L'agent reçoit l'objectif global et sollicite le modèle de langage (tel que GPT-3.5-Turbo ou GPT-4) pour établir une première série de sous-tâches.
- Exécution et analyse (Task Execution) : L'agent extrait la première tâche de la file, appelle le LLM ou des outils externes pour l'accomplir, puis consigne le résultat intermédiaire.
- Création et ajustement des tâches (Task Creation) : En fonction des informations obtenues, l'agent détermine si de nouvelles sous-tâches doivent être créées ou si la file d'attente doit être modifiée.
- Boucle récursive (Recursive Loop) : Les étapes 2 et 3 se répètent continuellement jusqu'à l'épuisement des tâches ou l'atteinte d'une condition d'arrêt forcé.
Chaque passage complet au sein de ce processus représente une boucle (Loop). Chaque boucle engendre de multiples requêtes d'API, dont le contexte s'alourdit à mesure que l'historique s'accumule. Sans garde-fous explicites, une formulation imprécise peut rapidement entraîner une dérive et consommer des milliers de tokens en pure perte.
2. Configurer les limites de boucles dans l'interface utilisateur
Dans l'application web ou sur une instance locale d'AgentGPT, les utilisateurs peuvent restreindre l'exécution directement depuis l'écran de configuration.
Accéder aux paramètres avancés
- Ouvrez l'interface d'AgentGPT et cliquez sur l'icône d'engrenage Settings (⚙️ Paramètres) dans le menu latéral gauche, ou rendez-vous sur
/settings. - Assurez-vous d'être connecté (via GitHub, Google ou Discord) ou d'opérer sur une instance auto-hébergée. Sur la version hébergée publique, le volet Advanced Settings (Paramètres avancés) est désactivé pour les invités anonymes afin de préserver l'infrastructure de démonstration.
Ajuster le curseur de boucle (customMaxLoops)
Dans le bloc Advanced Settings, repérez le paramètre Loop :
- Plage du curseur : Réglable de 1 à 25 boucles (par incréments de 1).
- Valeurs par défaut : La version de démonstration gratuite est initialisée à 25 boucles ; lorsqu'une clé d'API personnelle est renseignée, le système suggère une valeur de précaution fixée à 10 boucles.
- Comportement opérationnel : Ce chiffre définit le nombre maximal de cycles d'exécution autorisés pour une session unique. Dès que ce seuil est atteint, l'agent interrompt son travail et affiche le message de protection :
(Dans les premières versions, le message était formulé ainsi :The maximum number of loops have been reached, this agent is shutting down."To save your wallet, and our infrastructure costs, this agent is shutting down.")
Budgets de boucles recommandés par type de tâche
- Synthèses ciblées, requêtes factuelles et définitions : 3 à 7 boucles.
- Rédaction structurée en plusieurs étapes et comparatifs : 8 à 12 boucles.
- Recherche web approfondie multi-sources et plans complexes : 15 à 25 boucles.
Paramètres complémentaires de maîtrise des coûts
Pour une protection financière optimale, configurez également les paramètres connexes :
- Plafond de tokens (Tokens /
maxTokens) : Utilisez le curseur (de 200 au plafond du modèle, par exemple 4 000 tokens) pour limiter la taille maximale de réponse générée par appel d'API, empêchant les réponses démesurément verbeuses. - Sélection du modèle (Model) : Privilégiez
gpt-3.5-turbolors des phases exploratoires et réservezgpt-4aux travaux requérant une grande rigueur de raisonnement. - Température (Temperature) : Abaissez la valeur vers
0.0ou0.2afin d'obtenir des sorties plus déterministes, limitant les hallucinations qui alimentent les boucles infinies. - Clé d'API personnelle (API Key) : Renseignez votre propre clé OpenAI et validez-la via le bouton Test, ce qui permet de suivre la consommation directement sur votre console de facturation.
3. Contrôle du cycle de vie d'exécution en temps réel
Outre les seuils prédéfinis, la fenêtre de console d'AgentGPT dispose de boutons de contrôle interactifs (AgentControls) :
- Pause (
FaPause) : Met l'agent en attente dès qu'il a terminé la sous-tâche en cours. Cela permet d'examiner les tâches générées et de vérifier que l'agent reste orienté vers l'objectif. - Reprendre (
FaPlay) : Relance l'agent pour qu'il traite la sous-tâche suivante de la liste. - Arrêt forcé (
FaStop) : En cas de dérive évidente ou de boucle stérile, un clic sur le bouton rouge interrompt instantanément la session (stopped), coupe la diffusion en continu (streaming) et stoppe net la dépense de tokens.
4. Déploiement auto-hébergé et configuration backend
Pour les équipes qui déploient AgentGPT en interne via Docker ou à partir du code source, les limites peuvent être verrouillées au niveau du serveur.
Variable d'environnement backend
Le backend Python d'AgentGPT (reworkd_platform) s'appuie sur Pydantic pour administrer ses configurations. Une variable d'environnement dédiée permet d'imposer un plafond global :
# Dans le fichier .env
REWORKD_PLATFORM_MAX_LOOPS=20
Cette variable écrase settings.max_loops dans platform/reworkd_platform/settings.py. Même si un client tente de solliciter davantage de cycles, le serveur impose l'arrêt une fois le seuil atteint.
Adaptation des limites côté frontend
Si vous devez ajuster la plage du curseur dans l'interface, vous pouvez intervenir directement sur le code source Next.js :
- Dans
next/src/pages/settings.tsx:<Input label={`${t("LOOP")}`} value={settings.customMaxLoops} name="loop" type="range" onChange={(e) => updateSettings("customMaxLoops", parseFloat(e.target.value))} attributes={{ min: 1, max: 50, // Plafond étendu selon les besoins step: 1, }} helpText={t("CONTROL_THE_MAXIMUM_NUM_OF_LOOPS")} icon={<FaSyncAlt />} disabled={disableAdvancedSettings} /> - Dans
next/src/utils/constants.tspour actualiser les constantes :export const DEFAULT_MAX_LOOPS_FREE = 25 as const; export const DEFAULT_MAX_LOOPS_CUSTOM_API_KEY = 10 as const;
5. Exporter les résultats et les journaux de tâches
Lorsque l'agent termine son travail ou s'arrête au terme de son quota de boucles, extraire promptement les données produites évite d'avoir à relancer la tâche et d'engager des dépenses supplémentaires.
Menu d'exportation intégré à la console
Dans le coin supérieur droit de la fenêtre de discussion (MacWindowHeader), l'icône Export (CgExport) donne accès à trois modes de récupération immédiate :
- Copier le texte (Copy) :
- Récupère l'intégralité du contenu textuel affiché (
innerText), incluant l'objectif initial, les tâches planifiées et les réponses obtenues. - Place ce texte structuré dans le presse-papiers du système pour un collage immédiat dans un éditeur ou un document de travail.
- Récupère l'intégralité du contenu textuel affiché (
- Exportation en image (Image / PNG) :
- Fait appel à la bibliothèque
html-to-imagepour convertir l'ensemble de la zone défilante (element.scrollHeight). - Télécharge un fichier haute résolution
agent-gpt-output.png, particulièrement adapté aux présentations visuelles et aux comptes-rendus d'étape.
- Fait appel à la bibliothèque
- Document PDF structuré (PDF) :
- Exploite
@react-pdf/rendererpar l'intermédiaire du composantPDFButton. - Formate le flux de messages en sections distinctes :
Agent Goal: L'objectif de départ.Adding Task: Les sous-tâches identifiées au fil de l'eau.Executing: Les résultats détaillés de chaque sous-tâche exécutée.
- Compile et télécharge automatiquement le document
my-document.pdfprêt à être archivé ou partagé.
- Exploite
Exportations groupées et accès direct à la base de données
- Exports en masse (Bulk Exports) : Sur la plateforme cloud de Reworkd (
app.reworkd.ai/exports), il est possible de télécharger des archives globales au format CSV ou JSON couvrant des groupes de collecte ou des lots de travail complets. - Extraction directe en base : En environnement auto-hébergé, les sessions sont stockées dans les tables MySQL / SQLite
agent_runetagent_task. Les développeurs peuvent exécuter des requêtes SQL ou interroger les points de terminaison REST de FastAPI (/api/agent/execute) pour intégrer les résultats dans des pipelines de données automatisés.
6. Synthèse et recommandations opérationnelles
- Vérifier les boucles avant chaque lancement : Prenez le réflexe de consulter l'onglet Settings avant de valider votre objectif ; maintenez le curseur entre 5 et 10 boucles pour les premiers essais.
- Ériger un double rempart budgétaire : Associez un quota strict de
Loopà un plafond demaxTokensmesuré (1 250 à 2 000 tokens) pour juguler à la fois le nombre d'étapes et la longueur de chaque réponse. - Surveiller les premières itérations : Soyez attentif au déroulement des 2 à 3 premières sous-tâches. Si la logique dévie, utilisez immédiatement Pause ou Stop.
- Exporter immédiatement les résultats : Dès l'arrêt de l'agent, sauvegardez vos données via Copy ou PDF pour vous prémunir contre toute perte d'informations lors d'un rechargement de page.
(Remarque : Le dépôt open-source reworkd/AgentGPT a été archivé en janvier 2026 et est désormais en lecture seule. Les équipes exploitant des forks privés sont invitées à préserver ces mécanismes de contrôle et d'exportation pour sécuriser leurs flux opérationnels.)