Retour au blog
AgentsAnalyse techniqueArticle technique

OpenCode 2.2.1 ajoute /goal : ce qui change face à Codex et Claude Code

Publié 30 oct. 20269 min de lectureStéphane

Résumé décisionnel

Une comparaison des objectifs persistants dans OpenCode, Codex et Claude Code, de leur validation à la maîtrise des coûts.

OpenCodeCodex CLIClaude CodeAgents IATokens
OpenCode 2.2.1 ajoute /goal : ce qui change face à Codex et Claude Code

Les agents IA de programmation deviennent progressivement capables de poursuivre un objectif sans attendre une nouvelle instruction après chaque étape. Avec l'arrivée de /goal dans OpenCode 2.2.1, les trois grands environnements OpenCode, Codex CLI et Claude Code proposent désormais une approche comparable.

Mais derrière cette commande commune se cachent des mécanismes différents. Comment chaque outil décide-t-il qu'une tâche est terminée ? Quelles limites empêchent un agent de tourner indéfiniment ? Et surtout, comment contrôler les coûts de ces nouvelles boucles autonomes ?

D'une instruction ponctuelle à un objectif persistant

Un agent de programmation peut aujourd'hui analyser un dépôt, modifier des fichiers, exécuter des commandes et corriger des erreurs.

Pourtant, une difficulté subsiste : la fin d'un tour de conversation ne correspond pas nécessairement à la fin du travail.

Prenons une migration d'API. L'agent modifie les principaux fichiers et annonce son intervention terminée. Mais certains tests échouent encore, le lint relève des erreurs et plusieurs appels à l'ancienne API subsistent.

Dans une interaction classique, le développeur doit demander à l'agent de poursuivre.

La commande /goal modifie cette logique. Au lieu de définir simplement la prochaine action, l'utilisateur fixe une condition de réussite qui reste active pendant plusieurs tours.

L'agent peut alors travailler, examiner les résultats, corriger les problèmes et recommencer tant que son mécanisme de contrôle estime que l'objectif n'est pas atteint.

Il ne s'agit pas d'une intelligence totalement autonome, mais d'une boucle de travail pilotée par un objectif mesurable.

OpenCode 2.2.1 : comment fonctionne /goal ?

Publiée le 29 octobre 2026, la version 2.2.1 d'OpenCode introduit officiellement la commande /goal dans son interface terminal interactive (TUI) et son application Desktop.

Son utilisation est simple :

text
RouterLab
/goal Corriger les erreurs TypeScript, faire réussir
tous les tests et obtenir un build sans erreur.

OpenCode enregistre l'objectif dans la session. Lorsque l'agent termine normalement un tour et s'apprête à devenir inactif, un mécanisme de revue intervient.

Ce mécanisme examine l'avancement de la session et détermine si le travail peut être considéré comme terminé ou s'il faut poursuivre.

Lorsque des actions restent nécessaires, OpenCode peut déclencher automatiquement une nouvelle continuation.

Plusieurs commandes permettent de garder le contrôle :

CommandeFonction
/goal <objectif>Définir un objectif
/goalConsulter son état
/goal pauseSuspendre l'exécution
/goal resumeReprendre l'objectif
/goal clearSupprimer l'objectif

L'implémentation s'appuie sur un nouveau hook expérimental intervenant avant qu'une session ne devienne inactive.

Dans cette première version, la revue utilise le modèle de la session et son historique. Elle consomme donc des ressources supplémentaires. L'implémentation prévoit aussi une mise en pause après trois tours sans progrès ou 50 tours, ainsi que dans certaines situations de blocage. Ces garde-fous ne constituent pas un plafond de tokens ou de dépenses.

Une limite importante : cette première intégration est disponible dans la TUI et Desktop. La commande /goal n'est pas directement utilisable comme slash command dans opencode run.

Codex : l'objectif comme contrat vérifiable

Les Goals sont disponibles dans Codex à partir de la version 0.128.0.

Son approche repose sur un objectif persistant, associé au fil de travail et accompagné de critères de validation.

Codex ne doit pas simplement poursuivre jusqu'à produire une réponse satisfaisante. Il doit examiner les preuves disponibles : fichiers modifiés, résultats de tests, journaux d'exécution, benchmarks ou autres éléments vérifiables.

Un objectif peut notamment définir :

  • Le résultat attendu et les éléments qui prouvent sa réussite.
  • Les contraintes à respecter pendant les modifications.
  • Les limites d'exécution et les ressources autorisées.
  • Les conditions nécessitant un arrêt ou une intervention humaine.

Codex distingue ainsi la réussite effective de la tâche, l'impossibilité de poursuivre dans les conditions prévues et l'épuisement du budget.

Cette séparation est essentielle pour les travaux complexes. Un agent qui atteint sa limite de ressources n'a pas nécessairement terminé son travail.

Claude Code : un évaluateur distinct

Dans Claude Code, /goal repose sur un Stop hook associé à la session.

Chaque fois que Claude termine un tour, un modèle distinct, généralement un modèle rapide de la famille Haiku sur l'API Anthropic, évalue la condition de réussite.

Trois issues principales sont possibles : l'objectif est atteint, il reste du travail, ou l'objectif est jugé impossible.

Si le travail n'est pas terminé, une nouvelle itération peut commencer.

Cette architecture sépare l'agent chargé de produire le code du modèle chargé d'évaluer l'état d'avancement.

Elle présente un intérêt économique : utiliser un modèle rapide pour les contrôles intermédiaires peut être moins coûteux que solliciter systématiquement le modèle principal.

Il existe toutefois une limite importante. L'évaluateur de Claude Code n'exécute pas indépendamment les commandes et n'inspecte pas directement les fichiers. Son jugement repose sur les éléments que l'agent principal a déjà présentés dans la conversation.

Une évaluation séparée ne remplace donc pas une vérification technique indépendante.

OpenCode, Codex et Claude Code : les différences essentielles

CritèreOpenCodeCodexClaude Code
Poursuite automatique d'un objectifOuiOuiOui
MécanismePlugin et hook d'inactivitéÉtat persistant du fil et continuation contrôléeStop hook avec modèle évaluateur
ÉvaluationRevue par le modèle de la session, selon l'implémentation initialeVérification des preuves du filModèle rapide distinct
Contrôle du budgetPas de plafond de tokens propre à /goal documenté dans la première annonceComptabilisation et arrêt sur budgetSuivi des tokens et conditions d'arrêt définissables
Exécution non interactive du GoalNon via opencode run dans la première versionSelon les interfaces et workflows compatiblesOui, avec claude -p

Les trois systèmes poursuivent donc un objectif comparable, mais avec des philosophies différentes.

OpenCode privilégie une intégration légère dans sa session de travail. Codex insiste sur le contrat de réalisation et la gestion des limites. Claude Code introduit un évaluateur séparé.

Aucune de ces approches ne garantit, à elle seule, la qualité du code produit.

Le problème fondamental : qui décide que le travail est terminé ?

Imaginons un objectif simple :

text
RouterLab
/goal Corriger tous les tests qui échouent.

Un agent pourrait modifier l'implémentation jusqu'à réussir les tests. Mais il pourrait aussi, volontairement ou non, supprimer un test problématique, modifier une assertion ou contourner une validation.

Dans les deux cas, le résultat apparent pourrait être identique : une suite de tests verte.

C'est pourquoi un objectif solide doit définir non seulement ce qu'il faut obtenir, mais aussi les conditions qui rendent le résultat acceptable.

Voici une formulation plus rigoureuse :

text
RouterLab
/goal

Migrer le module d'authentification vers
la nouvelle API cliente.

Critères de réussite :
- Tous les tests d'authentification passent.
- Le lint et le build passent.
- Aucun appel à l'ancienne API ne subsiste.
- Aucun test n'est supprimé ou affaibli.
- Les interfaces publiques restent compatibles.

Vérifier le diff final.

Si un critère ne peut pas être satisfait,
expliquer le blocage et arrêter.

Cette formulation transforme une instruction vague en objectif techniquement vérifiable.

Elle ne supprime pas tous les risques, mais elle fournit une base beaucoup plus solide pour juger le travail de l'agent.

L'autonomie multiplie aussi les appels aux modèles

Il existe une conséquence économique souvent sous-estimée.

Un agent qui poursuit automatiquement un objectif peut effectuer plusieurs cycles d'analyse, de modification et de vérification sans nouvelle intervention humaine.

Chaque cycle peut mobiliser le contexte de conversation, les résultats des commandes et des tokens supplémentaires.

Le coût total ne dépend donc plus uniquement du prix du modèle choisi. Il dépend aussi du nombre d'itérations, de la taille du contexte et des mécanismes d'évaluation.

Dans le cas d'OpenCode, une revue utilisant le même modèle que la session peut représenter une consommation supplémentaire non négligeable lorsque le modèle principal est coûteux.

Claude Code privilégie un évaluateur plus léger. Codex intègre une logique de budget dans le cycle de vie de ses Goals.

Mais dans les trois cas, un objectif mal défini peut entraîner une succession de tentatives peu productives.

Un agent capable de travailler plus longtemps n'est pas nécessairement un agent plus efficace.

Pour comparer sérieusement ces systèmes, il faudrait mesurer le taux de réussite des objectifs, les régressions introduites, le nombre d'itérations et les tokens consommés sur les mêmes tâches.

La seule présence de /goal ne permet pas de conclure qu'un outil est meilleur qu'un autre.

Et avec RouterLab ?

Cette évolution concerne directement les développeurs qui utilisent plusieurs modèles IA dans leurs outils de programmation.

RouterLab propose une API compatible OpenAI et permet de suivre l'utilisation des modèles et les crédits depuis un compte centralisé.

Son projet open source wrapper-scionos documente notamment la connexion de Claude Code, Codex CLI et OpenCode aux modèles RouterLab compatibles.

Le principe est de conserver l'environnement de développement habituel tout en choisissant les modèles et les routes disponibles.

Pour OpenCode, cette possibilité est particulièrement intéressante : l'outil accepte également des fournisseurs personnalisés utilisant des API compatibles OpenAI.

Il faut néanmoins distinguer la connexion du modèle de la prise en charge d'une fonctionnalité récente du client. Le nouveau mode /goal d'OpenCode 2 doit être vérifié avec la version exacte de l'outil, le modèle sélectionné et la configuration de transport utilisée.

Le suivi des crédits permet de rendre la consommation visible, mais ne remplace pas une véritable limite d'exécution ou de dépenses configurée pour une tâche autonome.

Une nouvelle étape, pas encore le pilote automatique

L'arrivée de /goal dans OpenCode confirme une évolution importante des agents de programmation.

L'utilisateur ne définit plus seulement une liste d'actions. Il fixe un résultat, des contraintes et des critères de validation.

L'agent prend davantage de décisions sur les étapes intermédiaires, tandis que le développeur conserve la responsabilité de définir le périmètre et d'examiner les preuves.

Le véritable progrès ne consiste donc pas simplement à éviter de répéter « continue ».

Il consiste à construire des workflows dans lesquels une tâche possède un objectif précis, une méthode de vérification, un budget et une condition d'arrêt.

OpenCode, Codex et Claude Code proposent trois implémentations de cette idée.

La prochaine étape sera de déterminer laquelle permet d'obtenir le meilleur résultat vérifiable avec le moins d'interventions, de régressions et de ressources consommées.


Sources et références

Endpoint RouterLab

Tester l’API RouterLab

Passez d’un article à une requête réelle : créez un essai, récupérez une clé et appelez les modèles depuis une API compatible OpenAI.

https://api.routerlab.ch/v1

Mesure d’audience

Acceptez-vous que Google Analytics et RouterLab mesurent les visites publiques et relient la source de campagne à votre inscription ? Ce choix est facultatif et modifiable à tout moment. En cas de refus, seuls des totaux anonymes de visites sont conservés.