Costruire un agente di intelligenza artificiale e' diventato negli ultimi due anni un esercizio di complessita': catene di prompt, orchestratori, decine di dipendenze. NVIDIA prova a ribaltare l'approccio con NOOA (Object-Oriented Agents), un framework open source con un'idea sola e radicale: un agente e' una singola classe Python. I metodi sono le azioni che il modello puo' compiere, i campi sono lo stato dell'agente, le docstring diventano i prompt e le annotazioni di tipo sono contratti che il runtime fa rispettare.

Il progetto e' distribuito con licenza Apache 2.0 come anteprima di ricerca (alpha) ed e' gia' installabile da PyPI. Non e' un giocattolo: sui benchmark, NVIDIA rivendica guadagni a doppia cifra ottenuti non cambiando il modello di base, ma migliorando il 'guscio' (l'harness) che lo circonda.

In NOOA i metodi della classe diventano gli strumenti che il modello puo' richiamare.

I numeri: SWE-bench all'82,2% con meta' dei token

Il dato che ha fatto notizia arriva da SWE-bench Verified, il test che misura quanto un agente sa risolvere problemi reali di programmazione presi da progetti open source. Usando come modello GPT-5.5, NOOA raggiunge un'accuratezza dell'82,2%, superando il precedente stato dell'arte del 79,2%. Il tutto consumando circa 1,1 milioni di token per compito, contro i 2,2 milioni richiesti dagli approcci concorrenti: meta' della spesa a parita' o superiorita' di risultato. NVIDIA sostiene che l'harness ben progettato possa ridurre l'uso di token e i costi operativi fino al 50%.

E' un punto importante: la tesi di NOOA e' che gran parte dei miglioramenti oggi non venga dal modello in se', ma dal modo in cui lo si mette al lavoro. Un'idea che sposta l'attenzione dagli enormi costi di addestramento all'ingegneria del contesto e degli strumenti.

Come installare NOOA e cosa serve

L'installazione e' quella di una qualsiasi libreria Python. Serve Python 3.12 o 3.13 e un ambiente virtuale. Da terminale:

python3 -m venv .venv
source .venv/bin/activate   # su Windows: .venv\Scripts\activate
pip install nooa

Trattandosi di un'anteprima, e' bene fissare la versione e leggere le note di rilascio: le API possono ancora cambiare. NOOA non include un modello: si appoggia a un LLM esterno (via API di un fornitore compatibile o a un modello servito localmente), quindi occorre anche una chiave API o un endpoint raggiungibile.

NOOA richiede Python 3.12 o 3.13 e un modello LLM a cui appoggiarsi.

Come si scrive un agente: lo schema tipico

La filosofia 'un agente = una classe' rende il codice sorprendentemente leggibile. Ogni metodo che vogliamo mettere a disposizione del modello diventa uno strumento; la sua docstring spiega al modello quando e come usarlo, e i tipi degli argomenti diventano il contratto che il runtime verifica. Lo schema, seguendo il paradigma descritto da NVIDIA, assomiglia a questo:

from nooa import Agent, tool

class AssistenteFile(Agent):
    """Un agente che legge file e fa calcoli per l'utente."""

    @tool
    def leggi_file(self, percorso: str) -> str:
        """Restituisce il contenuto testuale del file indicato."""
        with open(percorso, encoding='utf-8') as f:
            return f.read()

    @tool
    def somma(self, a: float, b: float) -> float:
        """Somma due numeri e restituisce il risultato."""
        return a + b

agente = AssistenteFile(model='gpt-5.5')
risposta = agente.run('Leggi note.txt e dimmi quante righe contiene')
print(risposta)

Il runtime si occupa del resto: presenta al modello i metodi come strumenti disponibili, gestisce il ciclo in cui il modello decide quale chiamare, esegue la funzione Python reale e restituisce l'esito al modello finche' non arriva alla risposta finale. Il risultato atteso, nell'esempio, e' che l'agente apra il file, ne conti le righe e risponda in linguaggio naturale, avendo eseguito davvero la lettura sul disco.

Per chi e' utile e quali sono i limiti

NOOA e' pensato per sviluppatori che costruiscono agenti per la programmazione, la sicurezza informatica o il ragionamento su compiti complessi, e che vogliono un codice compatto e verificabile invece di catene di prompt opache. La leggibilita' e' il suo punto di forza: chi legge la classe capisce subito cosa l'agente puo' fare.

I limiti sono quelli tipici di un'anteprima. La versione e' alpha, le interfacce possono cambiare, e come ogni agente dotato di strumenti va usato con prudenza: dare a un modello la capacita' di leggere file, eseguire comandi o accedere alla rete richiede sandbox e permessi ben definiti, per evitare che un'azione sbagliata provochi danni. La documentazione ufficiale, pubblicata sul blog per sviluppatori di NVIDIA, e' il punto di partenza consigliato per approfondire il funzionamento del guscio e le sei capacita' che, secondo l'azienda, fanno la differenza nelle prestazioni.

Il messaggio piu' ampio di NOOA e' culturale: in un momento in cui l'industria discute di costi del calcolo e di ritorni sugli investimenti, ridurre della meta' i token per completare un compito non e' un dettaglio tecnico, ma una leva economica. E arriva, non a caso, da chi quei chip li produce.

Come NOOA si colloca tra gli altri framework

Il panorama degli strumenti per costruire agenti e' affollato: ci sono orchestratori a grafo, librerie basate su catene di prompt, framework no-code. La proposta di NVIDIA si distingue per la scelta di ridurre tutto a un costrutto che ogni sviluppatore Python conosce gia', la classe. Non serve imparare un nuovo linguaggio di configurazione ne' disegnare diagrammi: si scrive codice Python normale, e la struttura del linguaggio diventa la struttura dell'agente. Questo abbassa la barriera d'ingresso e, soprattutto, rende il comportamento dell'agente piu' facile da leggere, testare e correggere.

C'e' anche una lettura strategica. NVIDIA vende chip, e ogni token risparmiato e' potenza di calcolo liberata. Un framework che ottiene risultati migliori usando meno risorse rende piu' efficiente l'intera infrastruttura, alimentando l'idea che il valore non stia solo nel modello piu' grande ma nel modo in cui lo si orchestra. Per chi sviluppa, il vantaggio e' immediato: costi piu' bassi a parita' di qualita'.

Come iniziare senza spendere troppo

Per fare esperimenti senza costi elevati, conviene collegare NOOA a un modello economico o a un modello aperto servito in locale, per esempio tramite un runtime compatibile con le API standard. In questo modo si puo' testare la logica dell'agente — quali strumenti espone, come li usa, come gestisce gli errori — senza pagare per ogni chiamata a un modello di frontiera. Una volta validato il flusso, si puo' passare a un modello piu' potente solo per i compiti che lo richiedono davvero, mantenendo la spesa sotto controllo.