Pełny zestaw technologii Agentic AI, warstwa po warstwie: od interfejsu użytkownika do możliwości obserwacji.
Dziesięć warstw stojących za agentem produkcyjnym: interfejs użytkownika, pobieranie danych, dzielenie na fragmenty, embeddingi, wyszukiwanie wektorowe, odzyskiwanie informacji, generowanie promptów, model LLM, wdrożenie i ocena.
Źródła: The Full Stack of Agentic AI: From User Interface to Production-Grade Intelligence
Sztuczna inteligencja dawno już przekroczyła etap, w którym ktoś wpisywał zapytanie i odczytywał odpowiedź. Współczesne produkty oparte na sztucznej inteligencji to pełne systemy oprogramowania. Przyjmują dokumenty, przekształcają nieuporządkowany materiał w użyteczną wiedzę, generują embeddingi, pozyskują kontekst, komunikują się z dużymi modelami językowymi, uruchamiają narzędzia, działają w ramach infrastruktury chmurowej i monitorują własną wydajność. Dotyczy to podwójnie agentowych systemów sztucznej inteligencji. Agent to nie model językowy uwięziony w oknie czatu. Aplikacja agentowa klasy produkcyjnej wymaga całego zestawu technologii wokół modelu, a model stanowi jedynie jedną z warstw w tym zestawie.
Diagram architektury referencyjnej tego zestawu stanowi przydatną mapę, pokazującą drogę od interfejsu użytkownika, przez procesy pobierania danych, wyszukiwania i formułowania zapytań, aż po modele, ich wdrożenie i monitorowanie. Poniższe sekcje omawiają każdą warstwę, jej przeznaczenie, powód istnienia oraz sposób, w jaki narzędzia ze sobą współpracują.
Szczegóły warstw
W kolejności działania stacku to: interfejs użytkownika, pobieranie dokumentów, dzielenie na fragmenty i przetwarzanie wstępne, embeddingi, baza danych wektorowych, wyszukiwanie, projektowanie promptów, modele LLM, infrastruktura i wdrażanie, a na końcu możliwości obserwacji i oceny.
Ta sekwencja nie stanowi ścisłego procesu. W rzeczywistych systemach agentowych poszczególne elementy cały czas ze sobą współpracują. Agent może kilka razy wyszukiwać informacje, korzystać z zewnętrznych narzędzi, wywoływać różne modele, oceniać własne odpowiedzi i uruchamiać dalsze procesy, zanim uzyska ostateczny wynik. Stack lepiej interpretować jako ekosystem technologiczny wspierający inteligencję niż jako prostą łańcuchową strukturę żądanie-odpowiedź.
Warstwa 1: interfejs użytkownika
Każdy system AI potrzebuje miejsca, w którym ludzie mogą z nim interakcjonować. Frontend stanowi interfejs użytkownika – może to być chatbot, portal korporacyjny, panel analityczny, narzędzie wewnętrzne lub przestrzeń robocza wspomagana przez AI. Do typowych rozwiązań technologicznych należą React, Next.js, Streamlit oraz Azure App Service. React służy do tworzenia interaktywnych interfejsów, natomiast Next.js to bardziej kompleksowe frameworki do tworzenia aplikacji internetowych do użytku produkcyjnego. Streamlit ułatwia szybkie tworzenie aplikacji AI i analitycznych bez konieczności używania tradycyjnych narzędzi frontendowych. Azure App Service oferuje zarządzane hostingi dla aplikacji internetowych i API.
W korporacyjnym setupie opartym na agentach frontend to coś więcej niż zwykłe pole do rozmowy. Może pokazywać postęp agenta, źródła danych, których użył, status procesów, wyniki działań narzędzi, prośby o zatwierdzenie, wygenerowane dokumenty oraz interakcje z ludźmi. To właśnie tutaj AI staje się dostępna dla użytkowników biznesowych.
Warstwa 2: przetwarzanie dokumentów
Skuteczny system wymaga dostępu do odpowiednich informacji, a wiedza korporacyjna rzadko występuje w uporządkowanym formacie. Jest rozproszona w plikach PDF, plikach Word, prezentacjach, skanach, stronach internetowych, bazach danych, e-mailach i wielu innych źródłach. Proces przetwarzania polega na zbieraniu i wydobywaniu treści z tych wszystkich źródeł.
Narzędzia stosowane w tym celu to Azure AI Content Understanding, Apache Tika, Microsoft Fabric, LangChain oraz silniki OCR. OCR jest niezbędny, gdy informacje znajdują się w skanach lub obrazach. Apache Tika potrafi wydobywać tekst i metadane z bardzo różnorodnych formatów. Microsoft Fabric wspiera szersze procesy przetwarzania danych w przedsiębiorstwach, a frameworki takie jak LangChain umożliwiają łączenie komponentów przetwarzania z pipeline’ami AI.
Cel jest prosty: przekształcić rozproszone informacje firmowe w treść, którą maszyna może przetworzyć. Bez niezawodnej warstwy pobierania danych nawet najbardziej zaawansowany model będzie miał trudności z dostarczaniem sensownych odpowiedzi na pytania dotyczące Twojej organizacji.
Warstwa 3: dzielenie na fragmenty i przetwarzanie wstępne
Wyciąganie tekstu to dopiero początek. Dokument o 200 stronach nie może zostać w całości wysłany w każdej prośbie do modelu, dlatego duże dokumenty muszą być podzielone na mniejsze, znaczące jednostki. Takimi fragmentami mogą być akapity, sekcje, strony lub jednostki semantyczne, a LangChain oraz podobne frameworki oferują kilka strategii dzielenia na fragmenty.
Dobre dzielenie tekstu na fragmenty to coś więcej niż prosty podział co kilkaset znaków, ponieważ złe dzielenie niszczy kontekst. Gdy definicja jest oddzielona od wyjaśnienia, które nadaje jej znaczenie, wyszukiwanie może zwrócić niekompletne informacje. Zbyt duże fragmenty sprawiają, że wyszukiwanie jest niedokładne, natomiast zbyt małe tracą ważne powiązania. Strategia ta wpływa więc bezpośrednio na jakość wszystkich kolejnych kroków.
Przedprzetwarzanie obejmuje oczyszczanie tekstu, usuwanie niepotrzebnego zawartości, normalizację formatów, wydobywanie metadanych, wykrywanie struktury dokumentu oraz wzbogacanie fragmentów dodatkowymi informacjami. To właśnie tutaj często decyduje się o tym, jak dobrze będzie działać późniejsze wyszukiwanie.
Warstwa 4: embeddingi
Gdy dokumenty zostaną podzielone na fragmenty, system potrzebuje sposobu na uchwycenie ich znaczenia. Model embeddingowy przekształca tekst w wektor liczbowy, dzięki czemu podobne koncepcje znajdują się blisko siebie w przestrzeni embeddingów.
Porównaj proszę zapytanie o sformatowanie hasła pracownika z zapytaniem o zmianę danych logowania do pracy. Sformułowanie jest różne, ale intencja jest podobna, a dobry model embeddingów to rozpoznaje. Wśród usług dostępnych dla tego warstwy znajdują się OpenAI, Cohere oraz usługi AI oparte na Azure. Powstałe wektory stanowią podstawę wyszukiwania semantycznego i odzyskiwania informacji, co czyni to jedną z najważniejszych transformacji w całym stacku: język ludzki staje się reprezentacją matematyczną, a ta reprezentacja umożliwia porównywanie pod względem podobieństwa semantycznego.
Warstwa 5: baza danych wektorowych
Embeddingi muszą być przechowywane w miejscu, które umożliwia szybkie wyszukiwanie pod kątem podobieństwa, i to właśnie jest zadaniem bazy danych wektorowych. Na diagramie wymieniono Milvus, FAISS, Azure AI Search, Azure Cosmos DB oraz Azure Database for PostgreSQL. Różnią się one znacznie pod względem możliwości i modelu wdrażania, ale wszystkie dążą do efektywnego odzyskiwania informacji poprzez porównywanie podobieństwa semantycznego.
Gdy użytkownik zadaje pytanie, zapytanie to jest przekształcane w embedding, a system szuka najbliższych wektorów. Znalezione fragmenty są następnie przekazywane dalszym warstwom. To jest podstawa większości systemów generatywnych wzbogaconych o wyszukiwanie.
Warstwa 6: warstwa wyszukiwania
Baza danych wektorowych przechowuje informacje, ale to warstwa wyszukiwania decyduje, co faktycznie zostanie pokazane modelowi. Ta różnica łatwo umknąć uwadze. Wyszukiwanie może wykorzystywać podobieństwo semantyczne, wyszukiwanie według słów kluczowych, filtrowanie metadanych, wyszukiwanie hybrydowe, ponowne sortowanie oraz inne techniki, a narzędzia takie jak Azure AI Search, LangChain i LlamaIndex obejmują je swoją funkcjonalnością.
Zaawansowane rozwiązania łączą różne strategie. Szukanie semantyczne pomaga znaleźć materiały powiązane koncepcyjnie, natomiast wyszukiwanie według słów kluczowych zapewnia, że nie przeoczy się dokładnych identyfikatorów, nazw produktów, numerów polis czy terminów technicznych. Jest to hybrydowy sposób wyszukiwania, a systemy RAG w przedsiębiorstwach coraz częściej dodają do nich filtry metadanych, mechanizmy ponownego rankowania, grafy wiedzy oraz inne elementy.
Celem nie jest pozyskanie jak największej ilości informacji, lecz uzyskanie właściwych danych.
Warstwa 7: projektowanie promptów
Po znalezieniu informacji system musi przygotować odpowiednie instrukcje dla modelu językowego. Prompt produkcyjny to znacznie więcej niż zwykłe pytanie użytkownika – może zawierać instrukcje systemowe, odnaleziony kontekst, historię rozmów, zasady biznesowe, wymagania dotyczące formatu wyjścia, ograniczenia bezpieczeństwa, przykłady, definicje narzędzi oraz metadane. LangChain, Promptify i DSPy to przykłady narzędzi, które pomagają w ich strukturyzacji i optymalizacji.
Inżynieria promptów wykracza również poza ręczne tworzenie sprytnych sformułowań. Uwaga przenosi się na inżynierię kontekstu, która stawia szersze pytanie: co powinien otrzymać model, w jakiej strukturze i w którym momencie procesu pracy? Jest to tym ważniejsze w przypadku agentów, które mogą dynamicznie budować kontekst na podstawie wcześniejszych działań, pobranych materiałów, wyników narzędzi oraz wyników pośrednich.
Warstwa 8: model językowy dużych modeli
W centrum znajduje się model językowy dużych modeli, w którym odbywa się rozumienie języka, rozumowanie, generowanie tekstu oraz realizacja poleceń. Wśród wymienionych platform i modeli są Azure, OpenAI, LLaMA oraz Mistral AI. Model otrzymuje żądanie wraz z starannie przygotowanym kontekstem i instrukcjami.
Jedna zasada zasługuje na powtórzenie: LLM nie jest całym aplikacją. Jest to tylko jeden komponent w znacznie większym systemie, a aplikacja produkcyjna wymaga funkcji wyszukiwania informacji, orkiestracji, zabezpieczeń, oceny, monitoringu, infrastruktury oraz logiki biznesowej. Staje się to szczególnie widoczne podczas przechodzenia od prototypu do wdrożenia w dużych firmach.
Od aplikacji opartych na LLM do agentów
Pomaga rozróżnienie konwencjonalnej aplikacji opartej na LLM od aplikacji opartej na agentach. Zwykła aplikacja obejmuje użytkownika, prompt, LLM i odpowiedź. Aplikacja typu RAG obejmuje użytkownika, proces wyszukiwania informacji, kontekst, LLM i odpowiedź. System oparty na agentach jest znacznie bardziej dynamiczny: użytkownik, agent, planowanie, wyszukiwanie informacji, narzędzia, LLM, ocena, dalsze działania, ostateczna odpowiedź. Agent decyduje, co robić dalej, a nie tylko postępuje zgodnie z ustaloną sekwencją.
Załóżmy, że ktoś pyta, dlaczego wczorajszy proces produkcyjny zawiodł i co z tym zrobić. Agent może pobrać historię wykonywań, przejrzeć logi, zapytać bazy danych, przeanalizować komunikaty o błędach, skonsultować się z zasadami operacyjnymi, określić prawdopodobną przyczynę podstawową oraz ewentualnie zalecić lub zastosować zatwierdzone rozwiązanie. To zasadniczo różni się od tworzenia zwykłego akapitu tekstu.
Warstwa 9: infrastruktura i wdrażanie
Dopracowany prototyp nie czyni produktu gotowego do użycia w produkcji. Uruchomienie go wymaga skalowalnej infrastruktury, sieci, zabezpieczeń, automatyzacji wdrażania, zarządzania zasobami oraz odporności. Architektura ta obejmuje Azure Container Apps, Azure Kubernetes Service, Docker i Kubernetes.
Docker pakuje aplikacje w przenośne kontenery. Kubernetes koordynuje obciążenia zaimplementowane w kontenerach w rozproszonych środowiskach. Azure Kubernetes Service to zarządzana usługa Kubernetes, natomiast Azure Container Apps ułatwia wdrażanie kontenerów bez konieczności zarządzania całym środowiskiem Kubernetes.
Warstwa ta ma znaczenie, gdy system musi radzić sobie z dużym ruchem użytkowników, wieloma równoczesnymi procesami, obciążeniem wynikającym z inferyencji modeli, przetwarzaniem w tle, pipeline’ami do przetwarzania dokumentów, długotrwałymi zadaniami, integracjami z zewnętrznymi narzędziami oraz wymogami bezpieczeństwa przedsiębiorstwa. Model może być doskonały, ale to infrastruktura decyduje o tym, czy ta doskonałość może być dostarczana w sposób niezawodny na dużą skalę.
Warstwa 10: obserwowalność i ocena
Obserwowalność należy do najbardziej zaniedbywanych aspektów inżynierii sztucznej inteligencji. Tradycyjne aplikacje można monitorować pod kątem wykorzystania CPU, pamięci, opóźnień, błędów oraz szybkości przetwarzania zapytań. Aplikacje oparte na sztucznej inteligencji wymagają większej ilości informacji. Zespoły muszą widzieć, co otrzymał model, co zostało odzyskane, jakie narzędzia zostały użyte, jakie decyzje zostały podjęte, jak długo trwał każdy krok, ile tokenów zostało wykorzystanych oraz czy ostateczna odpowiedź była pomocna.
Tutaj pojawiają się Azure AI Foundry, OpenTelemetry i Grafana. OpenTelemetry zbiera dane telemetryczne z rozproszonych aplikacji, a Grafana wizualizuje metryki operacyjne oraz na poziomie aplikacji.
Kolejnym ważnym aspektem jest ocena. Systemy produkcyjne mogą potrzebować ocen dotyczących trafności, rzetelności, poziomu halucynacji, jakości odzyskiwanych danych, opóźnień, kosztów, bezpieczeństwa oraz satysfakcji użytkowników. Agenci podnoszą standardy, ponieważ ich działania muszą być oceniane razem z ostateczną odpowiedzią:
- Czy wybrał odpowiednie narzędzie?
- Czy pobrało właściwe informacje?
- Czy wykonało niepotrzebne wywołania narzędzi?
- Czy postępowało zgodnie z właściwym procesem pracy?
- Czy zatrzymało się po zakończeniu zadania?
- Czy prawidłowo przekazało zadanie do dalszego rozpatrzenia, gdy potrzebna była interwencja człowieka?
To pytania sprawiają, że obserwowalność i ocena stają się nieodłączną częścią pracy z AI w środowisku produkcyjnym.
Dlaczego cała architektura ma znaczenie
Powszechnym błędnym przekonaniem jest to, że budowa aplikacji AI polega na wyborze silnego modelu LLM i dodaniu interfejsu użytkownika. To może zadziałać w przypadku demonstracji, ale rzadko odzwierciedla to wymagania platformy AI dla przedsiębiorstw.
Rozważmy pracownika, który pyta asystenta o politykę organizacji dotyczącą radzenia sobie z konkretnym problemem klienta. System musi zrozumieć prośbę, znaleźć odpowiednie dokumenty z polityką, wybrać istotne sekcje, dostarczyć je modelowi, sformułować uzasadnioną odpowiedź, ewentualnie wskazać jej źródło, egzekwować zasady bezpieczeństwa, monitorować interakcję i ocenić, czy odpowiedź była przydatna. Każda warstwa odgrywa ważną rolę: interfejs użytkownika umożliwia interakcję, proces pobierania danych dostarcza wiedzę, przetwarzanie wstępne czyni ją użyteczną, embeddingi przechwytują znaczenie, bazy danych wektorowych przechowują możliwe do wyszukiwania reprezentacje, mechanizmy wyszukiwania znajdują kontekst, prompty strukturyzują informacje, model językowy generuje odpowiedź, infrastruktura zapewnia skalowalność i niezawodność, a możliwości obserwacji gwarantują przejrzystość i odpowiedzialność. W tym sensie nowoczesna sztuczna inteligencja jest pełnoskalowa.
Wybór narzędzi
Technologie przedstawione w architekturze referencyjnej nie stanowią pełnej listy rzeczy do wdrożenia. Każda z nich to opcja dla swojego warstwy. Firma może na początku wybrać React i Next.js, Azure AI Content Understanding do przetwarzania dokumentów, LangChain do koordynacji procesów, model embeddingowy dostępny w chmurze, Azure AI Search do wyszukiwania, model uruchamiany w Azure oraz Azure Container Apps do obsługi całego systemu. Inna firma może zdecydować się na zupełnie inny zestaw technologii.
Najważniejszą lekcją jest to, że architektura poprzedza narzędzia. Wymagania biznesowe kształtują architekturę, architektura określa możliwości potrzebne każdej warstwie, a dopiero wtedy należy wybrać konkretne technologie.
Więcej niż tylko LLM
Perspektywa full-stack wyjaśnia również, dlaczego projekty oparte na agentach szybko stają się skomplikowane. Agent może potrzebować wiedzy typu enterprise za pośrednictwem RAG, ustrukturyzowanych danych z baz danych, informacji z zewnątrz poprzez API, umiejętności operacyjnych dzięki narzędziom oraz realizacji zadań za pomocą systemów orkiestracji. Potrzebuje również mechanizmów kontroli: autoryzacji i uwierzytelniania, zasad ochrony prywatności danych, ochrony przed wstrzykiwaniem poleceń, uprawnień do narzędzi, kroków zatwierdzania przez ludzi, śladów audytowych oraz ram oceny.
Zatem sztuczna inteligencja oparta na agentach funkcjonuje w miejscu, gdzie spotykają się różne dziedziny: inżynieria oprogramowania, inżynieria danych, inżynieria sztucznej inteligencji, inżynieria chmurowa, bezpieczeństwo i możliwości monitorowania. Tworzenie agentów o poziomie produkcyjnym to wyzwanie inżynieryjne, a nie tylko ćwiczenie polegające na pisaniu poleceń.
Jak ewoluowała architektura aplikacji
Przemysł przechodził przez różne etapy rozwoju. Wczesne zastosowania sztucznej inteligencji były skoncentrowane wokół modeli. Technologia RAG pozwoliła łączyć modele z zewnętrzną wiedzą. Systemy wzbogacone o narzędzia umożliwiły modelom interakcję z zasobami zewnętrznymi. Obecnie sztuczna inteligencja typu agentic łączy modele, mechanizmy wyszukiwania, narzędzia, pamięć, planowanie, orkiestrację oraz ocenę. Rozwój przebiega od zwykłych modeli LLM, przez RAG, używanie narzędzi, aż po agenty i systemy wieloagentowe, a w miarę jego trwania coraz większe znaczenie ma otaczająca infrastruktura.
Od czego zacząć
Nie każda aplikacja wymaga całego zestawu narzędzi. Proste narzędzie do zadawania pytań i udzielania odpowiedzi może funkcjonować przy użyciu podstawowego modelu LLM. Jeśli aplikacja potrzebuje prywatnej lub często zmieniającej się wiedzy, należy dodać RAG. Gdy kluczowe dla problemu są relacje pomiędzy elementami, warto rozważyć wyszukiwanie oparte na grafach. Gdy system musi planować zadania, wybierać narzędzia, wykonywać kilka kroków i podejmować decyzje w czasie rzeczywistym, lepszym rozwiązaniem jest sztuczna inteligencja typu agentic.
Celem nie powinna być najbardziej skomplikowana architektura – powinna to być najprostsza architektura, która skutecznie rozwiązuje problem.
Co dalej
Pole to wciąż się rozwija. Grafy wiedzy, bazy danych wektorowych, frameworki agentów, silniki procesów roboczych, modele multimodalne, narzędzia oceny oraz platformy chmurowe prawdopodobnie będą się coraz bardziej łączyć. Aplikacje będą przyjmować obrazy, dźwięk, wideo, dane strukturyzowane, systemy korporacyjne oraz procesy z rzeczywistego świata, oprócz tekstu. Obserwowanie i ocenianie systemu będzie miało takie samo znaczenie jak wybór odpowiedniego modelu. To, co nas czeka, to nie tyle inteligentniejsze modele same w sobie, ile niezawodne systemy zbudowane wokół nich.
Główny wniosek
Sztuczna inteligencja agentowa to nie jedna technologia, lecz cały zestaw narzędzi. Od interfejsu użytkownika, przez przetwarzanie danych wejściowych i ich przygotowanie, aż po embeddingi i bazy danych wektorowych, mechanizmy wyszukiwania i sterowania, oraz modele LLM, wdrożenie i monitorowanie – każda z tych warstw wpływa na poziom inteligencji, który ostatecznie pokazuje system. Model LLM jest tylko jedną z części. System agentowy klasy produkcyjnej wymaga odpowiednich danych, strategii wyszukiwania, mechanizmów orkiestracji, infrastruktury oraz metod oceny. To, jak zdolne będą modele, ma mniejsze znaczenie niż to, jak dobrze zaprojektowane są systemy, które je otaczają.
Literatura pokrewna
- Webowa pila dla startupów w erze agentów AI: Next.js, MUI i Firebase — Które narzędzia sprawdzają się, gdy agenci piszą większość kodu: Next.js, MUI, Firebase, Vercel, PostHog oraz minimalne ustawienie agenta, wraz z uzasadnieniem wyboru każdego z nich.
- Co odkrywa agent porównujący modele: zmiany stylu przesłaniają wąskie dostosowania — Audytor typu „czarna skrzynka” porównał model bazowy z LoRA do celów finansowych: 82% prób wykazało zmianę długości i struktury, natomiast zamierzone zmiany w sposobie rozumowania negatywnych skutków pozostały niewidoczne.