Cursor ha potenziato le funzionalità dei propri agenti cloud introducendo /goal, un sistema che permette di assegnare all’agente un obiettivo persistente da mantenere nel tempo senza richiedere al programmatore di controllare continuamente ogni singola fase del lavoro. L’aggiornamento sposta ulteriormente la piattaforma dalla semplice generazione di codice verso un modello di agente autonomo capace di ricordare un risultato da raggiungere, continuare a intervenire sul progetto e riprendere il lavoro quando si verificano nuovi eventi rilevanti.
La funzione /goal è stata progettata per gestire quelli che Cursor definisce “long-lived objectives”, ossia obiettivi che non si esauriscono necessariamente in una singola esecuzione. Un programmatore può, per esempio, chiedere all’agente di correggere tutti i test instabili presenti in un progetto e fare in modo che la pipeline di continuous integration venga completata con successo. Invece di eseguire una sola serie di modifiche e terminare la sessione, l’agente mantiene l’obiettivo e continua a effettuare le operazioni necessarie finché la condizione richiesta non viene raggiunta.
A questa capacità si aggiunge il nuovo sistema automatico di Subscriptions, che permette agli agenti cloud di reagire a eventi provenienti dagli strumenti utilizzati durante lo sviluppo. L’agente può monitorare una pull request, seguire determinate conversazioni su Slack oppure essere associato ad attività pianificate. Quando si verifica l’evento previsto, il sistema può riprendere automaticamente il lavoro senza che lo sviluppatore debba inviare nuovamente il comando originale.
Uno degli utilizzi principali riguarda proprio le pull request create dall’agente. Cursor permette ora di sottoscrivere automaticamente queste PR e di mantenerle sotto controllo durante le fasi successive. Se la pipeline CI segnala un errore oppure un bot inserisce un commento chiedendo una modifica, l’agente cloud può rilevare l’evento, riattivarsi, analizzare il problema ed effettuare nuove correzioni. Il ciclo può continuare fino alla risoluzione degli errori e al completamento della pull request, trasformando quindi un’attività che normalmente richiederebbe diversi interventi manuali in un processo maggiormente autonomo.
Un funzionamento analogo può essere applicato alle conversazioni Slack. Gli sviluppatori possono lasciare richieste che prevedono una verifica successiva, permettendo all’agente di tornare sull’attività dopo un determinato intervallo o in seguito a uno specifico evento. La combinazione tra obiettivi persistenti, riattivazione automatica e monitoraggio di sistemi esterni permette quindi all’agente di lavorare su finestre temporali più lunghe rispetto alla tradizionale sessione interattiva di coding.
Cursor ha modificato anche l’ambiente di esecuzione dei subagent. Ogni agente secondario può ora lavorare all’interno di una macchina virtuale indipendente e disporre di una copia separata del progetto. Questa struttura consente, per esempio, di utilizzare un subagent per verificare in un ambiente pulito il codice modificato dall’agente principale oppure di assegnare contemporaneamente bug differenti a più subagent senza che le rispettive modifiche interferiscano tra loro.
L’isolamento degli ambienti permette quindi una forma di parallelizzazione delle attività di sviluppo. Diversi agenti possono lavorare nello stesso momento su problemi distinti, mantenendo separate le proprie copie del repository, mentre un agente principale può successivamente coordinare o integrare i risultati ottenuti. Il modello riduce il rischio di conflitti durante l’esecuzione simultanea di attività differenti e rende più pratico utilizzare architetture composte da più agenti specializzati.
L’aggiornamento introduce inoltre il supporto alla Custom Mode, attraverso la quale è possibile configurare un agente affinché mantenga stabilmente determinate modalità operative o competenze. Specifiche skill possono essere fissate nella conversazione, in modo che le istruzioni associate rimangano disponibili durante le successive attività dell’agente senza dover essere nuovamente inserite a ogni passaggio. Questa modalità può essere combinata con il comando /loop, che consente di impostare verifiche periodiche e far controllare all’agente lo stato del lavoro a intervalli regolari.
Cursor ha modificato anche il comportamento delle conversazioni durante le esecuzioni prolungate. In precedenza, l’invio di un nuovo messaggio mentre l’agente stava utilizzando uno strumento poteva interrompere l’attività in corso. Ora una nuova istruzione può essere ricevuta senza bloccare immediatamente la tool call già avviata: il messaggio viene invece preso in considerazione al successivo passaggio operativo. Lo sviluppatore può quindi correggere o modificare la direzione del lavoro mentre l’agente continua a eseguire la procedura già iniziata.
Questo sistema è particolarmente utile nelle attività lunghe, perché permette di intervenire sul comportamento dell’agente senza annullare necessariamente il lavoro già in corso. L’interazione diventa meno simile a una sequenza rigida composta da richiesta, esecuzione e nuova richiesta, e maggiormente assimilabile alla supervisione di un processo continuo nel quale l’agente mantiene il proprio stato operativo mentre riceve progressivamente nuove indicazioni.
L’insieme di /goal, Subscriptions, subagent isolati, Custom Mode e /loop definisce quindi un’architettura nella quale gli agenti cloud possono mantenere un obiettivo, reagire agli eventi, lavorare per periodi prolungati e distribuire attività tra più ambienti indipendenti. Cursor sta cercando di rendere questi agenti sistemi costantemente disponibili, capaci non soltanto di produrre codice su richiesta, ma anche di seguire l’intero ciclo operativo che porta dalla modifica iniziale alla verifica, alla correzione degli errori e al completamento del lavoro.
La direzione indicata dall’azienda è quella di arrivare a un’infrastruttura nella quale gli agenti possano operare in modo continuativo come componenti di un unico sistema di sviluppo, costruendo e distribuendo software senza richiedere un intervento umano a ogni iterazione. Il ruolo dello sviluppatore rimane quello di definire gli obiettivi, impostare le condizioni operative e intervenire quando necessario, mentre l’agente mantiene il contesto dell’attività e continua autonomamente a eseguire i passaggi richiesti per raggiungere il risultato stabilito.
Questo articolo è stato redatto con il supporto di strumenti di intelligenza artificiale (AI)
