Aller au contenu

Niveaux de réflexion

  • Directive en ligne dans n’importe quel corps entrant : /t <level>, /think:<level>, ou /thinking <level>.
  • Niveaux (alias) : off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → “think”
    • low → “think hard”
    • medium → “think harder”
    • high → “ultrathink” (max budget)
    • xhigh → « ultrathink+ » (modèles GPT-5.2+ et Codex, ainsi que l’effort Anthropic Claude Opus 4.7+)
    • adaptive → réflexion adaptative gérée par le provider (prise en charge pour Claude 4.6 sur Anthropic/Bedrock, Anthropic Claude Opus 4.7+, et la réflexion dynamique de Google Gemini)
    • max → raisonnement maximum du provider (Anthropic Claude Opus 4.7+ ; Ollama mappe ceci vers son AnthropicOllamathink effort natif le plus élevé)
    • x-high, x_high, extra-high, extra high, et extra_high correspondent à xhigh.
    • highest correspond à high.
  • Notes du provider :
    • Les menus et sélecteurs de réflexion sont pilotés par le profil de provider. Les plugins de provider déclarent l’ensemble exact de niveaux pour le modèle sélectionné, y compris des étiquettes telles que binaire on.
    • adaptive, xhigh, et max ne sont proposés que pour les profils provider/modèle qui les prennent en charge. Les directives tapées pour les niveaux non pris en charge sont rejetées avec les options valides de ce modèle.
    • Les niveaux non pris en charge déjà stockés sont remappés par rang de profil de provider. adaptive revient à medium sur les modèles non adaptatifs, tandis que xhigh et max reviennent au plus grand niveau non-off pris en charge pour le modèle sélectionné.
    • Les modèles Anthropic Claude 4.6 sont par défaut sur adaptive lorsqu’aucun niveau de réflexion explicite n’est défini.
    • Anthropic Claude Opus 4.8 et Opus 4.7 désactivent la réflexion sauf si vous définissez explicitement un niveau de réflexion. L’effort par défaut détenu par le fournisseur d’Opus 4.8 est Anthropichigh après l’activation de la réflexion adaptative.
    • Anthropic Claude Opus 4.7+ mappe Anthropic/think xhigh vers la réflexion adaptative plus output_config.effort: "xhigh", car /think est une directive de réflexion et xhigh est le paramètre d’effort Opus.
    • Anthropic Claude Opus 4.7+ expose également Anthropic/think max ; il correspond au même chemin d’effort maximum détenu par le fournisseur.
    • Les modèles DeepSeek V4 directs exposent /think xhigh|max ; les deux correspondent au reasoning_effort: "max" de DeepSeek tandis que les niveaux non officiels inférieurs correspondent à high.
    • Les modèles DeepSeek V4 acheminés par OpenRouter exposent OpenRouter/think xhighOpenRouter et envoient des valeurs reasoning_effort prises en charge par OpenRouter. Les max de substitution stockées reviennent à xhigh.
    • Les modèles Ollama capables de réflexion exposent Ollama/think low|medium|high|max ; max correspond au think: "high"OllamaAPI natif car l’API native d’Ollama accepte les chaînes d’effort low, medium et high.
    • Les modèles GPT d’OpenAI mappent OpenAI/think via la prise en charge de l’effort de l’API Responses spécifique au modèle. API envoie OpenClawreasoning.effort: "none"``/think off uniquement lorsque le modèle cible le prend en charge ; sinon OpenClaw omet la charge utile de raisonnement désactivée au lieu d’envoyer une valeur non prise en charge.
    • Les entrées de catalogue personnalisées compatibles OpenAI peuvent opter pour /think xhigh en définissant models.providers.<provider>.models[].compat.supportedReasoningEfforts pour inclure "xhigh". Cela utilise les mêmes métadonnées de compatibilité qui mappent les charges utiles d’effort de raisonnement OpenAI sortantes, de sorte que les menus, la validation de session, le CLI de l’agent et llm-task s’accordent avec le comportement du transport.
    • Stale configured OpenRouter Hunter Alpha refs skip proxy reasoning injection because that retired route could return final answer text through reasoning fields.
    • Google Gemini mappe /think adaptive à la réflexion dynamique propriétaire du fournisseur de Gemini. Les requêtes Gemini 3 omettent un thinkingLevel fixe, tandis que les requêtes Gemini 2.5 envoient thinkingBudget: -1 ; les niveaux fixes sont toujours mappés au thinkingLevel ou budget Gemini le plus proche pour cette famille de modèles.
    • MiniMax (MiniMaxminimax/*) sur le chemin de streaming compatible Anthropic est réglé par défaut sur thinking: { type: "disabled" }, sauf si vous définissez explicitement la réflexion dans les paramètres du modèle ou les paramètres de la requête. Cela évite les fuites de deltas reasoning_content provenant du format de flux MiniMax non natif de Anthropic.
    • Z.AI (zai/*) prend uniquement en charge la réflexion binaire (on/off). Tout niveau autre que off est traité comme on (mappé à low).
    • Moonshot (Moonshotmoonshot/*) mappe /think off à thinking: { type: "disabled" } et tout niveau autre que off à thinking: { type: "enabled" }Moonshot. Lorsque la réflexion est activée, Moonshot n’accepte que tool_choice auto|noneOpenClaw ; OpenClaw normalise les valeurs incompatibles à auto.
  1. Directive en ligne sur le message (s’applique uniquement à ce message).
  2. Remplacement de session (défini en envoyant un message contenant uniquement une directive).
  3. Par défaut par agent (agents.list[].thinkingDefault dans la config).
  4. Par défaut global (agents.defaults.thinkingDefault dans la config).
  5. Secours : valeur par défaut déclarée par le fournisseur si disponible ; sinon, les modèles dotés de capacités de raisonnement résolvent à medium ou au niveau non-off supporté le plus proche pour ce modèle, et les modèles sans raisonnement restent off.
  • Envoyez un message qui est uniquement la directive (espaces autorisés), par ex. /think:medium ou /t high.
  • Cela reste en vigueur pour la session en cours (par expéditeur par défaut). Utilisez /think default pour effacer la priorité de session et hériter de la valeur par défaut configurée/du fournisseur ; les alias incluent inherit, clear, reset et unpin.
  • /think off stocke une priorité explicite de désactivation. Il désactive la réflexion jusqu’à ce que vous modifiiez ou effaciez la priorité de session.
  • Une réponse de confirmation est envoyée (Thinking level set to high. / Thinking disabled.). Si le niveau n’est pas valide (par ex. /thinking big), la commande est rejetée avec un indice et l’état de la session reste inchangé.
  • Envoyez /think (ou /think:) sans argument pour voir le niveau de réflexion actuel.
  • OpenClaw intégré : le niveau résolu est transmis à l’exécution de l’agent OpenClaw en cours de processus.
  • Backend CLI Claude : les niveaux autres que « off » sont transmis à Claude Code sous la forme CLI--effort lors de l’utilisation de claude-cliCLI ; voir Backends CLI.
  • Niveaux : on|off|default.
  • Un message contenant uniquement une directive active/désactive la priorité du mode rapide de session et répond Fast mode enabled. / Fast mode disabled.. Utilisez /fast default pour effacer la priorité de session et hériter de la valeur par défaut configurée ; les alias incluent inherit, clear, reset et unpin.
  • Envoyez /fast (ou /fast status) sans mode pour voir l’état actuel effectif du mode rapide.
  • OpenClaw résout le mode rapide dans cet ordre :
    1. Priorité de directive en ligne uniquement /fast on|off (/fast default efface ce niveau)
    2. Priorité de session
    3. Défaut par agent (agents.list[].fastModeDefault)
    4. Configuration par model : agents.defaults.models["<provider>/<model>"].params.fastMode
    5. Remplacement (Fallback) : off
  • Pour openai/*OpenAI, le mode rapide correspond au traitement prioritaire OpenAI en envoyant service_tier=priority sur les requêtes Responses prises en charge.
  • Pour les modèles openai/* pris en charge par Codex, le mode rapide envoie le même indicateur service_tier=priority sur les réponses Codex. OpenClaw conserve un commutateur /fast partagé sur les deux chemins d’authentification.
  • Pour les requêtes anthropic/* publiques directes, y compris le trafic authentifié OAuth envoyé à api.anthropic.com, le mode rapide correspond aux niveaux de service Anthropic : /fast on définit service_tier=auto, /fast off définit service_tier=standard_only.
  • Pour minimax/* sur le chemin compatible Anthropic, /fast on (ou params.fastMode: true) réécrit MiniMax-M2.7 en MiniMax-M2.7-highspeed.
  • Les paramètres de model serviceTier / service_tier explicites de Anthropic remplacent la valeur par défaut du mode rapide lorsque les deux sont définis. OpenClaw ignore toujours l’injection du niveau de service Anthropic pour les URL de base de proxy non Anthropic.
  • /status affiche Fast uniquement lorsque le mode rapide est activé.
  • Niveaux : on (minimal) | full | off (par défaut).
  • Un message contenant uniquement la directive bascule le mode verbeux de la session et répond Verbose logging enabled. / Verbose logging disabled. ; les niveaux non valides renvoient un indice sans modifier l’état.
  • /verbose off stocke une substitution explicite de session ; effacez-la via l’interface Sessions en choisissant inherit.
  • Les expéditeurs autorisés de canaux externes peuvent rendre persistante la substitution verbeuse de session. Les clients internes de passerine/webchat ont besoin de operator.admin pour la rendre persistante.
  • La directive en ligne n’affecte que ce message ; les valeurs par défaut de session/globales s’appliquent sinon.
  • Envoyez /verbose (ou /verbose:) sans argument pour voir le niveau verbeux actuel.
  • Lorsque le mode verbeux est activé, les agents qui émettent des résultats d’outil structurés renvoient chaque appel d’outil sous forme de message contenant uniquement des métadonnées, préfixé par <emoji> <tool-name>: <arg> si disponible. Ces résumés d’outils sont envoyés dès que chaque outil démarre (bulles séparées), et non sous forme de deltas de diffusion en continu.
  • Les résumés d’échec d’outils restent visibles en mode normal, mais les suffixes de détails d’erreur bruts sont masqués sauf si verbeux est full.
  • Lorsque verbeux est full, les sorties d’outils sont également transmises après achèvement (bulle séparée, tronquée à une longueur sûre). Si vous basculez /verbose on|full|off pendant qu’une exécution est en cours, les bulles d’outils suivantes respectent le nouveau paramètre.
  • agents.defaults.toolProgressDetail contrôle la forme des résumés d’outils /verbose et des lignes d’outil de brouillon de progression. Utilisez "explain" (par défaut) pour des étiquettes compactes telles que 🛠️ Exec: checking JS syntax ; utilisez "raw" lorsque vous souhaitez également que la commande brute/détail soit ajoutée pour le débogage. agents.list[].toolProgressDetail par agent remplace la valeur par défaut.
    • explain : 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw : 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js
  • Niveaux : on | off (par défaut).
  • Un message constitué uniquement d’une directive active/désactive la sortie de trace du plugin de session et répond Plugin trace enabled. / Plugin trace disabled..
  • Une directive en ligne n’affecte que ce message ; sinon, les valeurs par défaut de session/globales s’appliquent.
  • Envoyez /trace (ou /trace:) sans argument pour voir le niveau de trace actuel.
  • /trace est plus restrictif que /verbose : il n’expose que les lignes de trace/débogage appartenant au plugin, telles que les résumés de débogage de la Mémoire Active.
  • Les lignes de trace peuvent apparaître dans /status et sous forme de message de diagnostic de suivi après la réponse normale de l’assistant.
  • Niveaux : on|off|stream.
  • Un message constitué uniquement d’une directive active/désactive l’affichage des blocs de réflexion dans les réponses.
  • Lorsqu’elle est activée, le raisonnement est envoyé comme un message distinct préfixé par Thinking.
  • stream : diffuse le raisonnement pendant la génération de la réponse lorsque le channel actif prend en charge les aperçus de raisonnement, puis envoie la réponse finale sans le raisonnement.
  • Alias : /reason.
  • Envoyez /reasoning (ou /reasoning:) sans argument pour voir le niveau de raisonnement actuel.
  • Ordre de résolution : directive en ligne, puis remplacement de session, puis valeur par défaut par agent (agents.list[].reasoningDefault), puis valeur par défaut globale (agents.defaults.reasoningDefault), puis repli (off).

Les balises de raisonnement de modèle local malformées sont gérées de manière prudente. Les blocs <think>...</think> fermés restent masqués sur les réponses normales, et le raisonnement non fermé après du texte déjà visible est également masqué. Si une réponse est entièrement encapsulée dans une seule balise d’ouverture non fermée et serait autrement livrée comme du texte vide, OpenClaw supprime la balise d’ouverture malformée et livre le texte restant.

  • Le corps de la sonde de heartbeat est l’invite de heartbeat configurée (par défaut : Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). Les directives en ligne dans un message de heartbeat s’appliquent comme d’habitude (mais évitez de modifier les valeurs par défaut de session via les heartbeats).
  • La livraison des signaux de cœur (heartbeats) par défaut ne comprend que la charge utile finale. Pour envoyer également le message distinct Thinking (lorsqu’il est disponible), définissez agents.defaults.heartbeat.includeReasoning: true ou agents.list[].heartbeat.includeReasoning: true par agent.
  • Le sélecteur de réflexion (thinking) du chat web reflète le niveau stocké de la session issu du magasin/paramètres de session entrants lors du chargement de la page.
  • Le choix d’un autre niveau écrit immédiatement la priorité (override) de session via sessions.patch ; il n’attend pas le prochain envoi et ce n’est pas une priorité thinkingOnce unique.
  • La première option est toujours le choix d’annulation de la priorité. Elle affiche Inherited: <resolved level>, y compris Inherited: Off lorsque la réflexion héritée est désactivée.
  • Les choix explicites du sélecteur utilisent leurs libellés de niveau directs tout en préservant les libellés du fournisseur lorsqu’ils sont présents (par exemple Maximum pour une option max étiquetée par le fournisseur).
  • Le sélecteur utilise thinkingLevels renvoyé par la ligne/paramètres par défaut de la session de passerelle, avec thinkingOptions conservé comme une liste de libellés héritée. L’interface utilisateur du navigateur ne conserve pas sa propre liste de regex de fournisseur ; les plugins possèdent des ensembles de niveaux spécifiques au modèle.
  • /think:<level> fonctionne toujours et met à jour le même niveau de session stocké, de sorte que les directives de chat et le sélecteur restent synchronisés.
  • Les plugins de fournisseur peuvent exposer resolveThinkingProfile(ctx) pour définir les niveaux pris en charge et le niveau par défaut du modèle.
  • Les plugins de fournisseur qui proxyent les modèles Claude doivent réutiliser resolveClaudeThinkingProfile(modelId) de openclaw/plugin-sdk/provider-model-shared afin que les catalogues directs Anthropic et proxy restent alignés.
  • Chaque niveau de profil possède un id canonique stocké (off, minimal, low, medium, high, xhigh, adaptive ou max) et peut inclure un label d’affichage. Les fournisseurs binaires utilisent { id: "low", label: "on" }.
  • Les hooks de profil reçoivent les faits de catalogue fusionnés lorsqu’ils sont disponibles, y compris reasoning, compat.thinkingFormat et compat.supportedReasoningEfforts. Utilisez ces faits pour exposer des profils binaires ou personnalisés uniquement lorsque le contrat de demande configuré prend en charge la charge utile correspondante.
  • Les plugins d’outils qui doivent valider une substitution de réflexion explicite doivent utiliser api.runtime.agent.resolveThinkingPolicy({ provider, model }) ainsi que api.runtime.agent.normalizeThinkingLevel(...) ; ils ne doivent pas conserver leurs propres listes au niveau fournisseur/modèle.
  • Les plugins d’outils ayant accès aux métadonnées de modèle personnalisé configurées peuvent transmettre catalog à resolveThinkingPolicy afin que les opt-ins compat.supportedReasoningEfforts soient reflétés dans la validation côté plugin.
  • Les hooks hérités publiés (supportsXHighThinking, isBinaryThinking et resolveDefaultThinkingLevel) restent en tant qu’adaptateurs de compatibilité, mais les nouveaux ensembles de niveaux personnalisés doivent utiliser resolveThinkingProfile.
  • Les lignes/valeurs par défaut de Gateway exposent thinkingLevels, thinkingOptions et thinkingDefault afin que les clients ACP/chat affichent les mêmes identifiants et étiquettes de profil que ceux utilisés par la validation à l’exécution.