L'inbox dell'agente è la coda dedicata a ciascun agente in cui le richieste attendono quando la macchina è in stop, il daemon è offline o l'agente è già occupato. Ogni richiesta rimane lì con il proprio ID, chi l'ha inviata e il proprio stato di approvazione, e il daemon elabora l'inbox in ordine al suo ritorno. Una richiesta non va mai persa perché il coperchio del portatile è stato chiuso, e non viene mai eseguita due volte perché il daemon si è riavviato.
Gli agenti local-first pagano i propri vantaggi in termini di disponibilità. L'inbox è il modo per ridurre al minimo questo costo.
Cosa finisce nell'inbox
Ogni richiesta, sempre. Anche quando la macchina è online, una richiesta passa attraverso l'inbox prima di raggiungere il runtime; la coda si trova semplicemente a essere vuota. L'inbox è per agente: due agenti su una stessa macchina hanno due inbox distinte ed eseguono in parallelo; un singolo agente elabora la propria inbox in modo seriale, una richiesta alla volta, evitando che una directory di lavoro venga modificata da due esecuzioni contemporaneamente.
Un'inbox durante la notte: tre richieste approvate attendono in ordine; una richiede ancora il proprietario; la macchina si riattiva e le elabora.
Ordine e stato
Le richieste vengono eseguite nell'ordine in cui sono state approvate, non in quello in cui sono state inviate. Una richiesta proveniente da qualcuno con un'autorizzazione permanente viene approvata all'arrivo e prende il suo posto; una richiesta in attesa dell'approvazione del proprietario mantiene la propria posizione, ma viene saltata fino all'approvazione. Il proprietario può rimuovere o riordinare gli elementi nell'inbox prima che vengano eseguiti.
Ciascun elemento mantiene il proprio stato durante l'attesa: pending (in attesa di approvazione), approved (in attesa della macchina) o running (era a metà esecuzione quando la macchina è andata in stop). Vedi ID di richiesta ed esecuzioni riprendibili.
Il risveglio
Quando il daemon si riconnette, esegue il polling per verificare la presenza di lavoro, riceve l'inbox in ordine e:
- Riprende qualsiasi richiesta in esecuzione prima che la macchina andasse in stop, usando il riferimento memorizzato della sessione di runtime. Stesso ID, stessa sessione, un'interruzione nella timeline invece di un'esecuzione duplicata.
- Esegue le richieste approvate una alla volta.
- Lascia le richieste in sospeso al loro posto finché il proprietario non risponde.
Le approvazioni rimaste senza risposta per un periodo superiore al TTL (24 ore per impostazione predefinita) saranno già scadute e le richieste verranno contrassegnate come expired anziché essere eseguite obsolete.
Mantenere la macchina raggiungibile
L'inbox rende sicuri i periodi offline; non li rende veloci. Tre abitudini aiutano ad accorciarli.
- Installa il daemon come servizio con
muti service install. Si avvia al login e si riavvia dopo un crash, così "il daemon non è in esecuzione" smette di essere un motivo di attesa. - Disabilita lo stop durante l'orario di lavoro su un desktop, oppure collega un portatile all'alimentazione e impostalo in modo che non vada in stop. Un coperchio chiuso è un agente offline.
- Controlla
muti statusin caso di dubbio. Mostra se il daemon è connesso e quando ha effettuato l'ultimo polling.
Cosa vede chi invia la richiesta
La propria richiesta nella stanza con il relativo ID e uno stato: "in coda, macchina offline dalle 22:00" o "in attesa dell'approvazione di Noah". È possibile annullarla o aggiungervi un messaggio. Quando viene eseguita, la timeline trasmette in streaming come al solito. Nessuno deve inviare nuovamente nulla.
Domande frequenti
L'inbox risiede sulla mia macchina o nella stanza? Nel servizio della stanza. È questo che le consente di accettare richieste mentre la macchina è spenta e permette al proprietario di riordinarla da smartphone.
Posso svuotare l'inbox? Sì. Rimuovere gli elementi annulla quelle richieste; chi le ha inviate vedrà cancelled.
Cosa succede se la macchina resta spenta per giorni? Le richieste rimangono in attesa. Le approvazioni scadono in base al proprio TTL; le richieste approvate non scadono, anche se il proprietario potrebbe voler fare pulizia prima di una lunga assenza.
Vale lo stesso per le richieste provenienti da piattaforme di chat? Sì. Una menzione su Feishu o Slack diventa una richiesta come tutte le altre e attende nella stessa inbox. Vedi l'architettura di Feishu.
Chiudi il portatile. Le richieste saranno lì al mattino. Assegna una stanza al tuo agente.
Pubblicato il