In che modo la progettazione dello schema degli strumenti limita le azioni di un agente IA domestico?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

La progettazione dello schema degli strumenti limita un agente IA domestico restringendo i parametri e le forme delle azioni che possono diventare chiamate valide agli strumenti prima dell'esecuzione.

Un modello può comunque ragionare in modo errato, ma i campi tipizzati, i target obbligatori, gli enum e la validazione riducono ciò che quell'errore può esprimere prima che i livelli di autorizzazione e approvazione decidano se l'azione può essere eseguita.

Uno schema dello strumento definisce la forma di una richiesta consentita

Uno strumento di un agente non è soltanto un nome e una descrizione. Il suo schema definisce quali campi possono essere forniti, quali tipi utilizzano e quali combinazioni sono strutturalmente accettabili.

La specifica MCP attuale richiede un inputSchema definito con JSON Schema. Questo fornisce al runtime un contratto leggibile dalle macchine, invece di affidarsi soltanto al linguaggio naturale. Il Model Context Protocol definisce gli strumenti con uno schema di input, rendendo esplicita la struttura degli argomenti accettati prima dell'esecuzione di una chiamata allo strumento; consulta gli schemi di input degli strumenti MCP.

Su un home server, questo può distinguere uno strumento limitato per il riavvio da una shell amministrativa generica.

Una chiamata che non può esprimere comandi arbitrari ha già una superficie d'azione più ridotta.

I campi obbligatori impediscono le azioni incomplete

Le proprietà obbligatorie costringono il modello a fornire le informazioni necessarie per un'operazione. Uno strumento per spostare file può richiedere sia l'origine sia la destinazione; uno strumento per i container può richiedere un target e un'azione.

MCP segue la semantica di validazione di JSON Schema, che supporta proprietà obbligatorie e vincoli sui tipi. La validazione JSON Schema definisce le proprietà obbligatorie e altre asserzioni strutturali in grado di rifiutare richieste incomplete, supportando il livello di vincolo descritto nel vocabolario di validazione JSON Schema.

Questo impedisce al codice dell'applicazione di indovinare i target mancanti o di ereditare impostazioni predefinite rischiose. L'assenza diventa un errore di validazione anziché un'azione implicita.

Gli enum e gli intervalli eliminano le azioni che il modello non può esprimere

Uno schema può limitare un campo a un insieme enumerato o a un intervallo definito. Se l'azione consente soltanto riavvio, arresto e avvio, l'eliminazione non può passare attraverso quel campo.

MCP richiede che gli argomenti degli strumenti siano conformi allo schema di input dello strumento. I vincoli strutturali sono più forti di una descrizione che indica semplicemente cosa dovrebbe accadere di norma. Gli schemi OpenAPI possono esprimere valori enumerati, limiti numerici e proprietà tipizzate, mostrando come uno strumento possa rendere inesprimibili le azioni non valide tramite le definizioni degli schemi OpenAPI.

A casa, lo stesso meccanismo può limitare i valori del termostato, i giorni di conservazione, i nomi dei servizi o le destinazioni dei backup, mantenendo esplicito il vocabolario delle azioni.

Le descrizioni guidano la selezione, ma la validazione impone la struttura

Le descrizioni in linguaggio naturale aiutano il modello a scegliere uno strumento e a interpretare i campi, ma non impongono lo stesso limite di un validatore che rifiuta le chiamate non conformi al contratto.

MCP descrive le descrizioni degli strumenti come un suggerimento leggibile dagli esseri umani per aiutare il modello a comprendere, mentre inputSchema fornisce il contratto formale dei parametri. L'utilizzo degli strumenti di Anthropic si basa su parametri degli strumenti dichiarati per guidare le chiamate generate dal modello, ma la guida del modello rimane diversa dalla validazione a runtime, come spiegato negli schemi per l'utilizzo degli strumenti di Anthropic.

Questo distingue l'argomento dall'articolo di ZimaSpace sulla minore affidabilità della selezione degli strumenti quando sono disponibili troppi strumenti. L'ambiguità nella selezione si verifica prima che venga scelto uno strumento; i vincoli dello schema si applicano invece alla chiamata candidata stessa.

La validazione dello schema non concede l'autorizzazione

Una richiesta strutturalmente valida può comunque non essere autorizzata. Lo schema può consentire restart(container=postgres), mentre il chiamante può essere autorizzato a riavviare soltanto un container multimediale.

MCP considera l'utilizzo degli strumenti come un'interazione con sistemi esterni e raccomanda controlli di sicurezza e approvazione umana intorno all'invocazione. La correttezza dello schema è un livello, non un sistema completo di autorizzazione. Anche il function calling di Google Gemini utilizza dichiarazioni di funzione strutturate, mentre l'autorizzazione rimane esterna allo schema stesso; questa separazione supporta gli schemi del function calling di Gemini.

Questo limite si collega all'articolo di ZimaSpace sui limiti dell'ambito degli strumenti per gli agenti IA domestici: lo schema limita i parametri rappresentabili, mentre l'ambito e le capacità determinano quali operazioni valide sono effettivamente autorizzate.

Gli schemi più piccoli sono più facili da testare e verificare

Uno strumento ampio con molti campi facoltativi crea numerose combinazioni valide.

La restrizione degli strumenti riduce il numero di comportamenti che le valutazioni devono coprire.

JSON Schema supporta proprietà degli oggetti, membri obbligatori e il controllo delle proprietà aggiuntive, consentendo di rifiutare i campi imprevisti invece di accettarli silenziosamente. Pydantic può generare schemi leggibili dalle macchine a partire da modelli tipizzati, mostrando perché gli schemi più piccoli ed espliciti sono più facili da validare e testare nella generazione di JSON Schema con Pydantic.

I test possono quindi elencare le azioni consentite, le combinazioni non valide, i valori limite e il comportamento in caso di rifiuto prima che il modello venga collegato a file, container, dispositivi o sistemi di backup.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.