Strona główna / Artykuły / Od celu do zabezpieczonej akcji: pętle, weryfikacja i uprawnienia w agentach sztucznej inteligencji

Od celu do zabezpieczonej akcji: pętle, weryfikacja i uprawnienia w agentach sztucznej inteligencji

Dowiedz się, w jaki sposób agenci AI przekształcają cel w wywołania narzędzi za pomocą pętli planuj-działaj-obserwuj, oraz dlaczego weryfikacja, poziomy autonomii i warstwy uprawnień decydują o ich bezpieczeństwie.

2717 słów

Większość ludzi po raz pierwszy spotkała modele językowe jako maszyny do odpowiadania na pytania: wprowadzasz prompt, otrzymujesz odpowiedź i to koniec. Systemy agentów łamią ten schemat. Mając określony cel, planują działania, wykorzystują narzędzia, sprawdzają wyniki i kontynuują pracę, aż zadanie zostanie ukończone. Ten przewodnik omawia pętle, narzędzia, pamięć oraz konfiguracje wieloagentowe, a następnie skupia się na tym, co jest najważniejsze w praktyce: weryfikacji pracy agenta oraz ograniczaniu jego uprawnień.

Odpowiadanie versus dążenie do celu

Klasyczny chatbot realizuje jedno działanie – pytanie trafia do modelu, ten generuje odpowiedź i nic więcej się nie dzieje.

User
 ↓
Question
 ↓
AI
 ↓
Answer

Jeśli zadasz mu pytanie „Co to jest uczenie maszynowe?”, otrzymasz wyjaśnienie, nic więcej. Agent jest zorganizowany wokół celu, którego osiąga poprzez sekwencję działań z informacjami zwrotnymi pomiędzy nimi.

User
 ↓
Goal
 ↓
AI Agent
 ↓
Plan
 ↓
Use Tools
 ↓
Observe Results
 ↓
Take More Actions
 ↓
Complete Goal

Zapytanie typu „przeprowadź analizę tego zestawu danych i stwórz raport” musi zostać podzielone na konkretne etapy:

Read dataset
     ↓
Understand columns
     ↓
Clean data
     ↓
Analyze statistics
     ↓
Create graphs
     ↓
Find patterns
     ↓
Write report

Krótko mówiąc, chatbot odpowiada, podczas gdy agent wykonywać zadania i koryguje swoje działania w trakcie ich realizacji.

Czym cechuje się system jako agent?

Nie istnieje jedna, powszechnie przyjęta definicja. Praktyczna wersja brzmi: agent otrzymuje zadanie, podejmuje decyzje, korzysta z dostępnych narzędzi, analizuje wyniki i wybiera dalsze działania aż do osiągnięcia celu. Kluczową cechą jest pętla na dole, która przekazuje kontrolę z powrotem w górę.

USER GOAL
                  ↓
             AI AGENT
                  ↓
               PLAN
                  ↓
          SELECT ACTION
                  ↓
              USE TOOL
                  ↓
             OBSERVE
                  ↓
             EVALUATE
                  ↓
          NEXT ACTION?
             ↙       ↘
           YES        NO
            ↓          ↓
        Continue     Finish

Bez tej pętli mamy proces, który działa tylko raz. Dzięki niej system może otrząsnąć się z niespodzianek, co stanowi zarówno jego mocną stronę, jak i powód konieczności nadzoru.

Cykl myślenia, działania i obserwacji

Najprostszym modelem mentalnym dla tego cyklu jest myślenie, działanie i obserwacja. Wyobraź sobie, że prosisz agenta o znalezienie najlepszego laptopa w ramach twojego budżetu i porównanie trzech kandydatów. Wewnętrznie może postępować w ten sposób:

Goal
 ↓
Understand requirements
 ↓
Search for products
 ↓
Read results
 ↓
Compare specifications
 ↓
Check prices
 ↓
Evaluate options
 ↓
Generate recommendation

Agent nie korzysta z pamięci treningowej, aby informować się o laptopach. Zapytuje rzeczywiste źródła i opiera swoją rekomendację na tym, co znalazł, a właśnie ten kontakt ze światem zewnętrznym odróżnia go od prostego generowania tekstu.

Trzy elementy: model, narzędzia i stan

Bazowego agenta można opisać za pomocą trzech komponentów.

Model jako decydent

Zazwyczaj jest to duży model językowy, który interpretuje instrukcje i decyduje, co robić dalej.

Narzędzia jako możliwości

Narzędzia to zewnętrzne umiejętności, których agent może używać, na przykład:

Search
Python
Calculator
Database
API
File system
Computer
Vision model

Stan jako bieżący zapis

Stan to to, co agent wie na chwilę obecną o zadaniu. Odpowiada on na takie pytania:

What did I search?
What did I find?
What have I already done?
What remains?

Wszystkie trzy komponenty łącznie wpływają na działania podejmowane przez agenta:

AI AGENT
                 │
      ┌──────────┼──────────┐
      ↓          ↓          ↓
    Model       Tools     Memory
      │          │          │
      └──────────┼──────────┘
                 ↓
              Actions

Aby dowiedzieć się więcej na temat tych elementów składowych, zapoznaj się z naszym przewodnikiem po celach, narzędziach, pamięci i pętli agenta.

Dlaczego narzędzia mają tak wielkie znaczenie

Jeśli poprosimy model o pomnożenie 938472 przez 827391, może to zrobić poprawnie, ale przewiduje cyfry zamiast je obliczać, więc kalkulator lub Python są bardziej niezawodne. Agent może przekazać to zadanie komuś innemu:

User
 ↓
LLM
 ↓
"I need exact arithmetic."
 ↓
Calculator
 ↓
Result
 ↓
LLM
 ↓
Answer

Model nie musi robić wszystkiego sam. Deleguje zadania.

Wybór odpowiedniego narzędzia do danego wejścia

Jak agent wybiera spośród swoich narzędzi? Załóżmy, że ma dostęp do wszystkich z nich:

Python
SQL
Search
Calculator
Vision Model
File Reader
Email API
Calendar

W przypadku zadania „przyjrzyj się temu arkuszowi kalkulacyjnemu z danymi sprzedaży i wyjaśnij, dlaczego spadły przychody”, system na podstawie typu danych, ich struktury oraz zadania wybiera odpowiedni narzędzie:

Input = Spreadsheet
        ↓
Data = Tabular
        ↓
Task = Analysis
        ↓
Tool = Python/pandas

Następnie wybrane narzędzie wykonuje główną pracę i przekazuje uzyskane wyniki:

pandas
 ↓
Analyze sales
 ↓
Find patterns
 ↓
Return results

Agent potem interpretuje te wyniki. W praktyce wybór narzędzia w dużej mierze zależy od jasnych nazw i opisów narzędzi, ponieważ to jedynie to widzi model.

Łączenie kilku narzędzi w jeden proces

Rozważmy zadanie „przeprowadź analizę naszych danych sprzedaży, przedstaw je w formie wykresu i wyślij raport e-mailem do mojego menedżera”, które obejmuje analizę, wizualizację, pisanie oraz dostarczanie informacji:

Sales Dataset
     ↓
Python / pandas
     ↓
Statistical Analysis
     ↓
Matplotlib
     ↓
Create Charts
     ↓
LLM
     ↓
Write Report
     ↓
Email Tool
     ↓
Send Report

System teraz koordynuje proces, w którym każdy wynik służy jako dane wejściowe dla następnego kroku, dzięki czemu błąd popełniony na wczesnym etapie może wpłynąć na cały proces, aż po wysyłkę e-mailem.

Planowanie poprzez dekompozycję zadań

"Stworzenie strony internetowej dla mojego projektu" to zbyt duży cel na jedną próbę. Kompetentny agent dzieli go na uporządkowane części:

Goal
 ↓
Understand requirements
 ↓
Create project structure
 ↓
Build frontend
 ↓
Build backend
 ↓
Connect database
 ↓
Run application
 ↓
Test
 ↓
Fix errors
 ↓
Deploy

To jest dekompozycja zadań: cel zamienia się w serię mniejszych działań, które można wykonać i sprawdzić pojedynczo.

Rеагowanie na błędy zamiast ich zgłaszania

Pętla okazuje się przydatna, gdy coś się psuje. Załóżmy, że agent uruchamia pewien kod:

Write code
 ↓
Run code
 ↓
ERROR

Chatbot może jedynie zgłosić błąd. Agent może go przeczytać, poprawić kod i spróbować ponownie:

Write code
 ↓
Run code
 ↓
ERROR
 ↓
Read error
 ↓
Identify problem
 ↓
Modify code
 ↓
Run again
 ↓
SUCCESS

W uogólnieniu jest to pętla agenta, przy której ocena służy do tworzenia nowego planu:

┌──────────────┐
              │    PLAN      │
              └──────┬───────┘
                     ↓
              ┌──────────────┐
              │     ACT      │
              └──────┬───────┘
                     ↓
              ┌──────────────┐
              │   OBSERVE    │
              └──────┬───────┘
                     ↓
              ┌──────────────┐
              │   EVALUATE   │
              └──────┬───────┘
                     │
                     └──────→ PLAN AGAIN

Pętla, która może próbować ponownie, może to robić w nieskończoność, dlatego rzeczywiste systemy ograniczają liczbę iteracji.

Pamięć i ciągłość pomiędzy krokami

Bез pamięci każde zadanie zaczyna się od zera:

Task 1
 ↓
Forget
 ↓
Task 2
 ↓
Forget

Z zachowaniem stanu z poprzednich kroków, każdy kolejny krok buduje się na poprzednim:

Task 1
 ↓
Save result
 ↓
Task 2
 ↓
Use previous result
 ↓
Task 3

Pamięć występuje w kilku obszarach:

  • Stan krótkoterminowy przechowuje informacje z bieżącego zadania.
  • Pamięć długoterminowa zachowuje dane między interakcjami, o ile system to umożliwia.
  • Pamięć zewnętrzna znajduje się poza modelem, w bazach danych, dokumentach, magazynach wektorowych lub plikach.

Agent może korzystać z dokumentów projektu oraz wcześniejszych wyników przed wykonaniem obecnego kroku:

Agent
 ↓
Memory
 ↓
Project documents
 ↓
Previous results
 ↓
Current task

Łączenie wyszukiwania z działaniem

Metoda generowania wzbogaconego o wyszukiwanie (RAG) doskonale pasuje do agentów. Aby odpowiedzieć na pytania na podstawie wewnętrznych dokumentów firmy, agent je przeszukuje, czyta odpowiednie fragmenty i na ich podstawie wyciąga wnioski:

Question
 ↓
Search company documents
 ↓
Retrieve relevant information
 ↓
Read context
 ↓
Reason about it
 ↓
Answer

Dodając odpowiednie narzędzia, agent może również działać na podstawie tego, co znalazł:

AI AGENT
                    │
        ┌───────────┼───────────┐
        ↓           ↓           ↓
       RAG        Python       APIs
        ↓           ↓           ↓
    Documents    Analysis     Actions

Dzielenie pracy między kilkoma agentami

Gdy jeden agent nie wystarcza, kilku specjalistycznych agentów może pracować pod kierownictwem koordynatora:

MAIN AGENT
                     │
        ┌────────────┼────────────┐
        ↓            ↓            ↓
   Research Agent  Coding Agent  Data Agent
        │            │            │
     Search        Code         Analysis

Agenci zajmujący się badaniami, programowaniem i przetwarzaniem danych realizują swoje zadania specjalistyczne, podczas gdy główny agent zarządza przekazywaniem zadań między nimi. To jest system wielu agentów.

Analogia z zespołem i jej ograniczenia

Taka struktura przypomina firmę programistyczną z wyraźnie rozdzielonymi rolami:

Manager
   ↓
Developer
   ↓
Tester
   ↓
Designer
   ↓
Deployment

System AI może odzwierciedlać takie podział pracy:

Coordinator Agent
       ↓
Research Agent
       ↓
Coding Agent
       ↓
Testing Agent
       ↓
Deployment Agent

Porównanie jest luźne, ale wskazuje kierunek: koordynacja specjalistycznych modeli i narzędzi zamiast polegania na jednym modelu. Każdy dodatkowy agent powoduje również wzrost kosztów i opóźnień, więc specjalizacja musi być rzeczywista.

Jak agenty popełniają błędy

Autonomia nie oznacza niezawodności. Agent może:

  • wybrać niewłaściwe narzędzie
  • błędnie zinterpretować cel
  • stworzyć uszkodzony kod
  • pobierać nieistotne dane
  • powtarzanie działania, które już się nie udało
  • wytworzenie fałszywych faktów
  • podejmowanie złej decyzji
  • wykonanie działania, którego nikt nie zamierzał
  • Błędy narastają na każdym kolejnym etapie:

    User Goal
       ↓
    Wrong interpretation
       ↓
    Wrong tool
       ↓
    Wrong result
       ↓
    Wrong action
    

    Im większa swoboda ma agent, tym częściej trzeba sprawdzać jego działania.

    Wbudowanie weryfikacji do pętli

    Nieodpowiednim wzorcem jest agent, który działa i po prostu zakłada, że działanie się udało:

    Act → Assume success
    

    Lepszym wzorcem jest włączenie wyraźnej weryfikacji przed przejściem dalej:

    Act
     ↓
    Observe
     ↓
    Verify
     ↓
    Continue
    

    W przypadku kodu weryfikacja polega na uruchomieniu testowym z wyraźnym rozgałęzieniem w zależności od wyniku:

    Write Code
     ↓
    Run Tests
     ↓
    Tests Pass?
     ├── NO → Fix
     └── YES → Continue
    

    W przypadku danych jest to sprawdzenie poprawności wyniku, zanim ktokolwiek się na nim polega:

    Database Query
     ↓
    Check Result
     ↓
    Is result reasonable?
     ├── NO → Investigate
     └── YES → Continue
    

    Weryfikacja zamiast domyślania się to główna różnica pomiędzy agentem adaptacyjnym a prostym skryptem. Lepiej stosować deterministyczne sprawdzenia, takie jak testy czy walidacja schematu, zamiast prosić model o ocenę samego siebie.

    Autonomia to pokrętło, a nie przełącznik

    Agenci nie potrzebują pełnej swobody. Wyobraźmy sobie skalę, która zaczyna się od systemu, który odpowiada tylko na:

    Level 1
    AI only answers
    

    Wyższe poziomy dodają zalecane działania, następnie wywołania narzędzi, potem planowanie wieloetapowe, a na końcu procesy wykonywane przy ograniczonej nadzorze:

    Level 2
    AI suggests actionsLevel 3
    AI calls toolsLevel 4
    AI plans multiple actionsLevel 5
    AI executes workflows with limited supervision
    

    Każdy krok w górę skali podnosi wymagania stawiane agentowi:

    Permissions
    Safety
    Monitoring
    Verification
    Human oversight
    

    Najniższy poziom, który rozwiązuje problem, jest zazwyczaj najbezpieczniejszym wyborem.

    Ograniczenie dostępu agenta

    Wyobraźmy sobie agenta połączonego ze wszystkim poniższym:

    Email
    Banking
    Files
    Database
    Cloud infrastructure
    Production servers
    

    Nieograniczony dostęp byłby nierozsądny. Bezpieczniejszy projekt kieruje działania przez warstwę uprawnień:

    AI Agent
       ↓
    Permission Layer
       ↓
    Allowed Tools
       ↓
    Action
    

    Uprawnienia są następnie ustalane dla każdego działania: czytanie pliku może być dozwolone, natomiast usuwanie, wysyłanie e-maili, wdrażanie lub dostęp do bazy danych zależą od kontekstu:

    Read file       ✓
    Delete file     ?
    Send email      ?
    Deploy software ?
    Access database ?
    

    Zasada brzmi: jak najmniejsze uprawnienia.

    Zasady bezpieczeństwa i zatwierdzenie przez człowieka

    Agenty produkcyjne wymagają również ścisłych ograniczeń dotyczących sposobu ich działania:

    Allowed tools
    Maximum actions
    Time limits
    Budget limits
    File permissions
    Network permissions
    Human approval
    

    Dla działań o dużym wpływie agent przygotowuje je i czeka na zatwierdzenie przez osobę:

    Agent
     ↓
    Prepare Action
     ↓
    Human Approval
     ↓
    Execute
    

    To jest projekt z udziałem człowieka. Zamknięte pętle są omówione w naszym artykule o zamkniętych pętlach agencyjnych w TypeScript.

    Gdzie stosuje się agenty

    Ta sama pętla występuje w wielu dziedzinach.

    Rozwój oprogramowania

    Requirement
     ↓
    Coding Agent
     ↓
    Code
     ↓
    Testing
     ↓
    Bug Fixing
    

    Analiza danych

    Dataset
     ↓
    Data Agent
     ↓
    Cleaning
     ↓
    Analysis
     ↓
    Visualization
     ↓
    Report
    

    Obsługa klienta

    Zwróć uwagę na krok „dozwolona akcja”: pracownicy obsługi działają w ramach wąskiego, uprzednio zatwierdzonego zestawu operacji.

    Customer Question
     ↓
    Retrieve Account Information
     ↓
    Understand Problem
     ↓
    Take Permitted Action
     ↓
    Respond
    

    Badania

    Research Question
     ↓
    Search
     ↓
    Read Papers
     ↓
    Extract Information
     ↓
    Compare Findings
     ↓
    Generate Report
    

    Produktywność osobista

    Goal
     ↓
    Calendar
     ↓
    Email
     ↓
    Documents
     ↓
    Tasks
     ↓
    Summary
    

    Inny rodzaj interfejsu

    Konwencjonalne oprogramowanie łączy element sterujący z funkcją i wynikiem:

    Button
     ↓
    Function
     ↓
    Result
    

    Agent łączy określony cel z planem, wywołaniami narzędzi i akcjami:

    Goal
     ↓
    Planning
     ↓
    Tools
     ↓
    Actions
     ↓
    Result
    

    Zamiast uczyć się, które przyciski nacisnąć, użytkownik opisuje pożądany rezultat. To zmienia interakcję człowiek-komputer i sprawia, że widoczność działań agenta staje się wymogiem projektowym.

    Uwaga na temat słowa „myślenie”

    Gdy mówimy, że agent „myśli”, zazwyczaj mamy na myśli kroki obliczeniowe: interpretację danych wejściowych, planowanie, wybór działań, ocenę wyników i aktualizację stanu. To nie oznacza posiadania świadomości. Dokładniej mówiąc, agenci przechodzą iteracyjne cykle rozumowania i wyboru działań w kierunku osiągnięcia celu; pojęcie „agent” opisuje zachowanie i architekturę, a nie doświadczenie.

    Pełny obraz w jednym cyklu

    Gdy wszystko zostanie połączone, powstaje taka architektura: planowanie, działanie za pomocą narzędzia, obserwacja, weryfikacja, a następnie kontynuacja lub zatrzymanie.

    USER
                          │
                          ▼
                     ┌─────────┐
                     │  GOAL   │
                     └────┬────┘
                          ↓
                   ┌─────────────┐
                   │ AI / LLM    │
                   └──────┬──────┘
                          ↓
                       PLAN
                          ↓
                  SELECT ACTION
                          ↓
            ┌─────────────┼─────────────┐
            ↓             ↓             ↓
          Search        Python         SQL
            ↓             ↓             ↓
            └─────────────┼─────────────┘
                          ↓
                       RESULT
                          ↓
                      OBSERVE
                          ↓
                      VERIFY
                          ↓
                 Continue or Finish
    

    Ten cykl znajduje się w centrum większości systemów opartych na agentach.

    Kierunek rozwoju

    Załóżmy, że prosimy komputer o cotygodniowy raport badawczy, a agent zajmuje się całym procesem:

    Open research sources
            ↓
    Collect information
            ↓
    Read documents
            ↓
    Analyze data
            ↓
    Create charts
            ↓
    Write report
            ↓
    Check errors
            ↓
    Prepare final document
    

    Komputer koordynuje wtedy aplikacje, zamiast je jedynie hostować. W dłuższej perspektywie postęp wygląda w ten sposób:

    Rule-Based Software
            ↓
    Machine Learning
            ↓
    Chatbots
            ↓
    LLMs
            ↓
    Tool-Using LLMs
            ↓
    AI Agents
            ↓
    Multi-Agent Systems
    

    Zmiana dotyczy nie tylko większych modeli, ale także takich modeli, które coraz częściej obsługują zewnętrzne systemy.

    Główne wnioski

    Bot rozmовny pokazuje, jak można przeanalizować zbiór danych. System oparty na agentach może go znaleźć, załadować, przeanalizować, przedstawić w formie wykresów, zaznaczyć problemy, przygotować raport, poprosić o zatwierdzenie i go dostarczyć:

    Find the dataset
          ↓
    Load it
          ↓
    Analyze it
          ↓
    Create visualizations
          ↓
    Detect problems
          ↓
    Write a report
          ↓
    Ask for approval
          ↓
    Deliver the result
    

    Progresja polega na odpowiadaniu, następnie planowaniu, działaniu, obserwowaniu i weryfikacji. Kilka punktów do uwzględnienia przy projektowaniu dowolnego agenta:

    • To pętla, a nie model, sprawia, że system staje się agentem; należy ją ograniczyć za pomocą limitów iteracji, czasu i budżetu.
    • Powierzyć precyzyjne zadania, takie jak obliczenia, zapytania i wykonywanie kodu, narzędziom oraz jasno je opisać.
    • Weryfikować każdy kolejny krok za pomocą sprawdzeń, które nie polegają na ocenie samego modelu.
  • Przypisuj uprawnienia do poszczególnych działań, zaczynając od najniższych uprawnień i wymagaj ludzkiej aprobaty dla wszystkiego, co jest nieodwracalne.
  • Wybierz najniższy poziom autonomii, który wystarczy do wykonania zadania.
  • Agenci to raczej systemy, które przekształcają cele w konkretne działania, niż maszyny myślące jak ludzie. Kluczowym pytaniem nie jest to, na ile model jest zdolny, ale co jesteś gotów mu pozwolić robić.

    Literatura pokrewna