Seguo un post che ho fatto nel thread originale sui workflow. Ho capito come ottenere il risultato che desideravo. Tutto questo è ovviamente un test, ma ecco cosa fa:
Si tratta di un sistema di re-engagement che utilizza l’IA per cercare di stimolare la discussione e aumentare il coinvolgimento in momenti in cui il sito è poco attivo.
Fase A: Individuare e riassumere
Individua i post più vecchi di 30 giorni che presentano una combinazione dei seguenti criteri:
- Argomenti popolari che non hanno ricevuto nuovi post da un po’.
- Argomenti che stanno ricevendo molte visualizzazioni, ma non hanno avuto una risposta da un po’.
- Argomenti che hanno avuto un’attività nell’ultimo anno, ma che si sono poi interrotti.
Una volta trovato un argomento, avvia l’agente ‘AI Summary’ di Discourse. L’agente IA scrive un riassunto. Lo fa inviando una richiesta HTTP POST all’endpoint API del riassunto. Una volta completato il riassunto, salva l’esistenza del workflow in una tabella dati.
(Questo si esegue una volta all’ora, ma potenzialmente più spesso).
Fase B: Valutare il riassunto per il follow-up
Un altro workflow pianificato si esegue in modo indipendente secondo il proprio programma. Controlla la tabella dati alla ricerca di righe che sono state riassunte ma non valutate. Prende un argomento dalla tabella dati e poi recupera i 5-10 post più recenti su quell’argomento.
Passa a un agente IA che gestisce il triage. Prende una decisione. Questo è un argomento che dovrebbe essere rivitalizzato? Se sì, come? Decide se l’argomento dovrebbe essere portato in cima (bump), se dovrebbe essere pubblicato un post che coinvolga nuovamente l’argomento: pone una domanda, chiede un follow-up o non fa nulla.
Aggiorna la tabella dati con la decisione presa.
(Questo dovrebbe essere eseguito con una frequenza simile alla Fase A; è possibile anche attivarlo dalla Fase A o combinarlo con essa.)
Fase C: Re-engagement con l’argomento
Un altro workflow pianificato si esegue secondo il proprio programma, con una frequenza inferiore. Il suo primo passo è controllare quanto il forum sia stato attivo di recente. Lo fa controllando quanti post sono stati pubblicati in media all’ora nelle ultime 3 ore. Quindi calcola la media di quanto il forum è stato attivo per periodi di 3 ore, nello stesso giorno e alla stessa ora negli ultimi 2 mesi. Se il sito non è attivo come di solito lo sarebbe alla stessa ora dello stesso giorno, dirà ‘possiamo fare un re-engagement adesso’.
Poi recupera fino a 10 opportunità di re-engagement disponibili. Le invia a un agente IA e gli chiede di estrarre il candidato più forte per un re-engagement dall’elenco. L’IA decide e restituisce un topic_id. Il classificatore nella Fase B ha deciso tra 3 opzioni: porta in cima l’argomento, pubblica un follow-up, non fare nulla.
Il workflow eseguirà un bump a meno che non sia designato un follow-up. Se destinato al follow-up, prenderà l’id dell’argomento e recupererà i post più recenti da quell’argomento. Lo passerà a un agente IA che determinerà quale sia la migliore risposta per coinvolgere nuovamente l’argomento. Ha dei vincoli (guardrails) per garantire una risposta molto basilare, che sia ancora pertinente all’argomento e non fornisca raccomandazioni o commenti. Si limita principalmente a chiedere un aggiornamento, a chiedere se l’autore originale ha novità su qualcosa che è successo, ecc. Pubblica la risposta e poi aggiorna la tabella dati con la data di completamento.
Spero di non aver semplicemente duplicato una funzione nascosta di Discourse di cui non ero a conoscenza! Ci sono voluti un po’ di tentativi ed errori, ma ce l’ho fatta.


