2026-08-01T20:01:35.538Z

Agente di monitoraggio per la cancellazione: catturare il lavoro di bambini orfani

Costruire una ricevuta di cancellazione che dimostri che gli agenti infantili e il lavoro esterno sono stati effettivamente interrotti, unendo le linee, i riconoscimenti, le scadenze di grazia e le prove di effetto.

Una richiesta di annullamento non è la prova che un agente AI si sia fermato. Trattare l'annullamento come verificato solo quando ogni discendente conosciuto sia completato prima della richiesta o ha riconosciuto la sospensione, nessun effetto collaterale monitorato appare dopo una scadenza di grazia limitata, e qualsiasi lavoro esterno ha uno stato di riconciliazione. Se un bambino continua a chiamare strumenti, scrivere manufatti o spendere token dopo quella scadenza, hai perso il lavoro. Il primitivo pratico di monitoraggio degli agenti è una ricevuta di cancellazione : un registro che si unisce alla richiesta genitoriale, alla discendenza discendente, ai riconoscimenti, alla finestra di grazia, all'ultimo effetto osservato, alla copertura e al verdetto finale. Si rivela che abbiamo inviato una richiesta di cancellazione che può essere stopped , orphaned o uncertain . L'annullamento è un protocollo, non un pulsante. Le API di cancellazione di solito iniziano comunicando l'intenzione. Node.js descrive AbortController come un utility che segnala l'annullamento in API basate su Promise selezionate; il suo AbortSignal notifica gli osservatori dopo che abort() è chiamato. La bandiera abortita del segnale dimostra che il controller ha sparato. Se ogni operazione a valle osservava il segnale, smetteva di creare effetti e riconciliava il lavoro remoto è una questione separata. La corrente Documentazione delle attività asyncio di Python rende visibile un altro confine. L'annullamento di un compito aumenta la CancelledError alla prossima occasione, e la pulizia di routine appartiene a try/finally . La stessa documentazione dice che TaskGroup annulla le attività rimanenti dopo un fallimento non annullato e aspetta le attività raggruppate quando il contesto esce. La simultaneità strutturata dà al lavoro correlato una vita di proprietà; i compiti separati fire and forget richiedono i propri riferimenti e la disciplina del ciclo di vita. Anche un processo locale terminato non ritira un'e mail, cancella un oggetto caricato, cancella un lotto del lato del fornitore o ferma un bambino in esecuzione su un altro host. Kubernetes documenta allo stesso modo Graziosa terminazione del pod come un ciclo di vita in fase con un periodo di grazia e avverte che una fase Pod è solo un riassunto di alto livello piuttosto che una macchina di stato completa. L'analogia è limitata, ma utile: un comando del ciclo di vita e un effetto esterno finale sono prove diverse. Per le operazioni degli agenti, seguire tre momenti: 1. richiesto: la madre o l'operatore ha emesso la cancellazione con una ragione e un'autorità. 2. A: ogni discendente accessibile ha osservato la richiesta e è entrato in chiusura. 3. Verificato: il termine di grazia è passato senza un nuovo effetto monitorato e il lavoro esterno è stato riconciliato. Saltare il terzo momento crea un falso recupero. Il genitore sembra silenzioso mentre un bambino distaccato continua il comportamento che intendeva fermare. Costruire una ricevuta di cancellazione intorno alla stirpe e agli effetti Non puoi controllare i discendenti che non puoi nominare. Date a ciascun bambino un identificatore di esecuzione stabile e conservate il suo identificatore genitore o di esecuzione radicale attraverso le frontiere delle manovre, delle code e degli ospiti. Gli identificatori di traccia sono utili per il trasporto, ma il contratto di monitoraggio richiede anche l'identità operativa dei posti di lavoro dei fornitori e gli effetti collaterali. Una ricevuta minima può utilizzare i seguenti campi: Campo Le prove richieste rootRunId L'ambito di applicazione della cancellazione dei genitori descendantRunIds Ogni bambino conosciuto al momento della richiesta, oltre ai bambini scoperti durante la chiusura cancelRequestedAt Stampolo temporale della fonte, ragione, attore e riferimento all'autorità cancelAckAt Riconoscimento per discendente, non un booleano aggregato graceDeadlineAt L'ultimo tempo accettabile per gli effetti di chiusura lastEffectAt Ultima chiamata di strumento, mutazione di artefatto, richiesta di coda, chiamata di modello o effetto specifico per attività effectCoverage complete , partial o unavailable con freschezza di origine externalJobState Risultato del fornitore, stato di cancellazione o esplicito sconosciuto verdict stopped , orphaned o uncertain , più le prove decisive Non immagazzinare le indicazioni o i carichi utili di utensili grezzi solo per dimostrare la linea di discendenza. Di solito sono sufficienti identificativi di esecuzione opaci, identificativi di lavoro del fornitore, classi di operazione, timestamp e digestioni di artefatti canonici. Riescrivere segreti sull'ospite. Utilizzare un ordine decisionale conservatore: A livello familiare, ogni discendente orfano fa l'annullamento orphaned . Altrimenti, qualsiasi discendente incerto lo rende uncertain . Solo una famiglia interamente fermata guadagna stopped . La copertura precede la rassicurazione. Un lavoro di fornitore che ha accettato una richiesta di annullamento ma non espone alcun segnale di stato o effetto rimane incerto; un'osservazione mancante non deve mai essere convertita in nothing happened. Testare la ricevuta contro cinque famiglie di cancellazione L'artefatto di accompagnamento valuta cinque famiglie di genitori figli sintetiche che contengono sei discendenti. Ogni famiglia ha un verdetto anticipato e una finestra di grazia di cinque secondi. Cinque secondi è un valore fissato, non una raccomandazione di produzione. Il rapporto esecutivo riproduce tutti i verdetti attesi: clean lineage contiene due discendenti. Essi riconoscono in uno o due secondi, e nessuno produce un effetto monitorato dopo la scadenza di cinque secondi. already finished non ha bisogno di una conferma perché il suo figlio è stato completato prima che la cancellazione fosse richiesta. Entrambe le famiglie sono stopped . post deadline effect è il caso di controversia. Il suo bambino riconosce in un secondo, ma un altro effetto strumento appare nove secondi dopo la richiestaquattro secondi oltre la scadenza. Un monitor che registra solo cancelAckAt avrebbe segnalato successo. La ricevuta restituisce orphaned . missing ack non ha né un canale di riconoscimento né un canale di effetto silenzioso: il suo lavoratore distaccato produce un effetto dopo la scadenza. È anche orphaned . external unknown riconosce tempestivamente, ma la copertura degli effetti del fornitore esterno non è disponibile, quindi il verdetto rimane uncertain . Il dispositivo dimostra che la regola distingue quei casi artigianali. Essa non stima la frequenza con cui il lavoro orfano si verifica nella produzione o non valida un periodo di grazia universale. Strumento il confine in cui si verificano gli effetti Inizia con vite strutturate all'interno di un processo. Preferisce un gruppo di lavoro o un ambito equivalente che possiede discendenti, propaga l'annullamento e aspetta la chiusura. Passare un segnale di cancellazione nelle richieste di modello, nelle chiamate agli strumenti, nelle code e nei sottoprocessi locali quando l'API lo supporta. Un bambino che genera un altro bambino deve registrarlo con la stessa linea radicale prima di iniziare il lavoro. Poi effetti di inventario che possono sopravvivere al controllo locale: lotti del lato del fornitore e posti di lavoro di fondo; messaggi in coda già richiesti da un lavoratore; sottoprocessi e sessioni a distanza; carica, commit, mutazioni del database e messaggi pubblici; richieste di modello o di strumento già accettate a monte. Per ciascuna classe di effetti, definire la condizione di arresto più forte osservabile. Un sottoprocesso locale può rivelare l'ora di uscita e l'identità PID. Un lavoro di fornitore ha bisogno di una propria ricevuta di cancellazione e dello stato del fornitore del terminale. Un caricamento può essere irreversibile dopo il commit; il monitoraggio può verificare che non sia apparsa alcuna versione successiva dell'oggetto, ma non può pretendere che il primo caricamento sia stato annullato. Scegli la finestra di grazia dal comportamento di chiusura reale. Misurare separatamente la latenza di riconoscimento e la latenza di effetto, quindi aggiungere espliciti buffer di orologio e di trasporto. Un strumento di rete può riconoscere immediatamente quando un server completa una richiesta già accettata. Questo intervallo appartiene alla ricevuta. Tenere conto del tempo dell'evento e del tempo di ingestione. Un pacchetto di telemetria che arriva in ritardo può sembrare un lavoro post annullamento anche se il suo timestamp sorgente è precedente alla scadenza. Classificare utilizzando il timestamp affidabile quando disponibile, mantenere il ritardo di ingestione e tornare incerto quando gli orologi o l'ordine non possono essere conciliati. Infine, testate i sentieri infelici: il gestore non legge mai il segnale di cancellazione; un coroutine cattura l'annullamento e continua a funzionare; manca un bambino dalla linea radicale; l'attività locale si ferma ma il servizio di fornitore remoto continua; un evento tardivo arriva dopo la finestra di monitoraggio; l'API di stato esterno non è disponibile. Riproduci quei dispositivi prima di allegare agli avvisi o alle azioni di recupero il verdetto. Rispondere al lavoro orfano senza ampliare l'autorità Un verdetto orphaned è prova per indagini, non un permesso generale per uccidere processi o effetti inversi. Mostrate al discendente l'ultimo effetto, l'autorità di cancellazione, la grazia trascorsa e l'azione più sicura. Un bambino locale reversibile può essere ammissibile a un tentativo di arresto approvato. Un lavoro di fornitore remoto ha bisogno di un'operazione di cancellazione supportata. Un messaggio pubblico, una scrittura distruttiva o un cambiamento di credenziale possono richiedere una persona e un'azione compensativa. Non risolvere il problema perché un secondo comando di cancellazione ha riportato successo. L'indicazione del prodotto deve essere effettuata solo dopo che il discendente ha cessato di produrre l'effetto monitorato e che lo stato esterno pertinente è stato riconciliato. Se la copertura rimane parziale, mantenete il verdetto incerto e dite quale segnale manca. Il metodo ha anche dei limiti. La linea di discendenza può essere incompleta, gli identificatori possono essere riutilizzati in modo errato, gli orologi possono derivare e alcuni effetti collaterali non hanno stato consultabile. Una finestra tranquilla copre solo gli effetti che hai strumentalizzato. Non può dimostrare l'assenza di un bambino sconosciuto. La regola operativa è stretta: inviare cancellazioni attraverso la linea di discendenza di proprietà, raccogliere il riconoscimento per bambino, osservare gli effetti specifici della attività attraverso una finestra di grazia limitata, conciliare i lavori esterni e preservare le incognite. Questo è sufficiente per cogliere la più pericolosa falsa fermata: un genitore tranquillo con un bambino che agisce ancora. Sidewisp è attualmente in anteprima privata. Il suo sito pubblico e la sua biblioteca di articoli sono in diretta, ma la raccolta dell'agente di produzione sanità, gli adattatori runtime e il recupero non sono generalmente spediti. Sidewisp è destinato a funzionare insieme ai tempi di esecuzione esistenti, non come sistema di sostituzione del tempo di esecuzione o di fissazione autonoma. Se l'integrità della cancellazione è un segnale di salute di cui hai bisogno, puoi accedere all'accesso anticipato senza trattare l'anteprima come una richiesta di monitoraggio distribuita.