AI coding agenty na vašem stole: Praktický průvodce pro Mac
Proč zůstat u lokálu?
Každý to zná. Sedíš u kódu, kreativní flow se konečně rozjíždí, a najednou — internet spadne. Cloudový AI asistent se stane k ničemu a ty zíráš na obrazovku s otázkou, co dál.
Přesně to se nedávno stalo mně. A donutilo mě konečně prozkoumat, jak rozjet pořádného AI coding agenta čistě lokálně. Co jsem objevil? S správným nastavením se dá dosáhnout překvapivě slušného výkonu na Apple Silicon — často lepšího než specializované Mac-optimalizované řešení.
Sestava, která funguje
Po spoustě testování a benchmarkování jsem dospěl k této konfiguraci na svém M1 Max se 64 GB unified memory:
Základní stack:
- llama.cpp s Metal akcelerací
- Gemma 4 26B-A4B ve formátu GGUF (kvantizovaná na Q4)
- MTP draft model pro spekulativní dekódování
- Multimodální projektor Gemma 4 pro práci se screenshoty
- Pi jako terminálový coding agent
Není to nejvýkonnější sestava, jakou bys teoreticky mohl postavit. Ale je to ideální kompromis pro reálné použití. Chceš rychlost měřenou v tokenech za sekundu, ne minutách na odpověď.
Čísla, na kterých záleží
Testoval jsem konzistentně s tímto promptem napříč všemi konfiguracemi:
"Napiš kompaktní Python funkci, která parsuje unified diff a vrací cesty změněných souborů. Pak vysvětli dva edge cases."
Každý test generoval přibližně 128 tokenů, takže máme férové srovnání rychlosti generování.
Základní výkon:
Gemma 4 přímo přes llama.cpp s Metal dala 58,2 tokenů za sekundu. Použitelné, ale upřímně? V reálných coding session, kde děláš více tool volání a čekáš na odpovědi, to bylo pomalé.
Ten rozdíl s MTP:
Tady to začíná být zajímavé. Multi-Token Prediction umožňuje modelu "spekulovat" několik tokenů dopředu, přijímat správné predikce a rollbackovat špatné. S Q8 MTP draft modelem aktivním jsem se dostal na 72,2 tokenů za sekundu — 24% zlepšení bez jakékoli změny hlavního modelu.
Zpracování promptu zůstalo prakticky stejné (kolem 297-299 tokenů/sekundu), ale rychlost generování — to je to, co pro agent workflow počítá. Neodesíláš neustále nové prompty — čekáš, až model generuje odpovědi, dělá rozhodnutí a vykonává nástroje.
Testoval jsem draft token count od 1 do 6 a na mém M1 Max byla 3 draft tokeny ideální bod. Hodnoty nad 4 ve skutečnosti začaly zpomalovat, což dává smysl — víc spekulací znamená víc promarněné práce, když jsou predikce špatné.
llama.cpp vs. MLX: Překvapivý vítěz
Tady jsem nečekal. Čekal jsem, že MLX (Apple nativní ML framework) bude dominovat, protože je specificky optimalizované pro Apple Silicon. Realita byla jiná.
| Runtime | Generování tok/s | |---------|------------------| | llama.cpp Metal + MTP | 72.2 | | llama.cpp Metal | 58.2 | | MLX-LM (Unsloth 4-bit) | 45.8 | | MLX-LM (standard 4-bit) | 43.9 | | MLX-LM (OptiQ 4-bit) | 38.1 |
Llama.cpp s MTP bylo zhruba o 58% rychlejší než nejlepší MLX konfigurace. Roky optimalizační práce, které do llama.cpp dali, se evidentně vyplatily — běží skvěle na macOS, přestože je multiplatformní.
Přidáváme vizi
Pro pořádný coding agent chceš mít možnost posílat screenshoty. Třeba chceš, aby agent viděl, co postavil, nebo zkontroloval UI změnu, kterou jsi právě udělal.
Háček? Pouze Gemma 4 12B je nativně multimodální. Model 26B, který používáme, potřebuje externí multimodální projektor.
Když jsem přidal --mmproj projektor do llama.cpp, správně inzeroval multimodální schopnosti Pi a image tool výstupy začaly procházet správně. Důležitější je, že to nepřidalo žádné měřitelné zpomalení — rychlost generování zůstala na 72,2 tokenech za sekundu.
Zkušenosti z praxe
S touto sestavou počítej zhruba s 17 GB modelových souborů (16 GB pro hlavní model, plus MTP head a projektor). Pro někoho se 64 GB unified memory je to naprosto zvladatelné.
Pi jako agent poskytuje čisté terminálové rozhraní, které se napojuje na OpenAI-kompatibilní API, které llama.cpp server mode vystavuje. To znamená, že ho můžeš používat s jakýmkoli nástrojem podporujícím OpenAI API formát — flexibilita bez vendor lock-inu.
Největší benefit? Když ti spadne internet — a spadne, v tu nejhorší možnou chvíli — pokračuješ v kódování. Agent může být o fous pomalejší než cloud alternativy, ale je dostatečně responsivní na to, aby udržel tvůj workflow.
Jak začít
Musíš si zkompilovat llama.cpp s povolenou Metal podporou. Projekt má solidní dokumentaci pro macOS buildy, a jakmile to zkompiluješ, server mode ti dá ten OpenAI-kompatibilní endpoint.
Pro modely jsou Unsloth GGUF kvantizace na Hugging Face dobře optimalizované. Chceš Q4_K_XL kvantizaci pro hlavní model a matching Q8 MTP draft model.
Nastav si --spec-draft-n-max hodnotu — začni na 3 a testuj od 1 do 6, abys našel, co funguje nejlíp na tvém konkrétním hardware. Různé Apple Silicon konfigurace můžou mít různé sweet spoty.
Stojí to za to?
Jestli pravidelně kóduješ s AI asistenty a máš hardware (minimum 16 GB, doporučeno 32 GB+), rozhodně ano. Nezávislost na internet konektivitě sama o sobě má velkou hodnotu, a s MTP, které dostává rychlost generování do skutečně použitelného teritoria, je zážitek překvapivě vyladěný.
Neochromíš GPT-4 třídou inteligence s těmito open modely, ale pro code completion, refaktoring, debugging asistenci a běžné coding agent úkoly? Je to schopnější, než většina lidí čeká. A je to tvoje — běží lokálně, soukromě, bez latency spikeů nebo výpadků služeb.
Nástroje výrazně dospěly. Jestli jsi zkoušel lokální modely dřív a zklamala tě rychlost, dej této sestavě šanci. MTP mění pravidla hry dost zásadně.