Aller au contenu
17.5k

Couches de prompt Codex

Codex assemble son prompt à partir de plusieurs couches : ses propres instructions de base, la documentation de votre projet, le contexte des autorisations et de l’environnement, les compétences installées, et davantage. Codex Set → Prompt affiche cette pile, indique le coût de chaque couche et permet de désactiver celles dont vous ne voulez pas.

Chaque ligne indique sa position dans l’ordre d’assemblage, la clé de configuration qui la régit lorsqu’il en existe une, et la taille de ce qui a réellement été envoyé.

La numérotation des positions comporte des intervalles. C’est intentionnel : les nombres sont les véritables indices d’assemblage, et deux d’entre eux figurent plus bas sous Avis de transition. Renuméroter chaque groupe à partir de un afficherait un ordre que Codex n’utilise pas.

Type Ce que vous pouvez faire
Modifiable ici Un véritable commutateur. Écrit une clé dans config.toml.
Contrôlé par une fonctionnalité Réelle, mais modifiée dans les paramètres des fonctionnalités plutôt que sur cette page.
Toujours actif Aucun commutateur de désactivation n’existe dans Codex.
Lors d’un changement Annonce une transition et n’apparaît donc que lorsqu’un élément change.
Couche d’extension Ne peut pas être répertoriée. Codex ne l’expose pas.

Une couche sans commutateur de désactivation n’en affiche aucun, au lieu d’en montrer un qui serait désactivé. Un contrôle grisé laisserait entendre que la possibilité existe, mais qu’elle est temporairement indisponible, ce qui n’est pas le cas.

Cliquez sur le nom d’une couche pour afficher le texte qu’elle envoie. La boîte de dialogue le lit depuis codex debug prompt-input : il s’agit donc du contenu réel, et non d’une description.

Il arrive qu’il n’y ait rien à afficher. La boîte de dialogue précise alors la raison :

  • Le fichier existe, mais il est vide. Votre fichier ~/.codex/AGENTS.md ne contient aucun octet ; la couche n’a donc rien à envoyer. La boîte de dialogue indique le chemin.
  • Elle n’a rien envoyé pendant le tour que nous avons lu. Les couches ne sont renvoyées que lorsqu’elles changent ; une couche inchangée est donc absente d’un échantillon unique.
  • Le prompt de base provient du catalogue de modèles. Codex l’envoie hors de la liste lisible : la boîte de dialogue le lit donc dans l’entrée de catalogue du modèle sélectionné, ou dans le fichier désigné par model_instructions_file si vous en avez défini un. Lorsque le catalogue ne publie qu’un gabarit non développé, la boîte de dialogue indique qu’il n’est pas affiché, car ce texte n’est pas celui que Codex envoie.
  • Le prompt n’a pas pu être lu. La sonde a échoué sur cette machine.

La lecture est effectuée depuis votre répertoire Codex global (~/.codex), et non depuis le répertoire dans lequel le tableau de bord se trouve être lancé.

+ Add layer ajoute vos propres instructions à la fin. Les couches personnalisées sont assemblées dans developer_instructions, qui est additif : Codex conserve ses propres instructions et y ajoute les vôtres.

Les couches personnalisées sont numérotées entre elles, car elles sont réunies dans une seule section dans cet ordre ; elles ne s’intercalent pas avec les couches intégrées.

Réorganisez-les avec les flèches de la ligne, ou avec Alt + Up / Alt + Down depuis n’importe quel emplacement de la ligne. L’ordre correspond à l’ordre de composition.

Le panneau affiche la taille combinée des couches actives par rapport à la limite de 128 Kio pour developer_instructions, ainsi qu’un aperçu repliable du texte assemblé : une couche qui ferait dépasser la limite à la section est visible avant l’enregistrement, pas après.

La suppression d’une couche demande d’abord confirmation, puis propose Annuler pendant quelques secondes : la couche revient à son ancienne position, donc une liste dont l’ordre compte survit à un faux pas.

+ Add layer propose cinq points de départ : sortie concise, planification avant modification, explication du raisonnement, tests en premier et réponses en coréen. Chacun ouvre l’éditeur ordinaire avec un contenu prérempli et entièrement modifiable : un préréglage est un point de départ, et ce que vous enregistrez devient une couche personnalisée ordinaire.

Les préréglages sont notre propre texte, rédigé pour condenser une approche et non pour copier le prompt de quelqu’un. Chacun indique sa source.

Passer d’une couche à l’autre pendant la modification

Section intitulée « Passer d’une couche à l’autre pendant la modification »

L’éditeur dispose de commandes précédent/suivant et d’un indicateur de position. Les modifications non enregistrées sont conservées pendant vos déplacements ; vous pouvez ainsi comparer deux couches en cours de modification, puis revenir sans perdre ce que vous avez saisi.

L’éditeur avertit lorsqu’une couche contient une instruction qui ne fonctionnera pas telle quelle : revendiquer une autre identité, nommer un outil défini par le registre, utiliser des espaces réservés de modèle que rien ne développe ou énoncer des informations sur l’environnement que Codex génère ultérieurement. Il signale aussi les identifiants collés (une clé API dans une couche part en clair au modèle à chaque requête), les formulations qui ordonnent au modèle d’abandonner ses instructions précédentes et une identité non-Codex revendiquée en coréen.

Ces avertissements ne bloquent jamais l’enregistrement. Si vous souhaitez remplacer le comportement de Codex, vous le pouvez ; l’avertissement permet simplement d’en faire une décision plutôt qu’un accident.

Le prompt de base est le texte propre à Codex, avant les couches additionnelles. Le sélecteur propose le prompt par défaut et jusqu’à deux variantes enregistrées dans ~/.codex/opencodex-prompt-base/. L’option par défaut ne contient aucun texte à modifier : la choisir supprime model_instructions_file de votre configuration.

L’éditeur conserve les modifications non enregistrées quand vous passez d’une option à l’autre et demande confirmation avant de les abandonner à la fermeture. Le corps est mesuré pendant la saisie et limité à 64 KiB par variante.

Si un autre fichier remplace déjà le prompt de base

Section intitulée « Si un autre fichier remplace déjà le prompt de base »

Si model_instructions_file désigne un fichier écrit par vous ou par un autre outil, le sélecteur indique son chemin et refuse de modifier silencieusement la clé. Importer comme variante affiche d’abord le texte exact qui sera installé : un titre sur une ligne # , puis le corps avec les fins de ligne et les tabulations normalisées. Vous pouvez modifier le titre avant de confirmer. Le corps normalisé est limité à 64 KiB (bodyBytes) ; le fichier complet, titre compris, est légèrement plus grand (serializedBytes). Un hash lie la confirmation à cet aperçu. Si le fichier ou le titre change, l’importation refuse d’installer un texte que vous n’avez pas vu. Vous pouvez également supprimer la clé vous-même pour revenir au prompt par défaut.

Les changements s’appliquent aux nouvelles sessions ; les sessions déjà ouvertes conservent leur prompt initial.

Si developer_instructions existe déjà et n’a pas été écrit par opencodex, le panneau ne le remplacera pas. Il propose à la place d’importer le texte comme une couche : vous voyez d’abord la valeur existante, et rien n’est écrit avant votre confirmation.

Si les couches enregistrées et la valeur de config.toml divergent, le panneau le signale et propose Repair au lieu de corriger le problème silencieusement. Deux des méthodes de réparation réécrivent votre texte et restent donc intentionnelles. Une écriture interrompue (« journal present ») exécute uniquement une récupération sous verrou à partir des états de fichiers enregistrés dans le journal ; elle ne réenregistre pas la liste actuelle et n’invente aucun contenu manquant. Si les fichiers ne correspondent à aucun état enregistré, elle refuse et conserve les éléments de diagnostic. Le panneau actualisé signale toute divergence restante. Lorsqu’un fichier de couche a disparu, la réparation crée une sauvegarde avant toute modification.

Les modifications s’appliquent aux nouvelles sessions. Une session déjà en cours conserve les paramètres de prompt avec lesquels elle a démarré.

opencodex lit un seul fichier de configuration : votre config.toml. Codex résout ses paramètres à partir de plusieurs couches ; une valeur affichée ici correspond donc à ce que dit VOTRE fichier, et pas nécessairement à ce que Codex calcule finalement.

Elles se trouvent dans le config.toml de Codex, pas dans la configuration propre à opencodex.

Clé Par défaut Couche
include_permissions_instructions true Autorisations
include_collaboration_mode_instructions true Mode collaboration
include_environment_context true Contexte d’environnement
include_apps_instructions true Applications
skills.include_instructions true Compétences
developer_instructions non défini Vos couches personnalisées, jointes dans l’ordre
model_instructions_file non défini Prompt de base lorsqu’une variante est sélectionnée

L’écriture se fait ligne par ligne : vos commentaires et votre mise en forme sont conservés, et une clé qu’opencodex ne connaît pas est laissée telle quelle plutôt que supprimée.

Une clé absente est lue comme sa valeur par défaut, et non comme false. Le panneau affiche la valeur réellement présente dans votre fichier et indique lorsqu’une clé n’est pas définie.

Une ligne portant une valeur explicite propose aussi Réinitialiser, qui supprime la ligne de la clé plutôt que d’y réécrire la valeur par défaut. C’est le seul état qui continue de suivre la valeur par défaut si Codex la change plus tard — écrire key = true figerait la valeur d’aujourd’hui comme un remplacement.

Cet éditeur de valeurs simples refuse les tableaux, les tables en ligne et les chaînes sur plusieurs lignes avant d’écrire ou de réinitialiser une clé, en conservant les octets d’origine. Un import signale explicitement une configuration illisible. Les aperçus du titre en lecture seule laissent le champ modifiable ; la confirmation reste liée à un aperçu de ce titre. Un échec HTTP ou réseau de la mesure est signalé comme un échec, pas comme une autre mesure en cours.