Il punto di partenza di Velia è una domanda molto pratica: che cosa manca a una conversazione quando le chiediamo di fare un lavoro sul Mac? Una risposta può descrivere bene come confrontare due documenti. Per consegnare quel confronto, però, qualcuno deve trovare i file, leggerli e verificare le differenze. È in questo passaggio, dalle parole alle operazioni, che ha preso forma il progetto.
Velia è oggi un prototipo funzionante per macOS. Affianca alla conversazione strumenti per leggere documenti, cercare informazioni, conservare appunti e operare sulle risorse consentite. In questa prima puntata seguiamo il meccanismo che collega queste capacità. Useremo un confronto fra documenti come esempio illustrativo, senza presentarlo come una prova già eseguita.
Il primo mattone: conservare una richiesta precisa
Prima di chiamare il modello, l’app salva il messaggio della persona e avvia un’esecuzione identificata. Il codice la chiama run: è il contenitore che collega obiettivo, passi e stato di quel tentativo. Serve a evitare che una risposta arrivata in ritardo venga attribuita a una richiesta successiva, magari nella stessa conversazione.
Il secondo mattone: tornare al modello con ciò che è successo
Nel percorso ordinario, il coordinatore prepara il contesto: la richiesta, le informazioni pertinenti e le funzioni disponibili in quel momento. Il modello può proporre una funzione oppure un testo conclusivo. Se propone una funzione, il programma ne controlla nome e argomenti, affida l’operazione all’esecutore previsto e raccoglie il risultato. Quel risultato entra nel contesto del giro successivo.
Nel nostro esempio, il primo risultato potrebbe essere l’elenco dei due documenti. Il modello può allora chiedere le sezioni pertinenti e, dopo averle lette, preparare il confronto. Se manca un file, riceve quel limite e deve tenerne conto: può chiedere dove trovarlo o consegnare un confronto dichiaratamente parziale. La sequenza concreta dipende dai dati ricevuti e dalle decisioni del modello.
La scelta del modello e il diritto di eseguirla
Una skill raccoglie istruzioni riutilizzabili per affrontare un compito. Un tool, o strumento, è invece una funzione che il programma sa eseguire. Caricare una skill può aiutare il modello a lavorare meglio; l’accesso a una cartella continua a dipendere dai diritti concessi alla chat e ancora validi al momento della lettura.
Questa separazione è una scelta centrale del progetto. La comprensione del linguaggio appartiene al modello, anche quando la persona esprime liberamente la stessa richiesta con parole diverse. Il codice verifica identità, versioni, parametri e accessi. Non sceglie il comportamento cercando una frase obbligatoria nel messaggio.
Un lavoro deve anche potersi fermare
Il prototipo registra i singoli passi, compresi quelli verso il modello, e distingue un risultato ricevuto da un risultato ancora accettabile. Dopo Stop, una risposta tardiva non deve riaprire il lavoro fermato. Un’operazione esterna già compiuta può però aver prodotto un effetto: interrompere l’attesa non equivale ad annullare ciò che un altro servizio ha già fatto.
Questo spiega anche perché una frase come «ho creato la nota» non basta. Se manca la conferma dell’app che doveva crearla, resta un’incertezza da risolvere. Ripetere subito l’operazione potrebbe creare un duplicato. Il ciclo deve saper leggere anche un errore o un esito incerto.
Dove siamo, e il prossimo mattone
Il ciclo descritto appartiene al prototipo adulto di Velia; alcune attività usano servizi esterni e richiedono una connessione. Il Laboratorio ne racconta la costruzione, mentre non è ancora disponibile qui un pacchetto pubblico da installare. Nella prossima puntata entreremo nella memoria: che cosa conviene conservare perché un lavoro possa riprendere senza trasformare una vecchia ipotesi in un fatto.