La boîte de réception de l'agent est la file d'attente par agent où patientent les requêtes lorsque la machine est en veille, que le daemon est hors ligne ou que l'agent est déjà occupé. Chaque requête y attend avec son id, son auteur et son état d'approbation, et le daemon traite la boîte de réception dans l'ordre dès son retour. Une requête n'est jamais perdue parce qu'un capot d'ordinateur portable a été fermé, et ne s'exécute jamais deux fois parce que le daemon a redémarré.
Les agents local-first paient leurs avantages par leur disponibilité. La boîte de réception permet de limiter ce coût.
Ce qui entre dans la boîte de réception
Toutes les requêtes, systématiquement. Même lorsque la machine est en ligne, une requête passe par la boîte de réception avant d'atteindre le runtime ; il se trouve simplement que la file est vide. La boîte de réception fonctionne par agent : deux agents sur une même machine ont deux boîtes de réception et s'exécutent en parallèle ; un agent traite sa boîte de réception de manière séquentielle, une requête à la fois, afin qu'un répertoire de travail ne soit jamais modifié par deux exécutions simultanées.
Une boîte de réception pendant la nuit : trois requêtes approuvées attendent dans l'ordre ; une nécessite encore le propriétaire ; la machine se réveille et les traite.
Ordre et état
Les requêtes s'exécutent dans l'ordre où elles ont été approuvées, et non dans l'ordre où elles ont été envoyées. Une requête émanant d'une personne disposant d'une autorisation permanente est approuvée dès son arrivée et prend sa place ; une requête en attente de l'approbation du propriétaire conserve sa position, mais est ignorée tant qu'elle n'est pas approuvée. Le propriétaire peut supprimer ou réorganiser les éléments de la boîte de réception avant leur exécution.
Chaque élément conserve son état pendant l'attente : pending (nécessite une approbation), approved (en attente de la machine) ou running (en cours d'exécution au moment où la machine s'est mise en veille). Voir ids de requête et exécutions reprenables.
Au réveil
Lorsque le daemon revient, il interroge le serveur pour obtenir du travail, reçoit la boîte de réception dans l'ordre et :
- Reprend toute requête qui était en cours d'exécution lorsque la machine s'est mise en veille, à l'aide de la référence de session runtime enregistrée. Même id, même session, une simple interruption dans la timeline plutôt qu'une exécution en double.
- Exécute les requêtes approuvées une par une.
- Laisse les requêtes en attente à leur place jusqu'à ce que le propriétaire réponde.
Les approbations restées sans réponse plus longtemps que le TTL (24 heures par défaut) ont alors expiré, et les requêtes sont marquées expired au lieu d'être exécutées alors qu'elles sont obsolètes.
Garder la machine accessible
La boîte de réception sécurise les périodes hors ligne ; elle ne les rend pas plus rapides. Trois habitudes permettent de les raccourcir.
- Installez le daemon en tant que service avec
muti service install. Il démarre à la connexion et redémarre après un plantage, si bien que « le daemon n'est pas lancé » ne sera plus une raison d'attendre. - Désactivez la mise en veille pendant les heures de travail sur un ordinateur fixe, ou branchez votre ordinateur portable et configurez-le pour ne pas se mettre en veille sur secteur. Un capot fermé, c'est un agent hors ligne.
- Vérifiez
muti statusen cas de doute. La commande indique si le daemon est connecté et l'heure de sa dernière vérification.
Ce que voit le demandeur
Sa requête dans la salle avec son id et un état : « queued, machine offline since 22:00 » ou « waiting for Noah’s approval ». La personne peut l'annuler ou y ajouter un message. Lors de son exécution, la timeline défile comme d'habitude. Personne n'a besoin de la renvoyer.
Foire aux questions
La boîte de réception se trouve-t-elle sur ma machine ou dans la salle ? Dans le service de salle. C'est ce qui lui permet d'accepter des requêtes pendant que la machine est éteinte, et ce qui permet au propriétaire de la réorganiser depuis son téléphone.
Puis-je vider la boîte de réception ? Oui. Supprimer des éléments annule ces requêtes ; les demandeurs voient l'état cancelled.
Et si la machine reste éteinte pendant des jours ? Les requêtes attendent. Les approbations expirent selon leur propre TTL ; les requêtes approuvées n'expirent pas, bien que le propriétaire puisse vouloir faire du tri avant une absence prolongée.
Est-ce également valable pour les requêtes issues de plateformes de messagerie ? Oui. Une mention Feishu ou Slack devient une requête comme une autre et attend dans la même boîte de réception. Voir la conception Feishu.
Fermez le capot. Les requêtes seront toujours là au matin. Donnez une salle à votre agent.
Publié le