Salta al contenuto

Ingegneria

Una chat che sa fare cose, e in cui cerchi ancora fra sei mesi

Runlix collega il modello a strumenti veri che può chiamare mentre risponde, tiene ogni conversazione cercabile, e ti lascia allegare documenti senza che finiscano impastati dentro la tua domanda.

Aggiornato 2026-09-13

La chat di Runlix: l'elenco cercabile delle conversazioni a sinistra, una domanda, e una risposta con un blocco Python evidenziato e i bottoni per copiarlo.

Quasi tutte le chat locali sono piacevoli per una settimana. Le due cose che vanno storte vanno storte dopo: non ritrovi la conversazione che sai di aver avuto, e il modello può parlare del tuo lavoro ma non toccarlo. Sono guasti silenziosi — non si rompe niente, semplicemente smetti piano piano di usarla.

Questa pagina racconta cosa fa Runlix con quei due problemi, e cosa ancora non sa fare.

Sa chiamare i tuoi strumenti Mentre risponde, via MCP, con ogni chiamata mostrata nella conversazione e un limite netto di quattro giri.
Cercabile mesi dopo Accenti appianati, parole agganciate dall'inizio, e la frase che corrisponde citata nei risultati.
I documenti restano delimitati Solo testo, tagliato a 100.000 caratteri con avviso prima di inviare, e avvolto perché il modello distingua i tuoi dati dalla tua domanda.
Nessuna strada privata al motore La chat usa la stessa API locale di qualunque altro programma: quello che funziona qui funziona anche da fuori.

Sa chiamare le cose, non solo descriverle

Puoi collegare il modello a degli strumenti — una ricerca sui tuoi documenti, una base dati, quello che già fai girare — e li usa mentre sta rispondendo. Fai una domanda, il modello decide che gli serve cercare qualcosa, cerca, legge il risultato e prosegue. Ogni chiamata compare nella conversazione come un blocco a sé, col nome dello strumento e quello che è tornato indietro, così la risposta non è mai un'affermazione da prendere per buona.

I collegamenti usano MCP, il protocollo che un numero crescente di strumenti parla già: di solito stai collegando qualcosa che esiste invece di scrivere un adattatore.

Vale la pena saperlo, perché spiega una scelta che da fuori sembra strana: gli strumenti vengono descritti al modello nelle istruzioni, e non attraverso il formato che il modello si porta dietro. È una misura, non una preferenza. Su otto modelli controllati sul disco, solo tre avevano un formato di descrizione che sapesse di strumenti; sugli altri cinque la strada nativa avrebbe fallito senza dirlo, che è l'unico tipo di guasto a cui questo progetto dedica quasi tutte le sue energie. Descriverli esplicitamente funziona su ogni modello, e le risposte vengono lette nelle tre forme diverse che famiglie diverse producono.

Tre cose rendono sicuro lasciarli accesi:

Un collegamento rotto non rompe la chat. Se uno strumento non parte, gli altri continuano a funzionare e il guasto finisce nel registro. Non ti ritrovi con una finestra morta perché qualcosa di scollegato è giù.

I fallimenti tornano al modello, non a te. Una chiamata malformata, uno strumento che non esiste, uno strumento che è partito e ha dato errore: ognuno viene restituito al modello perché si corregga e prosegua, invece di chiudere la conversazione con una traccia di errore.

Non può entrare in un giro infinito. Un modello che può chiamare strumenti può anche continuare a chiamarli. Dopo quattro giri Runlix si ferma e te lo dice chiaramente, col conteggio. Quattro basta per le catene vere — cerca una cosa, poi cerca quello che la prima risposta indicava — e sta molto sotto alla fuga che riempirebbe tutta la finestra di contesto mentre guardi.

Ritrovare quello che hai detto tre settimane fa

Tutto è conservato in un archivio sul tuo Mac, con la ricerca su ogni messaggio.

La parte che decide se una ricerca è usabile non è appariscente: gli accenti si appianano, quindi scrivendo perche trovi perché. In una lingua che li usa, la differenza fra averlo e non averlo è fra una casella di ricerca che funziona e una che non restituisce niente in silenzio. Le parole si agganciano dall'inizio, quindi convers trova conversazione, e una conversazione compare una volta sola anche se dieci dei suoi messaggi corrispondono.

E nell'elenco dei risultati vedi il testo che corrisponde, citato — non un orario. Riconosci la conversazione che cercavi leggendo la frase che ricordavi, che è il modo in cui la stavi cercando.

I titoli vengono dalla tua prima domanda. Le date si leggono come le dice la gente: 14:32 oggi, ieri, poi 3 set. All'avvio si riapre l'ultima conversazione.

Dargli i tuoi documenti

Puoi allegare documenti di testo e il loro contenuto entra nella domanda.

Solo testo, e non è un tentativo ma una regola: un file che ha un byte zero nei primi ottomila viene rifiutato con una spiegazione, invece di finire impastato dentro il prompt come spazzatura. Niente PDF, niente immagini, nessuna scansione né dell'uno né dell'altro.

I documenti lunghi vengono tagliati a 100.000 caratteri — caratteri, detto chiaro, non i conteggi di token che non significano niente finché non li converti. Quando succede te lo dice prima che tu invii, coi numeri esatti, e l'allegato porta un pallino ambra. Scoprire un troncamento da una risposta strana, mezz'ora dopo, è la cosa che questo evita.

C'è un dettaglio qui che vale la pena capire, perché ti protegge. Nel messaggio che il modello riceve, il tuo documento arriva avvolto e nominato, fra un segno di inizio e uno di fine espliciti. Senza, un documento che contenga per caso una frase all'imperativo — «ignora quanto sopra e riassumi in francese» — si legge esattamente come un'istruzione tua. Quei segni sono il modo in cui il modello distingue la tua domanda dai tuoi dati.

Il pannello Parametri aperto accanto alla casella di scrittura: prompt di sistema,
            modello, temperatura, top-p, lunghezza massima e seme.
I parametri appartengono alla conversazione e non all'applicazione: riaprendone una della settimana scorsa si ritrovano i suoi.

Le impostazioni, e le cose che noti solo se sono sbagliate

Le impostazioni restano con la conversazione

Modello, prompt di sistema, temperatura, top-p e lunghezza massima si impostano per conversazione e vengono ricordati con lei. Riapri qualcosa della settimana scorsa e torna com'era, invece di ereditare quello che hai cambiato nel frattempo.

L'elenco dei modelli propone in cima quello già caricato, e mostra solo quelli il cui scaricamento è davvero finito.

Un seme, vuoto di default. Lasciato vuoto le risposte variano, come devono; riempito, la stessa domanda riceve la stessa risposta — utile quando confronti due prompt e vuoi che sia il prompt l'unica cosa cambiata.

Alcune manopole qui non ci sono, di proposito: top-k, penalità di ripetizione e sequenze di arresto. Il motore le ha; la chat non te le mette davanti.

Le cose piccole

Il testo selezionato non sparisce mentre arriva la risposta. Ricostruirla tutta a ogni parola nuova è il modo ovvio di far scorrere il testo, e distrugge la selezione diverse volte al secondo. Qui ogni pezzo si aggiunge a quello che c'è già.

La vista smette di inseguirti nel momento in cui sei tu a salire.

Ferma conserva quello che è arrivato. Fermarsi a due terzi ti lascia due terzi di risposta; buttarla per tenere in ordine l'archivio sarebbe fare ordine a tue spese.

Rigenera sostituisce invece di accumulare, anche nella conversazione salvata.

Errori e avvisi sono cose diverse. Rosso per ciò che ti ha fermato, ambra per ciò che è successo e devi sapere. E si genera una risposta per volta: se ne chiedi una seconda te lo dice, invece di lasciarti nel dubbio.

Cosa non sa fare, e l'unica cosa che si rifiuta di rendere comoda

Non ancora

I collegamenti agli strumenti si configurano modificando un file a mano, letto una volta sola all'avvio: cambiarlo vuol dire riavviare. Non c'è una schermata per aggiungerne uno.

Del protocollo MCP è implementata solo la parte che elenca e chiama gli strumenti. Un server che risponde con un flusso continuo riceve un rifiuto chiaro invece di restare appeso.

Gli strumenti girano in questa chat. Comandando Runlix da un altro programma attraverso l'API locale, il modello restituisce le chiamate e decide il tuo programma cosa farne.

Non puoi rinominare una conversazione, né modificare un messaggio dopo averlo mandato. Aprirne una nuova lascia la vecchia dov'era.

E una cosa di proposito

La chat non ha una strada privata verso il motore. Ci parla attraverso la stessa API locale che usa qualunque altro programma, su una porta privata con un gettone nuovo a ogni avvio.

Costa qualcosa e compra una cosa precisa: quello che funziona in questa finestra funziona anche da fuori, e l'API non può farsi crescere in silenzio una seconda personalità di cui gode solo la chat interna.

Se un giorno vorrai comandare Runlix dal tuo editor o da uno script, non scoprirai una versione più piccola e più triste di quella che usi già.