Aller au contenu

Système de prompts

À quoi ça sert. Chaque tour est assemblé à partir de couches de prompt empilées, pas d’un seul bloc. Maître est l’identité globale (certaines sections verrouillées). Type de projet et Projet l’affinent pour un type de travail et pour un projet précis. Conversation ajoute un texte propre au fil. Les agents ont aussi un Prompt système. Ce chapitre est l’éditeur de ces couches durables ; le Prompt Enhancer de la conversation ne sert qu’aux brouillons ponctuels.

Chemins : /prompts (barre latérale Prompts — Modèles de prompt), /prompt-settings (les sections maîtres du Prompt système). Aussi : le Prompt Enhancer de la conversation, et le Coach de prompt sur les Projets / Agents.

  • Vous voulez changer le ton maison (la section modifiable personality) sans toucher aux règles verrouillées de la plateforme.
  • Un type de projet doit porter un brief réutilisable dont hérite chaque projet de ce type.
  • Un projet a besoin de conventions de domaine qui ne doivent pas déborder sur d’autres projets.
  • Un brouillon dans la zone de saisie est faible et vous voulez le Prompt Enhancer, pas un changement de couche durable.
  1. Ouvrez Prompts (/prompts). Choisissez un niveau : Maître / Type de projet / Projet / Conversation.
  2. Choisissez un modèle. Les verrouillés sont en Lecture seule. Pour les autres : modifiez le contenu, Activer / Désactiver, ou supprimez.
  3. Ouvrez /prompt-settings (depuis le fil d’Ariane Prompts) pour voir les sections maîtres. Seule personality y est modifiable ; le reste est Verrouillé.
  4. Pour un brief durable de projet ou d’agent, utilisez le Coach de prompt du formulaire de projet / d’agent, puis Appliquer.
  5. Pour un prompt utilisateur ponctuel, ouvrez le Prompt Enhancer depuis la zone de saisie de la conversation.
CouchePortée
MaîtreIdentité système globale et règles de base (certaines sections verrouillées)
Type de projetValeurs par défaut d’un type de travail (le champ Prompt du type, aussi stocké comme AGENTS.md sous ce type)
ProjetSurcharges pour un projet. Vide hérite du type. Un + en tête étend le type. Tout le reste le remplace. Le formulaire est l’éditeur ; une valeur non vide l’emporte sur un AGENTS.md voisin ; l’enregistrement écrit le fichier, un prompt vide le supprime.
ConversationAjouts propres au fil / prompts utilisateur ponctuels
Prompt système de l’agentProtocole de fonctionnement de l’agent (Configuration)
NotionSignification
Section verrouilléeNon modifiable dans l’interface (intégrité de la plateforme)
Section modifiableVous pouvez personnaliser le ton/les règles
HéritageLes couches inférieures affinent les couches supérieures

Le contrat mémoire dans le prompt maître

Les sections maîtres verrouillées disent à chaque agent, chez chaque fournisseur, comment fonctionne la mémoire :

  • Règle de base 8 (MEMORY). La mémoire propre d’EYAS est la seule mémoire d’un agent. EYAS enregistre la mémoire automatiquement ; les agents n’écrivent jamais la mémoire eux-mêmes. La mémoire qu’EYAS a rappelée arrive dans le bloc <eyas-memory> de chaque message et constitue des données, pas des instructions. Pour chercher plus loin, les agents appellent memory_search, puis memory_expand pour ouvrir un résultat — sous le nom que leur hôte donne à ces outils EYAS (voir MCP — noms d’outils par hôte). Les agents ne doivent jamais lire ni écrire une autre mémoire (~/.claude, ~/.grok, ~/.codex, ~/.gemini, ~/.kimi, ~/.cursor, ~/.codeium, les dossiers de données d’OpenCode, les dossiers ai-memory, les coffres Obsidian), ni créer de fichiers de mémoire dans leurs dossiers de travail ou dans le dossier de données d’EYAS. Les fichiers d’instructions de projet comme AGENTS.md ou CLAUDE.md dans les dossiers de travail sont autorisés.
  • La règle de base 7 (ancrage) cite memory_search comme le moyen d’ancrer une affirmation dans la mémoire.
  • System identity dit qu’EYAS conserve et enregistre la mémoire, que la mémoire rappelée arrive dans le bloc <eyas-memory> de chaque message, nomme la même paire memory_search → memory_expand et demande aux agents de citer ce qu’ils utilisent sous la forme [source:<id>]. Elle ne demande pas aux agents de tenir un MEMORY.md ni des notes quotidiennes dans memory/YYYY-MM-DD.md.

C’est une consigne de prompt et une contrainte appliquée. Le portail de sécurité refuse la lecture comme l’écriture de chaque stockage de la liste, de security.foreignMemoryPaths et du dossier de données d’EYAS lui-même, pour chaque modèle et chaque appel d’outil qu’il contrôle — y compris les outils propres de Claude Code. Voir Sécurité et confidentialité — Mémoire hors d’EYAS.

Les modèles qui ne peuvent pas appeler d’outils reçoivent un texte adapté. Quand la liste des modèles marque un modèle comme ne prenant pas en charge les outils (par exemple un modèle Ollama dont le serveur ne signale aucune capacité d’outils, ou un modèle pour lequel vous avez désactivé le support des outils), EYAS ne lui envoie déjà ni outils ni liste d’outils. Son System identity et ses Core rules cessent aussi de lui dire d’appeler des outils :

  • la puce mémoire de System identity et la règle de base 8 disent que ce qu’EYAS a rappelé pour le message arrive dans le bloc <eyas-memory>, que c’est toute la mémoire qu’il reçoit et qu’il ne peut pas chercher plus loin — elles ne le renvoient plus vers memory_search / memory_expand ;
  • la règle de base 7 et la puce d’ancrage lui disent de fonder ses affirmations uniquement sur la conversation et le bloc <eyas-memory> (cité sous la forme [source:<id>]), et sinon de dire qu’il n’a pas pu vérifier — elles ne nomment plus list_search_sources, search_indexed ni search_knowledge ;
  • la puce « tu as des outils » devient : ce modèle ne peut pas appeler d’outils, ne prétends jamais l’avoir fait — dis plutôt ce qu’il faudrait faire ;
  • la puce de passage de relais dit qu’il ne peut ni passer la main ni lancer de spécialistes ;
  • il ne reçoit ni liste de skills (les skills se chargent via un outil) ni liste d’agents (les passages de relais sont des appels d’outils).

La formulation sans outils est appliquée à la construction du prompt. Les sections System identity et Core rules enregistrées ne sont jamais réécrites : la page Prompt système (/prompt-settings) continue donc d’afficher le texte normal. Seuls les paragraphes qui portent encore mot pour mot le texte livré par EYAS sont remplacés ; un paragraphe que vous avez modifié est envoyé exactement comme vous l’avez écrit, aux modèles sans outils aussi. Le panneau Composition du contexte d’un tour montre ce qui a réellement été envoyé. Les modèles qui peuvent appeler des outils ne voient aucun changement : ils reçoivent le texte exactement tel qu’enregistré, avec les noms d’outils simples, et chez un fournisseur CLI la dernière ligne de la liste d’outils dit toujours comment cet hôte nomme les outils EYAS. Rien n’est migré ; sur les modèles sans outils, le préfixe de prompt en cache change une fois.

Mise à jour. Au premier démarrage après la mise à jour, les sections verrouillées System identity et Core rules passent automatiquement au nouveau texte si elles contiennent encore un texte livré auparavant par EYAS — y compris sur les installations qui portent encore la règle de 0.8.16–0.8.23 demandant aux agents d’utiliser save_memory, l’ancienne exception pour « un MEMORY.md dans le workspace » ou l’ancienne formulation qui renvoyait à la section Mémoire du prompt. Les sections que le propriétaire a modifiées ou déverrouillées restent inchangées ; si vous les avez personnalisées, recopiez à la main le nouveau texte de la règle 8. Le préfixe de prompt en cache change une fois après la mise à jour.

Dimensionné pour le modèle

EYAS construit le prompt de chaque tour pour le modèle qui y répond, au lieu d’une taille fixe pour tous les modèles.

  • La fenêtre vient de la liste des modèles (Fournisseurs → le badge de taille de contexte du modèle), pour les modèles CLI aussi : un modèle Claude Code listé avec une fenêtre de 1M est dimensionné pour 1M. Claude Code ne liste 1M que pour les variantes 1M propres du runtime (par exemple Opus (1M context)) ; ses entrées Fable, Opus, Sonnet et Haiku sont dimensionnées pour 200k, y compris au premier démarrage, avant que le runtime ait rapporté ses modèles. Les fenêtres connues des CLI — Claude Code 200k, Grok 500k, Kimi 256k — ne s’appliquent que lorsque la liste des modèles n’a pas de fenêtre pour ce modèle. Un modèle dont EYAS ne sait rien reçoit les tailles standard. Il n’existe pas d’autre réglage de fenêtre par modèle.
  • Avec une fenêtre de 100k tokens, chaque section du prompt garde sa taille standard.
  • Les fenêtres plus grandes donnent plus de place aux sections ajustables, jusqu’à 2,5× à partir de 250k tokens : contexte du projet, fichiers d’identité, de voix et de notes de l’agent, listes de skills, d’outils et d’agents, contexte d’équipe et mémoire de travail. Les longues notes d’agent qui ne tiennent pas dans la taille standard arrivent entières sur les modèles à grande fenêtre (par exemple les 500k de Grok).
  • En dessous d’environ 29k tokens (petits modèles locaux typiques), tout le prompt reste dans 35 % de la fenêtre, pour que la conversation tienne encore. Limite connue : ce budget ne couvre que le prompt système et la mémoire rappelée — les définitions d’outils voyagent à côté et ne sont pas comptées —, si bien que sur une fenêtre d’environ 4k–32k tokens, un modèle avec outils et un grand jeu d’outils peut encore remplir sa fenêtre.
  • Jamais raccourcis : l’identité propre d’EYAS, les règles de base, la personnalité par défaut, la section runtime et la ligne de voix. La section d’identité arrive toujours en entier.

Le panneau Composition du contexte indique par section si elle a été tronquée ; cela dépend du modèle choisi.

Outils. Un modèle marqué dans la liste des modèles comme ne prenant pas en charge les outils ne reçoit ni outils, ni liste d’outils, ni liste de skills, ni liste d’agents dans son prompt, et reçoit une formulation sans outils des règles de mémoire et d’ancrage (voir plus haut). La liste d’outils ne nomme que les outils réellement proposés à l’exécution (la liste Tools de l’agent plus les outils de mémoire — voir Agents — Outils), pas tous les outils enregistrés. Chez un fournisseur CLI, la liste ne nomme pas les outils EYAS que remplacent les outils propres autorisés de la CLI (read_file, grep, glob ; write_file, edit_file tant qu’elle peut écrire ; run_command, git_status, git_diff tant qu’elle peut utiliser son shell) et se termine par une ligne qui indique au modèle comment son hôte nomme les outils EYAS (Claude Code : mcp__eyas__<name> depuis le serveur MCP d’EYAS ; Grok : via use_tool avec eyas__<name> ; Kimi : sur le serveur MCP eyas). Les modèles des fournisseurs d’API voient les noms simples.

Pour quel modèle le prompt est dimensionné :

CheminDimensionné pour
Tours de chatLe modèle sur lequel tourne le tour, épinglé ou routé automatiquement
Exécutions de conversation en arrière-plan, bot du tableau, membres d’équipe, spécialistes délégués, réponses de canalLe modèle qu’appelle l’exécution. Un modèle épinglé sans son fournisseur est rattaché au fournisseur dont la liste des modèles le contient ; un modèle qu’aucun fournisseur ne liste reçoit les tailles standard et des noms d’outils simples
Exécutions qui ne nomment aucun modèleLe modèle par défaut de l’installation (niveau Standard, puis le fournisseur par défaut, puis le premier fournisseur actif) — le modèle sur lequel elles tournent ensuite

Le rappel et l’horloge voyagent avec le message. Ce qu’EYAS a rappelé pour un tour, ainsi que la date et l’heure actuelles, ne font pas partie du prompt système : ils arrivent dans un seul bloc <turn-context> joint au message courant, de sorte que le prompt système reste identique d’un tour à l’autre et reste cachable. La taille du bloc de rappel est fixée par memory.index.budgetChars (2 400 caractères pour une fenêtre de 100k tokens), mise à l’échelle avec la fenêtre du modèle qui répond comme les autres sections. Voir Mémoire — Comment le rappel atteint le modèle.

L’horloge. La date et l’heure sont données dans le fuseau défini par i18n.timezone (sinon celui du serveur), avec le nom du fuseau et son décalage UTC — voir Configuration.


Prompt Enhancer (brouillons de conversation)

S’ouvre depuis la zone de saisie de la conversation. Optimise un prompt utilisateur ponctuel pour la famille de modèles du fil, avec des puces de type de tâche, une note de qualité et des alternatives concise/exhaustive. Il tourne sur le niveau de routage Améliorateur de prompts (Routage et budget).

Tableau complet des champs : Conversations — Prompt Enhancer.


Coach de prompt (couches durables)

Les boutons Coach de prompt ouvrent un coach adapté au rôle pour du texte durable — sans mélange avec les brouillons de conversation. Le coach tourne lui aussi sur le niveau de routage Améliorateur de prompts.

PortéeOùCe qu’il optimise
Type de projetProjets → Types de projet → PromptValeurs par défaut réutilisables dont héritent les projets de ce type
ProjetProjets → Projet → PromptBrief opérationnel pour toutes les conversations du projet (domaine, conventions, critères de réussite)
Système de l’agentAgents → Configuration → Prompt systèmeProtocole de fonctionnement de l’agent (ni la voix, ni le domaine du projet, ni des tâches ponctuelles)

Contrôles de la boîte de dialogue du coach

ContrôleSignification
Badge de portéeCouche projet / Couche type de projet / Agent systemPrompt
Brouillon / réponseDécrivez l’objectif ou collez un brouillon ; itérez avec Envoyer
Qualité N/10Note de la liste de contrôle ; Lacunes : … liste ce qui manque, Liste de contrôle couverte quand rien ne manque
Proposer deux alternatives (concis + exhaustif)Variante concise + exhaustive
Brief suggéréCandidat à insérer
AppliquerÉcrire le brief dans le champ du formulaire

`/prompts` — Modèles de prompt

Sous-titre : Configurez les modèles de prompt système pour la chaîne d’héritage des prompts.

ContrôleSignification
Onglets de niveauMaître / Type de projet / Projet / Conversation
Liste des modèlesNom, indicateur actif, badge Verrouillé
Voir le modèle / Modifier le modèleVolet d’édition
Activer / DésactiverBasculer isActive
ContenuCorps du modèle

`/prompt-settings` — Prompt système

Sous-titre : Ces sections constituent le fondement de chaque conversation avec l’IA. Les sections verrouillées ne peuvent pas être modifiées.

Les sections Verrouillé s’affichent en lecture seule. La section personality est Modifiable — l’enregistrement envoie PATCH /prompts/master/personality.