AI kontrola kódu bez předávání všeho jednomu agentovi
Kontrola kódu po každé větší změně patří k činnostem, které vývojáři potřebují, ale málokdo je dělá s radostí. Pull request může mít desítky souborů, několik různých programovacích jazyků a chyby schované v místech, která na první pohled nesouvisejí s upravovaným řádkem.
OpenCodeReview se snaží tento problém řešit jinak než univerzální AI agent. Podle oficiálního repozitáře na GitHubu jde o nástroj napsaný v Go, který funguje z příkazové řádky. Umí kontrolovat změny v pracovním adresáři, rozdíl mezi větvemi, jednotlivé commity i celé soubory nebo adresáře.
Alibaba jej před zveřejněním používala interně dva roky. Firma uvádí, že nástroj sloužil desítkám tisíc vývojářů, překročil 30% interní adopci a zpracoval více než milion úloh kontroly kódu. Tato čísla pocházejí od Alibaby, nejde tedy o nezávislé měření, ale dávají představu, že projekt nevznikl jen jako víkendový experiment s efektním README.
Co dělá deterministická část
Nejzajímavější na OpenCodeReview není konkrétní jazykový model. Je to způsob, jakým je model zasazen do celého procesu.
Běžný AI agent dostane instrukci typu „zkontroluj tento pull request“ a sám se rozhoduje, které soubory otevře, jaké nástroje použije a kdy skončí. U malých změn to může fungovat dobře. U rozsáhlejších úprav ale agent může některé soubory přeskočit, ztratit přesnost řádků nebo začít generovat komentáře, které se týkají jiné části kódu.
OpenCodeReview proto část rozhodování AI vůbec nepřenechává. Deterministické komponenty vybírají soubory, spojují související části do balíčků a přiřazují vhodná pravidla. Samotný agent se pak soustředí na dynamickou analýzu: například na hledání rizika null-pointer výjimky, SQL injection, XSS, problémů s bezpečností vláken nebo chyb, které nelze odhalit jednoduchým pravidlem.
Je to podobné jako rozdíl mezi technickou kontrolou automobilu a mechanikem. Počítač může spolehlivě ověřit, že nechybí kolo nebo že světlo funguje. Mechanik pak řeší, zda se z motoru neozývá zvuk, který by mohl znamenat větší problém. OpenCodeReview se snaží každou z těchto činností svěřit nástroji, který je pro ni vhodnější.
Proč na tom záleží
Deterministická část může být předvídatelnější než dlouhý prompt. Když pravidlo říká, že se mají zkontrolovat všechny změněné soubory a komentář musí odkazovat na konkrétní řádek v diffu, není nutné doufat, že si to jazykový model správně vyloží.
Projekt proto obsahuje také oddělené moduly pro umístění komentářů a jejich následnou reflexi. Cílem je omezit situace, kdy AI najde zajímavý problém, ale připojí jej k nesprávnému řádku. Pro vývojáře je taková připomínka prakticky stejně užitečná jako špatně zaparkovaná navigace: technicky existuje, ale člověk ji musí nejdřív najít.
Benchmark ukazuje vyšší přesnost, ale také jasný kompromis
Alibaba zveřejnila benchmark AACR-Bench na platformě Hugging Face. Datová sada vychází z 200 pull requestů v 50 repozitářích a zahrnuje 10 programovacích jazyků. Problémy v kódu označilo více než 80 zkušených inženýrů a výsledný soubor obsahuje 1 505 anotovaných problémů.
Ve srovnání OpenCodeReview s generickým agentem Claude Code použil stejný typ modelu Claude-4.6-Opus. OpenCodeReview dosáhl precision 33,90 %, zatímco samotný Claude Code 7,23 %. Precision vyjadřuje, jak velká část nahlášených problémů jsou skutečné vady. Vyšší hodnota tedy znamená méně falešných poplachů, které musí vývojář ručně třídit.
Rozdíl byl také ve spotřebě tokenů. OpenCodeReview podle zveřejněných výsledků spotřeboval v průměru přibližně 385 000 tokenů na jedno review. Generický agent potřeboval zhruba 5 664 000 tokenů. To je přibližně devětkrát více.
Neznamená to ale, že OpenCodeReview našel všechny chyby. Právě naopak. Zveřejněné výsledky ukazují strop recallu kolem 20 %. Recall říká, kolik skutečně existujících problémů nástroj objevil. V praxi to znamená, že velká část chyb může zůstat bez povšimnutí.
To není drobná poznámka pod čarou, ale základní vlastnost celého přístupu. OpenCodeReview dává přednost menšímu počtu komentářů s vyšší pravděpodobností relevance. Pokud firma potřebuje maximální pokrytí za každou cenu, může být vhodnější obecnější agent, tradiční statická analýza nebo kombinace více nástrojů.
Nezávislé testování zůstává méně přesvědčivé
Vlastní benchmark firmy je užitečný, ale neměl by být zaměňován za definitivní důkaz, že je nástroj nejlepší ve všech situacích. Nezávislá analýza Toma Rochetteho upozornila na jeden test, ve kterém OpenCodeReview dosáhl přibližně 12% precision na 10 pull requestech z Martian benchmarku. Výsledek byl následně zpochybněn kvůli anomálii v používání nástrojů a podle dostupných informací byla chyba opravena, ale nezávislé měření po opravě zatím chybí.
Podobně kritický je rozbor Daniela Vaughana, který upozorňuje na limity recallu a na to, že deterministický výběr souborů může zhoršit hledání problémů napříč celou architekturou. Chyba, která vzniká až kombinací několika vzdálených modulů, se hledá obtížněji než problém v jednom změněném souboru.
To je přesně důvod, proč nelze benchmarkové skóre číst jako jednoduché „AI A porazila AI B“. Výsledek závisí na výběru úloh, modelu, pravidlech, nastavení i na tom, zda je důležitější přesnost, nebo pokrytí. OpenCodeReview má silnou tezi o řízení procesu, nikoli univerzální odpověď na všechny druhy bezpečnostní a kvalitativní kontroly.
Kolik OpenCodeReview stojí a kde funguje
Samotný nástroj je zdarma pod licencí Apache-2.0. Zdrojový kód je veřejný na GitHubu a instalace je dostupná také přes npm. Náklady vznikají až při používání jazykového modelu. OpenCodeReview podporuje API kompatibilní s OpenAI a Anthropic, takže si tým může vybrat model podle ceny, výkonu a pravidel pro práci s firemním kódem.
Výjimkou je delegační režim, ve kterém může review provést existující coding agent a OpenCodeReview se postará hlavně o výběr souborů a pravidel. V takovém případě není nutné konfigurovat vlastní API klíč pro OpenCodeReview, ale stále platí podmínky a cena použitého agenta.
Nástroj lze spustit lokálně, v CI/CD pipeline nebo napojit na GitHub, GitLab a Gerrit. Repozitář uvádí také integrace s prostředími a agenty jako Claude Code, Codex, Cursor či OpenCode. Pro české vývojáře je důležité, že projekt není omezen na americký trh a jeho otevřený kód lze používat i v Česku a Evropské unii. České uživatelské rozhraní ani česká lokalizace dokumentace ale nejsou mezi oficiálně uvedenými možnostmi potvrzeny. Samotný kód lze samozřejmě kontrolovat bez ohledu na to, v jakém jazyce jsou komentáře nebo názvy proměnných napsané.
Pro koho dává nástroj smysl
OpenCodeReview může být zajímavý pro týmy, které chtějí automatizovanou kontrolu provozovat samy, nechtějí posílat zdrojový kód do hotové cloudové služby a potřebují mít pod kontrolou výběr modelu i spotřebu tokenů.
Výhodu může mít také tým, který už používá AI agenta, ale naráží na nekonzistentní výsledky u větších změn. Deterministický obal může snížit počet situací, kdy agent část diffu přehlédne nebo komentuje nesouvisející řádek.
Naopak nejde o náhradu za testy, bezpečnostní skenery ani lidské review. Recall kolem 20 % je příliš nízký na to, aby nástroj fungoval jako jediná ochranná vrstva. OpenCodeReview je přesnější síto, nikoli neprůstřelná brána.
Nejrozumnější nasazení proto vypadá jako kombinace: deterministické kontroly pro známé typy problémů, OpenCodeReview pro cílenou AI analýzu a člověk pro rozhodnutí, zda je změna skutečně připravená k nasazení. Alibaba tím otevírá zajímavý směr, ale zároveň poměrně poctivě ukazuje jeho cenu: méně šumu výměnou za to, že část problémů zůstane mimo záběr.
FAQ
Potřebuje OpenCodeReview vlastní AI model?
Ne. Nástroj funguje jako otevřený orchestrátor kontroly kódu a podporuje API kompatibilní s OpenAI a Anthropic. Náklady proto závisí na zvoleném modelu a jeho ceníku. V delegačním režimu může review provést už používaný coding agent.
Umí OpenCodeReview kontrolovat celý repozitář, nebo jen pull request?
Umí obojí. Kromě kontroly diffu, větví a commitů nabízí příkaz ocr scan, který projde celé soubory, adresáře nebo repozitář i bez změn v historii Gitu.
Je OpenCodeReview vhodný jako jediný bezpečnostní nástroj?
Ne. Nástroj záměrně preferuje přesnost před maximálním pokrytím a recall se podle zveřejněných výsledků pohybuje kolem 20 %. Měl by doplňovat testy, statickou analýzu, bezpečnostní skenery a lidskou kontrolu.