L’ANALISI
llama.cpp b11057: il parser Ling 3.0 che salva le tool call
La prerelease corregge un caso in cui una tool call poteva sparire nel reasoning e interrompere il ciclo di un agente locale.

In breve: b11057 aggiunge un parser specifico per Ling 3.0/Bailing V3 che chiude implicitamente il reasoning quando incontra una tool call. In questo modo il client riceve la chiamata invece di una risposta vuota che interrompe il loop agentico.
Il difetto corretto
I template Ling 3.0 Flash possono iniziare il blocco di reasoning nel prompt senza far emettere al modello il tag di apertura. Se una tool call arriva prima del tag di chiusura, l’autoparser precedente poteva classificarla interamente come reasoning_content.
Perché un agente si fermava
Per il client il turno risultava composto da contenuto vuoto e nessuna tool call. Non c’era quindi un comando da eseguire né un risultato da restituire al modello: il ciclo agentico terminava anche se il modello aveva prodotto una chiamata valida.
Come cambia il parser
Il parser dedicato termina il reasoning sia al tag di chiusura sia all’inizio di una tool call. Il rilevamento è limitato ai marker della famiglia Ling, così da non applicare la regola indiscriminatamente ad altri template.
Quali test sono stati aggiunti
La release dichiara test per parsing completo e streaming, percorsi con reasoning chiuso correttamente, testo finale, chiamate parallele, stringhe simili ai marker negli argomenti, tipi non stringa e reasoning_format=none.
Condizioni e limitazioni
La build è marcata prerelease. La correzione riguarda Ling 3.0/Bailing V3 e non garantisce che ogni client esponga allo stesso modo reasoning e tool call. Serve una prova end-to-end sul proprio stack.
Checklist pratica
- Salvare versione di modello, template e build llama.cpp usati nel test.
- Provare una tool call prima della chiusura esplicita del reasoning.
- Ripetere il caso sia in streaming sia senza streaming.
- Verificare chiamate parallele e argomenti stringa e non stringa.
- Controllare che il client riceva tool_calls e non un turno vuoto.
- Mantenere rollback alla build precedente finché il test E2E non passa.