Published on

Rozwój agentów Anthropic: prostota przewyższa złożoność

Autorzy
  • avatar
    Imię
    Ajax
    Twitter

Definicja Agentów

Koncepcja agentów inteligencji jest różnorodna. Niektórzy postrzegają ich jako 'wszechstronnych zarządców', zdolnych do samodzielnego myślenia, podejmowania decyzji i wykonywania złożonych zadań. Inni widzą w nich 'zdyscyplinowanych pracowników' realizujących predefiniowane procesy. Anthropic klasyfikuje oba te podejścia jako systemy inteligentne, rozróżniając przy tym workflow i agenty.

  • Workflow: Systemy, które organizują duże modele językowe (LLM) i narzędzia poprzez ustalone ścieżki kodu.
  • Agenty: Systemy, w których LLM dynamicznie kieruje swoim własnym procesem i wykorzystaniem narzędzi, umożliwiając autonomiczne zarządzanie sposobem realizacji zadań.

Kiedy Wybrać Agenta

Anthropic zaleca stosowanie zasady 'nie komplikuj, jeśli nie musisz' podczas tworzenia aplikacji AI. Nie wszystkie sytuacje wymagają złożonych systemów inteligentnych. Chociaż systemy inteligentne są potężne, mogą powodować spowolnienie reakcji i wzrost kosztów. Twórcy muszą więc równoważyć funkcjonalność z wydajnością.

  • Workflow: Idealne dla zadań, które wymagają przewidywalności i spójności.
  • Agenty: Bardziej odpowiednie dla scenariuszy o dużej skali, wymagających elastyczności i podejmowania decyzji opartych na modelu.

W wielu przypadkach, dobre podpowiedzi (prompt), w połączeniu z wyszukiwaniem i przykładami kontekstowymi, są wystarczające do uzyskania odpowiedzi od dużego modelu.

Użycie Frameworków

Obecnie na rynku istnieje wiele frameworków, które pomagają twórcom w budowaniu agentów AI, na przykład:

  • LangGraph od LangChain
  • Framework Agentów AI od Amazon Bedrock
  • Narzędzie do tworzenia workflow opartych na LLM typu 'przeciągnij i upuść' Rivet
  • Narzędzie GUI Vellum do tworzenia i testowania złożonych workflow

Te frameworki upraszczają proces rozwoju, ale jednocześnie zwiększają poziom abstrakcji kodu, co może utrudnić zrozumienie logiki działania, zwiększyć trudność debugowania i doprowadzić do wprowadzenia nadmiernie skomplikowanych rozwiązań w prostych scenariuszach.

Anthropic zaleca rozpoczęcie od bezpośredniego korzystania z API dużych modeli. Wiele wzorców można zaimplementować za pomocą kilku linijek kodu. Jeśli jednak wybierzesz framework, koniecznie zrozum jego podstawowe zasady. Niewystarczające zrozumienie mechanizmów działania frameworków jest główną przyczyną problemów w procesie rozwoju.

Anthropic udostępnia konkretne przykłady w swoim 'cookbook'.

Elementy Budulcowe, Workflow i Agenty

Podstawowy Element Budulcowy: Ulepszony LLM

Podstawowym elementem budulcowym systemów inteligentnych jest ulepszony LLM, który posiada funkcje wyszukiwania i zapamiętywania. Modele Anthropic aktywnie wykorzystują te zdolności, na przykład generując zapytania wyszukiwania, wybierając narzędzia i decydując, które informacje zachować.

Podczas rozszerzania funkcjonalności należy skupić się na:

  • Dostosowaniu funkcji do konkretnego scenariusza zastosowania.
  • Zapewnieniu modelowi prostego i dobrze udokumentowanego interfejsu.

Protokół kontekstowy modeli, który został niedawno opublikowany przez Anthropic, upraszcza integrację modeli AI z ekosystemami narzędzi firm trzecich.

Workflow: Łańcuch Promptów

Łańcuch promptów dzieli skomplikowane zadania na wiele etapów, z których każdy wywołuje duży model raz. Kolejne etapy są przetwarzane na podstawie wyników poprzednich etapów. Deweloperzy mogą dodawać punkty kontrolne w środkowych etapach, aby upewnić się, że proces przebiega zgodnie z oczekiwaniami.

Łańcuch promptów nadaje się do sytuacji, w których skomplikowane zadania można wyraźnie podzielić na szereg stałych zadań podrzędnych. Każdy model koncentruje się na wykonaniu prostego zadania, a chociaż całkowity czas odpowiedzi może być nieco dłuższy, dokładność znacznie wzrasta.

Typowe przypadki zastosowania:

  • Najpierw wygenerowanie tekstu marketingowego, a następnie przetłumaczenie go na inne języki.
  • Najpierw napisanie konspektu dokumentu i sprawdzenie jego zgodności, a następnie napisanie pełnego dokumentu na podstawie konspektu.

Workflow: Inteligentne Rozdzielanie

Technologia rozdzielania identyfikuje typ zadania wejściowego i przypisuje je do odpowiedniego modułu. Taka konstrukcja pozwala na zoptymalizowanie każdego modułu pod kątem konkretnego zadania, unikając wzajemnego zakłócania się różnych typów zadań. Inteligentne rozdzielanie jest odpowiednie dla scenariuszy, w których zadania mają wyraźne cechy klasyfikacyjne. System AI może dokładnie identyfikować typ zadania i dokonywać rozdzielenia za pomocą dużych modeli językowych lub tradycyjnych algorytmów.

Typowe przypadki zastosowania:

  • W systemie obsługi klienta, kierowanie ogólnych zapytań, wniosków o zwrot pieniędzy i pomocy technicznej do odpowiednich procesów.
  • Przypisywanie prostych, typowych pytań do mniejszych modeli, a trudnych, rzadkich pytań do bardziej zaawansowanych modeli, w celu optymalizacji kosztów i szybkości.

Workflow: Równoległość

Duże modele językowe mogą przetwarzać zadania równocześnie i agregować wyniki w sposób programowy. Charakterystyka workflow równoległego:

  • Podział zadań: Podział zadania na podzadania, które mogą być wykonywane równolegle, a następnie integracja wyników.
  • Mechanizm głosowania: Wielokrotne wykonywanie tego samego zadania i wybór najlepszego wyniku lub połączenie kilku odpowiedzi.

Metoda równoległa jest bardzo skuteczna, gdy podzadania mogą być wykonywane równolegle w celu zwiększenia szybkości lub gdy potrzebne jest podejście z wielu perspektyw, aby uzyskać wyniki o wyższym poziomie ufności. W przypadku złożonych zadań, lepsze rezultaty można osiągnąć, gdy każde wywołanie koncentruje się na konkretnym aspekcie.

Typowe przypadki zastosowania:

  • Podział zadań:
    • Ochrona bezpieczeństwa: Jeden model przetwarza zapytanie użytkownika, a inny przeprowadza przegląd treści.
    • Ocena wydajności: Różne modele oceniają wskaźniki wydajności systemu.
  • Mechanizm głosowania:
    • Sprawdzanie bezpieczeństwa kodu: Wiele modeli wykrywania współpracuje w celu znalezienia luk w kodzie.
    • Przegląd treści: Wiele modeli ocenia bezpieczeństwo treści z różnych perspektyw.

Workflow: Lider – Wykonawca

Centralny duży model językowy dynamicznie dzieli zadanie, przypisuje je do modeli wykonawczych i podsumowuje wyniki.

Ten typ workflow jest odpowiedni dla złożonych zadań, w przypadku których trudno jest z góry określić konkretne kroki. Podział zadania nie jest stały, ale jest dynamicznie ustalany przez system AI w zależności od sytuacji.

Typowe przypadki zastosowania:

  • Aplikacje programistyczne, które wymagają złożonej modyfikacji wielu plików.
  • Zadania wyszukiwania, które wymagają zebrania i analizy informacji z wielu źródeł.

Workflow: Ocena – Optymalizacja

Jeden LLM generuje odpowiedź, a drugi dostarcza ocenę i informację zwrotną, tworząc pętlę.

Ten workflow jest szczególnie skuteczny, gdy istnieją jasne kryteria oceny i gdy udoskonalenie iteracyjne może przynieść znaczną wartość. LLM jest w stanie dostarczyć informację zwrotną, podobnie jak ludzki pisarz, który wielokrotnie wprowadza poprawki.

Typowe przypadki zastosowania:

  • Tłumaczenie literatury: Model oceniający znajduje różnice językowe pominięte w tłumaczeniu i proponuje poprawki.
  • Złożone wyszukiwanie: Model oceniający decyduje, czy należy kontynuować bardziej szczegółowe wyszukiwanie.

Agenty

Agenty pojawiły się wraz z rozwojem zdolności LLM w zakresie rozumienia złożonych danych wejściowych, planowania wnioskowania, wykorzystywania narzędzi i odzyskiwania po błędach.

Praca agenta rozpoczyna się od polecenia lub interaktywnej dyskusji z użytkownikiem. Gdy zadanie jest już jasne, agent planuje i działa samodzielnie, ewentualnie prosząc o dodatkowe informacje lub o podjęcie decyzji przez człowieka.

Na każdym etapie wykonania, kluczowe jest uzyskanie 'prawdziwych informacji' z otoczenia. Agenty mogą wstrzymać się w punktach kontrolnych lub w przypadku napotkania przeszkody, aby uzyskać informację zwrotną od człowieka. Zadania zwykle kończą się po ich zakończeniu, ale zazwyczaj zawierają warunki zatrzymania.

Agenty są w stanie radzić sobie ze złożonymi zadaniami, ale ich implementacja jest zwykle prosta, często jest to po prostu duży model językowy, który w pętli wykorzystuje narzędzia, w zależności od informacji zwrotnych z otoczenia. Dlatego niezwykle ważne jest, aby zestaw narzędzi i jego dokumentacja były jasne i przemyślane.

Agenty są odpowiednie dla problemów otwartych, w przypadku których trudno jest przewidzieć liczbę wymaganych kroków i nie można zakodować stałej ścieżki. Autonomia agentów sprawia, że są idealnym wyborem do rozszerzania zadań w zaufanym środowisku. Autonomia agentów oznacza wyższe koszty i ryzyko kumulacji błędów. Zaleca się przeprowadzenie szeroko zakrojonych testów w środowisku piaskownicy i wprowadzenie odpowiednich zabezpieczeń.

Przykłady zastosowania agentów:

  • Agent kodowy, który służy do rozwiązywania zadań SWE-bench, polegających na edycji wielu plików na podstawie opisu zadania.
  • Funkcja 'Computer use' firmy Anthropic, w której Claude wykorzystuje komputer do wykonywania zadań.

Kombinacja i Dostosowanie

Te elementy budulcowe nie są normatywne, a twórcy mogą je kształtować i łączyć w zależności od przypadku użycia. Kluczem do sukcesu jest pomiar wydajności i iteracyjne wdrażanie. Zwiększenie złożoności powinno być brane pod uwagę tylko wtedy, gdy prostsze rozwiązania nie są wystarczające. Sukces w dziedzinie LLM nie polega na budowaniu najbardziej złożonych systemów, ale na budowaniu systemów odpowiednich do potrzeb. Zacznij od prostych podpowiedzi, zoptymalizuj je za pomocą kompleksowej oceny i dodawaj wieloetapowe systemy agentów tylko wtedy, gdy prostsze rozwiązania nie wystarczą.

Podczas wdrażania agentów należy przestrzegać następujących zasad:

  • Utrzymaj prostotę projektu agenta.
  • Priorytetem jest zapewnienie przejrzystości agenta, wyraźnie pokazując każdy zaplanowany krok.
  • Starannie zaprojektuj interfejs agent-komputer (ACI), dzięki kompleksowej dokumentacji narzędzi i testom.