Subagents
Un subagent est un assistant qu’un agent démarre pendant son propre turn, en s’appuyant sur la fonction de subagent ou de tâche du fournisseur : une recherche dans le code, la relecture d’un fichier, un travail annexe avec un autre modèle. Il traite une partie de la tâche et renvoie un résultat à l’agent. OAR affiche chacun d’eux dans le fil de la conversation et conserve ce qu’il a fait, pour que vous puissiez voir comment l’agent est arrivé à sa réponse.
Ce n’est pas la même chose qu’une session d’agent.
Un subagent vit à l’intérieur d’un seul turn d’une conversation et n’a pas de
conversation à lui. Une session d’agent est une conversation distincte de
votre liste, qu’un agent démarre avec relay_.
Dans le fil de la conversation #
Pendant que le turn tourne, chaque subagent a sa bulle à l’intérieur de la bulle en direct du turn. Un subagent qui en démarre un autre l’affiche imbriqué dans sa propre bulle. L’en-tête de la bulle montre :
| Élément | Ce que c’est |
|---|---|
| Nom | Le nom ou la description du subagent, tel que le fournisseur le transmet |
| Dernière étape | Une ligne, affichée tant que la bulle est repliée : le nombre d’étapes et la plus récente, comme 3 steps · 🛠️ Tool (Read): index., ou la fin de son texte s’il n’a encore fait aucune étape. Les chemins de fichiers sont réduits au nom du fichier |
| État | ● Running (En cours) pendant qu’il travaille, puis la façon dont il s’est terminé : Completed (Terminé), Failed (Échec) ou, pour un subagent que vous avez arrêté, Cancelled (Annulé) |
| Stop (Arrêter) | Arrête ce subagent. Le bouton disparaît une fois le subagent terminé. Voir Arrêter un subagent |
Ajouté en 0.9.6 Une bulle démarre repliée sur cet en-tête, si bien qu’un turn avec de nombreux subagents reste court à faire défiler. Cliquez ou appuyez n’importe où sur l’en-tête pour l’ouvrir et voir les réflexions, les étapes et le texte du subagent, puis cliquez à nouveau pour la replier. Ce que vous avez choisi à la main est conservé tant que la bulle existe.
Quand le turn est terminé, les bulles cèdent la place à la réponse finale. En dessous, la réponse liste les subagents du turn sous forme de lignes, dans l’ordre où ils ont démarré. Les subagents démarrés par un autre subagent n’y figurent pas ; vous les trouvez dans l’enregistrement de leur parent. Une ligne montre :
- le nom du subagent, qui ouvre son enregistrement,
- son état : Running, Starting (Démarrage), ✓ Completed, ✗ Failed ou ■ Stopped (Arrêté), avec in the background (en arrière-plan) et record cut (enregistrement tronqué) le cas échéant,
- son modèle, son type (comme
Explore, ou Subagent quand aucun n’est indiqué), les tokens qu’il a utilisés et la durée pendant laquelle il a tourné.
Seuls Claude et DeepSeek transmettent le modèle, le type et les tokens. Sur les autres fournisseurs, la ligne affiche Subagent et omet le modèle et les tokens. La ligne indique ■ Stopped pour un subagent que la bulle en direct appelait Cancelled ; les deux veulent dire la même chose.
La visionneuse de subagent #
Ajouté en 0.9.10 La visionneuse montre l’enregistrement complet d’un subagent : ce qu’il a pensé, quels outils il a appelés avec quelle entrée et ce qui est revenu, le texte qu’il a écrit, et les subagents qu’il a lui-même démarrés, dans l’ordre où cela s’est produit.
L’ouvrir #
Cliquez sur le nom du subagent :
- dans la ligne sous une réponse terminée,
- dans le panneau des tâches au-dessus de la zone de saisie, pour un subagent Claude ou DeepSeek qui travaille en arrière-plan (voir Tâches de fond),
- sur une ligne enfant dans l’enregistrement d’un autre subagent.
La bulle d’un subagent dans le turn en direct n’ouvre pas la visionneuse. Utilisez le panneau des tâches, si un subagent Claude ou DeepSeek y est listé, ou attendez que la réponse terminée le liste.
Ajouté en 0.9.11 Dans une vue partagée en lecture seule, la ligne d’un subagent ouvre aussi son enregistrement, en lecture seule, sans Stop, et avec les chemins de l’hôte du relais filtrés comme le reste du partage. En 0.9.10, les noms y étaient du texte simple.
Ce qu’elle montre #
L’en-tête contient le nom, un bouton Stop tant que le subagent tourne, et une ligne avec son modèle, son type, son état, background (arrière-plan) le cas échéant, ses tokens et sa durée. En dessous, l’enregistrement se lit depuis le haut :
| Entrée | Comment elle se lit |
|---|---|
| 💭 Réflexion | Sa première ligne. Une réflexion en cours d’écriture est ouverte et affiche Thinking… (Réflexion…) jusqu’à ce que du texte arrive |
| Appel d’outil | Une icône, le nom de l’outil et un résumé d’une ligne, comme la commande ou le fichier. Cliquez dessus pour voir l’entrée complète, quand il y a plus que le résumé |
| Résultat | Result (Résultat) ou Error (Erreur), sa taille, et cut from (réduit de) la taille d’origine quand il a été tronqué (voir Limites). Cliquez dessus pour lire le texte |
| Texte de réponse | Le texte propre du subagent, en Markdown mis en forme. Writing… (Rédaction…) pendant qu’il arrive |
| Agent enfant | Une ligne comme celles sous une réponse. Cliquez sur son nom pour l’ouvrir |
| Note | Une ligne propre au relais, comme celle qui indique que l’enregistrement a été tronqué |
Un enregistrement encore en cours grandit en direct et suit sa fin. Si vous remontez, la visionneuse reste où vous êtes et un bouton New entries ↓ (Nouvelles entrées) vous ramène en bas. Un enregistrement terminé s’ouvre en haut. Un pli que vous avez ouvert reste ouvert pendant que l’entrée change.
Seule une page où la visionneuse est ouverte reçoit l’enregistrement à mesure qu’il grandit. Si un lot est manqué sur une connexion lente, ou si la connexion tombe, la visionneuse récupère d’elle-même ce qui manque.
Si rien n’est encore enregistré, elle affiche Nothing recorded yet. Entries appear as the agent works. (Rien d’enregistré pour l’instant. Les entrées apparaissent à mesure que l’agent travaille.) Pour un subagent terminé sans enregistrement, elle affiche Nothing was recorded for this agent. (Rien n’a été enregistré pour cet agent.) Un enregistrement que le relais n’a pas pu charger affiche This agent's record could not be loaded. (Impossible de charger l’enregistrement de cet agent.)
Passer d’un subagent à l’autre et fermer #
Une ligne enfant s’ouvre sur place. Un bouton en haut à gauche, comme ‹ Review agent, nomme le parent et vous y ramène. Fermer la visionneuse, par n’importe lequel des moyens ci-dessous, revient à la conversation, pas au parent.
Pour la fermer, appuyez sur ×, appuyez sur Échap, cliquez en dehors de la fenêtre ou utilisez le retour du navigateur ou du téléphone. Sur un téléphone, elle occupe tout l’écran.
Limites #
| Quoi | Limite |
|---|---|
| Un résultat d’outil | Les 4 premiers Ko sont conservés. L’entrée indique la taille de l’original |
| Entrées dans un enregistrement | 2000. L’enregistrement se termine alors par une note et l’en-tête affiche record cut at its limit (enregistrement tronqué à sa limite) |
| Enregistrements plus anciens | Les enregistrements créés avant l’existence de la visionneuse sont reconstitués à partir de ce qui a été sauvegardé et affichent recorded before the full record existed (enregistré avant l’existence de l’enregistrement complet). Ils sont plus courts |
Une session Claude qui tournait déjà quand vous êtes passé à 0.9.10 n’enregistre pas d’enregistrement complet de subagent tant que son worker n’a pas redémarré. ☠️ Kill session (Tuer la session) sur une session inactive suffit ; le message suivant démarre un nouveau worker.
Combien de temps la sortie des outils est conservée #
Ajouté en 0.9.10 Les entrées et résultats d’outils d’un subagent peuvent être volumineux ; le relais les retire donc des anciens enregistrements. Un enregistrement n’est jamais supprimé et le subagent reste listé.
Settings → General → Keep sub-agent tool output (Réglages → Général → Conserver la sortie des outils des subagents) règle combien de temps les entrées et les résultats restent. Les choix sont 7 days (7 jours), 14 days (14 jours), 30 days (30 jours), 90 days (90 jours) et Always (Toujours). La valeur par défaut est 90 days. Voir aussi Settings.
Peu après le démarrage du relais, puis une fois par jour, celui-ci passe en revue les appels et résultats d’outils écrits pour la dernière fois il y a plus de ce nombre de jours, dans les subagents qui ne tournent plus :
- un appel d’outil garde son résumé d’une ligne et affiche Input removed after 90 days (Entrée supprimée après 90 jours), avec le nombre que vous avez choisi ; son entrée complète a disparu,
- un résultat d’outil, ou une erreur, garde sa taille et affiche par exemple Result · 3.2 KB · output removed after 90 days (Résultat · 3.2 KB · sortie supprimée après 90 jours) ; son texte a disparu,
- les réflexions, le texte du subagent, les notes et les agents enfants restent tels quels.
Un subagent encore en cours garde tout, quel que soit son âge. Always désactive le nettoyage. Enregistrer le réglage lance un nettoyage environ cinq secondes plus tard. Une entrée ou un résultat retiré ne revient pas quand vous augmentez le nombre.
En arrière-plan #
Un subagent peut tourner en arrière-plan, de sorte qu’il continue après que
l’agent a répondu. Il apparaît alors aussi comme une ligne dans le panneau des
tâches au-dessus de la zone de saisie, avec son propre bouton Stop. Sur
Claude et DeepSeek, son nom dans le panneau ouvre la visionneuse. Un agent en
arrière-plan sur le moteur SDK de Copilot ne figure que dans le panneau et n’a
pas d’enregistrement. Le fonctionnement du panneau, ce qui met fin à une tâche
de fond et le délai sont décrits dans
Tâches de fond. La ligne d’un subagent Claude ou DeepSeek affiche in
the background, et l’en-tête de la visionneuse background. Son
enregistrement continue de grandir entre les turns. Ajouté en 0.9.12 La ligne
d’un subagent dans le panneau des tâches compte ses étapes (appels d’outils),
comme 22 steps, à la manière de sa bulle repliée, sur Claude, DeepSeek et le
moteur SDK de Copilot.
Arrêter un subagent #
Stop se trouve à deux endroits : sur la bulle du subagent pendant que le turn tourne, et dans l’en-tête de la visionneuse. Les deux l’affichent pour tout subagent en cours, sur tous les fournisseurs, que l’arrêt de celui-ci soit possible ou non. Un subagent en arrière-plan peut aussi être arrêté depuis le panneau des tâches.
Ce qui peut être arrêté isolément :
- Un subagent background sur Claude ou DeepSeek, et un agent en arrière-plan sur le moteur SDK de Copilot (depuis le panneau des tâches).
- Rien d’autre n’est confirmé. Un subagent qui tourne à l’intérieur du turn sur Claude ou DeepSeek ne peut pas être arrêté isolément, pas plus qu’aucun subagent sur Claude Cloud, Cursor ou Grok.
Quand un subagent ne peut pas être arrêté, le clic se solde par un refus. Le bouton de la bulle devient Stop unavailable (Arrêt indisponible), et une ligne commençant par System note: Could not stop this subagent (Note système : impossible d’arrêter ce subagent) apparaît parmi les étapes du subagent. Dans la visionneuse, le bouton affiche Stopping… (Arrêt en cours…) pendant au plus 15 secondes, puis revient à Stop ; il ne devient pas Stop unavailable. Utilisez plutôt Stop sur le turn entier ; voir Pendant qu’un turn tourne.
Quand un arrêt fonctionne, le subagent affiche ensuite Stopped dans les lignes et la visionneuse, et Cancelled dans la bulle en direct.
Par fournisseur #
| Fournisseur | Ce que contient la visionneuse | Arrêter un seul subagent |
|---|---|---|
| Claude | Tout : les réflexions, chaque appel d’outil avec son entrée et son résultat, le texte, les agents enfants, le modèle, le type et les tokens | Ceux en arrière-plan |
| DeepSeek Ajouté en 0.9.17 | Comme Claude. Le modèle affiché est le modèle DeepSeek sur lequel le subagent a tourné, le modèle du chat, ou DeepSeek Flash pour un subagent demandé en tant que haiku ; voir DeepSeek |
Ceux en arrière-plan |
| GitHub Copilot et OpenAI, moteur SDK | Les subagents qui tournent à l’intérieur du turn : réflexions, étapes et texte, sur un seul niveau (pas d’agents enfants), sans modèle ni tokens. Les agents en arrière-plan n’ont pas d’enregistrement, seulement une ligne dans le panneau des tâches | Les agents en arrière-plan, depuis le panneau des tâches |
| GitHub Copilot et OpenAI, moteur d’extension | Ce que l’extension transmet ; l’enregistrement peut avoir des trous | Non confirmé |
| Claude Cloud | Réflexions et étapes, avec les agents enfants. Le texte propre du subagent n’est pas publié | Non |
| Cursor | Réflexions, étapes et texte, sur un seul niveau (pas d’agents enfants). Les résultats d’outils ne sont pas transmis | Non |
| Grok | Seulement le fait que le subagent a démarré et la façon dont il s’est terminé. La visionneuse n’a rien à montrer de son côté | Non |
| OpenAI Image | Sans objet | Sans objet |
Le tableau complet des capacités se trouve sur Les fournisseurs en un coup d’œil.