Concept internals

Indicateurs de saisie

Les indicateurs de saisie sont envoyés au canal de discussion pendant qu’une exécution est active. Utilisez agents.defaults.typingMode pour contrôler quand la saisie commence et typingIntervalSeconds pour contrôler à quelle fréquence elle est actualisée.

Valeurs par défaut

Quand agents.defaults.typingMode est non défini, OpenClaw conserve le comportement historique :

  • Discussions directes : la saisie commence immédiatement une fois que la boucle du modèle démarre.
  • Discussions de groupe avec une mention : la saisie commence immédiatement.
  • Discussions de groupe sans mention : la saisie ne commence que lorsque le texte du message commence à être diffusé en streaming.
  • Exécutions Heartbeat : la saisie commence lorsque l’exécution Heartbeat démarre si la cible Heartbeat résolue est une discussion compatible avec la saisie et que la saisie n’est pas désactivée.

Modes

Définissez agents.defaults.typingMode sur l’une des valeurs suivantes :

  • never - aucun indicateur de saisie, jamais.
  • instant - commence la saisie dès que la boucle du modèle démarre, même si l’exécution renvoie ensuite uniquement le jeton de réponse silencieuse.
  • thinking - commence la saisie au premier delta de raisonnement (nécessite reasoningLevel: "stream" pour l’exécution).
  • message - commence la saisie au premier delta de texte non silencieux (ignore le jeton silencieux NO_REPLY).

Ordre du « déclenchement le plus tôt » : nevermessagethinkinginstant

Configuration

{
  agent: {
    typingMode: "thinking",
    typingIntervalSeconds: 6,
  },
}

Vous pouvez remplacer le mode ou la cadence par session :

{
  session: {
    typingMode: "message",
    typingIntervalSeconds: 4,
  },
}

Notes

  • Le mode message n’affiche pas la saisie pour les réponses uniquement silencieuses lorsque toute la charge utile est exactement le jeton silencieux (par exemple NO_REPLY / no_reply, avec une correspondance insensible à la casse).
  • thinking ne se déclenche que si l’exécution diffuse le raisonnement en streaming (reasoningLevel: "stream"). Si le modèle n’émet pas de deltas de raisonnement, la saisie ne démarre pas.
  • La saisie Heartbeat est un signal de disponibilité pour la cible de livraison résolue. Elle démarre au début de l’exécution Heartbeat au lieu de suivre le minutage du flux message ou thinking. Définissez typingMode: "never" pour la désactiver.
  • Les Heartbeats n’affichent pas la saisie lorsque target: "none", lorsque la cible ne peut pas être résolue, lorsque la livraison par discussion est désactivée pour le Heartbeat, ou lorsque le canal ne prend pas en charge la saisie.
  • typingIntervalSeconds contrôle la cadence d’actualisation, pas l’heure de début. La valeur par défaut est de 6 secondes.

Voir aussi