Vai al contenuto

Ultima release su GitHub: v3.0.1 del 7 novembre 2026

AITS

Come funziona AITS

Il modello produce, il motore valida. In AITS 3 la specifica del metodo, il motore che la fa rispettare e gli adattatori per ogni runtime vivono separati, così cambiando modello o ambiente le regole restano le stesse.

Architettura a quattro livelli

La specifica descrive il metodo senza nominare fornitori e il motore lo applica senza chiamare modelli, mentre gli adattatori portano tutto dentro Claude Code, in una skill o in un client MCP. La scelta di quale modello serve ogni livello sta nella configurazione, che resta tua.

specmotore aits-coreadattatoriClaude Code pluginAgent SkillsMCP serverA2Ail tuo aits.config.yamlil modello produce, il motore valida
spec/                 il metodo: agenti, rules.yaml, grafi, schemi, riferimenti, playbook
packages/core/        aits-core: il motore (validazione, regole e gate, registro, memoria, calibrazione, export)
packages/cli/         CLI aits, server aits-mcp, hook di runtime, endpoint A2A, builder degli adattatori, eval
plugins/aits/         adattatore Claude Code (generato da spec/)
skills/aits/          adattatore Agent Skills con il motore in scripts/aits.mjs (generato da spec/)
aits.config.yaml      tuo: quale modello serve ogni livello, embedder della memoria, chiave di firma

Regole inviolabili

Le regole sono dichiarate in spec/rules.yaml e il motore le valuta dopo ogni output, in ogni modalità di controllo umano.

RegolaCondizioneEffetto
R1Un agente diverso dal Meta-Orchestratore prende una decisioneOutput rifiutato, gate bloccante
R2Un agente segnala una lacuna nei dati ad alto impattoL'Analitico deve girare di nuovo, gate bloccante
R2aL'Analitico segnala una lacuna ad alto impattoGate bloccante
R3Il Critico-Validatore trova una severità uguale o superiore a 10Devono girare Etico-Governance o Predittivo-Strategico, gate bloccante
R4Il Critico dice stop e l'Ottimizzatore dice vaiEtico-Governance deve arbitrare, gate bloccante
R5Il Creativo-Generativo propone 4 o più opzioniDeve girare il Foresight, gate consultivo
R6Etico-Governance trova una linea rossaGate bloccante
R7Lo stesso agente fallisce due volte la validazione dello schemaGate bloccante
R8Un agente alza un hitl_flag bloccanteGate bloccante

Gate umani

Davanti a un gate la persona può rispondere proceed, provide_context, override o abort, e l'override chiede una giustificazione e abbassa il tetto della confidenza finale. Ogni risposta viene registrata con il canale da cui arriva: il modulo che il client MCP mostra direttamente all'utente (elicitation), la riga di comando, un sistema A2A oppure le parole della persona riportate dal modello.

Quest'ultimo canale esiste per le sessioni senza nessuno davanti allo schermo, come quelle pianificate o lanciate con claude -p, dove il modulo non riceve risposta. Il motore accetta la risposta riportata solo se contiene le parole della persona e la marca come agent_relayed, mentre un rifiuto esplicito del modulo lascia il gate aperto.

Modalità di controllo

supervised (supervisionata)
la persona rivede e può correggere la rotta dopo ogni agente.
autonomous (autonoma)
il sistema procede da solo e si ferma ai gate obbligatori.
review (revisione)
il sistema completa l'analisi e la persona rivede tutto alla fine.

in tutte e tre le regole inviolabili valgono allo stesso modo.

Confidenza calcolata

La confidenza mostrata all'utente parte dall'input critico più debole, scende a low per un agente le cui previsioni passate non battono la frequenza di base, si ferma a medium quando tutti gli output vengono da una sola famiglia di modelli (o le famiglie non sono dichiarate) e si ferma a medium anche dopo un override umano. Il report mostra fianco a fianco quella dichiarata dall'orchestratore e quella calcolata, con le ragioni.

Diversità tra modelli

Uno studio della Cornell presentato a ICML 2025, Correlated Errors in Large Language Models (arxiv.org/abs/2506.07962), ha osservato che su una delle classifiche analizzate due modelli che sbagliano la stessa domanda scelgono la stessa risposta sbagliata il 60% delle volte, con una correlazione più alta tra modelli dello stesso sviluppatore. Per questo gli agenti che stimano rischi e probabilità girano più volte in modo indipendente, su famiglie di modelli diverse quando sono configurate, e le loro posizioni vengono aggregate senza dibattito: mediana dei numeri, conteggio delle posizioni e un rapporto di minoranza che conserva chi non è d'accordo.

Memoria e calibrazione

Ogni decisione chiusa salva le sue previsioni, quelle dichiarate dagli agenti più i rischi con severità da 10 in su e le probabilità degli scenari, e quando arriva l'esito lo registri con aits outcome. Il motore calcola il Brier score per agente, famiglia di modelli e livello, e da venti previsioni risolte per agente comincia a ricalibrarle da solo.

aits recall "<domanda>"
trova decisioni passate simili per significato, non per tag
aits outcome <decisione> <previsione> 0|1
registra cosa è successo
aits calibrate
mostra Brier score, skill sulla frequenza di base e affidabilità
aits patterns scan
propone nuovi archetipi da gruppi di almeno tre decisioni simili, che una persona approva o rifiuta

Registro verificabile

aits export scrive report.md, envelopes.json, log.jsonl, verification.json e trace.otlp.json, una traccia OpenTelemetry con struttura e hash ma senza contenuti. Con aits keys generate e una chiave nella configurazione ogni riga del registro viene firmata con Ed25519, e qualunque modifica successiva rompe la catena in un punto preciso.

Prova a manomettere un registro nella demo