Google przeprowadziło test możliwości autonomicznego modelu Gemini 4 Argon na własnym projekcie open source Agent Development Kit (ADK). Repozytorium tej biblioteki dla języka Python obejmuje ponad 200 tysięcy wierszy kodu rozproszonych w około 800 plikach oraz prawie 17 tysięcy testów jednostkowych. Celem inżynierów było sprawdzenie, jak model radzi sobie z analizą i optymalizacją istniejącego projektu, co wymaga zrozumienia architektury i powiązań między wieloma modułami jednocześnie. Twórcy podkreślają, że praca na istniejącym kodzie jest znacznie trudniejsza niż tworzenie nowych aplikacji w pustym katalogu.
Przebieg autonomicznej analizy repozytorium
Przed uruchomieniem właściwego zadania zespół przeprowadził krótki test wstępny, aby ustalić treść polecenia i zagwarantować zgodność z konwencjami testowania oraz testów porównawczych. Następnie inżynierowie przygotowali wytyczne dla agenta w plikach .agents/skills, pełniących funkcję dokumentacji wdrożeniowej dla nowego programisty. Instrukcje nakazywały ładowanie tylko niezbędnych umiejętności, co zapobiegło zapełnieniu okna kontekstu. W poleceniu wykorzystano tryb /goal z narzędzia Antigravity, aby zachować cel zadania mimo automatycznego skracania kontekstu w trakcie pracy.
W treści promptu zdefiniowano zadanie wyeliminowania zauważalnego narzutu frameworka ADK podczas startu, w długich sesjach oraz w układach wieloagentowych. Model miał zachować publiczne API, poprzeć każdą zmianę testem zapobiegającym regresji i otworzyć jeden pull request z wynikami przed i po optymalizacji. Podczas trwającego 11 godzin nieprzerwanego działania agent przeanalizował zasady repozytorium, wyznaczył bazowe pomiary wydajności, zaproponował modyfikacje oraz przeprowadził własny przegląd zmian. Praca obejmowała śledzenie wywołań i obiektów w ponad 40 plikach, co wykracza poza możliwości standardowych profilerów wydajnościowych. Przed zakończeniem pracy agent wykonał wszystkie 16 892 testy jednostkowe dostępne w projekcie.
Wyniki wydajnościowe i odrzucone poprawki
Do bazy kodu przyjęto dwa rozwiązania wygenerowane przez model. Pierwsze wprowadziło filtrowanie zdarzeń w historii sesji przed ich skopiowaniem. Druga zmiana dodała opóźnione ładowanie (lazy loading) ciężkich pakietów, zapobiegając ich importowaniu do momentu rzeczywistego użycia. Choć pojedyncze oszczędności rzędu 28 ms lub 78 ms nie są odczuwalne dla człowieka przy pojedynczym zapytaniu, kumulują się one w długich interakcjach wieloetapowych.
Wprowadzone poprawki przyniosły konkretne parametry wydajnościowe:
- Obniżenie narzutu przygotowania sesji w pamięci o około 40% w przypadku długich sesji.
- Skrócenie czasu pierwszego importu pakietu o 21%.
- Redukcję czasu wykonania w teście obejmującym 158 kroków interakcji narzędziowych z 65,6 sekundy do 56,1 sekundy, co wyeliminowało prawie 10 sekund narzutu frameworka.
Przegląd wygenerowanych zmian ujawnił również ograniczenia autonomicznego kodowania. Cztery inne modyfikacje zaproponowane przez model Gemini 4 Argon zostały odrzucone przez programistów podczas weryfikacji pull requesta. Zespół odrzucił je ze względu na wątpliwości dotyczące niezawodności, trudniejszego utrzymania kodu, braku kompatybilności oraz braku mierzalnych korzyści wydajnościowych.