TL;DR

Jeden živý člověk, čtyři otevřené on-premise modely, dva režimy agenta a jedno stejné zadání: vytvořit nástroj pro tvorbu tabulek a metadat.

Výsledky jsme změřili a porovnali, včetně ceny a spotřebovaných tokenů: sedm z osmi agentů zvládlo zadání na první pokus, nejlepší výsledek měl Qwen3.8-27B v režimu Minimal.

Ruční vývoj stejné úlohy živým programátorem trval 45 hodin; férové srovnání člověk vs AI v tomto kole není možné, protože zadání bylo záměrně vágní.

Závěr: drahé komerční modely pro tuto práci nepotřebujete, otevřené modely vyjdou levněji; nejlepší výsledky přitom přináší spolupráce AI s člověkem (human-in-the-loop).

Úvod

Jak efektivní je lokální/on-premise AI jako programátor? Potřebujete uzavřené a drahé komerční modely? Anebo otevřené levnější modely zvládnou stejnou práci?

Rok 2026 znamenal v oblasti umělé inteligence velký posun vpřed. To se dotklo i programování pomocí AI, které je ve srovnání s rokem 2025 už úplně jinde.

Dříve se doporučovali dlouhé a podrobné prompty, aby se zabránilo halucinacím. Případně se zkoušely kombinované techniky, kdy jeden model napíše specifikaci a další napíše kód. Uběhlo pár měsíců a všechno je jinak.

Moje zkušenosti jsou, že současné otevřené modely (open weight models) nabízí hodně výkonu za dobrou cenu. Pokud je provozujete na vlastním hardware, máte to v podstatě za minimální náklady. Když tedy nepočítáte investici do hardware a cenu za spotřebovanou elektřinu.

Jak zrychlit vývoj pomocí AI

Ivan, který je autorem software WEX (knowledge base, správa podnikových metadat a data governance), chtěl vyzkoušet, jestli by otevřené modely mohly pomoci s vývojem.

Zajímaly ho i detaily okolo – jaké modely použít, co všechno umí, jak jsou rychlé a kolik by stál provoz. Nezanedbatelným lákadlem takového řešení je bezpečné provozování. Ne každý chce odesílat svá data velkým společnostem do uzavřených AI modelů.

Zadání – HTML, PHP, SQL, JSON

Pro experiment jsme s Ivanem zvolili zadání, které vycházelo z reálné potřeby.

Jednalo se o nový modul pro WEX, pomocí kterého uživatel může vytvářet definice tabulky (DDL) v databázi a ukládat k nim pomocná metadata pro business uživatele či ETL team.

Výstupem jsou dva soubory: SQL (create table) a JSON (logická, pomocná metadata). Technický stack: PHP, PostgreSQL, HTML a JavaScript.

Všechno to jsou technologie, které modely běžně zvládají, protože je mají natrénované.

Čtyři AI modely

Pro náš test jsem vybral jednoho agenta (agent harness) a čtyři LLM modely. Agentem je DeepSeek Harness(DSH), který byl zpřístupněn nedávno a navíc je ještě v tzv. developer preview.

To sice na první pohled vypadá jako jasná diskvalifikace, ale práce s ním je velmi pohodlná a vývojáři ho pravidelně vylepšují a přidávají nové funkce. Zároveň si během pár týdnů dokázal získat velkou popularitu, což beru jako potvrzení vlastní dobré zkušenosti.

Jeden agent, několik módů

DSH má několik módů, já jsem použil dva.

Celkem tedy proběhlo osm pokusů – 4 AI modely x 2 DSH módy. Každý model běžel ve svém vlastním sandboxu, kde byl nainstalovaný DeepSeek Harness, PHP a PostgreSQL. Agent neměl povoleno instalovat nic dalšího. Instrukce nebyly nijak složité, ani zbytečně detailní.

V reálu se běžně používá iterace, kdy AI model píše kód a programátor modelu dává zpětnou vazbu a upravuje svoje požadavky.

Prompt byl pokaždé stejný a byl dvojjazyčný – anglický a český.

Metodika

Nejde o to, „kdo vyhrál“. Jde o zmapování toho, v čem je AI dobrá, kde selhává a jaké jsou náklady.

Omezení

Experiment, jakožto první pokus, má omezení, kterých jsme si vědomi.

Očekávání – Ivan

Rutinní téma na pokrytí. AI bude velmi rychlá (1–2 minuty) při prvním pokusu.
Přezkum odhalí, které funkce, jež nebyly v high-level zadání explicitně uvedeny (úmyslně), AI doplnila.

Protože ze začátku je jen malá stopa toho, co očekávat (na základě předchozích zkušeností s vývojovou podporou AI), ukáže to styl, který AI použila.

Tři aspekty k posouzení:

  1. čistá funkčnost => výsledek;
  2. nezažádaný rozsah, který AI doplnila sama od sebe;
  3. styl (OOP, procedurální, konvence pojmenování, „čitelnost“ kódu).

K bodu 1) Očekávám, že bude funkční.
K bodu 2) Nevím přesně, co AI doplní — ale očekávám, že rozumně (ne jen holá kost, ne 100% výčet všeho, co fyzikální DDL dokáže specifikovat).
K bodu 3) Styl bude OOP, odrážející převládající styl v trénovacích datech.

U této rutinní úlohy neočekávám mnoho ladění — možná dalších 1–2 hodiny na úpravu rozsahu funkcí a stylu. (U složitější a rozsáhlejší úlohy bych očekával, že objem práce — čas i mentální soustředění — se po úplném prvním běhu výrazně zvýší. Toto zadání to ale dokázat nemůže.)

Můj odhad pro úplně ruční vývoj: 2–3 dny (15 hodin) do kvality MVP, tj. minimal viable product.

Očekávání – Lubo

AI bude rychlá a první iterace (psaní kódu) skončí za 5 minut. Může to trvat déle – to se stává, pokud je úsilí nastavené na vyšší úroveň, nebo když model začne věci komplikovat víc, než je nutné.

Očekávám, že všechny modely použité v testu vytvoří funkční verzi v prvním kole, zároveň předpokládám nějaké následné doladění.

Můj optimistický odhad: celé cvičení — jeden model + human-in-the-loop — zvládneme za 30 minut.

Zadání (prompt)

DSH dostal následující prompt:

Follow the instructions at @task.md.

Soubor task.md obsahoval anglicko-české instrukce:

# Task readme

## Instructions

Complete the following task end-to-end. Implement it, test the output, and fix any issues until it works. The task description below is your only specification — fill in all unspecified details with your own reasonable decisions. Do not ask me questions; act autonomously.

Environment: everything you need is already installed and running on this machine. PHP (CLI and `php -S` for serving), PostgreSQL (server up, `psql` to test the DDL), `curl`, and `jq` are all present. Do not install anything — use what is provided.

Although the task specification is in Czech make any task outputs in English.

## Task

Cíl: vytvořit html formulář a php scripty pro vytvoření DDL tabulky v databázi PostgreSQL.
   a) název tabulky a obvyklých dalších vlastností na úrovni tabulky
   b) a podformulář pro definici každého sloupce tabulky a jeho obvyklých vlastností.
   Finální výsledek: se uloží do 2 souborů:
   1. DDL.sql pro fyzické vlastnosti definice tabulky, název souboru obsahuje fyzický název tabulky a její číslo.
   2. DDL.json - druhý soubor pro logické vlastnosti tabulky a sloupců ve formátu json (vlastnost - hodnota).

Celkem 18 řádků, 181 slov, 956 znaků.

Prostředí

Experiment probíhal na GPU Nvidia A100, 40GB VRAM. Operační systém AlmaLinux. Jako inference engine jsem použil llama.cpp.

AI vývoj – výsledky

Následující tabulka shrnuje výsledky za AI vývoj:

Model DSH Mode Time Usage Speed Cache hit Note
Qwen3‑Coder‑30B‑A3B‑Instruct Standard 1m 13s 216k toks 99 tok/s 95 %
Qwen3.8‑27B Standard 31m 6s 2.9m toks 37 tok/s 99 % Needed second turn to fix a bug
Gemma 4 31B IT QAT Standard 2m 3s 135k toks 77 tok/s 90 %
Muse‑Glimmer‑30B Standard 7m 44s 1.6m toks 52 tok/s 99 %
Qwen3‑Coder‑30B‑A3B‑Instruct Minimal 5m 51s 45.4k toks 129 tok/s 96 %
Qwen3.8‑27B Minimal 35m 50s 3m toks 38 tok/s 99 %
Gemma 4 31B IT QAT Minimal 1m 52s 100k toks 93 tok/s 91 %
Muse‑Glimmer‑30B Minimal 5m 37s 581k toks 52 tok/s 99 %

Format: GGUF
Quant: UD-Q4_K_XL

Nejrychlejší byl Qwen3-Coder (Standard mode); Qwen3.8 přemýšlel nejvíc a spotřeboval nejvíc tokenů.

Velikost kódu

Model DSH Mode Files Total lines Without comments Comments % Total size
Qwen3‑Coder‑30B‑A3B‑Instruct Standard 3 507 426 8,00% 16.6 KB
Qwen3.8‑27B Standard 3 890 755 7,60% 31.3 KB
Gemma 4 31B IT QAT Standard 2 231 207 2,80% 10.0 KB
Muse‑Glimmer‑30B Standard 1 216 195 4,90% 8.3 KB
Qwen3‑Coder‑30B‑A3B‑Instruct Minimal 3 456 381 6,40% 16.0 KB
Qwen3.8‑27B Minimal 4 1216 1011 9,20% 51.7 KB
Gemma 4 31B IT QAT Minimal 2 159 142 2,10% 6.4 KB
Muse‑Glimmer‑30B Minimal 3 189 170 0,60% 6.5 KB

Nejmenší počet řádků vyprodukovala Gemma 4 (6,4 KB), největší Qwen3.8 (51,7 KB).

Screenshoty

Zadání neobsahovalo žádné požadavky na to, jak by měl formulář vypadat. Následující screenshoty ukazují, jak se s designem formuláře různé modely popraly.

Standard

  1. Qwen3-Coder-30B-A3B-Instruct (Standard)
    Qwen3-Coder-30B-A3B-Instruct – Standard
  2. Qwen3.8-27B (Standard)
    Qwen3.8-27B – Standard
  3. Gemma 4 31B IT QAT (Standard)
    Gemma 4 31B IT QAT – Standard
  4. Muse-Glimmer-30B (Standard)
    Muse-Glimmer-30B – Standard

Minimal

  1. Qwen3-Coder-30B-A3B-Instruct (Minimal)
    Qwen3-Coder-30B-A3B-Instruct – Minimal
  2. Qwen3.8-27B (Minimal)
    Qwen3.8-27B – Minimal
  3. Gemma 4 31B IT QAT (Minimal)
    Gemma 4 31B IT QAT – Minimal
  4. Muse-Glimmer-30B (Minimal)
    Muse-Glimmer-30B – Minimal

Manuální vývoj - výsledky

Ivan provedl totéž zadání, ale musel jej integrovat do své aplikace.

Vývoj tedy nebyl na zelené louce, ale musel se vejít do mantinelů existující aplikace, tj. pokračovat ve stylu řešení a konvencí již v aplikaci existujících. To nemohlo úmyslně high level zadání pro AI postihnout. Tzn. že míra komplexity obou řešení je v tomto prvním pokusu těžko porovnatelná.

Základní údaje průběhu: od prvotní funkční analýzy až po základní MVP trval vývoj 45 hodin čistého času, tj. zhruba 7 MDs. Výsledné 4 hlavní scripty byly v procesu vývoje a debuggingu spuštěny cca 120 krát.

skript velikost popis
r_ddlnewsave.php 12 kb vytvoř objekt, zkontroluj, zda už neexistuje atd.
r_saveddl.php 58 kb ulož vlastnosti na úrovni tabulky
r_saveddlcol.php 32 kb ulož vlastnosti 1 definovaného sloupce
a_exp2ddl.php 34 kb ulož definici tabulky/view do vstupních 2 souborů: DDL.sql + DDL.json

Manuální vývoj - screenshoty

  1. Formulář pro zadání vlastností tabulky
    Vlastnosti tabulky
  2. Formulář pro zadání vlastností SLOUPCE
    Vlastnosti sloupce
  3. Výsledné zobrazení
    Výsledné zobrazení
  4. DDL SQL
    DDL SQL
  5. DDL.json
    DDL JSON

Hodnocení

Lubo

Všichni agenti, až na jednoho, zvládli zadání na první pokus. Jen Qwen3.8 ve standardním módu potřeboval navíc druhý pokus, protože výsledný formulář negeneroval SQL a JSON soubory.

Test ukázal to, co potvrzují i ostatní uživatelé – Qwen3.8 hodně přemýšlí a díky tomu spotřebovává víc tokenů než jiné modely. Druhým velkým žroutem tokenů byl Muse Glimmer od Mety.

Co se týká vygenerovaných SQL a JSONů, tam v podstatě nebylo co zkazit. Bylo zajímavé, že některé modely vložily komentáře jak do SQL, tak do JSONu, jiné pouze do JSONu.

To jsou ale všechno detaily, které se dají upřesnit později. Vždyť zadání bylo záměrně strohé a nechávalo modelům velký prostor, jak se s ním popasovat.

Platí to, co říkám opakovaně – nejlepší výsledky přináší spolupráce AI s člověkem (human in the loop).

Ivan

Hodnocení: [0..5]
0 … nejnižší, 5 … nejvyšší

Použitá kritéria:

  1. Úroveň vyspělosti grafického uživatelského rozhraní (GUI)
  2. Úplnost nejběžnějších parametrů na úrovni TABULKY/SLOUPCE
  3. Úroveň vyspělosti kódu
  4. Správnost a úplnost výstupu

Hodnocení jednotlivých výsledků modelu

Model Points Evaluation
Qwen3-Coder-30B-A3B-Instruct 0 velmi jednoduché, nedostatečně kompletní, podprůměrné HTML rozhraní
Qwen3.8-27B 3 +číslo tabulky, +dostatečně dobré HTML, COL: + parametry: dostatečně dobré, rozhraní: horší
Gemma 4 31B IT QAT 1 neúplné parametry: jak COL, tak TBL
Muse-Glimmer-30B 2 +přehledné rozložení, minus: nový COL se nevytvoří v novém formuláři, nízká úplnost parametrů
Qwen3-Coder-30B-A3B-Instruct 0 podprůměrné rozhraní, nízká úplnost parametrů
Qwen3.8-27B 4 plus: nejběžnější parametry, minus: sloupce: nepoužitelné pro více než několik sloupců
Gemma 4 31B IT QAT 0 velmi jednoduché
Muse-Glimmer-30B 1 nízká úplnost parametrů. Podprůměrné HTML rozhraní

Souhrnné hodnocení

# Criteria Evaluation
1 Úroveň vyspělosti grafického uživatelského rozhraní S výjimkou Qwen3.8-27B/Standard a Qwen3.8-27B/Minimal – velmi základní, na úrovni školních příkladů, ergonomie grafického uživatelského rozhraní – vše neoptimální, pokud je sloupců více než několik. Nejlepší GUI design: přehled sloupců, poté samostatný editační formulář pro vytvoření nového sloupce – ani 1 model to takto nenavrhl.
2 Úplnost nejběžnějších parametrů S výjimkou Qwen3.8-27B/Standard a Qwen3.8-27B/Minimal – velmi základní, na úrovni školních příkladů
3 Úroveň vyspělosti kódu Různé, nejlepší byl: Qwen3.8-27B/Minimal
4 Výstupní soubory Menší rozptyl, v zásadě všechny splnily úkol DDL.json. DDL.sql nebyl špatný, ale ve všech výstupech se vyskytla chyba, která vedla k tomu, že PostgreSQL vrátil chybovou zprávu (výchozí hodnota 0 nelze použít pro datový typ Boolean).

Poznámky k hodnocení AI vývoje:

Přinesla řešení založená na umělé inteligenci něco navíc? Tj. něco, co nebylo uvedeno v zadání, ale je užitečné?

Ano:

Cena

Kolik by to všechno stálo? Pro výpočet jsem použil ceny na openrouter. Vypočítané ceny zahrnují všechny vstupní (input) a výstupní (output) tokeny.

Model DSH Mode Price CZK
Qwen3-Coder-30B-A3B-Instruct Standard 0.39
Qwen3.8-27B Standard 11.44
Gemma 4 31B IT QAT Standard 0.23
Muse-Glimmer-30B Standard 10.63
Qwen3-Coder-30B-A3B-Instruct Minimal 0.09
Qwen3.8-27B Minimal 11.67
Gemma 4 31B IT QAT Minimal 0.20
Muse-Glimmer-30B Minimal 3.92

Nejlevnější byl Qwen3-Coder-30B-A3B-Instruct, celý test vyšel na 9 haléřů. Nejdražší byl Qwen3.8-27B, jeho test stál 11,44 Kč. To odpovídá vysoké spotřebě tokenů.

Možností, jak provozovat AI je mnoho. Cena závisí na tom, kde celé řešení provozujete. Jestli platíte za tokeny, využíváte předplatné nebo to máte zadarmo na vlastním hardware.

Pokud vás tohle téma zajímá, najdete detailnější informace v tomto článku.

Závěr

Ivan

Výsledky manuálního přístupu ve srovnání s řešením založeném na AI nejsou v tomto prvním kole srovnatelné kvůli značně odlišné úrovni složitosti: jde o výsledek velmi vágního zadání (i když záměrného).

Zadání pro umělou inteligenci musí být podrobnější, aby bylo možné výsledky alespoň zhruba porovnat. To je výsledek prvního kola testování.

Jediným výsledkem, který by se dal považovat za podklad pro další práci, byl výsledek modelu Qwen3.8-27B v režimu Minimal DSH. Ostatní výsledky považuji za „příklady na školní úrovni“.

Navrhuji pokračovat v dalším kole s mnohem podrobnějším zadáním, které snad poskytne výsledky, které bude možné lépe porovnat.

Lubo

Experiment potvrdil moje očekávání. Všechny použité otevřené modely lze použít jako pomocníky/programátory.

Nečekal jsem, že by na první pokus bylo vše perfektní. Při takto vágním zadání je jasné, že AI musí řídit člověk, který s agentem spolupracuje a nastavuje mu kurz.

Máme to štěstí, že žijeme v době, kdy se oblast umělé inteligence rychle rozvíjí a kdy máme na výběr z široké nabídky AI modelů, agentů a nástrojů. Nikdo nemusí být závislý na komerčních poskytovatelích, kteří mohou zapínat, vypínat nebo omezovat přístup k modelům bez výstrahy.

Vnímám lokální a on-premise AI nikoliv jako alternativu, ale pro mnoho situací jako preferované řešení.

Určitě by bylo zajímavé porovnat v dalších kolech ještě menší modely, které mohou být spuštěny na slabších grafických kartách (GPU) s nižší velikostí VRAM.