← Blog

Case study: Dva AI agenti, jeden repozitář — a proč disciplínu musí vynucovat stroj

Reálný incident, kdy rozpracovaná práce jednoho AI agenta zablokovala druhého, a co z něj vzniklo — zámky pracovních oblastí, pre-commit stráž a git worktree pro každého agenta. Vynucené strojem, ne dobrou vůlí.

24. 7. 2026
case-study multi-agent git governance

Jakmile nad jedním repozitářem pracuje víc než jeden AI agent, dřív nebo později nastane tohle: agent A potřebuje commitnout, ale ve working tree leží rozpracované změny agenta B. Co teď? Commitnout všechno dohromady? „Uklidit” cizí práci? Čekat neurčitě dlouho?

U nás to nebyla hypotéza. Stalo se to — a z incidentu vznikl vynutitelný standard. Tohle je case study o tom, že multiagentní spolupráce není problém promptů, ale problém governance.

Incident

Červenec 2026, vývojový server Yggnet Labs. Agent Cowork (pracující vzdáleně, bez přímého přístupu k souborovému systému serveru) měl v repozitáři rozpracovanou větší změnu konfigurace modelů — necommitnutou. Druhý agent dostal prioritní úkol od vlastníka: přidat kampaňovému systému práci s grafikou, včetně databázové migrace. Jenže migrace by se proložila s rozpracovanými migracemi prvního agenta. Práce stála.

Klasická odpověď „tak ať si dá pozor” nefunguje. Agenti se střídají, kontext se mezi sessions ztrácí — a „pozor” není mechanismus.

Co jsme postavili

1. Commit-before-handoff. Závazné pravidlo: před předáním práce jinému agentovi (nebo koncem session s rozdělanou prací) agent commitne svůj stav na vlastní pracovní větev. Rozpracovanost není důvod blokovat ostatní.

2. Zámky pracovních oblastí (claims). Agent si před větší prací zamkne soubory či adresáře přes sdílenou službu. Kolize s cizím zámkem vrátí chybu se jménem držitele — a řeší se zprávou, ne přepsáním. Záznamy jsou append-only: auditní stopa, kdo kdy co držel.

3. Pre-commit stráž. Git hook, který commit sahající do cizí zamčené oblasti prostě zablokuje. Nouzový override existuje — ale je zalogovaný, s povinným zdůvodněním. Disciplínu nevynucuje dobrá vůle agenta, ale stroj.

4. Git worktree pro každého agenta. Souběžná práce dvou agentů = každý ve vlastním worktree na vlastní větvi. Ověřeno živým experimentem: dva agenti, prokládané commity, žádný smíchaný rozpracovaný kód.

5. Delegovaný commit. Agent bez přístupu k souborovému systému formálně deleguje commit na agenta, který přístup má — se souhlasem vlastníka a auditní stopou. Přesně tak se vyřešil původní incident.

Schéma: dva agenti s vlastními worktree a větvemi, mezi nimi vrstvy ochrany — zámky (claims) a pre-commit stráž — a pod nimi sdílený repozitář jako zdroj pravdy

Failure mode, který jsme našli po cestě

Při ověřování worktree souběhu se ukázalo, že pre-commit stráž se v linked worktree tiše vypínala — detekce repozitáře selhala a hook „prošel” bez kontroly. Tichý výpadek ochrany je horší než žádná ochrana, protože jí věříte. Oprava (detekce přes git common dir) vznikla tentýž den a blokace z worktree je od té doby součástí testů.

To je mimochodem důvod, proč GALDUR trvá na tom, že guardraily se testují stejně přísně jako produkční kód: ochrana, kterou nikdo neověřil, je fikce.

Co si z toho odnést

  • Multiagentní tým potřebuje explicitní vlastnictví pracovního prostoru — stejné, jaké mají lidské týmy v podobě code ownership a branch protection.
  • Pravidla musí být vynutitelná strojem (hook, zámek, audit), ne apelem.
  • Výjimky nemají být zakázané, ale drahé a viditelné: logovaný override se zdůvodněním.
  • Agent bez přístupu není občan druhé kategorie — potřebuje formální cestu delegace s auditní stopou.

Tato case study je jednou z podmínek, které si GALDUR sám stanovil pro verzi v1.0 („alespoň 3 case studies”). Metodika je otevřená — dokumentace, šablony, komunita.

Komentáře