AgentMachine: od generowania kodu do świadomego procesu
AgentMachine: od generowania kodu do świadomego procesu
Dzisiaj dodałem narzędzie do AgentMachine, które pozwala mi dużo łatwiej analizować logi dla https://github.com/pawel-dubiel/AgentMachine

Nawet pozornie proste zadanie agentowe potrafi wygenerować dziesiątki megabajtów danych: logów, decyzji, wywołań narzędzi, błędów, retry, zmian w plikach i pośrednich rezultatów.
Sensowny system agentowy nie może opierać się na przypadku. To nie jest tak, że agent coś zrobi, a my tylko patrzymy na efekt końcowy. Potrzebny jest zamknięty, świadomy proces tworzenia oprogramowania - taki, w którym system nie tylko generuje rozwiązania, ale też zostawia po sobie także inne artefakty inne niż sam kod.
Dla mnie taki proces powinien opierać się na kilku zasadach:
- Pisać i utrzymywać ADR-y
Decyzje architektoniczne muszą być zapisane. Inaczej system szybko traci kontekst, a kolejne zmiany zaczynają być mniej celowo, lub sprzeczne. - Sprawdzać, czy nowe decyzje nie są sprzeczne z wcześniejszymi
Nowy ADR nie powinien żyć w próżni. System powinien potrafić wykryć konflikt z wcześniejszą decyzją albo przynajmniej wskazać, że coś wymaga rewizji. - Logować wszystko, co robi system
Observability is king. Bez dobrych logów agentowy system jest czarną skrzynką. A czarna skrzynka może wyglądać imponująco tylko do momentu, kiedy coś się zepsuje. - Budować nowe podejście do testowania
Taki system musi być ekstremalnie testowalny. Nie tylko przez klasyczne testy jednostkowe czy integracyjne, ale też przez ciągłe testowanie zachowania agentów, decyzji, regresji i jakości wygenerowanych rozwiązań. - Mieć dobre domyślne zasady w
agents.md
Agent powinien od początku znać nasze oczekiwania: używaj abstrakcji, nie rób hacków, szukaj rozwiązań generycznych, ograniczaj technical debt, nie łataj objawów, tylko rozwiązuj problem u źródła.
Przyszłość agentowego tworzenia oprogramowania nie polega tylko na daniu modelowi zadania. Chodzi raczej o zbudowanie środowiska, w którym agent działa w ramach dobrze zaprojektowanego procesu.