HarnessDev: Modele LLM budujące własną infrastrukturę

ByteDance wraz z grupą uniwersytetów zaprezentowało HarnessDev – framework, który pozwala dużym modelom językowym (LLM) pisać własne „systemy operacyjne agentów”, zwane Agent Harnesses. Zespół dostarcza modelowi LLM minimalistyczny zestaw startowy, a następnie pozwala mu rozbudować resztę, pokazując, jak AI może konstruować warstwę kontrolną obsługującą własne pętle użycia narzędzi, kroki weryfikacji i obsługę błędów – bez konieczności ręcznego wpisywania każdej linii kodu przez człowieka.

Dlaczego własnoręcznie zbudowany harness ma znaczenie

Agenci AI ewoluowali od asystentów reagujących na pojedyncze prompty do wieloetapowych pracowników, którzy wywołują API, przeszukują bazy danych i łączą wyniki. Do tej pory programiści ręcznie tworzyli kod orchestracji, który instruował model, kiedy użyć narzędzia wyszukiwania, jak przechowywać stany pośrednie i jak weryfikować końcową odpowiedź. HarnessDev odwraca ten model: seed harness dostarcza jedynie niezbędne rusztowanie – podstawowe funkcje pętli, wyboru narzędzi i śledzenia stanu – a model LLM rozbudowuje je do postaci pełnowartościowego środowiska uruchomieniowego (runtime).

W benchmarku opisanym w pracy model wygenerował 18 odrębnych harnessów, dodając do oryginalnego zestawu startowego ponad 17 000 linii kodu. Każdy harness zarządzał pełnym cyklem życia zadania: wykonywaniem pętli, wybieraniem odpowiedniego narzędzia, utrzymywaniem kontekstu, śledzeniem stanu, weryfikacją wyników i odzyskiwaniem po błędach.

Ukryte koszty ujawnione przez badanie

Liczby wyglądają imponująco, ale autorzy ostrzegają, że sama implementacja nie jest równoznaczna z praktycznym zastosowaniem.

  • Nieużywane komponenty – Znaczna część wygenerowanego kodu nigdy nie została uruchomiona podczas faktycznego wykonywania zadań. Model LLM napisał funkcje, których agent nigdy nie wywołał, co niepotrzebnie powiększyło bazę kodu, nie wnosząc żadnej wartości.
  • Uzależnienie od modelu (model lock-in) – Harnessy miały tendencję do dostrajania się do konkretnego modelu LLM, który je stworzył. Gdy ten sam harness przekazano innemu modelowi, wydajność wyraźnie spadła, co sugeruje, że automatycznie wygenerowana logika kontrolna zawiera specyficzne cechy danego modelu.
  • Luki w weryfikacji – Jeden z testowych harnessów raportował wskaźnik sukcesu na poziomie 99% (99 na 100 uruchomień), ale był poprawny tylko w 48% przypadków. Bez silnej weryfikacji agent może z dużą pewnością siebie podawać błędne odpowiedzi.
  • Narzut tokenowy – Zużycie tokenów — będące wskaźnikiem kosztów obliczeniowych — różniło się drastycznie. Jeden harness wymagał siedmiokrotnie więcej tokenów niż inny, aby osiągnąć ten sam wynik, co budzi obawy o skalowalność w środowiskach produkcyjnych.

Wyniki te podkreślają potrzebę zdyscyplinowanego projektowania, nawet gdy kod jest generowany przez model LLM.

O czym powinni pamiętać programiści

  1. Traktuj projektowanie harnessa jak architekturę – Nie polegaj na tym, że model „po prostu zadziała”. Zdefiniuj jasne moduły do kontroli pętli, wyboru narzędzi, obsługi stanu i weryfikacji, zanim pozwolisz modelowi LLM je uzupełnić.
  2. Zbuduj silną weryfikację – Wprowadź jawne sprawdzenia, które porównują twierdzenia agenta z rzeczywistością (ground truth) lub modelem pomocniczym. 48-procentowa dokładność przy 99-procentowym wskaźniku sukcesu raportowanym przez samego agenta pokazuje, że weryfikacja nie może być czymś dodanym na końcu.
  3. Pilnuj budżetów tokenowych – Bardziej rozbudowane harnessy mogą powodować gwałtowny wzrost liczby tokenów. Wcześnie profiluj różne warianty harnessów, aby uniknąć ukrytego wzrostu kosztów.
  4. Testuj na różnych modelach – Uruchamiaj ten sam harness z wieloma różnymi silnikami LLM. Jeśli wydajność gwałtownie spada, możesz potrzebować bardziej agnostycznego względem modelu projektu lub osobnych harnessów dla każdego modelu.

Podsumowując: HarnessDev udowadnia, że modele LLM potrafią tworzyć własny kod kontrolny przypominający system operacyjny.