Automatyzacja AI

Jak korzystać z polecenia „Hermes /Goal”, aby usprawnić realizację projektów

Zdjęcie: Steve A Johnson (@steve_j) na Unsplash

Większość asystentów opartych na sztucznej inteligencji dobrze radzi sobie z odpowiedzią na pojedyncze polecenie. Są jednak mniej niezawodne, gdy zadanie wymaga kilku etapów analizy, realizacji, testowania i poprawiania.

Agenci firmy Hermes /cel Polecenie to zostało zaprojektowane właśnie z myślą o tej luce. Zamiast traktować każdą odpowiedź jako koniec interakcji, utrzymuje ono jeden cel aktywny przez wiele rund. Po każdej rundzie lekki model oceniający sprawdza, czy ostatnie działania spełniają cel. Jeśli nie, Hermes sam generuje monit, aby kontynuować, dopóki cel nie zostanie osiągnięty, użytkownik nie wstrzyma lub nie anuluje interakcji albo dopóki nie wyczerpie się dozwolony limit rund.

To sprawia, że /cel przydatne w przypadku zadań, które w przeciwnym razie wymagałyby ciągłego powtarzania poleceń takich jak “kontynuuj”, “sprawdź to jeszcze raz” lub “zakończ pozostałe elementy”. Może ono wspierać programowanie, badania, przetwarzanie danych, audyty i inne wieloetapowe zadania, pod warunkiem że wymagany wynik można zdefiniować i zweryfikować.

Polecenie to nie sprawdza się zbyt dobrze w przypadku niejasnych celów, delikatnych decyzji lub projektów wymagających częstego angażowania ludzkiej oceny sytuacji. Hermes może kontynuować pracę nad osiągnięciem celu, ale nadal potrzebuje precyzyjnego opisu tego, co oznacza jego realizację.

Co /cel faktycznie zmienia się

Standardowy komunikat systemu Hermes odpowiada jednej turze agenta. Model może w trakcie tej tury wywołać kilka narzędzi, ale po zwróceniu ostatecznej odpowiedzi zatrzymuje się i czeka na użytkownika.

Po tej odpowiedzi cel pozostaje aktywny.

Po wpisaniu:

/cel: Napraw wszystkie nieudane testy w katalogu tests/hermes_cli/ i upewnij się, że skrypt scripts/run_tests.sh zakończy się powodzeniem dla tego katalogu

Hermes natychmiast przystępuje do działania. Po zakończeniu pierwszej tury sędzia ocenia, czy wyznaczony cel został osiągnięty. Jeśli testy nadal kończą się niepowodzeniem, Hermes automatycznie rozpoczyna kolejną turę. Trwa to do momentu, aż testy zakończą się powodzeniem, cel osiągnie limit tur lub proces zostanie przerwany.

Domyślny limit wynosi 20 tur, choć można go zmienić w ustawieniach. Limit ten ma znaczenie, ponieważ agent, który utknął w nieproduktywnej pętli, mógłby w przeciwnym razie nadal zużywać tokeny, czas pracy narzędzi oraz kredyty na usługi zewnętrzne.

System zapewnia zatem trwałość, a nie nieograniczoną autonomię.

Wykorzystaj to do pracy z widoczną linią mety

Najsilniejszy /cel Zadania mają trzy cechy: wymagają wykonania kilku kroków, Hermes ma dostęp do narzędzi niezbędnych do ich wykonania, a wynik można sprawdzić.

Praca nad oprogramowaniem stanowi oczywisty przykład:

/cel: Przejść na wersję Python 3.13, zaktualizować niezgodne zależności, uruchomić pełny zestaw testów i zakończyć proces dopiero po pomyślnym przejściu wszystkich testów.

Warunek zakończenia jest konkretny. Hermes może sprawdzić projekt, modyfikować pliki, instalować lub aktualizować zależności oraz uruchamiać testy. Pomyślne przejście zestawu testów stanowi dowód, że główny rezultat został osiągnięty.

Tę samą logikę można zastosować również poza programowaniem:

/cel Przejrzeć wszystkie pliki CSV znajdujące się w folderze „reports”, zidentyfikować brakujące wartości i zduplikowane rekordy, przygotować oczyszczoną wersję każdego pliku oraz stworzyć raport podsumowujący zawierający wykaz wszystkich zmian.

Albo:

/cel: Zbadać pięciu największych europejskich producentów akumulatorów, zweryfikować ich najnowsze dane dotyczące mocy produkcyjnych na podstawie źródeł pierwotnych oraz sporządzić tabelę porównawczą wraz z odniesieniami.

Zadania te obejmują kilka operacji, ale mimo to dają konkretny, możliwy do zaobserwowania wynik.

Złym przykładem celu byłoby:

/cel: Rozwój mojej firmy.

Hermes nie dysponuje wiarygodnymi podstawami do ustalenia, kiedy działalność uległa poprawie. Może on generować pomysły, kontynuować ich rozwijanie, a ostatecznie zaprzestać tych działań, ponieważ sędzia uzna szeroko sformułowaną odpowiedź za wystarczającą.

Problem nie leży w inteligencji modelu. Chodzi o brak standardu zakończenia.

Sporządź umowę o wykonanie zadania

Hermes obsługuje ustrukturyzowane umowy dotyczące realizacji celów, które wymagają większej precyzji. W oficjalnej dokumentacji zaleca się zdefiniowanie pięciu elementów: pożądanego wyniku, metody weryfikacji, ograniczeń, ram oraz warunku, w którym agent powinien przerwać działanie i zwrócić się o dalsze wskazówki.

Możesz poprosić Hermesa o sporządzenie szkicu tej struktury za pomocą:

/goal draft

Przykładowa umowa mogłaby wyglądać w teorii mniej więcej tak:

Wynik:
Strona internetowa została pomyślnie skompilowana, a uszkodzony formularz realizacji transakcji działa poprawnie.

Weryfikacja:
Uruchom kompilację produkcyjną, przeprowadź testy realizacji transakcji i upewnij się, że wszystkie zakończyły się powodzeniem.

Ograniczenia:
Nie wolno zmieniać wyglądu strony ani usuwać istniejących narzędzi analitycznych.

Zakres prac:
Modyfikuj wyłącznie pliki w katalogach src/checkout, tests/checkout oraz konfigurację pakietu.

Zatrzymaj się, gdy:
Konieczne jest wprowadzenie danych uwierzytelniających dostawcy usług płatniczych, podjęcie decyzji biznesowej lub wprowadzenie zmian w bazie danych, które mogą spowodować utratę danych.

Jest to znacznie bezpieczniejsze niż zwykła prośba skierowana do pracownika o “naprawienie transakcji”.

Wynik wskazuje Hermesowi, co musi być prawdą. Weryfikacja wskazuje mu, jak udowodnić ten wynik. Ograniczenia chronią te części systemu, które powinny pozostać niezmienione. Granice określają, gdzie system powinien działać. Warunek zatrzymania zapobiega improwizowaniu przez agenta w sytuacji, gdy podejmuje on decyzję, która powinna należeć do człowieka.

Sędzia może oceniać jedynie te kryteria, które mu przekazano. Niejasny cel prowadzi do niejasnego nadzoru.

Użyj poleceń sterujących

Po uruchomieniu celu dostępnych jest kilka poleceń, które pozwalają go sprawdzić lub sterować nim.

/status bramki

pokazuje aktywny cel, jego stan oraz liczbę wykorzystanych tur.

/wyświetl cel

wyświetla bieżącą umowę o wykonanie zlecenia.

/przerwa w grze

wstrzymuje automatyczne kontynuowanie bez usuwania celu.

/cel: CV

ponownie uruchamia pętlę i resetuje jej licznik iteracji.

/wyeliminowanie bramki

całkowicie eliminuje ten cel.

Wstrzymanie jest przydatne, gdy agent porusza się w złym kierunku lub gdy chcesz sprawdzić pliki przed wprowadzeniem dalszych zmian. Wyzerowanie jest bardziej wskazane, gdy sam cel przestał być aktualny.

Hermes obsługuje również /cel cząstkowy, co stanowi dodanie kolejnego kryterium do aktualnego celu. Sędzia rozważy wówczas zarówno pierwotny cel, jak i dodatkowy wymóg, zanim uzna pracę za ukończoną.

Na przykład:

/cel cząstkowy: Dodaj uwagi dotyczące migracji do pliku README i upewnij się, że poprzednia konfiguracja pozostaje zgodna wstecznie.

Dzięki temu można dodać wymaganie bez zastępowania głównego celu projektu.

Lepiej sterować niż restartować

Dłuższe projekty rzadko przebiegają dokładnie tak, jak się tego spodziewano. Hermes zawiera /byk polecenie służące do dodawania wskazówek w trakcie pracy agenta.

/steer Nie należy wymieniać biblioteki uwierzytelniającej. Najpierw należy sprawdzić istniejącą konfigurację.

Instrukcja jest przekazywana po kolejnym wywołaniu narzędzia przez agenta, bez przerywania bieżącego przebiegu ani rozpoczynania nowej tury użytkownika. Dzięki temu rozwiązanie to sprawdza się w sytuacji, gdy zauważysz, że Hermes stosuje niepożądane podejście, ale nie chcesz odrzucać już wykonanej pracy.

Nowa wiadomość od zwykłego użytkownika może przerwać automatyczną pętlę realizacji celu. Daje to użytkownikowi możliwość odzyskania kontroli, ale oznacza również, że niezwiązana z tematem rozmowa może zakłócić realizację bieżącego projektu. W przypadku poważniejszych zadań zazwyczaj lepiej jest realizować cel w ramach dedykowanej sesji.

Oddziel długoterminowe cele od zaplanowanych zadań

/cel ma na celu realizację jednego, długoterminowego celu. Nie jest to funkcja odpowiednia dla każdego rodzaju automatyzacji.

Cel taki jak “naprawić aplikację i sprawić, by wszystkie testy zakończyły się powodzeniem” ma punkt zakończenia. Zlecenie takie jak “sprawdzać stronę internetową każdego ranka i zgłaszać przerwy w działaniu” nie ma takiego punktu. Takie zadanie należy zrealizować w ramach zaplanowanego zadania.

Hermes zawiera harmonogram cron do automatyzacji zadań cyklicznych, a także sesje działające w tle oraz delegowanie zadań do podagentów w przypadku zadań, które powinny być wykonywane oddzielnie lub równolegle. Jego rozbudowana architektura obsługuje dostęp do terminali, platform komunikacyjnych, narzędzi zewnętrznych oraz kilku dostawców modeli.

Różnica ma charakter praktyczny:

  • Zastosowanie /cel w przypadku celu wieloetapowego, który powinien w końcu zostać zrealizowany.
  • W przypadku powtarzających się zadań warto skorzystać z zaplanowanych procesów automatycznych.
  • Skorzystaj z sesji w tle, jeśli chcesz kontynuować bieżącą rozmowę.
  • Z subagentów należy korzystać, gdy poszczególne strumienie pracy mogą przebiegać równolegle.

Próba zastosowania jednego celu do obsługi wszystkich czterech schematów zazwyczaj skutkuje mniej kontrolowanym przebiegiem pracy.

Nie należy mylić wytrwałości z osądem

Model sędziego nie analizuje rzeczywistości samodzielnie, tak jak zrobiłby to ludzki kierownik projektu. Ocenia on pracę agenta w odniesieniu do celu oraz dostępnych dowodów.

Jeśli agent zgłasza, że zadanie zakończyło się powodzeniem, ale nie przeprowadził istotnego testu, sędzia może zaakceptować niekompletny wynik. Dlatego w procedurze weryfikacji należy, w miarę możliwości, wskazać konkretną procedurę sprawdzającą.

Słabe:

Sprawdź, czy aplikacja działa poprawnie.

Silniejszy:

Uruchom pytest, npm run build oraz testy z repozytorium Playwright. Zadanie zostanie uznane za zakończone tylko wtedy, gdy wszystkie polecenia zakończą się pomyślnie.

W przypadku badań weryfikacja może wymagać zastosowania wzorca odniesienia:

Korzystaj z dokumentów składanych przez spółki, informacji od organów regulacyjnych oraz oficjalnych statystyk. Nie traktuj komunikatów prasowych ani wtórnych podsumowań jako potwierdzenia danych finansowych.

W przypadku tworzenia treści może być potrzebna lista kontrolna dotycząca wyników:

Należy dostarczyć sześć artykułów o objętości 800–1 000 słów, z których każdy powinien przedstawiać odrębny punkt widzenia, opierać się na zweryfikowanych źródłach, nie zawierać powtarzających się fragmentów oraz przejść końcową weryfikację pod kątem spójności redakcyjnej.

Im bardziej subiektywny jest wynik, tym ważniejsza staje się ocena przeprowadzona przez człowieka. Model może potwierdzić, że istnieje sześć artykułów. Jest jednak mniej wiarygodny, jeśli chodzi o ustalenie, czy wszystkie sześć jest rzeczywiście wnikliwych lub nadaje się do publikacji.

Ogranicz dostęp przed zwiększeniem autonomii

Hermes może współpracować z plikami lokalnymi, terminalami, usługami zewnętrznymi oraz platformami komunikacyjnymi. Framework ten został zaprojektowany do działania na komputerach lokalnych, serwerach zdalnych oraz w różnych środowiskach operacyjnych, a ponadto może korzystać z różnych dostawców modeli i zestawów narzędzi.

Ta elastyczność sprawia, że /cel jest to przydatne, ale podnosi koszt źle sformułowanej instrukcji.

Użytkownik posiadający uprawnienia do zapisu w repozytorium może modyfikować wiele plików, próbując zrealizować szeroko zakrojony cel. Użytkownik z dostępem do powłoki może instalować pakiety lub uruchamiać skrypty. Użytkownik połączony z systemami biznesowymi może działać w oparciu o rzeczywiste dane, a nie w środowisku testowym.

Zanim wyznaczysz sobie długoterminowy cel:

  • przyznaj tylko te uprawnienia, które są niezbędne do wykonania zadania;
  • w miarę możliwości korzystaj z gałęzi, drzewa roboczego, kontenera lub środowiska testowego;
  • przed wprowadzeniem poważnych zmian należy utworzyć migawkę lub punkt kontrolny;
  • należy wykluczyć dane uwierzytelniające i dane produkcyjne, chyba że są one rzeczywiście niezbędne;
  • określić czynności wymagające zatwierdzenia przez człowieka;
  • oraz przejrzeć różnice, logi i wyniki testów przed wdrożeniem.

Hermes udostępnia polecenia służące do tworzenia punktów kontrolnych i migawek systemu plików, jednak narzędzia do odzyskiwania danych nie zastępują konieczności ograniczenia dostępu już na samym początku.

Ten --yolo Opcja ta, która pozwala pominąć proces zatwierdzania niebezpiecznych poleceń, nie powinna być traktowana jako zwykłe ułatwienie. Rozszerza ona zakres działań, jakie agent może wykonać bez interwencji, a tym samym zwiększa konsekwencje błędnego założenia.

Praktyczny schemat postępowania

Niezawodny /cel Projekt można podzielić na pięć etapów.

Po pierwsze, określ jeden rezultat. Unikaj łączenia niepowiązanych ze sobą celów, takich jak naprawa oprogramowania, tworzenie dokumentacji i opracowywanie nowej strategii produktowej, chyba że rzeczywiście stanowią one część tego samego rezultatu.

Po drugie, należy określić dowody. Należy wymienić testy, pliki, raporty lub kontrole, które potwierdzają zakończenie zadania.

Po trzecie, należy wyznaczyć granice. Należy określić, z jakich katalogów, systemów, kont lub źródeł danych może korzystać Hermes.

Po czwarte, należy określić punkty eskalacji. Należy poinstruować agenta, aby przerwał działanie w przypadku napotkania brakujących danych uwierzytelniających, niejednoznacznych wymagań biznesowych, operacji niszczących lub decyzji mających konsekwencje prawne, finansowe lub związane z bezpieczeństwem.

Na koniec należy przeanalizować dowody, a nie zadowalać się samym komunikatem o zakończeniu. Należy otworzyć raport, sprawdzić zmiany w kodzie, odtworzyć test i upewnić się, że wynik odpowiada rzeczywistemu celowi projektu.

Prawidłowo sformułowane polecenie mogłoby brzmieć:

/cel: Zaktualizować zależności portalu klienta i usunąć wszystkie wynikające z tego błędy kompatybilności.

Rezultat:
Portal kompiluje się, a jego dotychczasowe funkcje działają bez zakłóceń.

Weryfikacja:
Przeprowadź testy jednostkowe, kompilację produkcyjną oraz testy dymne w Playwright. Wszystkie muszą zakończyć się powodzeniem.

Ograniczenia:
Nie wolno zmieniać interfejsu użytkownika, schematu bazy danych ani dostawcy usług uwierzytelniania.

Zakres:
Prace należy prowadzić wyłącznie w repozytorium portalu klienta.

Kiedy należy przerwać:
Gdy wymagane jest wprowadzenie danych uwierzytelniających do środowiska produkcyjnego, migracja schematu lub zmiana zachowania portalu wobec klientów.

Nie gwarantuje to bezbłędnego wykonania. Daje to Hermesowi wystarczająco precyzyjny cel, do którego może dążyć, bez konieczności wydawania mu poleceń przez użytkownika po każdym etapie pośrednim.

Wartość /cel nie polega na tym, że zarządza projektem w imieniu organizacji. Eliminuje ona jedną konkretną formę nadzoru: ciągłe proszenie wykonawcy o kontynuowanie pracy.

W połączeniu z jasną weryfikacją, wąskimi uprawnieniami i celowo określonymi warunkami zatrzymania może przekształcić Hermesa z asystenta udzielającego jednej odpowiedzi w wytrwałego pracownika projektowego. W połączeniu z niejasnym celem i szerokim dostępem do systemu może po prostu dłużej powtarzać te same błędy.

  Jak korzystać z polecenia „Hermes /Goal”, aby usprawnić realizację projektów