Aller au contenu

Auto-continue

ht autocontinue contrôle le moteur d’auto-continue — la pièce qui décide s’il faut envoyer automatiquement Continue à un agent à chaque notification de fin de tour. Le CLI expose tout ce que le panneau Settings expose, plus des contrôles par surface (déclenchement manuel, pause, reprise) que l’UI n’a pas.

Fenêtre de terminal
ht autocontinue status
# engine heuristic
# dryRun false
# cooldownMs 3000
# maxConsecutive 5
# model anthropic/claude-haiku-4-5-20251001
# apiKeyEnv ANTHROPIC_API_KEY
# paused (none)
ht autocontinue status --json

Prend un instantané de la configuration du moteur et de la liste actuelle des surfaces en pause. Peu coûteux ; pas d’I/O.

Fenêtre de terminal
ht autocontinue audit
# 14:02:11 fired surface:1 next plan step: M3
# 14:02:18 skipped surface:1 cooldown — 1842ms remaining
# 14:02:33 paused surface:1 manual pause via ht/UI
# 14:02:55 resumed surface:1 manual resume via ht/UI
ht autocontinue audit --limit 5
ht autocontinue audit --json

Affiche les décisions récentes provenant du tampon circulaire d’audit en mémoire (plafond 50). Par défaut 20 entrées ; --limit N (1–50) le resserre. Chaque ligne est <time> <outcome> <surface> <reason>. Le suffixe (model) marque les décisions où le LLM a été consulté.

OutcomeSignification
firedLe moteur a envoyé Continue (ou l’instruction du modèle) dans la surface.
dry-runLe moteur aurait déclenché mais dryRun est activé — instruction journalisée, aucun texte envoyé.
skippedL’heuristique / le cooldown / le garde-fou anti-emballement ont demandé d’attendre. La raison indique laquelle.
pausedÉvénement administratif provenant de pause (CLI ou UI).
resumedÉvénement administratif provenant de resume.
Fenêtre de terminal
ht autocontinue set --engine heuristic
ht autocontinue set --engine hybrid --dry-run false --cooldown 5000
ht autocontinue set --max 10 --model claude-sonnet-4-6
ht autocontinue set --api-key-env MY_CLAUDE_KEY

Persiste une mise à jour partielle des paramètres. Au moins une option est requise :

OptionParamètreValidation
--engine <X>engineoff · heuristic · model · hybrid
--dry-run <bool>dryRuntrue / false / 1 / 0 / yes / no
--cooldown <ms>cooldownMsborné à 0–60000
--max <n>maxConsecutiveborné à 1–50
--model <name>modelNametoute chaîne non vide
--api-key-env <var>modelApiKeyEnvtoute chaîne non vide

Renvoie un écho d’une ligne du nouvel état :

ok — engine=hybrid dryRun=false cooldown=5000ms max=5

L’UI Settings se réaffiche à la prochaine ouverture ; le moteur relit sa config à chaque dispatch, donc les changements prennent effet immédiatement pour la prochaine fin de tour.

Fenêtre de terminal
ht autocontinue fire surface:1
# fired next plan step: M3
ht autocontinue fire surface:2
# skipped no plan published

Force un dispatch sur <surface> en utilisant le même pipeline de recherche utilisé pour les notifications de fin de tour (plan le plus récemment mis à jour dans l’espace de travail propriétaire, 12 dernières lignes du tail de la surface). Utile lorsque :

  • Vous testez une décision heuristique / modèle sans attendre qu’un agent déclenche une vraie notification.
  • Vous pilotez le moteur depuis un script qui sait que l’agent a terminé mais n’a pas émis de ht notify.

La sortie <kind> <reason> correspond à la forme du tampon circulaire d’audit pour que vous puissiez lire la décision en une ligne. Notez que fire respecte toujours chaque garde-fou : cooldown, anti-emballement, en pause, dry-run, engine=off s’appliquent tous.

Fenêtre de terminal
ht autocontinue pause surface:1
# ok — paused: surface:1

Arrête l’auto-continue pour une surface spécifique. Les dispatchs ultérieurs renvoient paused jusqu’à ce que vous fassiez resume (ou jusqu’à ce que l’utilisateur tape dans ce terminal — notifyHumanInput provenant d’une vraie frappe n’efface pas une pause manuelle). Utile pour :

  • Épingler un agent qui est sur le point de faire quelque chose de destructeur.
  • Mettre en pause une surface tout en laissant le reste de l’espace de travail réactif.

La pause est par surface ; le réglage du moteur (engine: heuristic) reste activé pour tout le reste.

Fenêtre de terminal
ht autocontinue resume surface:1
# ok — no surfaces paused

Efface la pause sur <surface>. Effet de bord : réinitialise aussi le compteur d’emballement pour cette surface, donc une surface qui était en pause après avoir atteint maxConsecutive peut redéclencher immédiatement.

Fenêtre de terminal
ht autocontinue set --engine heuristic --dry-run true
# … exercise some agent turns, watch `ht autocontinue audit` …
ht autocontinue set --dry-run false
Fenêtre de terminal
for s in $(ht list-surfaces --json | jq -r '.[].id'); do
ht autocontinue pause "$s"
done
# … long build …
for s in $(ht list-surfaces --json | jq -r '.[].id'); do
ht autocontinue resume "$s"
done

Observer le moteur réagir à un déclenchement forcé

Section intitulée « Observer le moteur réagir à un déclenchement forcé »
Fenêtre de terminal
ht autocontinue set --engine heuristic --dry-run true
ht autocontinue fire surface:1
ht autocontinue audit --limit 1