>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

Jak sprawić, by agent AI w terminalu optymalizował Twój kod w nieskończoność

result

Pomyśl, jak zwykle przyspieszasz testy lub zmniejszasz rozmiar pakietu frontendu. Zmieniasz kilka linijek w konfiguracji, uruchamiasz build, sprawdzasz sekundy w konsoli. Wolniej — wycofujesz zmiany. 5% szybciej — commitujesz i próbujesz kolejnego szalonego pomysłu. Ten proces pochłania godziny rutynowej pracy, mimo że jest zasadniczo mechanicznym cyklem testowania hipotez.

Andrei Karpathy niedawno zademonstrował koncepcję autonomicznych eksperymentów w repozytorium autoresearch. Developer davebcn87 rozwinął ten pomysł i wydał pi-autoresearch — rozszerzenie dla terminalowego agenta AI pi. Rozszerzenie deleguje rutynową optymalizację do sieci neuronowej: agent formułuje pomysł, wprowadza zmiany w plikach, mierzy wynik, zapisuje udane znaleziska i wycofuje regresje.

pi-autoresearch

Jak działa autonomiczny cykl

Cała idea opiera się na prostej zasadzie: wypróbuj pomysł, zmierz, zapisz w przypadku sukcesu, odrzuć w przypadku niepowodzenia.

Agent działa bezpośrednio w Twoim repozytorium. Po uruchomieniu sesji rozszerzenie tworzy oddzielny folder .auto/ w głównym katalogu projektu. Przechowuje w nim wszystkie robocze pliki:

  • .auto/prompt.md — dokument opisujący bieżące zadanie, reguły pomiaru i listę tego, co agent już próbował.
  • .auto/measure.sh — skrypt benchmarkowy w bashu, który zwraca ciąg znaków z wartością metryki liczbowej.
  • .auto/log.jsonl — ustrukturyzowany dziennik każdej próby z hashem commita i statusem.
  • .auto/checks.sh — dodatkowy skrypt do weryfikacji testów i typów, aby agent nie łamał logiki dla efektownych liczb.

Gdy okno kontekstowe modelu się przepełni lub agent się zrestartuje, wystarczy, że ponownie odczyta .auto/prompt.md i końcówkę dziennika. Cała historia eksperymentów nie jest tracona przy kompresji kontekstu.

pi install npm:pi-autoresearch

Po instalacji po prostu uruchom skill:

/skill:autoresearch-create

Agent zada kilka pytań wyjaśniających dotyczących celu, plików docelowych i polecenia uruchomienia, albo sam je ustali na podstawie kontekstu projektu. Następnie zmierzy metryki bazowe i natychmiast zanurzy się w nieskończoną pętlę.

Walka z losowym szumem w pomiarach

Każdy benchmark podlega wahaniom. Procesy systemowe działające w tle, nagrzewanie CPU czy opóźnienia sieci mogą stworzyć złudzenie przyspieszenia, gdzie go nie ma.

Aby odfiltrować fałszywe wygrane, pi-autoresearch oblicza wskaźnik pewności na podstawie medianowego odchylenia bezwzględnego (MAD). Po trzech uruchomieniach rozszerzenie zaczyna porównywać uzyskaną poprawę z poziomem szumu całej serii:

  • Wartość ≥ 2.0x jest podświetlona na zielono — zysk wyraźnie przekracza szum tła.
  • Zakres 1.0–2.0x jest pokazany na żółto — zysk jest, ale znajduje się na granicy marginesu błędu.
  • Wartość < 1.0x świeci się na czerwono — wynik mieści się całkowicie w błędzie statystycznym.

Narzędzie nie wymusza decyzji o wycofaniu zmian na agenta; po prostu sugeruje ponowne sprawdzenie wątpliwej próby.

Ochrona przed awariami przez backpressure

Sieci neuronowe kochają oszukiwać. Jeśli poprosisz agenta o zmniejszenie czasu wykonania testów, pojawia się silna pokusa, by po prostu usunąć połowę plików testowych lub wstawić stuby.

Aby zapobiec takim sztuczkom, .auto/checks.sh zawiera obowiązkowe sprawdzenia poprawności:

#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck

Skrypt weryfikacyjny uruchamia się po każdym udanym pomiarze. Jeśli testy nie przejdą lub sprawdzanie typów się nie powiedzie, eksperyment jest natychmiast oznaczany jako nieudany (checks_failed), a wszystkie zmiany w roboczej gałęzi są wycofywane. Czas wykonania samych sprawdzeń nie jest dodawany do głównej metryki szybkości.

Sortowanie chaosu na czyste gałęzie

Podczas wielogodzinnego cyklu agent tworzy dziesiątki commitów, ciągle zmieniając różne pliki. Bezpośrednie scalanie takiego logu do głównej gałęzi byłoby koszmarem dla recenzenta.

Aby rozwiązać ten problem, istnieje polecenie:

/skill:autoresearch-finalize

Skill analizuje .auto/log.jsonl, grupuje udane zmiany w niezależne logiczne bloki i proponuje strukturę do Twojej akceptacji. Po potwierdzeniu narzędzie tworzy oddzielne czyste gałęzie od początkowego commita. Każda gałąź zawiera ściśle jeden logiczny zestaw zmian z opisem zysku w wiadomości commita, co ułatwia ich przeglądanie i osobne scalanie.

Monitorowanie i hooki

Możesz monitorować postępy bezpośrednio w terminalu lub przez przeglądarkę:

  • Widżet nad edytorem stale pokazuje tabelę wyników.
  • Kombinacja klawiszy Ctrl+Shift+F otwiera pełnoekranowy dashboard terminala z listą prób.
  • Polecenie /autoresearch export generuje interaktywną stronę internetową z wykresami dynamiki metryk.

Jeśli podstawowy cykl nie wystarcza, możesz umieścić wykonywalne pliki before.sh i after.sh w katalogu .auto/hooks/. Uruchamiają się one na granicach iteracji. Dzięki nim możesz skonfigurować wysyłanie powiadomień systemowych na pulpit, wyszukiwanie pomysłów w zewnętrznej dokumentacji lub prowadzenie dziennika treningowego. Skrypt otrzymuje kontekst przez standardowe wejście w formacie JSON, a jego wyjście stdout jest przekazywane do agenta jako podpowiedź systemowa.

Na co zwrócić uwagę

Autonomiczne cykle mogą szybko wyczerpać saldo API, jeśli zostawi się je bez nadzoru na noc. Warto od razu ustawić limit iteracji w pliku .auto/config.json:

{
  "maxIterations": 30
}

Agent zatrzyma się, gdy tylko ukończy trzydzieści eksperymentów.

Narzędzie dobrze sprawdza się w zadaniach z wyraźnie mierzalnymi wynikami liczbowymi: optymalizacja rozmiaru builda webpack, przyspieszanie wykonania testów jednostkowych, dostrajanie hiperparametrów do treningu małych modeli czy poprawianie wyników Lighthouse. Jeśli już używasz agenta konsolowego pi, projekt zdecydowanie wart jest wypróbowania w prawdziwym zadaniu optymalizacyjnym.

Powiązane projekty