« Context budget exceeded » n’est pas une seule erreur dans IronClaw. Quatre variantes d’erreur distinctes portent cette formulation ; aucune ne correspond à la fenêtre de contexte de votre modèle, et aucun fichier de configuration, aucune variable d’environnement ni aucune option CLI ne modifie le nombre associé à chacune d’elles. Le budget est de 128 000 jetons, intégré à la compilation, avec une réserve de 20 000 jetons, et les trois canaux qui l’encombrent — fichiers d’identité, extraits de compétences et schémas d’outils — sont assemblés en plus de cette allocation plutôt qu’à l’intérieur de celle-ci. Ce fait est signalé dans un rapport de défaut d’IronClaw encore ouvert ; il ne s’agit pas d’une théorie de cette page.
Une précision s’impose, car le nom est très utilisé. Il s’agit de github.com/nearai/ironclaw, le runtime d’agent Rust de NEAR AI — pas de la souris gaming Corsair qui domine les recherches commerciales sur ce terme, ni de l’entreprise sans lien ironclaw.tech, qui vend également des logiciels d’agent et se compare également à OpenClaw. IronClaw vs OpenClaw établit cette distinction en détail. Chaque chiffre provenant du code source ci-dessous a été lu dans main au commit b0b999d (commis le 10 septembre 2026), le 21 septembre 2026, via l’API de contenu GitHub. Ce commit est ultérieur à la balise de version ironclaw-v1.4.0 publiée le 28 août 2026. Le 1er octobre 2026, le binaire de la version plus récente ironclaw-v1.4.1 (publié le 29 septembre 2026, correctif pour Google OAuth et Wasmtime sans modification du budget dans ses notes) a été exécuté contre un endpoint de test local ; son comportement est décrit ci-dessous et limité à cette version, tandis que les chiffres du code source restent limités au commit.
Quel « budget de contexte dépassé » examinez-vous ?
Il s’agit de chaînes d’affichage Rust thiserror, telles qu’elles apparaissent dans les journaux et les détails d’erreur. La formulation exacte permet de déterminer quel canal a échoué.
| Chaîne exacte | Où elle est déclenchée | Ce qui la déclenche |
|---|---|---|
skill context: context budget exceeded | ironclaw_loop_contracts/src/skill_context.rs | Un extrait de compétence dépassant 64 KiB de contenu de modèle, ou 256 KiB au total. Des octets, pas des jetons — et l’ensemble de la construction du contexte de compétences échoue au lieu d’écarter l’élément fautif |
skill context budget exceeded | ironclaw_loop_host/src/skill_bundle_context_source.rs | Plus de 100 candidats visibles de bundles de compétences, comptés avant tout calcul du budget de jetons. La couche hôte relance également cette formulation lorsqu’elle mappe l’erreur d’octets du niveau des contrats ci-dessus ; la chaîne seule ne permet donc pas de distinguer les deux cas |
skill activation context budget exceeded | skill_activation/activation.rs | Plus de 8 compétences actives dans un tour, ou une compétence dont le coût estimé dépasse le budget de jetons restant du sélecteur. Ce budget est de 4 000 selon la valeur par défaut du sélecteur et de 6 000 lorsque le runtime de composition branche la source de compétences du système de fichiers |
identity context budget exceeded | ironclaw_loop_host/src/identity_context.rs | Rien pour le moment. Son propre commentaire de documentation indique : « Réservé à un futur mode de limite stricte » et précise que le générateur « tronque silencieusement en cas de dépassement du budget au lieu de renvoyer cette erreur » |
Ce que voit un utilisateur lors d’un dépassement réel du modèle ne contient aucun de ces mots. La projection d’échec produite par l’hôte est la phrase fixe « The run failed because the model context was too large. Retry with a shorter request or start a new thread. », et l’erreur mappée par le fournisseur depuis la passerelle du modèle est « model request exceeded its context budget ». Deux précautions. Cette page n’a pas suivi une exécution de bout en bout ; la phrase destinée à l’utilisateur vers laquelle un échec du canal des compétences est finalement projeté n’est donc pas établie ici. Par ailleurs, une chaîne souvent répétée, « Model request context exceeds the available input budget », n’apparaît nulle part dans nearai/ironclaw — elle appartient à un autre projet d’agent et ne doit pas servir à diagnostiquer celui-ci.
Les 128 000 que vous ne pouvez pas configurer
PromptContextTokenBudget fournit trois constantes : une limite de contexte de 128 000 jetons, une réserve de 20 000 jetons et une valeur maximale de sortie de la boucle principale égale à 0. La transcription visible correspond à la limite moins la plus grande des deux dernières valeurs, soit 108 000 jetons — un calcul dérivé des valeurs par défaut, et non une valeur littérale du fichier. Le troisième terme n’est jamais défini en dehors des tests ; la réserve reste donc toujours fixée à 20 000. Et toutes les constructions hors tests du dépôt utilisent le simple PromptContextTokenBudget::default() — l’une dans la stratégie de compactage, l’autre dans la valeur par défaut de TextOnlyLoopHostConfig de l’hôte du pilote de boucle ; chaque appel ::new(…) avec des nombres différents se trouve dans un module #[cfg(test)].
L’issue #5739 d’IronClaw le dit dans son titre — « Effective context budget is a hardcoded 128K that ignores the model's context_length and has no config override » — ouverte depuis le 6 juillet 2026 et toujours ouverte le 21 septembre 2026. Trois pièges en découlent :
- Les clés
budget.*ne sont pas concernées. La page de configuration d’IronClaw documentebudget.user_daily_usd,budget.pause_atet leurs équivalents sous une section intitulée « budget — cost controls », qui y est décrite comme plafonnant les dépenses de l’agent. Il s’agit de paramètres financiers (deux d’entre eux,budget.overestimate_factoretbudget.default_tz, sont un multiplicateur et un fuseau horaire plutôt que des montants en dollars). Aucune clé, à quelque niveau que ce soit, ne définit une limite de contexte, une réserve, le plafond d’identité ou le budget des compétences — et l’ordre de priorité publié est « compiled defaults < config.toml < environment variables < CLI flags », de sorte qu’une clé absente est absente partout. - La PR #5790 est une fausse piste. Son titre propose une « prompt-context budget override through host factory ». L’API indique qu’elle a été fermée le 27 août 2026 avec
merged: false. - Les correctifs sont tous des propositions. #8053, qui utiliserait 90 % de la fenêtre annoncée d’un modèle avec la même réserve de 20 000, ainsi que #7976 et #5435, étaient tous ouverts au moment de la vérification.
Pour un endpoint tiers, une étape supplémentaire est décisive. ModelMetadata.context_length est un Option, l’implémentation par défaut du trait LlmProvider renvoie None — « Par défaut, renvoie le nom du modèle sans information sur sa taille » — et l’adaptateur générique compatible OpenAI ne définit aucune surcharge ; il hérite donc de cette implémentation par défaut. Un endpoint personnalisé n’annonce par conséquent jamais de fenêtre. IronClaw prévoit 108 000 jetons de transcription, que votre modèle puisse en contenir un million ou 32 000, et #8053 lirait précisément le champ que ce chemin ne renseigne jamais. Consultez Configuration de l’API personnalisée d’IronClaw pour savoir comment configurer cet endpoint ; cette page reste centrée sur le budget.
Les canaux qui remplissent l’invite sans toucher au budget
L’issue d’amélioration ouverte d’IronClaw #8057, déposée le 3 septembre 2026 et toujours ouverte lors de la vérification, décrit le mécanisme avec les propres termes du fournisseur : le budget de l’invite « dimensionne uniquement la transcription », tandis que le contenu d’identité, les extraits de compétences et de mémoire, le contexte du canal et les schémas d’outils « sont assemblés en plus de l’allocation de transcription sans la réduire ; la requête reçue par le fournisseur peut donc dépasser le budget que la boucle pense respecter ». Il s’agit d’un rapport de défaut, et non d’une documentation d’un comportement livré — mais c’est la raison pour laquelle une exécution peut échouer en raison de sa taille alors que chaque canal pris séparément semble respecter les limites.
| Canal | Son propre plafond | Comportement au plafond |
|---|---|---|
| Jetons de transcription | 108 000 estimés | Parcourt les éléments du plus récent au plus ancien et break au premier message qui ne tient pas, en supprimant tous les messages antérieurs. Choix délibéré sur main : ignorer un message intermédiaire « peut laisser orphelins les appels d’outils du fournisseur par rapport à leurs références de résultat » |
| Messages de transcription | 128 | Un plafonnement distinct du nombre de messages s'applique avant le calcul du budget de jetons ; un long fil de messages courts est donc tronqué alors qu'il est encore largement en dessous de 108,000 |
| Fichiers d'identité | 8,000 estimés | Inclut également les break ; tout ce qui suit le premier candidat trop volumineux est donc également supprimé — silencieusement. Les candidats proviennent d'une liste blanche fixe de 11 fichiers, dont SOUL.md, AGENTS.md, SYSTEM.md et MEMORY.md |
| Activation des compétences | 8 emplacements ; 4,000 jetons estimés par défaut par le sélecteur, 6,000 lorsque le runtime de composition les configure | Déclenche skill activation context budget exceeded dans les deux cas |
| Octets des extraits de compétences | 64 KiB chacun, 256 KiB au total | Erreur bloquante, l'ensemble du build échoue |
| Outils annoncés | 12,000 jetons estimés, 32 outils — ou un dixième de la fenêtre du modèle, selon la valeur la plus faible, lorsqu'une fenêtre est connue | Diffère le reste. Ne plafonne pas les 27 noms d'outils principaux annoncés quel que soit le mode |
| Tâche acceptée épinglée | Doit tenir seule dans 108,000 | Classe d'erreur entièrement différente : accepted task exceeds the prompt context token budget, déclenchée avant toute nouvelle tentative |
La voie des outils est mesurable, et IronClaw la mesure. Son benchmark enregistré dans le dépôt, réalisé sur un jeu de données synthétique de 93 outils, enregistre une réduction de 21 355 à 3 843 jetons de schéma estimés avec 22 outils annoncés — 82,0 %, encadrée dans le dépôt par une tolérance de dérive de 2,0 points et un plancher de 50,0 %. Ces nombres ont été lus dans le fichier de test, et non produits en l’exécutant ici — la charge utile mesurée du binaire publié se trouve dans la section ci-dessus, et sa forme est différente : l’ensemble d’outils par défaut, et non un jeu de données de 93 outils. Considérez-les comme les estimations internes d’IronClaw fondées sur le comptage des caractères d’un jeu de données de test, et non comme votre prompt d’outils ni comme des comptages du tokenizer du fournisseur. La lecture honnête porte sur la structure : la divulgation progressive supprime la majeure partie du schéma tout en laissant un plancher de quelques milliers de jetons qu’aucun réglage ne supprime, car les 27 noms de base sont annoncés dans tous les modes de divulgation.
Ce qu'a fait le binaire publié 1.4.1
Le 1er octobre 2026, le binaire publié ironclaw-v1.4.1, dont la somme de contrôle a été vérifiée, a été exécuté dans un conteneur jetable avec un emplacement [llm.default] sur le fournisseur openai_compatible dirigé vers un serveur de test local qui enregistrait chaque requête. Un court message par exécution via ironclaw repl :
REBORN_TOOL_DISCLOSURE | Schémas d'outils dans la requête | Octets du schéma d'outil |
|---|---|---|
unset, namespaces ou bridged | 26 — 23 intégrés plus tool_search, tool_describe et tool_call | 35,703 |
compact | 26 | 35,406 |
signatures | 26 | 35,435 |
off | 50 | 61,630 |
true — valeur non valide | 50 | 61,630, identique à off |
Le plancher est donc bien réel dans le build publié : aucun mode de divulgation n'a envoyé moins de 26 schémas et, selon l'estimation d'IronClaw de quatre caractères par jeton, 35,703 octets représentent environ 8,900 jetons avant le moindre de vos mots — les messages système et d'identité ajoutant environ 24,000 octets supplémentaires. Il s'agit d'une arithmétique sur les octets, et non d'un comptage de jetons du fournisseur. Le risque de faute de frappe décrit ci-dessous est confirmé, et non déduit : true a produit exactement la charge utile off, doublant presque l'invite d'outils, sans aucun affichage à l'écran pour le signaler.
Le budget strict s'est déclenché comme l'indique la source. Un message d'environ 380,000 caractères a été envoyé au point de terminaison ; un message d'environ 460,000 caractères — au-delà de 108,000 jetons à raison de quatre caractères par jeton — n'a jamais quitté la machine. La REPL n'a affiché que des lignes de journal d'avertissement indiquant l'étape Prompt, le type BudgetExceeded et le résumé accepted task exceeds the prompt context token budget. Aucun réglage, dans la configuration ou l'environnement, n'a été trouvé pour modifier ce comportement. Les erreurs de la voie des compétences, le dépassement de capacité d'un véritable modèle et toute requête via Kunavo n'ont pas été exécutés.
Réessayer n'est pas une correction, et une faute de frappe aggrave la situation
La stratégie de récupération par défaut réessaie un dépassement de contexte exactement une fois, à l'échelle de l'itération, avec une modification ShrinkContext, puis abandonne — les noms des tests du fournisseur sont model_context_overflow_compacts_once_then_aborts et second_model_context_overflow_aborts_without_another_compaction. Ainsi, réessayer la même requête trop volumineuse ne peut pas réussir. À titre d'échelle, les valeurs par défaut de cette même stratégie autorisent max_model_availability_attempts: 12 et max_attempts_per_class: 2 ; cette classe bénéficie de la seule tentative ShrinkContext.
La compaction ne vous sauvera pas non plus plus tôt : son seuil de déclenchement est le même 108,000, donc rien ne force une compaction avant que la transcription ne l'atteigne. Les compactions forcées et de récupération contournent bien le disjoncteur, qui est le seul moyen dont dispose la boucle pour réduire une invite trop volumineuse avant une nouvelle tentative. Réserve concernant la stratégie alternative : le ticket #5582, ouvert depuis le 3 juillet 2026, indique que ActiveTaskPreservingCompactionStrategy ne lit jamais l'indicateur de dépassement. La stratégie sélectionnée par un déploiement donné n'a pas été retracée ici.
Un risque de configuration mérite d’être vérifié avant toute autre chose. La divulgation progressive des outils est lue depuis REBORN_TOOL_DISCLOSURE, accepte off | compact | signatures | namespaces | bridged et prend par défaut namespaces lorsque la variable est absente ou vide. Toute autre valeur non vide — une faute de frappe, un ancien true ou on — est silencieusement résolue en Off, décrit dans le même fichier comme le « mode témoin : annoncer tous les schémas autorisés ». Une valeur qui n’est pas en UTF-8 produit le même résultat. Le seul signal est une ligne tracing::debug!, et l’effet est un prompt d’outils nettement plus volumineux. Supprimez la variable plutôt que de deviner son orthographe.
Ce que vous pouvez réellement modifier aujourd'hui
Il n'existe aucune page de documentation IronClaw publiée couvrant le budget de contexte, la compaction ou l'une de ces quatre erreurs ; les leviers ci-dessous sont donc ceux que les documents et le code permettent conjointement — et non un remède approuvé par le fournisseur.
Le seul levier documenté qui réduit la pression du contexte des compétences est un indicateur de configuration, et non une variable d'environnement. La page des compétences d'IronClaw indique de le définir sous [skills] et précise que l'activation par mots-clés et balises, ainsi que les mentions explicites de $my-skill, injectent toujours les compétences :
[skills]
# Documented lever: stops regex auto-activation from loading full skill
# context. Keyword/tag activation and $my-skill mentions still inject skills.
regex_activation_enabled = falseTrois autres leviers, avec leurs limites. Le champ frontmatter max_context_tokens d'une compétence vaut par défaut 2000 selon la même page de documentation, mais y écrire un petit nombre ne réduit pas une compétence volumineuse : lorsque le corps est estimé à plus de deux fois la valeur déclarée, le sélecteur journalise « using actual estimate » et facture la taille mesurée. Une routine réactive peut réduire sa surface d'outils via allowed_tools, ce qui est limité à cette routine et non aux tours interactifs. Enfin, les outils de fichiers sont désactivés sauf si ALLOW_LOCAL_TOOLS=true : la documentation des outils de fichiers d'IronClaw indique qu'ils sont désactivés par défaut « to prevent accidental filesystem access in hosted or shared environments », les laisser désactivés constitue donc un ensemble de schémas en moins dans l'invite. Aucun de ces trois leviers ne touche aux 128,000.
Enfin, ne planifiez pas en fonction d'un nombre obsolète. Le ticket #7485 signalait que le budget de 108,000 jetons représentait « effectively ~54k real tokens » pour le contenu ASCII et que la compaction se déclenchait « roughly 2× early ». Il s'agissait d'un double comptage dans l'un des deux estimateurs de jetons. La PR #7502 les a unifiés et a été fusionnée le 11 août 2026 ; l'API de comparaison de GitHub place le commit de fusion à l'intérieur des balises v1.3.0 et v1.4.0, ainsi qu'à l'intérieur de main. Par rapport à v1.2.0 et v1.1.0, la comparaison renvoie « diverged » ; la première version qui l'inclut n'est donc pas établie — dites v1.3.0 et les versions ultérieures. L'unique estimateur actuel facture l'ASCII à raison de 4 caractères par jeton et environ 1.5 jeton par caractère non ASCII de 3 octets, ce qui signifie qu'une transcription riche en caractères CJK remplit 108,000 bien plus vite qu'une transcription anglaise.
Ce que coûte le plafond par tour, et quelle voie l'emporte
Il s'agit d'une arithmétique illustrative des jetons, et non d'un coût de tâche mesuré ni d'un plafond de facturation. Supposons un tour chargé au maximum : la transcription à son plafond de 108,000 jetons, 8,000 jetons d'identité, 4,000 de contexte de compétence (le budget par défaut du sélecteur ; un runtime composé le configurant à 6,000 l'augmenterait) et 3,843 de schéma d'outils annoncé provenant du benchmark enregistré ci-dessus — 123,843 jetons d'entrée estimés — plus 2,000 jetons de sortie. Il s'agit des propres estimations d'IronClaw sur un dispositif synthétique ; un tokenizer réel de fournisseur donnera donc un résultat différent. Les tarifs sont les prix actuels du catalogue Kunavo par million de jetons.
| Modèle | Entrée / sortie par million | Coût estimé, un tour au plafond complet | Ajouté par tour si la divulgation revient à Off |
|---|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.094 | +$0.012 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.095 | +$0.012 |
| Claude Sonnet 4.6 | $2.10 / $10.50 | $0.281 | +$0.037 |
| Claude Opus 5 | $3.50 / $17.50 | $0.468 | +$0.061 |
La dernière colonne est le point central de la section. Une faute de frappe dans REBORN_TOOL_DISCLOSURE ajoute 17,512 jetons d'entrée estimés à chaque tour — sur Claude Sonnet 4.6, cela représente $0.037 par tour avant tout autre changement, et un agent toujours actif effectue de nombreux tours par jour. La seconde conclusion est que payer un modèle à long contexte pour contourner ce problème ne fonctionne pas : IronClaw assemble toujours jusqu'à son propre nombre, donc la fenêtre supplémentaire n'apporte rien tandis que le tarif plus élevé est appliqué à l'ensemble des 123,843 jetons. Multipliez par votre propre nombre de tours quotidien avant d'en faire un budget.
| Formule | Prix publié | À privilégier lorsque |
|---|---|---|
| IronClaw auto-hébergé | Logiciel à 0 $ ; le badge du README indique « License: MIT OR Apache-2.0 », tandis que le champ de licence unique de l'API GitHub indique Apache-2.0 | Vous voulez contrôler le point de terminaison. Aucun serveur de base de données n'est nécessaire pour commencer — la documentation du stockage indique que l'état réside dans des fichiers intégrés sous le profil local par défaut, et que PostgreSQL est la solution pour les déploiements servis ou multi-utilisateurs |
| API directe du fournisseur | Tarifs du fournisseur par jeton | Une seule famille toute la journée, et vous voulez la mise en cache native de ce fournisseur |
| Une passerelle compatible avec OpenAI | Tarifs de la passerelle par jeton | Vous changez de famille selon la tâche et voulez une seule clé — en acceptant qu'aucune fenêtre ne soit annoncée, ce qui est vrai sur cette voie pour toute passerelle |
| ironclaw.com Starter | Affiché comme 5 $ barré puis 0 $/mois, « 5 $ de crédits inclus », 1 instance d'agent | Vous essayez la solution hébergée. Interprétez-la comme une offre promotionnelle, et non comme un forfait permanent à 0 $ |
| ironclaw.com Basic | 20 $/mois, « 20 $ de crédits inclus », jusqu'à 2 instances d'agent, mutualisation de l'utilisation | Deux déploiements partageant le crédit |
| ironclaw.com Pro+ | 200 $/mois, « 200 $ de crédits inclus », jusqu'à 5 instances d'agent, accès anticipé aux modèles avancés, assistance prioritaire | Le niveau hébergé supérieur |
| Modèle local | Aucun frais par requête ; le matériel à la place | Travail de petite taille ou privé — mais notez qu'IronClaw assemblera tout de même 108,000 jetons avec une petite fenêtre locale |
Les offres hébergées ont été relevées sur ironclaw.com le 21 septembre 2026 ; ironclaw.com/pricing renvoie HTTP 404, les offres résident donc sur la page d'accueil. Le titre au-dessus des trois cartes indique « Spin up to 5 agents in a Trusted Execution Environment with up to 130M tokens per month » — cinq agents est le maximum de Pro+, ce titre énonce donc le plafond de l'offre supérieure plutôt que celui d'une carte particulière, et le chiffre de 130M jetons n'apparaît sur aucune carte. La conversion des crédits inclus en jetons et ce qui se passe lorsqu'ils sont épuisés ne sont pas publiés et ne font l'objet d'aucune supposition ici.
Kunavo ne propose aucun modèle d'embedding, de synthèse vocale ou de reconnaissance vocale ; toute étape de recherche ou de traitement vocal dans votre configuration doit donc appeler un fournisseur externe.
Essayez-le, puis lisez le montant facturé
Si vous acheminez IronClaw vers une passerelle compatible OpenAI, l'endpoint de chat-completions de Kunavo correspond à la forme attendue par l'identifiant de fournisseur openai_compatible. Il s'agit d'une correspondance de protocole déduite de la documentation des deux côtés — l'exécution du 1er octobre ci-dessus utilisait un serveur de test local, et non Kunavo ; Kunavo ne revendique donc aucune compatibilité. Conservez une voie fonctionnelle, exécutez une tâche limitée et rapprochez le résultat de l'utilisation enregistrée par votre compte, plutôt que du coût affiché par IronClaw, qui repose sur sa propre arithmétique. Le montant du catalogue Kunavo constitue un plancher de facturation et non un plafond : lorsque l'amont communique son coût, la facture correspond au montant le plus élevé entre le coût du catalogue et le coût amont multiplié par la majoration applicable. Le rechargement minimal est de $10 de crédit prépayé — un minimum de financement, et non des frais de tâche ni un abonnement ; consultez les détails de facturation et créez un compte lorsque vous êtes prêt à financer une clé. Pour les choix connexes, l'optimisation des coûts de l'IA couvre la mesure du coût par tâche terminée, tandis que PicoClaw et ZeroClaw couvrent deux runtimes apparentés dont la longueur de boucle constitue un levier de coût de la même manière.
Questions fréquentes
Que signifie « budget de contexte dépassé » dans IronClaw ?
Ce n’est pas une seule erreur. Quatre variantes d’erreur Rust distinctes portent cette formulation dans nearai/ironclaw : « skill context: context budget exceeded » pour un extrait de compétence dépassant 64 KiB de contenu de modèle ou 256 KiB au total ; « skill context budget exceeded », déclenchée par plus de 100 candidats visibles de bundles de compétences et également utilisée lorsque la couche hôte remappe cette erreur d’octets ; « skill activation context budget exceeded » pour plus de 8 compétences actives dans un tour, ou pour une compétence dont le coût estimé dépasse le budget de jetons restant du sélecteur — 4 000 selon la valeur par défaut du sélecteur, 6 000 lorsque le runtime de composition branche la source de compétences du système de fichiers ; et « identity context budget exceeded », que le commentaire source réserve à un futur mode de limite stricte, car le canal d’identité tronque silencieusement à la place. Aucune des quatre ne correspond à la fenêtre de contexte du modèle. Lecture effectuée sur la branche principale au commit b0b999d le 21 septembre 2026.
Comment augmenter le budget de contexte d’IronClaw ?
Vous ne le pouvez pas sans recompiler. Le budget de contexte des invites est une limite de 128 000 jetons intégrée à la compilation, avec une réserve de 20 000 jetons ; toutes les constructions hors tests du dépôt utilisent la valeur par défaut simple, et il n’existe aucune clé de configuration, variable d’environnement ou option CLI pour la modifier. L’issue n°5739 d’IronClaw, ouverte depuis le 6 juillet 2026, dit la même chose dans son titre. Les clés budget.* de la page de configuration contrôlent les coûts financiers, pas les jetons de contexte, et la section de configuration [skills] ne contient qu’un champ dans la structure de configuration Rust, regex_activation_enabled. La PR n°5790, dont le titre promet une surcharge du budget de contexte des invites, a été fermée sans fusion le 27 août 2026 — la citer comme solution revient à citer un travail abandonné. Tous les états ont été vérifiés le 21 septembre 2026.
Un modèle doté d’une fenêtre de contexte plus grande résoudra-t-il le problème ?
Pas sur un endpoint compatible OpenAI personnalisé. IronClaw dimensionne son invite à partir de son propre nombre intégré à la compilation, et non du modèle, et un endpoint générique ne lui indique jamais le contraire : ModelMetadata.context_length est un Option, la valeur par défaut du trait LlmProvider renvoie None avec le commentaire « Default returns the model name with no size info », et l’adaptateur générique compatible OpenAI ne définit aucune surcharge ; il hérite donc de ce None. Dirigez IronClaw vers un modèle d’un million de jetons : il continuera à prévoir 108 000 jetons de transcription ; dirigez-le vers un petit modèle local : il assemblera 108 000 jetons et laissera le fournisseur rejeter la requête. La PR non fusionnée n°8053 dériverait le budget de la fenêtre annoncée, qui est précisément le champ que ce chemin ne renseigne jamais. Lecture effectuée au commit b0b999d le 21 septembre 2026.
Pourquoi IronClaw supprime-t-il des messages antérieurs avant d’atteindre la limite ?
Deux plafonds s’appliquent avant le budget de jetons. Un plafond distinct de 128 messages s’applique à l’analyse de la transcription : un long fil composé de messages courts peut donc être tronqué par le nombre alors qu’il reste largement sous l’allocation de jetons. Ensuite, la sélection de la transcription parcourt les messages du plus récent au plus ancien et s’arrête au premier message qui ne tient pas, supprimant tous les messages antérieurs au lieu d’ignorer celui-ci — sur la branche principale, il s’agit d’un choix délibéré et documenté, le commentaire expliquant qu’ignorer un message intermédiaire « peut laisser orphelins les appels d’outils du fournisseur par rapport à leurs références de résultat ». L’issue n°7485 d’IronClaw proposait de l’ignorer ; cette proposition n’a pas été adoptée. Lecture effectuée au commit b0b999d le 21 septembre 2026.
Définir SKILLS_MAX_TOKENS modifie-t-il le budget des compétences ?
Non, et il s’agit d’une contradiction documentée qu’il est utile de connaître. La documentation chinoise d’IronClaw consacrée aux compétences publie un bloc de code contenant SKILLS_MAX_TOKENS=4000 et décrit la sélection des compétences jusqu’à épuisement de ce budget. La page anglaise consacrée aux compétences ne mentionne jamais cette variable, et le fichier de règles interne du dépôt d’IronClaw indique que « l’ancienne variable d’environnement SKILLS_MAX_TOKENS n’est lue par rien ». Une recherche de code GitHub dans le dépôt, effectuée le 21 septembre 2026, a renvoyé trois fichiers : ce fichier de règles, la page de documentation chinoise et un script d’animation interne — aucun fichier Rust. La valeur effectivement appliquée est intégrée à la compilation : DEFAULT_MAX_SKILL_CONTEXT_TOKENS vaut 4000 comme valeur par défaut du sélecteur, et le runtime de composition branche la source de compétences du système de fichiers à 6000. Dans les deux cas, la valeur ne change qu’en recompilant.
Réessayer la même requête aide-t-il ?
Non. La stratégie de récupération par défaut d’IronClaw réessaie exactement une fois un dépassement de contexte du modèle, au niveau de l’itération, avec une modification ShrinkContext, puis abandonne lors de la seconde occurrence — les noms des tests du fournisseur sont model_context_overflow_compacts_once_then_aborts et second_model_context_overflow_aborts_without_another_compaction. Un message de tâche accepté et épinglé qui dépasse l’allocation de transcription visible n’obtient même pas ce traitement : il échoue immédiatement avec une autre classe d’erreur portant le message « accepted task exceeds the prompt context token budget ». Raccourcissez la requête ou démarrez un nouveau fil, comme vous le demande la phrase d’échec destinée aux utilisateurs d’IronClaw. Lecture effectuée au commit b0b999d le 21 septembre 2026.
Exécution le 1er octobre 2026 : le binaire publié ironclaw-v1.4.1 contre un serveur de test local — le tableau de divulgation et la sonde de budget ci-dessus ; les états des tickets #5739, #8053, #8057, #7976 et #5435 ont été revérifiés le même jour et étaient tous encore ouverts. Vérification effectuée le 21 septembre 2026. Les constantes sources, chaînes d'erreur, stratégie de récupération, estimateur de jetons, modes de divulgation et référence du benchmark ont été lus dans main de nearai/ironclaw au commit b0b999d via l'API de contenu GitHub ; les états des tickets et pull requests via l'API des tickets GitHub ; les pages relatives aux compétences, à la configuration, au stockage et aux outils de fichiers sur docs.ironclaw.com, ainsi que les cartes d'offres sur ironclaw.com, par récupération directe. La balise de version v1.4.0 n'a pas été extraite, aucune instance IronClaw n'a été exécutée, aucun test du dépôt n'a été lancé, aucune des quatre erreurs n'a été reproduite en conditions réelles et Kunavo n'a pas testé IronClaw en runtime. Les tarifs des jetons Kunavo proviennent du catalogue actuel, et chaque montant en dollars constitue une arithmétique illustrative des jetons.