Agent AI to ekscytujący rozwój w dziedzinie Generative AI, który pozwala dużym modelom językowym (LLM) ewoluować z asystentów w agentów zdolnych do podejmowania działań. Frameworki Agentów AI umożliwiają programistom tworzenie aplikacji, które dają LLM dostęp do narzędzi i zarządzania stanem. Te frameworki zwiększają również przejrzystość, umożliwiając użytkownikom i programistom monitorowanie działań planowanych przez LLM, co poprawia zarządzanie doświadczeniem.
Lekcja obejmie następujące obszary:
- Zrozumienie, czym jest Agent AI - Czym dokładnie jest Agent AI?
- Eksploracja czterech różnych frameworków Agentów AI - Co je wyróżnia?
- Zastosowanie tych Agentów AI w różnych przypadkach użycia - Kiedy powinniśmy używać Agentów AI?
Po ukończeniu tej lekcji będziesz w stanie:
- Wyjaśnić, czym są Agenci AI i jak można ich używać.
- Zrozumieć różnice między niektórymi popularnymi frameworkami Agentów AI i jak się od siebie różnią.
- Zrozumieć, jak działają Agenci AI, aby móc budować aplikacje z ich wykorzystaniem.
Agenci AI to bardzo ekscytująca dziedzina w świecie Generative AI. Z tym entuzjazmem czasami wiąże się zamieszanie dotyczące terminów i ich zastosowania. Aby uprościć sprawę i uwzględnić większość narzędzi odnoszących się do Agentów AI, użyjemy następującej definicji:
Agenci AI pozwalają dużym modelom językowym (LLM) wykonywać zadania, dając im dostęp do stanu i narzędzi.
Zdefiniujmy te terminy:
Duże modele językowe - Są to modele, o których mowa w całym kursie, takie jak GPT-3.5, GPT-4, Llama-2 itd.
Stan - Odnosi się do kontekstu, w którym działa LLM. LLM wykorzystuje kontekst swoich wcześniejszych działań oraz bieżący kontekst, aby kierować podejmowaniem decyzji w kolejnych działaniach. Frameworki Agentów AI umożliwiają programistom łatwiejsze utrzymanie tego kontekstu.
Narzędzia - Aby wykonać zadanie, które użytkownik zlecił, a które LLM zaplanował, LLM potrzebuje dostępu do narzędzi. Przykłady narzędzi to baza danych, API, zewnętrzna aplikacja, a nawet inny LLM!
Te definicje powinny dać Ci solidne podstawy na przyszłość, gdy będziemy badać, jak są one wdrażane. Przyjrzyjmy się kilku różnym frameworkom Agentów AI:
Agenci LangChain to implementacja definicji, które podaliśmy powyżej.
Aby zarządzać stanem, używa wbudowanej funkcji o nazwie AgentExecutor. Akceptuje ona zdefiniowanego agenta oraz dostępne dla niego narzędzia.
AgentExecutor przechowuje również historię czatu, aby zapewnić kontekst rozmowy.
LangChain oferuje katalog narzędzi, które można zaimportować do swojej aplikacji, w której LLM może uzyskać do nich dostęp. Są one tworzone przez społeczność oraz zespół LangChain.
Możesz następnie zdefiniować te narzędzia i przekazać je do AgentExecutor.
Widoczność to kolejny ważny aspekt w rozmowach o Agentach AI. Ważne jest, aby programiści aplikacji rozumieli, z którego narzędzia korzysta LLM i dlaczego. W tym celu zespół LangChain opracował LangSmith.
Kolejny framework Agentów AI, który omówimy, to AutoGen. Głównym celem AutoGen są rozmowy. Agenci są zarówno rozmowni, jak i dostosowywalni.
Rozmowni - LLM mogą rozpocząć i kontynuować rozmowę z innym LLM, aby wykonać zadanie. Odbywa się to poprzez tworzenie AssistantAgents i nadawanie im określonej wiadomości systemowej.
autogen.AssistantAgent( name="Coder", llm_config=llm_config, ) pm = autogen.AssistantAgent( name="Product_manager", system_message="Creative in software product ideas.", llm_config=llm_config, )Dostosowywalni - Agenci mogą być definiowani nie tylko jako LLM, ale także jako użytkownik lub narzędzie. Jako programista możesz zdefiniować UserProxyAgent, który odpowiada za interakcję z użytkownikiem w celu uzyskania informacji zwrotnej potrzebnej do wykonania zadania. Informacja zwrotna może kontynuować wykonanie zadania lub je zatrzymać.
user_proxy = UserProxyAgent(name="user_proxy")Aby zmieniać i zarządzać stanem, asystent Agent generuje kod Python do wykonania zadania.
Oto przykład procesu:
system_message="For weather related tasks, only use the functions you have been provided with. Reply TERMINATE when the task is done."Ta wiadomość systemowa kieruje konkretny LLM do funkcji, które są istotne dla jego zadania. Pamiętaj, że w AutoGen możesz mieć wiele zdefiniowanych AssistantAgents z różnymi wiadomościami systemowymi.
user_proxy.initiate_chat( chatbot, message="I am planning a trip to NYC next week, can you help me pick out what to wear? ", )Ta wiadomość od user_proxy (Człowieka) rozpoczyna proces, w którym Agent bada możliwe funkcje, które powinien wykonać.
chatbot (to user_proxy):
***** Suggested tool Call: get_weather ***** Arguments: {"location":"New York City, NY","time_periond:"7","temperature_unit":"Celsius"} ******************************************************** --------------------------------------------------------------------------------
>>>>>>>> EXECUTING FUNCTION get_weather... user_proxy (to chatbot): ***** Response from calling function "get_weather" ***** 112.22727272727272 EUR ****************************************************************
Po przetworzeniu początkowej rozmowy Agent zasugeruje narzędzie do użycia. W tym przypadku jest to funkcja o nazwie get_weather. W zależności od konfiguracji, funkcja ta może być automatycznie wykonana i odczytana przez Agenta lub wykonana na podstawie danych wejściowych użytkownika.
Możesz znaleźć listę przykładów kodu AutoGen, aby dalej zgłębiać, jak rozpocząć budowanie.
Kolejny framework agenta, który zbadamy, to Taskweaver. Jest znany jako agent "code-first", ponieważ zamiast pracować wyłącznie z ciągami znaków, może pracować z DataFrames w Pythonie. Jest to niezwykle przydatne w analizie danych i zadaniach generacyjnych, takich jak tworzenie wykresów i diagramów czy generowanie losowych liczb.
Aby zarządzać stanem rozmowy, TaskWeaver używa koncepcji Plannera. Planner to LLM, który przyjmuje żądanie od użytkowników i planuje zadania, które muszą zostać wykonane, aby je zrealizować.
Aby wykonać zadania, Planner ma dostęp do kolekcji narzędzi zwanych Plugins. Mogą to być klasy Pythona lub ogólny interpreter kodu. Te pluginy są przechowywane jako osadzenia, aby LLM mógł lepiej wyszukiwać odpowiedni plugin.
Oto przykład pluginu do wykrywania anomalii:
class AnomalyDetectionPlugin(Plugin): def __call__(self, df: pd.DataFrame, time_col_name: str, value_col_name: str):Kod jest weryfikowany przed wykonaniem. Kolejną funkcją zarządzania kontekstem w Taskweaver jest experience. Experience pozwala na przechowywanie kontekstu rozmowy w dłuższej perspektywie w pliku YAML. Można to skonfigurować tak, aby LLM poprawiał się z czasem w określonych zadaniach, biorąc pod uwagę wcześniejsze rozmowy.
Ostatni framework agenta, który zbadamy, to JARVIS. To, co wyróżnia JARVIS, to fakt, że używa LLM do zarządzania stanem rozmowy, a narzędzia to inne modele AI. Każdy z modeli AI to wyspecjalizowany model, który wykonuje określone zadania, takie jak wykrywanie obiektów, transkrypcja czy opisywanie obrazów.
LLM, będąc modelem ogólnego przeznaczenia, otrzymuje żądanie od użytkownika i identyfikuje konkretne zadanie oraz wszelkie argumenty/dane potrzebne do jego wykonania.
[{"task": "object-detection", "id": 0, "dep": [-1], "args": {"image": "e1.jpg" }}]LLM następnie formatuje żądanie w sposób, który wyspecjalizowany model AI może zinterpretować, na przykład w formacie JSON. Po tym, jak model AI zwróci swoją predykcję na podstawie zadania, LLM otrzymuje odpowiedź.
Jeśli do wykonania zadania wymagane są wiele modeli, LLM również interpretuje odpowiedzi od tych modeli, zanim połączy je w jedną odpowiedź dla użytkownika.
Poniższy przykład pokazuje, jak to działa, gdy użytkownik prosi o opis i liczbę obiektów na zdjęciu:
Aby kontynuować naukę o Agentach AI, możesz zbudować aplikację z AutoGen:
- Aplikację symulującą spotkanie biznesowe różnych działów startupu edukacyjnego.
- Stwórz wiadomości systemowe, które pomogą LLM zrozumieć różne role i priorytety oraz umożliwią użytkownikowi przedstawienie nowego pomysłu na produkt.
- LLM powinien następnie generować pytania uzupełniające od każdego działu, aby dopracować i ulepszyć pomysł na produkt.
Po ukończeniu tej lekcji, sprawdź naszą kolekcję nauki o Generative AI, aby dalej rozwijać swoją wiedzę o Generative AI!
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż staramy się zapewnić dokładność, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za autorytatywne źródło. W przypadku informacji krytycznych zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.





