Vai al contenuto principale
Rappresentazione visiva dell'articolo: Il primo ingegnere software AI: cosa avverrà in futuro?

Devin è un agente che utilizza l'intelligenza artificiale per svolgere i task di un ingegnere software. Al momento non è disponibile un playground in cui provarlo, dunque faremo riferimento a ciò che Cognition, l'azienda dietro Devin, ha mostrato al pubblico.

Prima di parlare di Devin, è importante capire cosa sia un agente.

Cos'è un agente

Per agente si intende una qualsiasi entità (in questo caso software) in grado di eseguire delle azioni autonomamente basandosi sul proprio contesto al fine di raggiungere un obiettivo. Se vuoi saperne di più, ti consiglio di leggere questo articolo.

Cos'è in grado di fare Devin

Stando a quanto presente nell'articolo di presentazione, che potete trovare al seguente link, quest'agente è dotato di un editor di codice, un browser Web, un terminale ed un planner. Devin può essere utilizzato sotto forma di chatbot, dunque in maniera simile a ChatGPT.

Il planner può essere visto come un taccuino in cui vengono descritte le attività che l'agente deve svolgere in ordine sequenziale.

Prima di analizzare gli impatti futuri, descriviamo alcuni esempi che sono stati mostrati durante la presentazione.


Uso di tecnologie non familiari

In questo video, l'umano chiede a Devin di realizzare delle immagini aventi delle scritte nascoste al suo interno. Per farlo, viene linkato a Devin un sito Web in cui è presente un link con uno script pronto all'uso.

Devin è in grado di trovare il link con lo script, aprire la pagina ed eseguire il codice.

Inoltre, il codice dello script presentava un bug, che è stato fixato in autonomia da Devin.


Realizzazione e rilascio di applicazioni

Viene chiesto di creare un sito Web in cui viene eseguito il game of life.

Devin scrive il codice e lo pubblica su Netlify, famosa piattaforma di hosting.


Fix autonomo di bug

In questo video, l'ultimo che analizziamo, viene chiesto all'agente di studiarsi una repo in modo tale che possa poi scrivere dei test su richiesta dell'utente. Inizialmente l'agente scrive dei test semplici e, dopo qualche scambio di messaggi, riesce a scrivere test sempre più complessi.


Potenziali impatti futuri

Sicuramente questo agente sta dimostrando che l'intelligenza artificiale può essere utile per l'automatizzazione di alcuni task, ed è un grandissimo passo in avanti nell'ambito degli agenti autonomi, ma ci sono alcuni aspetti da valutare.


Stato dell'arte

Utilizzando un LLM come GPT4, ed utilizzando dei prompt specifici, è possibile scrivere del codice, preparare dei comandi da usare nel terminale e navigare il Web.

Dunque, l'avanzamento non sta nell'esecuzione del task singolo, ma nella capacità di combinare i task singoli ad un buon action planning. È importante sottolineare che l'action planning non è un concetto nuovo, se ne parla da oltre 50 anni (STRIPS è nato nel 1971). Ne ho parlato a novembre 2023 nel mio blog personale.


Un pattern comune

Stando ai video mostrati da Cognition, Devin segue un pattern molto comune:

  1. Cerca una repository che ospiti il codice di cui ha bisogno
  2. Scarica la repository e la esegue modificando alcune parti del codice
  3. Eventualmente utilizza dei comandi per il rilascio su piattaforme semplici da utilizzare


Questo porta a pensare che, per quanto ci possa essere un effetto wow, attualmente siano necessari più confronti prima di sentenziare sulla possibile qualità dell'agente.


In cosa potrebbe essere utile

La combinazione di un LLM ed un buon planner potrebbe sostituire quelle figure che svolgono task relativamente semplici, come la scrittura di test basilari o lo sviluppo di codice semplice.

Per le figure con una maggiore seniority, Devin può essere quell'amico che ti aiuta con i task noiosi che non richiedono logica troppo complessa.

In realtà, questa visione potrebbe applicarsi a tutti i modelli e agenti che stiamo vedendo ultimamente, e sembrano rendere chiara una direzione: i junior con poca esperienza potrebbero essere (almeno in parte) sostituiti, mentre i senior potrebbero sviluppare prodotti focalizzandosi sulle logiche ed applicando tutte le skills acquisite nel tempo per rendere il prodotto utilizzabile e manutenibile (testing avanzato, struttura, algoritmi da utilizzare etc).


Si potra sostituire anche una figura senior?

[NB: Questa è una visione prettamente personale]

Attualmente non esiste una tecnologia in grado di comprendere i requisiti del cliente, sviluppare il prodotto e rilasciarlo in maniera autonoma.

Potrebbero però uscire degli agenti che siano in grado di lavorare in modalità semi-autonoma, dunque che riescano a lavorare a task molto più avanzati (es. sviluppo di parti di una web app con backend e database) e che richiedano esclusivamente dei cicli di review con i senior.

In questa casistica, lo sviluppatore non si dovrebbe più prestare alla scrittura di codice, se non nelle sue parti più complesse, e questo porterebbe ad una situazione in cui vengano cercate principalmente delle figure con una buona seniority, in grado di gestire gli agenti.

Ti è piaciuto questo articolo?

Condividilo sui social

Powered by

Logo Promobulls
Area riservata