Runtime delle richieste

Il runtime accompagna una richiesta dall'ingresso alla risposta. Mantiene il contesto dell'utente, sceglie le capacità ammesse, costruisce o riusa un piano, applica i controlli e coordina gli executor. È il direttore d'orchestra di un turno, non un executor universale.

In questa pagina

  1. Che cos'è un turno
  2. Il percorso completo
  3. Come viene scelto il percorso
  4. Com'è fatto un piano
  5. Come passano i dati
  6. Controlli, conferme e credenziali
  7. Pause, riprese e lavori lunghi
  8. Risultati, errori e registri

Che cos'è un turno

Un turno comincia quando Metnos riceve una richiesta e termina quando restituisce una risposta, chiede un'informazione indispensabile oppure affida un lavoro lungo a LRE. Il runtime associa subito la richiesta a:

Queste informazioni delimitano tutto ciò che segue. La cronologia di una conversazione non viene mescolata con quella di un altro utente; un dispositivo associato a un proprietario non diventa una risorsa comune; una credenziale viene cercata soltanto entro il mandato autorizzato per quel turno.

Il percorso completo

Consideriamo la richiesta: «Leggi i tre preventivi nella cartella Acquisti, confronta i prezzi e crea una tabella riepilogativa».

  1. Ingresso. Il canale autentica la richiesta e ricostruisce il contesto della conversazione. Se esiste già una domanda in sospeso, la risposta dell'utente riprende quel dialogo invece di avviare un compito estraneo.
  2. Confine informativo. Se la frase chiede soltanto come usare Metnos, può rispondere il Tutor senza avviare il pianificatore operativo.
  3. Intento. Il runtime individua il risultato richiesto e le azioni principali: leggere, confrontare e creare.
  4. Catalogo pertinente. Dal catalogo completo ricava gli executor utili e disponibili. Il pianificatore non deve scegliere fra capacità che l'istanza non può eseguire.
  5. Piano. Metnos riusa un piano ancora valido oppure ne chiede uno nuovo al proponente configurato.
  6. Validazione. Prima dell'esecuzione controlla nomi, schemi, argomenti, dipendenze, collocazione e coerenza con la richiesta.
  7. Autorità. Policy, Vaglio, sandbox, destinazione e consenso vengono valutati per i passi a cui si applicano.
  8. Esecuzione. Ogni executor riceve solo gli argomenti risolti per il proprio contratto e restituisce un risultato strutturato.
  9. Risposta. Il runtime compone il messaggio finale dagli esiti osservati e registra la traccia del turno.

Il modello linguistico aiuta nei punti in cui serve capire o comporre linguaggio. I controlli di schema, identità, autorizzazione, collocazione e firma restano invece deterministici. Proporre un piano non equivale ad avere il potere di eseguirlo.

Come viene scelto il percorso

Il runtime prova i percorsi dal più semplice al più generale:

PercorsoQuando serveChe cosa viene ricontrollato
Regola deterministicaPer operazioni dal significato chiuso, come annullare l'ultimo turno o riprendere un dialogo noto.Identità, stato corrente e contratto specifico.
Fast pathPer riusare un piano riuscito sulla stessa richiesta.Firme del catalogo, argomenti variabili e condizioni operative.
AutopathPer riusare un piano generalizzato e confermato su una richiesta affine.Somiglianza, assenza di valori personali incorporati, catalogo e validazione completa.
Nuova propostaQuando non esiste un percorso precedente affidabile.Intero piano, passo per passo.

Fast path e autopath sono cache di piani, non scorciatoie intorno ai controlli. Conservano le firme delle capacità rilevanti. Se il mondo operativo cambia, il riuso non è più valido e Metnos torna alla pianificazione ordinaria.

I modelli sono scelti per funzione attraverso livelli configurabili. Il runtime chiede, per esempio, un modello adatto alla pianificazione o alla sintesi; non dipende dal nome commerciale di un modello. La configurazione effettiva è visibile in Sistema › Modelli.

Com'è fatto un piano

Un piano è una lista finita di passi tipizzati. Ogni passo nomina un executor presente nel catalogo, fornisce argomenti conformi al suo schema e può dipendere da risultati precedenti. Non contiene codice libero da eseguire.

{
  "steps": [
    {"tool": "find_files", "args": {"base_path": "~/Acquisti", "pattern": "*.pdf"}},
    {"tool": "read_files", "args": {"from_step": 1}},
    {"tool": "extract_entries", "args": {"from_step": 2, "fields": ["fornitore", "prezzo"]}},
    {"tool": "create_files_spreadsheet", "args": {"from_step": 3, "path": "~/Acquisti/riepilogo.xlsx"}}
  ]
}

L'esempio mostra la forma, non promette che ogni installazione possieda esattamente quegli executor. Il catalogo generato è la fonte per le capacità installate.

Il validatore rifiuta un executor sconosciuto, un argomento fuori schema, un riferimento a un passo futuro o una combinazione incoerente. Le guardie comuni possono anche inserire un produttore indispensabile, riallineare dipendenze note o chiedere una nuova proposta quando manca un'azione esplicitamente richiesta. Non aggiungono capacità estranee al catalogo.

Come passano i dati

I risultati non vengono copiati a mano nella richiesta del passo successivo. Il piano usa due riferimenti principali:

Prima dell'invocazione, il runtime risolve questi riferimenti e ricontrolla lo schema finale. Se un produttore non restituisce dati, il consumer non riceve per errore il risultato di un vecchio passo. Se una raccolta è molto grande, può essere conservata nello scratchpad mentre il pianificatore ne vede soltanto una proiezione utile e dichiaratamente troncata.

I dati conservano anche la loro provenienza. Sapere che un valore arriva dal passo 2 non basta a trasformarlo in un percorso locale, in un destinatario o in un'autorizzazione: il consumer deve dichiarare che cosa accetta e il runtime deve poterlo verificare.

Controlli, conferme e credenziali

Ogni passo attraversa lo stesso punto di invocazione, indipendentemente dal fatto che il piano sia nuovo, riusato, programmato o destinato a un dispositivo remoto. Qui il runtime applica i controlli comuni e registra l'esito reale.

Se serve una conferma, l'esecuzione si ferma prima dell'effetto. La proposta deve rendere riconoscibili azione, scopo, destinazione e conseguenze rilevanti. La risposta viene legata all'utente e al turno che l'ha generata, così una conferma vecchia o appartenente a un'altra conversazione non può riprendere il piano.

Le credenziali seguono un percorso separato. Il pianificatore può indicare il tipo di accesso necessario, ma il runtime risolve il segreto da un archivio cifrato e da un mandato circoscritto soltanto al momento dell'esecuzione. Il valore non entra nel piano, nei messaggi del modello o nei registri ordinari.

Pause, riprese e lavori lunghi

Non tutte le richieste possono concludersi in un'unica risposta HTTP o Telegram.

Una ripresa non ricomincia alla cieca. Il runtime ricontrolla proprietario, scadenza, stato del dialogo, catalogo e condizioni operative prima di proseguire.

LRE distingue presenza del servizio e avanzamento del lavoro. Quando è disabilitato continua a segnalare la propria presenza senza eseguire attività; quando non ci sono unità eseguibili evita di aprire lavoratori concorrenti. La manutenzione periodica delle autorizzazioni resta attiva. Il numero di lavoratori segue la domanda e i limiti centrali, senza sostituire i controlli atomici di ammissione. La console separa risultati confermati, errori ed elementi saltati e indica quando i dati non sono aggiornati. Consumi non verificabili fermano il lavoro per sicurezza: non significano necessariamente spesa esaurita.

Il registro delle superfici e la guida del Tutor distinguono motore, lavoro accodato, unità in attesa e risultati confermati: l'attesa non implica approvazione e un risultato salvato non implica completamento dell'intero lavoro. La lettura di stati e contatori è una domanda informativa, non una richiesta di avviare operazioni.

Nella pagina Servizi, l'indicatore principale di LRE descrive la funzione, non il solo processo: grigio se disattivata con stato confermato, verde solo se abilitata e pronta, giallo se in transizione o non verificata, rosso per errore del servizio o configurazione non valida. I dettagli tecnici conservano lo stato del processo. Questa distinzione visiva non cambia i controlli di salute, le decisioni del supervisore o l'abilitazione persistente.

Un prerequisito conserva la collocazione prevista dai contratti verificati: se sia la ricerca sia la preparazione sono riservate al server, anche la preparazione LRE avviene sul server, indipendentemente dal dispositivo ricordato nella conversazione. Se uno dei componenti può lavorare su un dispositivo, la destinazione richiesta resta invariata e soggetta ai normali controlli. I dati restituiti da un executor non possono scegliere la destinazione.

Risultati, errori e registri

La console LRE ricava l'avvio dai tentativi realmente eseguiti nella revisione corrente, non dalla creazione del lavoro. Una tabella compatta separa batch completati e previsti nella fase corrente dal totale noto di tutte le fasi, che può crescere. La percentuale principale riguarda la fase indicata come x/y, non il tempo; quella aggregata rimane nei dettagli tecnici. Un'unica lettura aggregata per pagina, circoscritta al proprietario, ricava una fine prevista indicativa della sola fase corrente già interamente materializzata, con almeno tre risultati della stessa fase sufficientemente recenti. Non somma fasi diverse: la previsione dell'intero lavoro resta separata e disponibile solo per piani a fase unica. Errori, pausa, motore non pronto o dati non aggiornati producono n.a. con un motivo; un lavoro da verificare ha precedenza sugli altri motivi.

L'analisi foto richiede una risposta del modello vincolata a uno schema e la convalida nuovamente prima di salvare. Una risposta troncata non diventa un risultato riuscito; il consumo effettivo resta registrato, senza aumentare automaticamente il limite. Il dominio distingue descrizione indisponibile, troncata, non valida o vuota e dichiara una causa recuperabile; uno schema di richiesta non valido richiede invece una verifica. Non ripete la chiamata al proprio interno: LRE applica i tentativi e gli effetti già ammessi. La diagnostica LRE conserva solo codici dichiarati nello schema di uscita approvato e cause enumerate del caricatore, mai testo arbitrario delle eccezioni.

Nel motore generale, l'esaurimento dei tentativi per un errore recuperabile porta a Richiede attenzione, conservando batch in attesa e risultati confermati. Una causa ignota richiede verifica senza retry automatici; errori permanenti espliciti e violazioni di contratto restano non recuperabili. La decisione di riprovare autorizza un solo tentativo, non un ciclo illimitato. Contabilità, autorizzazioni e sicurezza degli effetti restano obbligatorie. Lo storico può mostrare la causa approvata del tentativo senza confonderla con gli elementi che hanno prodotto un esito negativo di dominio.

Il controllo delle cartelle vuote lasciate da una pubblicazione interrotta usa una lettura condivisa: altri lettori non rendono il catalogo non valido, mentre lo scrittore resta escluso durante la verifica. Formato, proprietà, permessi e assenza di contenuti restano obbligatori; il controllo non ripara né elimina le cartelle. Uno stato LRE da verificare sospende nuovi blocchi, ma consente a quelli già avviati di salvare il proprio risultato.

La domanda di esecuzioni parallele rispetta la risorsa più limitata richiesta da ciascun blocco e i vincoli condivisi tra lavori: le capacità CPU, disco e VLM non si sommano quando servono contemporaneamente. L'ammissione effettiva resta del coordinatore centrale. L'analisi foto decodifica anche HEIC, senza modificare gli originali; un formato illeggibile resta un errore esplicito, mai una foto indicizzata. Ogni analisi completa salva un riferimento privato verificabile: un nuovo tentativo della stessa generazione riusa solo risultati con sorgente, modelli, istruzioni e contesto cartella corrispondenti. I riferimenti non pubblicano un indice parziale e non eliminano i controlli sui consumi.

L'elenco identifica attività e cartella, quando disponibili nel piano ammesso del proprietario; il dettaglio distingue fase osservata, blocchi in esecuzione e limite di concorrenza del lavoro. Questi conteggi non misurano thread o processi. Durante la scansione iniziale delle foto, un blocco rappresenta la scoperta, non l'intero archivio; il totale delle fasi successive non è ancora noto. Percentuale e previsione sono n.a., con motivo esplicito. Gli errori del lavoro restano evidenti anche quando il servizio è pronto.

Una contesa temporanea di scrittura SQLite sospende le nuove ammissioni con attesa crescente e limitata, senza fermare immediatamente le altre corsie. Più errori simultanei contano come un singolo ciclo fallito. Corruzione e guasti diversi non vengono classificati come contesa. Il caricatore delle capacità distingue gli aggiornamenti delle statistiche d'uso dalle effettive modifiche di disponibilità, che continuano a invalidare il catalogo verificato.

Un executor può riuscire, non produrre alcun elemento, produrre un risultato parziale oppure fallire. Questi casi non sono equivalenti. Il runtime conserva la distinzione e la usa per decidere se proseguire, tentare un recupero limitato o terminare.

Il recupero non ripete ciecamente un'azione che potrebbe avere già modificato lo stato. Prima classifica l'errore e considera gli effetti registrati. Se non esiste una ripresa sicura, la risposta dichiara il limite. Quando solo una parte del piano fallisce, ciò che è riuscito rimane visibile senza trasformare il risultato complessivo in un falso successo.

La traccia del turno comprende il percorso scelto, i passi, i controlli, i tempi, gli esiti e l'eventuale ricevuta di annullamento. Non deve contenere segreti. Amministratori e utenti vedono soltanto le informazioni compatibili con il proprio ruolo e la propria identità.

In una frase. Il runtime non stabilisce che cosa Metnos può fare: lo stabiliscono gli executor ammessi. Il runtime fa sì che quelle capacità vengano scelte, controllate, eseguite e raccontate nello stesso modo, qualunque sia il percorso che ha prodotto il piano.