Envoyer des consignes pendant une tâche
Donnez une nouvelle consigne à un agent en cours d’exécution et suivez sa transmission.
Envoyer une consigne
Section intitulée « Envoyer une consigne »Créez un contrôleur de réorientation et passez-le à la tâche. Pendant l’exécution, send() envoie une nouvelle consigne et se termine lorsqu’Outpost peut indiquer comment elle a été transmise.
send() se résout quand l’agent reçoit le texte, pas quand il l’a appliqué. L’agent le lit comme un message utilisateur de plus ; le brief reste valable.
Comment la consigne arrive à chaque agent
Section intitulée « Comment la consigne arrive à chaque agent »| Agent | mode | Ce qui se passe |
|---|---|---|
| Harness intégré | injected | Ajoutée à la requête suivante au modèle, après les résultats d’outils en cours. Un modèle qui allait terminer continue. |
| Claude Code | injected | Écrite sur son entrée stream-json. Elle rejoint le tour en cours, ou passe ensuite dans le même processus si Claude répondait déjà. |
| Codex | injected | Un dispatch avec steering lance codex app-server. turn/steer ajoute le texte au tour actif, ou démarre le suivant. |
| Copilot CLI, Kimi Code, Antigravity | resumed | Outpost arrête le processus dès que sa conversation est connue, puis la reprend avec le texte dans la même sandbox. |
Avec resumed, l’action en cours est interrompue, mais les fichiers déjà modifiés restent dans le workspace. Tous les fournisseurs de sandbox transmettent l’entrée en direct ; sur Vercel et Daytona, chaque consigne coûte une commande du fournisseur et arrive avec un léger délai.
Selon le moment de l’envoi
Section intitulée « Selon le moment de l’envoi »| Vous l’envoyez | Ce qui se passe | mode |
|---|---|---|
| Avant le démarrage de l’agent | Ajoutée au prompt. | injected |
| Pendant le tour | Remise comme dans le tableau ci-dessus. | injected / resumed |
| Après la réponse de l’agent | Outpost reprend la conversation dans un nouveau tour : le résultat en tient compte. | resumed |
| Quand aucun dispatch n’utilise le contrôleur | Attend le prochain dispatch qui reçoit le contrôleur. | ― |
Une consigne que le dispatch ne peut pas remettre, par exemple parce que l’agent n’a jamais signalé de conversation, est rejetée à la fin du dispatch. Le rejet est une OutpostError de code steering, avec le texte dans details.text.
Envoyer une consigne à un sous-agent
Section intitulée « Envoyer une consigne à un sous-agent »Chaque exécution d’un sous-agent intégré a un identifiant, fourni par son événement subagent. Passez-le dans subagent pour ne viser que cette exécution.
Référence API : SteeringSendOptions.
Une consigne encore en attente quand son exécution se termine est rejetée avec le code steering et l’identifiant dans details.subagent.
Réutiliser le contrôleur
Section intitulée « Réutiliser le contrôleur »Un contrôleur sert un dispatch à la fois, sur toutes ses passes ; l’attacher à un second dispatch concurrent échoue. Une fois un dispatch terminé, le suivant peut l’utiliser. close() rejette les consignes en attente et tout send() ultérieur.
result.resume() et result.fork() n’en héritent pas : repassez steering dans leurs options.
Dans un workflow, renvoyez steering depuis la request d’un defineAgentTask() ou d’un defineIsolatedTask(). Avec un agent de secours, la réorientation suit le candidat en cours d’exécution.
Événements et consommation
Section intitulée « Événements et consommation »Chaque remise émet un événement d’agent steer avec text, mode, pass, et subagentId quand un sous-agent l’a reçue. Le reporter de terminal l’affiche, et la conversation l’enregistre comme message utilisateur.
Une remise resumed termine le tour interrompu par un événement stopped de raison steered ; ce tour figure dans result.turns avec interrupted: "steering". Une passe émet toujours un seul summary, et result.usage inclut les tours interrompus. Un rejeu reproduit les exécutions réorientées tour par tour.
- Les consignes vivent en mémoire. Pour des questions et réponses qui doivent survivre à un redémarrage, utilisez les tâches interactives.
- Un dispatch avec
steeringrefuse les agents qui ne peuvent ni recevoir d’entrée en direct ni reprendre une conversation, dont les agents de rejeu. - La réorientation de Codex utilise le protocole
app-server, que Codex marque comme expérimental. - Les sous-agents des agents CLI ne sont pas adressables : une consigne avec
subagentest rejetée dès qu’un tour CLI la voit.
API : createSteering · Steering · SteeringSendOptions · SteeringDelivery · DispatchOptions.