Files
agentic-codemod-pipeline/docs/adr/0003-runtime-w-efemerycznym-jobie-gitlab-ci.md
T
2026-08-29 13:17:59 +02:00

1.6 KiB

ADR-0003: Runtime w efemerycznym jobie GitLab CI, nie w usłudze

  • Status: przyjęty
  • Data: 2026-08-28

Kontekst

agno pozwala wystawić agentów jako usługę (AgentOS/FastAPI) z bazą sesji, pamięcią i UI. Kuszące, ale dla zadania "zmodyfikuj kod i otwórz MR" oznacza nową usługę produkcyjną: własne SLA, uwierzytelnianie, przechowywanie stanu, przegląd bezpieczeństwa i dostęp do repozytoriów z długożyjącego procesu.

Decyzja

Runtime to efemeryczny job GitLab CI. Jedno uruchomienie = jeden job = jeden katalog roboczy = jeden komplet artefaktów. Stan przebiegu żyje w artefaktach (run.json, trace.jsonl, changes.patch), nie w bazie. Uprawnienia to uprawnienia joba (token projektowy), a nie konta usługowego z dostępem do wszystkiego.

Wyzwalanie: issue z labelką (webhook → trigger token), zdarzenie na MR, harmonogram oraz ręczny formularz w "Run pipeline" (zmienne z description i options).

Konsekwencje

Pozytywne

  • Zero nowej usługi do utrzymania i przeglądu bezpieczeństwa.
  • Naturalna izolacja: brak stanu współdzielonego między przebiegami.
  • Bramka manualna w CI daje właściciela podpisu pod zmianą.
  • Limity zasobów i czasu przychodzą z platformy CI.

Negatywne

  • Brak pamięci między przebiegami - powtórka zaczyna od zera (świadomy kompromis: pamięć między przebiegami w narzędziu modyfikującym kod to więcej ryzyka niż korzyści).
  • Zimny start: instalacja kontekstu APM w każdym przebiegu (łagodzone cache'em i artefaktami).
  • Brak interaktywnego trybu "zapytaj człowieka w trakcie" - stąd wzorzec requires_human: agent nie pyta, tylko oznacza i idzie dalej.