Autonomní agent nad Teamworkem
Agent, který si vezme otázku z projektového řízení, přečte skutečný repozitář a odpoví rovnou v úkolu.
Problém
Spousta toho, na co se v projektovém řízení ptáme, je ve skutečnosti otázka na kód — je tohle už hotové, kde to žije, měnili jsme to. Odpovědět znamená, že někdo přeruší práci, naklonuje repozitář, který třeba ani nezná, a jde hledat.
Co to dělá
Poolí self-hosted Teamwork v Abucu na úkoly přiřazené jemu nebo komentáře, kde je zmíněný, naklonuje odpovídající GitLab repozitář, spustí nad tím checkoutem Claude Code CLI a odpověď pošle zpátky jako komentář k úkolu. Node.js 22 ESM, zhruba 819 řádků, v kontejneru pod neprivilegovaným uživatelem — s nulou npm závislostí, což byl záměrný limit, ne chlubení.
Část, na které mi vážně záleží
Text úkolu je nedůvěryhodný vstup. Kdokoli může do úkolu napsat komentář, který agent přečte — takže tohle je threat model prompt injection, ať už to tak pojmenuješ, nebo ne. Odpovědí v návrhu je rozdělení důvěry mezi dva procesy: ten, který mluví s Teamworkem a GitLabem, drží přihlašovací údaje, a proces s modelem má prostředí postavené od nuly, takže je nikdy neuvidí. Nástroje jsou omezené na čtení a cesty, kde by mohly být tajné hodnoty, jsou zablokované. Agenta jde ukecat, aby řekl něco špatně; nejde ho ukecat, aby vydal token nebo něco pushnul.
Kde to stojí
Upřímně: prototyp. Poslal aspoň jednu skutečnou odpověď do produkčního Teamworku a zatím není v gitu. Dávám ho sem proto, že zajímavá je na tom ta bezpečnostní část — a je to věc, kterou bych nejradši probral osobně.