Kim są agenci AI? Jak one działają, dzięki prostej pętli agenta, którą możesz uruchomić

  1. Strona główna
  2. Blog
  3. Sztuczna inteligencja

Sztuczna inteligencja

Kim są agenci AI? Jak to działa, dzięki prostej pętli agenta, którą można uruchomić

Agent AI nie tylko odpowiada. Wyznacza sobie cel, wybiera działania, sprawdza rezultaty i idzie dalej. Dowiedz się, co jest w środku, wykonaj małą pętlę w Pythonie i zrozum ryzyko, zanim zaufasz jednemu.

9 min czytania
Kim są agenci AI? Jak działają, za pomocą prostej pętli agenta, którą możesz uruchomić

Najważniejsze

  • Agent AI to zazwyczaj model językowy działający w pętli z narzędziami i celem.
  • Pętla jest prosta: zdecyduj, działaj, obserwuj wynik i powtarzaj aż do skutku.
  • Model jedynie sugeruje działania. Twój kod je uruchamia, czyli tam, gdzie egzekwujesz reguły.
  • Agenci mogą zapętlać lub nadużywać narzędzi, dlatego należy ustawić limity kroków i wymagać zgody na ryzykowne działania.

Zapytaj chatbota o spóźnione zamówienie, a otrzymasz kilka porad. Zapytaj agenta AI, a on sprawdzi zamówienie, sprawdzi opóźnienie, zastosuj kupon i złoży raport. Różnica polega na tym, że agent może podejmować działania i reagować na to, co się dzieje, zamiast dawać tylko jedną odpowiedź.

W marketingu termin ten jest naciągany, dlatego w tym przewodniku skupiono się na tym, jak faktycznie działają te systemy. Aby było to konkretne, zbudowaliśmy małą pętlę agenta w Pythonie 3.13 i uruchomiliśmy ją, a poniższe dane wyjściowe pochodzą z tych uruchomień. Nasz „model” to funkcja skryptowa, a nie prawdziwy model sztucznej inteligencji, dzięki czemu pętla może zostać uruchomiona i przetestowana przez każdego. Pokazuje strukturę kontroli, a nie inteligencję. Nie znasz jeszcze podstaw? Najpierw przeczytaj co to jest model dużego języka.

Kim jest agent AI?

Nie ma jednej uzgodnionej definicji. W obecnej praktyce agent AI to oprogramowanie, które realizuje swój cel, wielokrotnie decydując, co dalej, używając narzędzi do oddziaływania na świat i dostosowując się na podstawie wyników. Zwykle proces decyzyjny opiera się na dużym modelu językowym.

Pomyśl o różnicy między osobą udzielającą wskazówek a osobą, która załatwia sprawę. Pierwszy odpowiada raz. Drugi wychodzi, stwierdza, że ​​sklep jest zamknięty, próbuje innego i wraca dopiero, gdy praca zostanie wykonana.

Chatbot, przepływ pracy czy agent?

Wpisz Kto decyduje o krokach? Czy może działać? Przykład
Chatbot Użytkownik prowadzi w każdej turze Zwykle nie Odpowiada na pytania z tekstu
Naprawiono przepływ pracy Deweloper z góry Tak, po ustalonych ścieżkach Podsumuj każdy bilet, a następnie skieruj go
Agent AI Model w czasie wykonywania Tak, w granicach Bada i rozwiązuje zgłoszenie

Istnieją one w szerokim spektrum, a wiele przydatnych systemów jest mieszanką. Kluczowym pytaniem jest, jaka część ścieżki jest ustalana w czasie wykonywania.

Co kryje się w środku agenta

Część Rola
Modelka Decyduje o kolejnym kroku na podstawie celu i tego, co wydarzyło się do tej pory
Instrukcje Cel, zasady i ograniczenia, którymi powinien się kierować
Narzędzia Funkcje, których może żądać, takie jak wyszukiwanie lub wywoływanie interfejsu API
Pamięć To, co wie z wcześniejszych kroków lub poprzednich sesji
Pętla sterująca Zwykły kod uruchamiający narzędzia i wymuszający ograniczenia

Pętla agenta

  1. Zdecyduj. Model przygląda się celowi i historii, a następnie wybiera akcję lub stwierdza, że jest ona zakończona.
  2. Akt. Twój kod uruchamia żądane narzędzie.
  3. Obserwuj. Wynik zostanie dodany do historii.
  4. Powtarzaj, aż cel zostanie osiągnięty lub osiągnięty zostanie limit.

To jest sedno większości agentów. Wyrafinowanie leży głównie w modelu, narzędziach i zabezpieczeniach wokół tej pętli.

Pętla, którą możesz uruchomić

Nasz mały agent zajmuje się opóźnionymi zamówieniami. Ma dwa narzędzia, a jedno z nich wymaga zgody człowieka, ponieważ jest kosztowne:

ORDERS = {
    "A100": {"status": "delayed", "days_late": 6},
    "B200": {"status": "shipped", "days_late": 0},
}

def get_order(order_id):
    return ORDERS.get(order_id, {"error": "order not found"})

def issue_voucher(order_id, amount):
    return {"voucher": f"V-{order_id}", "amount": amount}

TOOLS = {"get_order": get_order, "issue_voucher": issue_voucher}
NEEDS_APPROVAL = {"issue_voucher"}

A oto sama pętla. Jest to zwykły kod i każda zasada bezpieczeństwa znajduje się tutaj, a nie w modelu:

def run_agent(goal, model, approve, max_steps=5):
    history = []
    for step in range(1, max_steps + 1):
        decision = model(goal, history)
        if "finish" in decision:
            return decision["finish"]

        name, args = decision["tool"], decision["args"]
        if name in NEEDS_APPROVAL and not approve(name, args):
            result = {"denied": True}
        else:
            result = TOOLS[name](**args)

        history.append({"tool": name, "result": result})
    return None   # stopped: step limit reached

Aby użyć prawdziwego modelu, należy zastąpić funkcję model wywołaniem API LLM, przekazując mu cel, historię i opis swoich narzędzi. Pętla pozostaje prawie taka sama.

Co się działo w naszych biegach

Wypróbowaliśmy pięć sytuacji ze skryptową funkcją decyzyjną i zarejestrowaliśmy każdy krok.

Opóźnione zamówienie z zatwierdzonym kuponem

step 1: get_order({'order_id': 'A100'}) -> {'status': 'delayed', 'days_late': 6}
step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'voucher': 'V-A100', 'amount': 200}
step 3: finish -> Sorry for the delay. Voucher V-A100 issued.

Każdy krok wykorzystywał wynik poprzedniego. Kupon został rozpatrzony dopiero po potwierdzeniu opóźnienia.

To samo zamówienie, z odmową zatwierdzenia

step 2: issue_voucher({'order_id': 'A100', 'amount': 200}) -> {'denied': True}
step 3: finish -> Your order is late. A person will review compensation.

Człowiek powiedział nie, narzędzie nigdy nie działało, a agent dostosował swoją odpowiedź.

Nieznane zamówienie

step 1: get_order({'order_id': 'Z999'}) -> {'error': 'order not found'}
step 2: finish -> I could not find that order.

Pomocne jest zapewnienie narzędziom jasnych komunikatów o błędach. Prawdziwy model potrafi je przeczytać i zareagować rozsądnie, zamiast zgadywać.

Model, który utknął

Zamieniliśmy także błędną funkcję decyzyjną, która powtarzała tę samą akcję w nieskończoność:

step 1: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 2: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
step 3: get_order({'order_id': 'B200'}) -> {'status': 'shipped', 'days_late': 0}
stopped: step limit reached

Agenci naprawdę mogą wpaść w takie pętle, a każdy krok z prawdziwym modelem kosztuje. Bez max_steps ten nigdy by się nie skończył.

Jak działają narzędzia

To najbardziej źle rozumiana część. Model językowy nie może sam niczego uruchomić. Generuje ustrukturyzowany tekst informujący, jakiego narzędzia chce i z jakimi argumentami. Twój kod decyduje, czy go uruchomić. Dlatego pętla jest właściwym miejscem do sprawdzania uprawnień, sprawdzania poprawności i logowania.

Dostawcy modeli oferują narzędzia lub funkcje wywołujące to. Model Context Protocol (MCP) to otwarty standard umożliwiający łączenie modeli z narzędziami i danymi, a nasz artykuł na temat Playwright MCP pokazuje jedno zastosowanie. Napisz jasne nazwy i opisy narzędzi, ponieważ model opiera się na nich przy prawidłowym wyborze.

Wskazówka: Zacznij od narzędzi tylko do odczytu. Agent, który może tylko wyszukiwać informacje, jest znacznie mniej niebezpieczny niż ten, który może wysyłać, usuwać lub płacić. Dodawaj dostęp do zapisu po jednym narzędziu na raz, gdy już zobaczysz, jak się zachowuje.

Pamięć

Wpisz Trzyma Przykład
Krótkoterminowe Historia bieżącego zadania Lista history w naszej pętli
Długoterminowe Fakty przechowywane pomiędzy sesjami Preferencje użytkownika w bazie danych
Wiedza Dokumenty, które są odzyskiwane w razie potrzeby RAG przy użyciu osadzeń

Długie zadania mogą przekraczać okno kontekstowe modelu, dlatego systemy często podsumowują starsze kroki. Podsumowania mogą powodować utratę szczegółów, co jest jednym z powodów, dla których długoletni agenci mogą zboczyć z kursu.

Systemy wieloagentowe

Niektóre systemy dzielą pracę pomiędzy kilku wyspecjalizowanych agentów, takich jak planista, badacz i recenzent. Może to pomóc w przypadku dużych zadań, które są starannie podzielone. Zwiększa także koszty, więcej sposobów na awarię i trudniejsze debugowanie. Najpierw wypróbuj jednego agenta z dobrymi narzędziami i podziel go tylko wtedy, gdy istnieje wyraźny powód.

Ryzyka i ograniczenia

  • Złe działania. Błąd chatbota to złe zdanie. Błędem agenta może być wysłany e-mail lub usunięty rekord.
  • Szybki wstrzyknięcie. Strona internetowa lub wiadomość e-mail, którą czyta agent, mogą zawierać ukryte instrukcje. Traktuj wszystkie dane wyjściowe narzędzia jako niezaufane dane, a nie jako polecenia.
  • Błędy łączone. Mały błąd na początku może skierować każdy kolejny krok w złym kierunku.
  • Koszt i opóźnienie. Każdy krok może być innym wywołaniem modelu, więc zadanie może być znacznie wolniejsze i droższe niż pojedynczy monit.
  • Niespójność. Ten sam cel może przy każdym uruchomieniu przebiegać inną ścieżką, co utrudnia testowanie.
  • Odpowiedzialność. Za to, co robi system, odpowiadają ludzie, dlatego należy prowadzić dokumentację.

Poręcze, które mają znaczenie

  1. Najmniejsze uprawnienia. Daj każdemu agentowi tylko narzędzia i dostęp, których potrzebuje.
  2. Ludzka zgoda na wszystko, co jest kosztowne, nieodwracalne lub zewnętrzne, tak jak ma to miejsce w naszym demo.
  3. Trudne limity kroków, czasu i wydatków.
  4. Weryfikuj dane wejściowe narzędzia w kodzie i nie polegaj na instrukcjach do modelu.
  5. Zapisuj każdy krok, aby zobaczyć, dlaczego coś się stało. Zobacz monitorowanie a obserwowalność.
  6. Testuj na rzeczywistych scenariuszach, łącznie z awariami. Sprawdź wyniki końcowe i indywidualne odpowiedzi. Nasz przewodnik po najlepszych praktykach dotyczących agentów AI zawiera dalsze informacje na temat wdrażania.

Kiedy skorzystać z agenta

Użyj agenta, kiedy Użyj czegoś prostszego, kiedy
Kroki nie mogą być znane z góry Kroki są zawsze takie same
Zadanie wymaga kilku narzędzi Jeden monit może wykonać zadanie
Wyniki zmieniają to, co stanie się później Stały przepływ pracy by się sprawdził
Błędy są tanie i można je naprawić Błędy są kosztowne i trudne do naprawienia

Asystenci kodowania są dziś jednym z najbardziej dojrzałych przykładów, ponieważ potrafią czytać pliki, uruchamiać testy, sprawdzać błędy i próbować ponownie, a wynik sprawdza człowiek. Zestaw testów daje im wyraźny sygnał sukcesu. Nasz przewodnik po szybkiej inżynierii dotyczy także pisania dobrych instrukcji dla agentów. Zacznij od najprostszej rzeczy, która może zadziałać, ponieważ dobrze podpowiedziana pojedyncza rozmowa często pokonuje skomplikowanego agenta.

Podsumowanie

Agent AI jest mniej tajemniczy, niż się wydaje: model, trochę narzędzi i pętla z ograniczeniami. Najtrudniejszą częścią jest zaufanie, a nie kod. Aby dowiedzieć się, jak się zachowują, weź naszą małą pętlę, podłącz ją do prawdziwego modelu za pomocą narzędzi tylko do odczytu i obserwuj logi, jak to działa. Wkrótce zobaczysz, gdzie świeci i gdzie potrzebuje człowieka.

Najczęstsze pytania

Czym w prostych słowach jest agent AI?

To oprogramowanie, które dąży do celu, wybierając działania, korzystając z narzędzi i sprawdzając wyniki w pętli, a nie dając tylko jedną odpowiedź.

Jaka jest różnica między chatbotem a agentem AI?

Chatbot odpowiada głównie na każdą wiadomość. Agent może zaplanować kilka kroków, wywołać narzędzia i zmienić kurs w zależności od tego, co wydarzy się po drodze.

Czy agenci AI potrzebują dużego modelu językowego?

Większość współczesnych wykorzystuje LLM do podejmowania decyzji, chociaż szersza koncepcja agentów oprogramowania jest starsza i może wykorzystywać reguły lub inne metody sztucznej inteligencji.

Czy agenci AI są bezpieczni?

Niosą ze sobą realne ryzyko, w tym niewłaściwe działania i szybkie zastrzyki. Ograniczaj ich uprawnienia, wymagaj zgody na ryzykowne kroki, ustalaj twarde limity i rejestruj wszystko.

Czy agent AI może zastąpić programistę lub testera?

Ogólnie nie dzisiaj. Mogą poradzić sobie z wieloma dobrze zdefiniowanymi zadaniami, ale ludzie nadal muszą wyznaczać cele, przeglądać wyniki i brać odpowiedzialność za wynik.

Ucz się dalej

Pracuj z Stack Quora

Potrzebujesz pomocy przy testowaniu, WordPressie lub SEO?

Pomagamy zespołom dostarczać lepsze oprogramowanie i rozwijać ich witryny. Powiedz nam, nad czym pracujesz, a my zaproponujemy jasny następny krok.

Czytaj dalej

Więcej poradników na testowanie, sztuczna inteligencja i nowoczesny rozwój

Podobał Ci się ten artykuł? Wybierz temat i przejdź bezpośrednio do naszych najnowszych tutoriali.

Sztuczna inteligencja

Wyjaśnienie halucynacji AI: dlaczego modele językowe tworzą rzeczy i jak je zmniejszyć

Wyjaśniono halucynacje AI: czym są, dlaczego powstają w modelach językowych, typowe typy, jak je zredukować za pomocą uziemień i podpowiedzi oraz pr…

Przeczytaj artykuł →
DevOps

Wyjaśnienie zmiennych środowiskowych: pliki .env, sekrety i konfiguracja wykonana prawidłowo

Zmienne środowiskowe wyjaśnione na przykładach Pythona, które przeprowadziliśmy: ich odczytywanie i ustawianie, dlaczego każda wartość jest ciągiem …

Przeczytaj artykuł →
Tworzenie oprogramowania

Wyjaśnienie ograniczenia szybkości interfejsu API: algorytmy, nagłówki i obsługa błędów 429

Ograniczanie szybkości API wyjaśnione za pomocą przeprowadzonej przez nas symulacji: zasobnik tokenów, stałe okno, przesuwane okno, 429 odpowiedzi, …

Przeczytaj artykuł →
Automatyzacja testów

Wyśmiewanie w Pythonie: unittest.mock, patch i błędy, które sprawiają, że testy kłamią

Wyśmiewanie w Pythonie za pomocą unittest.mock, przetestowane: Mock i zwracana wartość, efekt uboczny, łatanie tam, gdzie używana jest nazwa, specyf…

Przeczytaj artykuł →
Testowanie oprogramowania

Wyjaśnienie zasięgu kodu: pokrycie linii i oddziału oraz co naprawdę oznacza 100%

Wyjaśnienie pokrycia kodu za pomocą prawdziwego pliku cover.py: pokrycie linii, gałęzi i warunków, przeczytanie raportu, dlaczego 100% pokrycia może…

Przeczytaj artykuł →
Bazy danych i SQL

DELETE vs TRUNCATE vs DROP w SQL: różnice, wycofywanie i kiedy używać każdego z nich

DELETE vs TRUNCATE vs DROP wyjaśnione za pomocą przetestowanego SQL: co każdy usuwa, wycofywanie, wyzwalacze, resetowanie tożsamości, prędkość i czy…

Przeczytaj artykuł →
Bazy danych i SQL

Wyjaśnienie widoków SQL: tworzenie, używanie i unikanie pułapek wraz z przykładami

Widoki SQL wyjaśnione za pomocą zapytań, które uruchomiliśmy: tworzenie widoku, wyniki na żywo, ukrywanie kolumn, wydajność, widoki z możliwością ak…

Przeczytaj artykuł →
Tworzenie oprogramowania

Interfejs TypeScript a typ: rzeczywiste różnice, testowane za pomocą kompilatora

Interfejs TypeScript a typ, sprawdzony z prawdziwym kompilatorem: co oba mogą zrobić, co tylko jeden, łączenie deklaracji, rozszerzenia a przecięcia…

Przeczytaj artykuł →
Tworzenie oprogramowania

Python *args i **kwargs wyjaśnione: elastyczne funkcje z przejrzystymi przykładami

Python *args i **kwargs wyjaśnione za pomocą uruchomionego przez nas kodu: pakowanie i rozpakowywanie, kolejność parametrów, argumenty zawierające t…

Przeczytaj artykuł →
Tworzenie oprogramowania

Funkcje Lambda w Pythonie: składnia, rzeczywiste zastosowania i kiedy ich nie używać

Funkcje lambda w Pythonie wyjaśnione za pomocą uruchomionego przez nas kodu: składnia, sortowanie za pomocą klucza, mapa i filtr, domknięcia, pułapk…

Przeczytaj artykuł →
Sztuczna inteligencja

Kim są agenci AI? Jak one działają, dzięki prostej pętli agenta, którą możesz uruchomić

Kim są agenci AI? Prosty przewodnik po pętli agenta, narzędziach, pamięci i poręczach, z małą pętlą w Pythonie, którą uruchomiliśmy, prawdziwymi zag…

Przeczytaj artykuł →
DevOps

Monitorowanie a obserwowalność: prawdziwa różnica z logami, wskaźnikami i śladami

Wyjaśnienie monitorowania a obserwowalności: znane i nieznane awarie, dzienniki, metryki i ślady, opis incydentu przy kasie, złote sygnały, OpenTele…

Przeczytaj artykuł →
DevOps

Woluminy platformy Docker a mocowania powiązań: utrwalanie danych kontenera we właściwy sposób

Wyjaśniono woluminy Dockera a montowanie powiązań: dlaczego dane kontenera znikają, nazwane woluminy, montowanie powiązań, tmpfs, przykłady tworzeni…

Przeczytaj artykuł →
Automatyzacja testów

TDD vs BDD: kluczowe różnice, jedna funkcja zbudowana w obie strony i kiedy używać każdej z nich

TDD vs BDD wyjaśnione za pomocą jednej funkcji rabatowej zbudowanej w obie strony: refaktoryzacja czerwono-zielona z uruchomionym przez nas kodem, s…

Przeczytaj artykuł →
Tworzenie oprogramowania

Git merge vs rebase: różnice, przykłady i kiedy czego używać

Git merge vs rebase wyjaśnione na prawdziwym wyniku logu, z tabelą porównawczą, złotą zasadą rebase i bezpiecznym procesem pracy zespołu.

Przeczytaj artykuł →
Tworzenie oprogramowania

Python list comprehension: składnia, przykłady i kiedy jej unikać

Python list comprehension wyjaśnione: składnia, filtrowanie, if-else, zagnieżdżone pętle, zmierzone czasy i sytuacje, w których zwykła pętla for jes…

Przeczytaj artykuł →
Bazy danych i SQL

SQL JOIN – wyjaśnienie z przykładami (Inner, Left, Right, Full)

Zrozum złączenia SQL krok po kroku na przykładowych tabelach i zapytaniach: INNER, LEFT, RIGHT, FULL, CROSS i SELF, plus typowe błędy i wskazówki wy…

Przeczytaj artykuł →