Il problema: un’azione può essere eseguita senza che arrivi la conferma
Un agente che usa strumenti può avviare un’operazione in un altro sistema e perdere la connessione prima di ricevere una risposta chiara. A quel punto, il compito si trova in una situazione ambigua: l’agente non sa se il sistema di destinazione abbia applicato la modifica, ma la mancata conferma non dimostra che non l’abbia applicata. Eseguire di nuovo la stessa azione senza verificare lo stato può creare un duplicato o amplificare l’impatto.
Questo problema è diverso dal generare nuovamente una risposta. In una conversazione, una ripetizione può produrre un testo diverso; quando uno strumento modifica un record, prenota un appuntamento o cambia un file, ripetere l’azione può produrre un secondo effetto esterno. Per questo la procedura di recupero deve iniziare cercando di capire che cosa è successo, non ripetendo automaticamente l’istruzione originale.
Questa guida propone una disciplina operativa, non garantisce che ogni sistema consenta di recuperare un’operazione. La possibilità di verificare, fermare o compensare un’azione dipende dagli strumenti specifici e dalle funzioni documentate. Se non è possibile osservare lo stato di destinazione, l’agente deve considerare l’incertezza un motivo per sospendere o chiedere supporto, non un’autorizzazione a fare supposizioni.
Definire i confini del flusso prima di progettare il recupero
Descrivi il compito come una sequenza di passaggi concreti e indica quali strumenti intervengono. Per ogni passaggio, annota se si limita a leggere informazioni, se scrive o modifica uno stato oppure se può produrre un effetto esterno difficile da annullare. Questa classificazione permette di concentrare i controlli sui passaggi in cui la ripetizione potrebbe avere conseguenze.
Non basta classificare uno strumento in base al suo nome. Una stessa integrazione può offrire sia una funzione di consultazione sia un’operazione di scrittura. E non basta descrivere l’intento generale dell’agente: «gestire un appuntamento» può includere cercare disponibilità, creare una prenotazione e inviare una notifica. Ogni operazione può avere uno stato diverso e richiedere una decisione di recupero distinta.
Individua anche quale osservazione permette di considerare completato ciascun passaggio. Per aggiornare un record, per esempio, potrebbe essere necessario rileggerlo e controllare i campi rilevanti. Per una prenotazione, potrebbe servire verificare se esiste un appuntamento con i dati attesi. Per una modifica al codice, si può controllare il contenuto del file o lo stato della modifica. Sono modelli di progettazione da adattare alle capacità effettive di ciascun sistema.
Prima di consentire una scrittura, definisci l’ambito: quale entità può modificare l’agente, quali dati può cambiare e quali azioni restano fuori dai suoi permessi. I permessi limitano i danni potenziali, ma non dimostrano che un’azione precedente sia riuscita e non rendono sicuro ripeterla. La selezione degli strumenti deve mantenere distinta l’autorizzazione dalla conoscenza dello stato.
Inventario minimo per ogni operazione
Compila questa tabella per ciascun passaggio del flusso prima di automatizzarne il recupero.
| Domanda | Esempio di risposta | Utilità per il recupero |
|---|---|---|
| Il passaggio legge o scrive? | Consultazione del record: lettura; modifica dell’indirizzo: scrittura. | Dà priorità alla verifica prima di ripetere una scrittura. |
| Quale stato di destinazione è osservabile? | I campi attuali del record, se è disponibile una consultazione autorizzata. | Definisce quali prove consentono di classificare il risultato. |
| Qual è l’ambito dello strumento? | Un record identificato, non tutti i record del cliente. | Riduce l’insieme dei possibili effetti e facilita la revisione. |
| È possibile annullare o compensare l’operazione? | Da verificare nella documentazione del sistema specifico. | Non progettare una compensazione come se fosse disponibile senza averlo verificato. |
Classificare lo stato prima di decidere
Dopo un errore, registra l’ultima osservazione attendibile e classifica il passaggio interrotto. Una tassonomia pratica distingue quattro stati: l’azione non è stata avviata; il risultato è confermato; il risultato è incerto; oppure il compito è stato completato solo in parte. La classificazione deve basarsi sulle prove disponibili, non sulla spiegazione che l’agente preferisce dare.
«Non avviata» significa che esistono prove sufficienti del fatto che il passaggio non sia stato inviato o non sia iniziato. «Confermata» significa che una risposta o una consultazione successiva consente di verificare il risultato atteso. «Incerta» significa che mancano prove per stabilire se l’operazione sia stata eseguita. «Parziale» indica che alcuni passaggi o effetti sono stati completati, mentre altri sono ancora in sospeso. Se non è chiaro quale di due categorie sia corretta, mantieni quella più prudente ed evita di trasformare l’incertezza in una conferma.
La distinzione è importante perché cambia l’azione appropriata. Se il passaggio non è iniziato, può essere possibile avviarlo, nel rispetto dei permessi e delle regole del flusso. Se è confermato, non va ripetuto solo per ottenere una risposta più chiara. Se è incerto, prima si consulta il sistema di destinazione; se non esiste una consultazione attendibile, ci si ferma o si chiede supporto. Se il lavoro è stato completato solo in parte, si riprende esclusivamente da uno stato verificato, tenendo conto degli effetti già prodotti.
Lo stato dell’agente non va confuso con quello del sistema esterno. Un checkpoint può registrare i passaggi tentati dal flusso o le risposte ricevute, ma queste informazioni possono diventare obsolete se un altro processo modifica la destinazione o se la conferma è andata persa. Il checkpoint aiuta a recuperare il contesto; da solo, non dimostra quale sia lo stato attuale.
Procedura decisionale dopo un errore
Usa questo processo come criterio operativo del flusso e adattalo alle osservazioni e ai permessi effettivamente disponibili.
- 01Interrompi la ripetizione automatica del passaggio di scrittura e conserva l’identificativo del compito e l’ultima osservazione attendibile.
- 02Se esiste una verifica adeguata, consulta lo stato del sistema di destinazione tramite un’operazione autorizzata.
- 03Classifica il passaggio come non avviato, confermato, incerto o parzialmente completato; registra le prove che giustificano la classificazione.
- 04Se è confermato, prosegui soltanto con i passaggi ancora in sospeso. Se non è stato avviato, valuta se può essere iniziato nel rispetto dei limiti definiti.
- 05Se resta incerto, non ripeterlo per impostazione predefinita: sospendi, chiedi l’approvazione o inoltra il caso secondo l’impatto e le possibilità di verifica.
- 06Se una modifica è confermata e va corretta, valuta una compensazione documentata e autorizzata; se non è praticabile, ferma il flusso e chiedi supporto.
- 07Verifica lo stato finale e comunica che cosa è stato controllato, che cosa resta incerto e quale intervento è necessario.
Prima di ripetere, consulta il sistema di destinazione e cerca eventuali duplicati
La prima domanda operativa non è «posso richiamare lo strumento?», ma «che cosa posso osservare adesso nel sistema interessato?». Se è disponibile una consultazione autorizzata, cerca l’oggetto o la modifica relativa al compito usando i dati che lo identificano. Verifica che gli attributi pertinenti corrispondano e che non esista già un risultato equivalente. Evita di affidarti a un solo indizio se non consente di distinguere l’operazione corrente da altre simili.
Una richiesta può avere un identificativo dell’operazione o un riferimento proprio del compito. Se il sistema documenta un modo per consultare l’operazione o riconoscere le richieste duplicate, segui quel meccanismo come documentato. Non dare per scontato che tutti gli strumenti accettino una chiave di idempotenza, che un identificativo impedisca effetti ripetuti o che un risultato con lo stesso testo corrisponda necessariamente alla stessa azione.
Per rilevare i duplicati servono criteri chiari. Per un aggiornamento di un record, confronta l’identificativo del record e i campi che si volevano modificare. Per un appuntamento, controlla i dati che distinguono quella prenotazione e il suo stato attuale. Per una modifica al codice, esamina il file o lo stato della modifica prima di applicare un altro cambiamento. Sono esempi di verifica, non descrizioni di funzioni garantite da uno specifico fornitore.
Se la consultazione dello stato non è disponibile, restituisce informazioni incomplete o non consente di distinguere un’operazione precedente, l’incertezza permane. In tal caso, definisci una condizione di arresto. L’assenza di una risposta verificabile non deve trasformarsi in un’ipotesi favorevole, soprattutto quando una seconda esecuzione potrebbe creare un ulteriore effetto.
Scegliere se proseguire, compensare, fermarsi o chiedere supporto
Prosegui quando lo stato precedente è sufficientemente noto, il passaggio in sospeso rientra nell’ambito autorizzato e c’è un modo per verificarne il risultato. Riprendere significa avanzare dall’ultimo stato verificato, non riprodurre tutta la sequenza dall’inizio. Se il flusso contiene più passaggi, individua quelli confermati e quelli non ancora avviati per evitare di rifare un lavoro che ha già prodotto effetti.
Una compensazione cerca di correggere un effetto confermato tramite un’azione diversa. Non è sempre possibile e non equivale necessariamente a ripristinare esattamente la situazione iniziale. Prima di progettarla, verifica che il sistema documenti tale operazione, che l’account abbia i permessi necessari e che la modifica non influisca su uno stato successivo. Se non puoi confermare questi requisiti, non presentarla come un ripristino garantito.
Fermarsi è una scelta valida quando l’azione successiva può aggravare una situazione incerta, supera l’ambito autorizzato o non dispone di una verifica sufficiente. È opportuno chiedere l’intervento di una persona quando occorre interpretare prove ambigue, approvare un’azione con un impatto maggiore, valutare una compensazione o decidere come gestire una modifica che non può essere annullata in sicurezza. La pausa deve preservare il contesto minimo necessario per esaminare il caso.
Definisci in anticipo quali condizioni richiedono l’intervento umano. Per esempio: esito di una scrittura incerto senza possibilità di consultare la destinazione; operazione con conseguenze rilevanti la cui ripetizione potrebbe duplicare un effetto; compensazione non documentata; permessi insufficienti per verificare; oppure discrepanza tra lo stato memorizzato nel flusso e quello del sistema di destinazione. Adatta queste soglie all’impatto e agli obblighi dell’ambiente invece di applicare una regola unica a ogni azione.
Decisione di recupero
La tabella orienta la progettazione della procedura, ma non sostituisce la documentazione dello strumento né le autorizzazioni applicabili.
| Stato verificato | Possibile decisione | Condizione necessaria |
|---|---|---|
| Passaggio non avviato | Avviare il passaggio in sospeso. | Prove attendibili che non sia iniziato, ambito autorizzato e verifica prevista. |
| Risultato confermato | Proseguire con i passaggi rimanenti. | Verifica sufficiente dell’effetto; non ripetere per ottenere un’altra conferma. |
| Risultato incerto | Consultare, sospendere o chiedere supporto. | Non rieseguire finché la consultazione non consente di stabilire se ripetere sia sicuro. |
| Modifica confermata da correggere | Compensare o chiedere supporto. | Compensazione documentata e autorizzata, valutata rispetto allo stato attuale. |
| Stato parziale o incoerente | Fermare la sequenza e ricostruire lo stato. | Identificare ogni passaggio confermato e ogni effetto in sospeso prima di proseguire. |
Esempi pratici: prenotazione e modifica del codice
Nel caso di una prenotazione, se si perde la risposta dopo aver inviato la richiesta, è possibile che l’appuntamento esista già. L’agente deve consultare lo stato della prenotazione usando le capacità effettivamente disponibili e verificare se compare l’appuntamento atteso. Se trova un risultato corrispondente, non deve creare un’altra prenotazione per compensare la mancata conferma. Se non riesce a distinguere un’operazione già eseguita da una ancora in corso, deve interrompere il tentativo automatico e chiedere una revisione secondo la procedura del servizio.
La verifica deve anche tenere conto del fatto che lo stato può cambiare tra la consultazione e l’azione successiva. Perciò il flusso non deve trattare un’osservazione precedente come una garanzia valida indefinitamente. Se lo strumento offre un riferimento dell’operazione o una consultazione dello stato documentata, usali; altrimenti, limita le conclusioni a ciò che è stato effettivamente osservato. Non dire all’utente che la prenotazione è confermata se le prove dimostrano soltanto che l’agente ha tentato di richiederla.
Quando modifica il codice, il rischio non si limita a ripetere una scrittura sullo stesso file. Il contenuto potrebbe essere cambiato dopo il checkpoint, oppure una parte del compito potrebbe essere stata applicata mentre un’altra è rimasta in sospeso. Prima di modificare di nuovo il codice, esamina lo stato attuale e confronta il cambiamento previsto con il risultato osservabile. Se la modifica è già presente, evita di applicarla di nuovo alla cieca. Se lo stato è diverso o non può essere ricostruito, ferma il flusso per verificare che cosa conservare e che cosa eventualmente correggere.
In tutti e tre gli esempi, l’agente deve comunicare con precisione l’esito: tentativo effettuato, effetto verificato, risultato incerto o intervento necessario. La descrizione del processo non deve trasformare una chiamata inviata in un compito completato.
Conservare il contesto utile senza confonderlo con lo stato attuale
Per riprendere un compito non è necessario conservare indiscriminatamente tutta la conversazione. Registra lo stato operativo che consente di riconoscere il compito e ricostruire le decisioni: identificativo o riferimento del compito, se esiste; passaggio corrente; strumento e operazione invocati; ultima risposta osservata; stato assegnato; verifiche effettuate e momento in cui sono state effettuate; effetti confermati; motivo di un’eventuale sospensione o richiesta di supporto. Registra anche ciò che resta in sospeso e i limiti di autorizzazione applicabili.
Evita di conservare dati sensibili non necessari per il recupero. Definisci chi può consultare il registro, per quanto tempo viene conservato e come viene eliminato o protetto secondo le regole dell’ambiente. Non esiste una durata universale da inventare: dipende dai requisiti di privacy, audit e operatività applicabili. Se il registro contiene dati personali o dettagli dei sistemi, limitane la portata e l’accesso.
La memoria conversazionale e un checkpoint del compito hanno funzioni diverse. La prima può aiutare a contestualizzare la richiesta dell’utente; il secondo dovrebbe rappresentare lo stato operativo osservato dal flusso. Nessuno dei due sostituisce una consultazione del sistema di destinazione quando il compito dipende da un effetto esterno che potrebbe essere cambiato. Considera la memoria un indizio utile per orientare il recupero, non una prova sufficiente che il mondo esterno sia rimasto invariato.
Includi marcature temporali o l’ordine delle osservazioni quando sono necessari per interpretare il registro. Se un’altra persona o un altro processo può modificare il sistema, una lettura precedente potrebbe essere diventata obsoleta. Quando riprendi un’operazione sensibile, controlla di nuovo i dati rilevanti invece di presumere che il checkpoint sia ancora aggiornato.
Permessi e autonomia: limitare ciò che può fare il passaggio di recupero
Progetta i permessi in modo che ogni operazione abbia l’ambito minimo necessario. Se l’agente deve soltanto verificare un risultato, non dare per scontato che debba poter modificare altri record o annullare operazioni. Se una compensazione richiede un permesso diverso, separala dalla consultazione e definisci quale condizione ne autorizza l’uso. In questo modo resta evidente la differenza tra osservare, agire e correggere.
Il recupero non deve ampliare l’autonomia solo perché il flusso è fallito. Un agente autorizzato a effettuare una modifica iniziale non acquisisce automaticamente il permesso di svolgere azioni aggiuntive, annullarla o modificare oggetti correlati. Specifica quali decisioni sono automatiche, quali richiedono approvazione e quali informazioni devono essere presentate alla persona che decide.
L’approvazione umana deve riguardare un’azione concreta e le prove disponibili. Invece di chiedere un’autorizzazione generica a «risolvere il problema», spiega quale stato è stato osservato, che cosa non è stato possibile confermare, quale azione viene proposta e quali effetti potrebbe avere. Se mancano informazioni essenziali, il passo successivo deve essere ottenerle o fermarsi, non chiedere un’approvazione che nasconda l’incertezza.
I permessi riducono l’insieme delle azioni possibili, ma da soli non risolvono i guasti parziali. Mantieni distinti i limiti dell’ambito operativo, i meccanismi di consultazione e le regole di recupero. Un progetto affidabile ha bisogno di tutti e tre gli elementi nei casi in cui il compito possa produrre modifiche esterne.
Controlli preliminari prima di un’azione di recupero
Valuta ogni condizione prima di consentire all’agente di proseguire automaticamente.
- 01L’azione proposta rientra nei permessi attuali e nell’ambito del compito?
- 02Lo stato rilevante della destinazione è stato consultato sulla base di prove sufficientemente recenti?
- 03È chiaro quale effetto può produrre l’azione e se potrebbe duplicare un effetto precedente?
- 04L’azione correttiva è documentata per lo strumento specifico?
- 05La procedura consente di automatizzarla o richiede l’approvazione di una persona?
- 06Se una risposta necessaria è sconosciuta, sospendi e chiedi supporto invece di ampliare i permessi o ripetere l’azione.
Collaudare guasti riproducibili prima del rilascio
I test non devono simulare soltanto errori degli strumenti, ma anche la separazione tra esecuzione e conferma. Un caso importante è quello in cui il sistema di destinazione applica una modifica ma l’agente non riceve la risposta. Il test verifica che il flusso consulti la destinazione o si fermi, invece di ripetere automaticamente l’azione. Se l’ambiente di test non può riprodurre questo comportamento, documenta il limite e verifica almeno la gestione dell’incertezza tramite risposte ambigue controllate.
Includi anche le conferme tardive. Per esempio, l’agente potrebbe sospendersi e avviare una verifica mentre, più tardi, arriva la risposta dell’operazione originale. Controlla che tale risposta aggiorni lo stato in modo coerente e non avvii una seconda esecuzione. Prova anche il caso opposto: la prima operazione non è stata eseguita e il flusso raccoglie prove sufficienti per avviare il passaggio in sospeso secondo le proprie regole.
Aggiungi scenari con duplicati, stato parziale, consultazione della destinazione non disponibile, permessi insufficienti e compensazione non documentata. Per ciascuno, definisci il risultato atteso prima di eseguire il test: quali azioni può intraprendere l’agente, quali deve evitare, che cosa deve registrare e quando deve chiedere supporto. Un test che verifica soltanto che l’agente risponda non dimostra che il recupero sia sicuro.
Usa risultati verificabili. Conta quante operazioni di scrittura sono state eseguite, controlla lo stato finale nel sistema di destinazione, individua eventuali duplicati e verifica se si sono prodotti effetti al di fuori dell’ambito autorizzato. Valuta separatamente il compito originale e il recupero: il fatto che l’utente ottenga infine un risultato non basta a dimostrare che il flusso abbia evitato una ripetizione o rispettato i propri limiti.
Ripeti i test quando cambiano gli strumenti, i permessi, la procedura di ripresa o il formato dei checkpoint. Registra versioni e condizioni rilevanti, così che i risultati possano essere riprodotti. Non interpretare il superamento di un test come una garanzia contro qualsiasi guasto futuro: dimostra il comportamento osservato negli scenari definiti.
Matrice dei test di recupero
Adatta i risultati attesi al comportamento documentato di ciascuna integrazione.
| Scenario | Comportamento da verificare | Risultato osservabile |
|---|---|---|
| L’azione viene eseguita, ma la risposta si perde | Prima di scrivere di nuovo, l’agente verifica oppure sospende il flusso se non può farlo. | Nessuna seconda esecuzione non autorizzata; lo stato finale è verificato oppure contrassegnato come incerto. |
| La risposta arriva in ritardo | La conferma tardiva non avvia una nuova esecuzione dello stesso passaggio. | Il flusso aggiorna il proprio stato ed evita il duplicato. |
| La prima azione non viene avviata | L’agente avvia il passaggio solo quando le prove e la procedura lo consentono. | La modifica attesa viene eseguita una volta e verificata. |
| Il sistema presenta un risultato parziale | Prima di riprendere, il flusso individua i passaggi confermati e quelli in sospeso. | Non ripete l’intera sequenza e non tralascia gli effetti incompleti. |
| Non è possibile consultare la destinazione | L’agente non presume che ripetere sia sicuro e applica la condizione di escalation. | Il compito viene sospeso o resta in attesa di revisione, con contesto sufficiente. |
| La compensazione non è documentata | L’agente non inventa né esegue un annullamento basato su supposizioni. | Lo stato viene preservato e la decisione è affidata a una persona autorizzata. |
Valutare il flusso e preparare il rilascio
Valuta il recupero usando più misure, non una sola etichetta di successo. Esamina quante volte è stata ripetuta una scrittura, quanti risultati finali sono stati verificati, quanti casi sono stati correttamente fermati e quante azioni hanno superato i permessi. Rivedi anche le richieste di supporto per capire se contenevano un contesto sufficiente e se sono state attivate nelle condizioni previste.
Interpreta le metriche insieme ai casi di test e al possibile impatto. Un basso tasso di ripetizione non dimostra che il sistema sia sicuro se non sono state rilevate attività ambigue. Neppure uno stato finale corretto è sufficiente se è stato raggiunto tramite un’azione duplicata o una compensazione non autorizzata. Definisci in anticipo quali risultati sono accettabili e quali errori impediscono il rilascio.
Prima di abilitare azioni con un impatto maggiore, prova la procedura con operazioni a basso rischio o in un ambiente di test adeguato. Verifica che le consultazioni dello stato funzionino, che i permessi bastino per controllare senza essere eccessivi per agire, che i registri consentano di ricostruire gli eventi e che le sospensioni raggiungano una persona in grado di decidere. Se una dipendenza non è disponibile, limita l’ambito dell’automazione invece di presumere che l’agente possa gestire la situazione.
Le fonti disponibili comprendono documentazione sulla risoluzione dei problemi nell’uso degli strumenti e indicazioni generali sulla gestione degli incidenti e sul ripristino di emergenza. Da sole, però, non stabiliscono come si comporti una specifica integrazione quando una risposta va persa, se consenta di rilevare i duplicati o se un’operazione possa essere annullata. Questi aspetti vanno verificati per ciascun sistema prima di trasformare una raccomandazione progettuale in un’istruzione operativa.
Questioni aperte
- Le fonti fornite non specificano quali stati parziali, identificativi di operazione o meccanismi di rilevamento dei duplicati siano disponibili in uno specifico strumento.
- La disponibilità e l’affidabilità della consultazione successiva del sistema di destinazione dipendono da ciascun sistema e devono essere verificate prima del rilascio.
- Non si può presumere che un’operazione sia reversibile o compensabile senza una documentazione specifica dello strumento e del sistema interessato.
- Le prove disponibili sulla gestione degli incidenti e sul ripristino di emergenza sono generali e non dimostrano come risolvere operazioni esterne ambigue di un agente.
- I requisiti relativi a permessi, conservazione dei registri e richieste di supporto dipendono dall’ambiente operativo e dagli obblighi applicabili.
Continua a esplorare
Fonti consultate
Correzioni e trasparenza
Se trovi un dato errato o non aggiornato, inviaci la pagina e la fonte da verificare.
Proponi una correzione