Configurare un agente di coding locale su macOS

Guida pratica per eseguire Gemma 4 con llama.cpp e Metal su Mac, creando un agente locale compatibile con API OpenAI e supporto multimodale.

Configurare un agente di coding locale su macOS

Un setup locale con Gemma 4 su Apple Silicon

Kyle Howells ha descritto su Hacker News la procedura per eseguire un agente di programmazione locale su macOS. Il sistema usa llama.cpp compilato con supporto Metal, il modello Gemma 4 26B-A4B in formato GGUF e un modello draft MTP per il decoding speculativo. L’obiettivo era ottenere velocità accettabili su hardware Apple Silicon senza dipendere da API esterne, mantenendo compatibilità OpenAI e supporto per immagini.

Componenti del sistema e installazione

A modern 3D isometric illustration of a computer processor glowing with data streams, surrounded by abstract floating blocks representing software components and folders, dark mode tech aesthetic, no text or logos.

Il modello principale occupa circa 16 GB in quantizzazione Q4_K_XL. Aggiungendo il projector multimodale e il draft MTP Q8_0 la cartella raggiunge i 17 GB. La compilazione di llama.cpp richiede l’abilitazione esplicita di Metal e la compilazione con CMake per ottenere il binario ottimizzato. Una volta pronti i file, il comando di base carica il modello con accelerazione GPU e contesto di 4096 token.

Per attivare il modello draft si aggiungono i flag --model-draft, --spec-type draft-mtp e --spec-draft-n-max. Il valore ottimale di quest’ultimo parametro varia tra 2 e 3 a seconda della macchina; su M1 Max il massimo è stato raggiunto con 3 draft token.

Prestazioni misurate

Senza speculative decoding la generazione si attesta intorno ai 58 token al secondo. Con il draft MTP la velocità sale a 72 token al secondo, un incremento del 24 %. Il prompt di benchmark consisteva nella scrittura di una funzione Python compatta per il parsing di unified diff. Il tempo di risposta rimane utilizzabile per sessioni interattive, anche se resta inferiore a quello di modelli più piccoli ottimizzati per latenza.

Il consumo di memoria unificata sale di circa 2 GB quando si attiva il draft, ma resta gestibile su configurazioni da 64 GB. Il supporto per screenshot è fornito dal projector multimodale incluso nel repository del modello.

Utilizzo pratico con agenti di programmazione

A sleek, abstract representation of an AI assistant interacting with a code editor interface, featuring glowing nodes connecting to a central hub, neon blue and purple color palette, modern tech aesthetic, no text or logos.

Il server llama.cpp espone un endpoint compatibile con l’API OpenAI, quindi può essere collegato direttamente a utility come Pi o altri client che accettano base URL personalizzati. Il flusso di lavoro prevede l’invio di prompt di sistema che definiscono il ruolo dell’agente, seguiti da comandi e, quando necessario, da immagini dello schermo. Non richiede connessione internet dopo il caricamento iniziale dei pesi.

Il limite principale resta la velocità assoluta: per task che generano centinaia di token consecutivi il ritardo si accumula. Su hardware meno recente o con meno memoria unificata il setup diventa meno reattivo.

FAQ

Quale hardware serve per ottenere prestazioni accettabili? Un Apple Silicon con almeno 32 GB di memoria unificata permette di caricare il modello Q4, ma 64 GB offrono margine per il draft MTP e il projector.

Il modello supporta input multimodali? Sì, grazie al projector incluso è possibile inviare screenshot insieme al testo.

Posso usare lo stesso endpoint con altri client? Il server espone un’API compatibile OpenAI, quindi basta impostare il base URL locale nei client che lo supportano.

---

📖 Leggi anche

Hai bisogno di una consulenza?

Aiuto aziende e startup a sviluppare software, automatizzare processi e integrare AI. Parliamone.

Scrivimi
← Torna al blog