L’ANALISI
llama.cpp b12229: il server applica lo schema JSON
llama.cpp b12229 corregge response_format.schema ignorato dal server e conserva la precedenza del wrapper json_schema, anche con schema vuoto.

In breve: llama.cpp b12229 corregge il caso in cui response_format.schema veniva ignorato con type=json_schema. Il server continua a dare precedenza al wrapper json_schema quando è presente, anche se contiene uno schema vuoto valido. llama.cpp b12229: correzione del formato JSON Schema.
Verifica delle note ufficiali b12229, della PR integrata 28697 e dei diff di codice, README e test. Nessun server avviato e nessuna generazione o suite upstream eseguita in questa analisi.
Quale richiesta poteva perdere il vincolo?
Il caso documentato usa type=json_schema e colloca lo schema direttamente in response_format.schema. Prima del fix il parser cercava lo schema solo dentro response_format.json_schema.schema: la forma al livello principale poteva quindi trasformarsi in uno schema vuoto e lasciare la generazione senza il vincolo richiesto. Per un’integrazione il punto è controllare il payload realmente inviato dal client, non solo il nome del parametro mostrato nell’interfaccia.
llama.cpp b12229: correzione del formato JSON Schema · PR 28697: origine e portata della correzione.
Che cosa succede se ci sono entrambe le forme?
Il diff controlla la presenza della chiave json_schema. Se la chiave esiste, viene usato il wrapper; altrimenti il server cerca schema al livello principale. La presenza conta anche quando lo schema nel wrapper è {}: uno schema vuoto è valido e non deve essere sostituito automaticamente dall’altra forma. Aggiungere entrambe per sicurezza può quindi produrre un risultato diverso da quello immaginato dal client.
llama.cpp b12229: correzione del formato JSON Schema · Diff del parser, del README e dei test.
Quali prove sono state aggiunte al repository?
La PR cambia parser e documentazione e aggiunge quattro righe di casi ai test delle chat completion: forma al livello principale, precedenza del wrapper e gestione del wrapper con schema vuoto. L’autore dichiara una riproduzione con un modello di test; questa analisi non la replica. La release b12229 collega il cambiamento e risulta pre-release. La copertura del diff è un riferimento utile per scegliere i casi da ripetere, non una certificazione di tutti i vincoli possibili.
llama.cpp b12229: correzione del formato JSON Schema · PR 28697: origine e portata della correzione · Diff del parser, del README e dei test.
Come verificare un client che produce dati strutturati?
Protocollo proposto: acquisire una richiesta senza dati sensibili, fissare modello e versione del server e provare separatamente le due forme di payload. Aggiungere poi un caso con entrambe e uno con wrapper vuoto, registrando richiesta e risposta integrali. Validare il JSON con lo schema realmente scelto prima che un agente esegua azioni o aggiorni sistemi esterni. Un HTTP 200 e un JSON sintatticamente valido non dimostrano da soli che i campi rispettino il contratto applicativo.
PR 28697: origine e portata della correzione · Diff del parser, del README e dei test.
Condizioni e limitazioni
b12229 è marcata pre-release. I test aggiunti sono prova del contratto nel repository, non una nostra esecuzione né una garanzia su tutti gli schemi JSON o su ogni client compatibile.
Checklist pratica
- Acquisire il payload effettivo inviato dal client senza segreti.
- Fissare versione del server, modello e parametri del confronto.
- Provare separatamente forma al livello principale e wrapper annidato.
- Ripetere i casi con entrambe le forme e con wrapper vuoto.
- Validare la risposta prima di qualsiasi azione esterna dell’agente.