OpenClaw construit une invite système personnalisée pour chaque exécution d’agent. L’invite est détenue par OpenClaw et n’utilise pas l’invite par défaut de pi-coding-agent. L’invite est assemblée par OpenClaw et injectée dans chaque exécution d’agent. L’assemblage de l’invite comporte trois couches :Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
buildAgentSystemPromptrend l’invite à partir d’entrées explicites. Il doit rester un moteur de rendu pur et ne doit pas lire directement la configuration globale.resolveAgentSystemPromptConfigrésout les réglages d’invite adossés à la configuration, comme l’affichage du propriétaire, les indications TTS, les alias de modèles, le mode de citation de la mémoire et le mode de délégation à des sous-agents pour un agent spécifique.- Les adaptateurs d’exécution (embarqués, CLI, aperçus de commande/export, Compaction) collectent les faits vivants comme les outils, l’état du sandbox, les capacités du canal, les fichiers de contexte et les contributions d’invite du fournisseur, puis appellent la façade d’invite configurée.
- remplacer un petit ensemble de sections cœur nommées (
interaction_style,tool_call_style,execution_bias) - injecter un préfixe stable au-dessus de la limite du cache d’invite
- injecter un suffixe dynamique sous la limite du cache d’invite
before_prompt_build pour la compatibilité ou les changements d’invite réellement globaux,
pas pour le comportement normal d’un fournisseur.
La surcouche de la famille OpenAI GPT-5 garde la règle d’exécution cœur réduite et ajoute
des consignes propres au modèle pour l’ancrage de persona, la concision de la sortie, la discipline d’outils,
la recherche parallèle, la couverture des livrables, la vérification, le contexte manquant et
l’hygiène des outils de terminal.
Structure
L’invite est volontairement compacte et utilise des sections fixes :- Outils : rappel de la source de vérité des outils structurés plus consignes d’utilisation des outils à l’exécution.
- Biais d’exécution : consignes compactes de suivi jusqu’au bout : agir pendant le tour sur les demandes actionnables, continuer jusqu’à la fin ou le blocage, récupérer après de faibles résultats d’outils, vérifier l’état mutable en direct et vérifier avant de finaliser.
- Sécurité : court rappel de garde-fous pour éviter les comportements de recherche de pouvoir ou de contournement de la supervision.
- Skills (quand disponibles) : indique au modèle comment charger les instructions de Skills à la demande.
- Contrôle OpenClaw : indique au modèle de préférer l’outil
gatewaypour les travaux de configuration/redémarrage et d’éviter d’inventer des commandes CLI. - Mise à jour automatique d’OpenClaw : comment inspecter la configuration en sécurité avec
config.schema.lookup, corriger la configuration avecconfig.patch, remplacer la configuration complète avecconfig.apply, et exécuterupdate.rununiquement à la demande explicite de l’utilisateur. L’outilgatewayréservé au propriétaire refuse aussi de réécriretools.exec.ask/tools.exec.security, y compris les alias héritéstools.bash.*qui se normalisent vers ces chemins exec protégés. - Espace de travail : répertoire de travail (
agents.defaults.workspace). - Documentation : chemin local vers les docs/source OpenClaw et quand les lire.
- Fichiers de l’espace de travail (injectés) : indique que les fichiers d’amorçage sont inclus ci-dessous.
- Sandbox (quand activé) : indique l’exécution en sandbox, les chemins de sandbox et si l’exec élevé est disponible.
- Date et heure actuelles : fuseau horaire uniquement (stable pour le cache ; l’horloge réelle vient de
session_status). - Directives de sortie de l’assistant : syntaxe compacte des pièces jointes, notes vocales et balises de réponse.
- Heartbeats : invite de Heartbeat et comportement d’accusé de réception, quand les Heartbeats sont activés pour l’agent par défaut.
- Exécution : hôte, système d’exploitation, Node, modèle, racine du dépôt (quand détectée), niveau de réflexion (une ligne).
- Raisonnement : niveau de visibilité actuel + indication de bascule /reasoning.
- utiliser Cron pour les suivis futurs (
check back later, rappels, travaux récurrents) au lieu de boucles de sommeilexec, d’astuces de délaiyieldMsou d’interrogations répétées deprocess - utiliser
exec/processuniquement pour les commandes qui démarrent maintenant et continuent de s’exécuter en arrière-plan - quand le réveil automatique à la fin est activé, démarrer la commande une seule fois et s’appuyer sur le chemin de réveil poussé quand elle émet une sortie ou échoue
- utiliser
processpour les journaux, l’état, l’entrée ou l’intervention quand vous devez inspecter une commande en cours d’exécution - si la tâche est plus importante, préférer
sessions_spawn; la fin d’un sous-agent est poussée et annoncée automatiquement au demandeur - ne pas interroger
subagents list/sessions_listen boucle juste pour attendre la fin
agents.defaults.subagents.delegationMode peut renforcer ces consignes. Le
mode par défaut suggest conserve l’incitation de base. prefer ajoute une section
Délégation à des sous-agents dédiée qui indique à l’agent principal d’agir comme un
coordinateur réactif et de pousser tout ce qui est plus impliqué qu’une réponse directe via
sessions_spawn. Cela relève uniquement de l’invite ; la politique d’outils contrôle toujours si
sessions_spawn est disponible.
Quand l’outil expérimental update_plan est activé, Outils indique aussi au
modèle de l’utiliser uniquement pour les travaux multi-étapes non triviaux, de garder exactement une étape
in_progress et d’éviter de répéter tout le plan après chaque mise à jour.
Les garde-fous de sécurité dans l’invite système sont consultatifs. Ils guident le comportement du modèle mais n’appliquent pas la politique. Utilisez la politique d’outils, les approbations exec, le sandboxing et les listes d’autorisation de canaux pour une application stricte ; les opérateurs peuvent les désactiver volontairement.
Sur les canaux avec cartes/boutons d’approbation natifs, l’invite d’exécution indique désormais à
l’agent de s’appuyer d’abord sur cette interface d’approbation native. Il ne doit inclure une commande manuelle
/approve que lorsque le résultat de l’outil indique que les approbations par discussion sont indisponibles ou que
l’approbation manuelle est le seul chemin.
Modes d’invite
OpenClaw peut rendre des invites système plus petites pour les sous-agents. L’exécution définit unpromptMode pour chaque exécution (ce n’est pas une configuration exposée à l’utilisateur) :
full(par défaut) : inclut toutes les sections ci-dessus.minimal: utilisé pour les sous-agents ; omet Rappel de mémoire, Mise à jour automatique d’OpenClaw, Alias de modèles, Identité utilisateur, Directives de sortie de l’assistant, Messagerie, Réponses silencieuses et Heartbeats. Outils, Sécurité, Skills quand fournis, Espace de travail, Sandbox, Date et heure actuelles (quand connues), Exécution et contexte injecté restent disponibles.none: renvoie uniquement la ligne d’identité de base.
promptMode=minimal, les invites injectées supplémentaires sont étiquetées Contexte de sous-agent
au lieu de Contexte de discussion de groupe.
Pour les exécutions de réponse automatique de canal, OpenClaw peut omettre la section générique Réponses silencieuses
quand le contexte de discussion directe/de groupe inclut déjà le comportement
NO_REPLY propre à la conversation résolue. Cela évite de répéter les mécanismes de jetons
à la fois dans l’invite système globale et dans le contexte de canal.
Instantanés d’invite
OpenClaw conserve des instantanés d’invite validés pour le chemin nominal de l’exécution Codex soustest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Ils rendent
certains paramètres de fil/tour du serveur d’application plus une pile reconstruite de couches d’invite liées au modèle
pour les tours directs Telegram, de groupe Discord et de Heartbeat. Cette pile
inclut une fixture d’invite de modèle Codex gpt-5.5 épinglée générée à partir de la
forme du catalogue/cache de modèles de Codex, le texte développeur des permissions du chemin nominal Codex,
les instructions développeur OpenClaw, les instructions de mode de collaboration limitées au tour
quand OpenClaw les fournit, l’entrée du tour utilisateur et les références aux spécifications d’outils dynamiques.
Actualisez la fixture d’invite de modèle Codex épinglée avec
pnpm prompt:snapshots:sync-codex-model. Par défaut, le script cherche le
cache d’exécution de Codex dans $CODEX_HOME/models_cache.json, puis
~/.codex/models_cache.json, puis seulement ensuite se rabat sur la convention de checkout Codex
du mainteneur à ~/code/codex/codex-rs/models-manager/models.json. Si
aucune de ces sources n’existe, la commande se termine sans modifier la fixture
validée. Passez --catalog <path> pour actualiser depuis un fichier models_cache.json
ou models.json spécifique.
Ces instantanés ne sont toujours pas une capture brute octet pour octet de requête OpenAI. Codex
peut ajouter un contexte d’espace de travail détenu par l’exécution comme AGENTS.md, le contexte
d’environnement, les mémoires, les instructions d’application/Plugin et les instructions intégrées du mode de collaboration
par défaut à l’intérieur de l’exécution Codex après qu’OpenClaw envoie les paramètres de fil
et de tour.
Régénérez-les avec pnpm prompt:snapshots:gen et vérifiez la dérive avec
pnpm prompt:snapshots:check. CI exécute la vérification de dérive dans le fragment de frontière
supplémentaire afin que les changements d’invite et les mises à jour d’instantanés restent rattachés à la même
PR.
Injection d’amorçage de l’espace de travail
Les fichiers d’amorçage sont élagués et ajoutés sous Contexte du projet afin que le modèle voie le contexte d’identité et de profil sans nécessiter de lectures explicites :AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(uniquement sur les tout nouveaux espaces de travail)MEMORY.mdquand présent
HEARTBEAT.md est omis lors des exécutions normales quand
les Heartbeats sont désactivés pour l’agent par défaut ou quand
agents.defaults.heartbeat.includeSystemPromptSection vaut faux. Gardez les fichiers injectés
concis, en particulier MEMORY.md. MEMORY.md est destiné à rester un
résumé long terme organisé ; les notes quotidiennes détaillées appartiennent à memory/*.md, où
memory_search et memory_get peuvent les récupérer à la demande. Les fichiers
MEMORY.md surdimensionnés augmentent l’utilisation de l’invite et peuvent être partiellement injectés à cause
des limites de fichiers d’amorçage ci-dessous.
Quand une session s’exécute sur le harnais Codex natif, Codex charge AGENTS.md
via sa propre découverte de documents de projet. OpenClaw résout toujours les autres
fichiers d’amorçage et les transmet comme instructions de configuration Codex, donc SOUL.md,
TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md et
MEMORY.md conservent le même rôle de contexte d’espace de travail sans dupliquer
AGENTS.md.
Les fichiers quotidiens
memory/*.md ne font pas partie du Contexte du projet d’amorçage normal. Lors des tours ordinaires, ils sont consultés à la demande via les outils memory_search et memory_get, ils ne comptent donc pas contre la fenêtre de contexte sauf si le modèle les lit explicitement. Les tours /new et /reset nus sont l’exception : l’exécution peut préfixer la mémoire quotidienne récente sous forme de bloc ponctuel de contexte de démarrage pour ce premier tour.agents.defaults.bootstrapMaxChars (par défaut : 12000). Le contenu d’amorçage total injecté
sur l’ensemble des fichiers est plafonné par agents.defaults.bootstrapTotalMaxChars
(par défaut : 60000). Les fichiers manquants injectent un court marqueur de fichier manquant. Quand une troncature
se produit, OpenClaw peut injecter un avis d’avertissement concis dans l’invite système ; contrôlez cela avec
agents.defaults.bootstrapPromptTruncationWarning (off, once, always ;
par défaut : once). Les comptes bruts/injectés détaillés restent dans les diagnostics comme
/context, /status, doctor et les journaux.
Pour les fichiers de mémoire, la troncature n’est pas une perte de données : le fichier reste intact sur le disque,
mais le modèle ne voit que la copie injectée raccourcie jusqu’à ce qu’il lise ou recherche
directement dans la mémoire. Si MEMORY.md est tronqué de manière répétée, distillez-le en un
résumé durable plus court et déplacez l’historique détaillé dans memory/*.md, ou
augmentez intentionnellement les limites d’amorçage.
Les sessions de sous-agent n’injectent que AGENTS.md et TOOLS.md (les autres fichiers d’amorçage
sont filtrés pour garder le contexte du sous-agent réduit).
Les hooks internes peuvent intercepter cette étape via agent:bootstrap pour muter ou remplacer
les fichiers d’amorçage injectés (par exemple, remplacer SOUL.md par une autre persona).
Si vous souhaitez que l’agent paraisse moins générique, commencez par
Guide de personnalité SOUL.md.
Pour examiner la contribution de chaque fichier injecté (brut ou injecté, troncature, plus la surcharge du schéma d’outil), utilisez /context list ou /context detail. Consultez Contexte.
Gestion du temps
L’invite système inclut une section dédiée Date et heure actuelles lorsque le fuseau horaire de l’utilisateur est connu. Pour conserver la stabilité du cache d’invite, elle n’inclut désormais que le fuseau horaire (aucune horloge dynamique ni aucun format d’heure). Utilisezsession_status lorsque l’agent a besoin de l’heure actuelle ; la carte
d’état inclut une ligne d’horodatage. Le même outil peut éventuellement définir une
surcharge de modèle par session (model=default l’efface).
Configurez avec :
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Lorsque des Skills éligibles existent, OpenClaw injecte une liste des Skills disponibles compacte (formatSkillsForPrompt) qui inclut le chemin du fichier pour chaque Skill. L’
invite indique au modèle d’utiliser read pour charger le SKILL.md à l’emplacement
indiqué (espace de travail, géré ou fourni). Si aucun Skill n’est éligible, la
section Skills est omise.
L’éligibilité inclut les règles de métadonnées des Skills, les vérifications
d’environnement/configuration d’exécution, ainsi que la liste d’autorisation effective
des Skills de l’agent lorsque agents.defaults.skills ou
agents.list[].skills est configuré.
Les Skills fournis par un Plugin ne sont éligibles que lorsque le Plugin qui les possède est activé.
Cela permet aux Plugins d’outils d’exposer des guides d’utilisation plus approfondis sans intégrer toute
cette documentation directement dans chaque description d’outil.
- Valeur par défaut globale :
skills.limits.maxSkillsPromptChars - Surcharge par agent :
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, les résultats d’outils en direct
et les actualisations AGENTS.md après Compaction.
Documentation
L’invite système inclut une section Documentation. Lorsque la documentation locale est disponible, elle pointe vers le répertoire local de documentation OpenClaw (docs/ dans un checkout Git ou la documentation
du package npm fourni). Si la documentation locale est indisponible, elle se rabat sur
https://docs.openclaw.ai.
La même section inclut également l’emplacement du code source OpenClaw. Les checkouts Git exposent la racine
locale du code source afin que l’agent puisse inspecter directement le code. Les installations de package incluent l’URL
du code source GitHub et indiquent à l’agent d’y consulter le code source lorsque la documentation est incomplète ou
obsolète. L’invite mentionne également le miroir public de la documentation, le Discord communautaire et ClawHub
(https://clawhub.ai) pour la découverte des Skills. Elle indique au modèle de
consulter d’abord la documentation pour le comportement, les commandes, la configuration ou l’architecture d’OpenClaw, et
d’exécuter lui-même openclaw status lorsque c’est possible (en ne demandant à l’utilisateur que lorsqu’il n’a pas accès).
Pour la configuration en particulier, elle oriente les agents vers l’action d’outil gateway
config.schema.lookup pour obtenir la documentation et les contraintes exactes au niveau des champs, puis vers
docs/gateway/configuration.md et docs/gateway/configuration-reference.md
pour des conseils plus larges.