Większość osób potrafi tworzyć prompty dla modeli LLM. Wbudowanie go w produkt, który wytrzyma realny ruch, to zupełnie inna gra. Jeśli chcesz przejść od wpisywania tekstu w oknie czatu do wdrażania AI produkcyjnego, musisz zrozumieć, jak ten stos technologiczny faktycznie ze sobą współgra. To nie jest magia. To potok (pipeline) odrębnych problemów inżynieryjnych, a każda warstwa ma własne tryby awarii (failure modes).

Pozwól, że przeprowadzę Cię przez to, jak działa nowoczesny system AI — od momentu, gdy wpiszesz słowo, aż do chwili, gdy agent wykona zadanie.

Fundamenty: Jak myślą modele

W swojej istocie duży model językowy robi dokładnie jedną rzecz: przewiduje następny token. Ten token może być kolejnym słowem, częścią słowa, a nawet symbolem. Wszystko inne — poezja, kod, rozumowanie — to zachowanie emergentne wynikające z wykonywania tego jednego zadania na ogromną skalę.

Droga od Twojego promptu do odpowiedzi modelu wygląda następująco.

Tokenizacja to pierwszy krok. Surowy tekst jest bezużyteczny dla sieci neuronowej, więc model dzieli Twoje słowa na części i przypisuje każdą część do liczby. Słowo „tokenization” może stać się trzema oddzielnymi tokenami. Fraza „New York” może składać się z jednego lub dwóch tokenów, w zależności od słownika. Te liczby nie są przypadkowe; pochodzą ze stałego słownika, którego model nauczył się podczas trenowania.

Gdy słowa stają się liczbami, potrzebują znaczenia. Embeddings (osadzenia) zamieniają te liczby w wektory — długie listy wartości zmiennoprzecinkowych, które umieszczają podobne pojęcia blisko siebie w przestrzeni matematycznej. „King” i „Queen” znajdują się blisko siebie. „Paris” i „Berlin” tworzą skupisko, ale w innej okolicy niż „Python” czy „JavaScript”.

Same wektory jednak tracą kolejność. Positional encoding (kodowanie pozycyjne) informuje model, gdzie znajduje się każdy token w zdaniu. Bez tego zdania „The dog bit the man” i „The man bit the dog” wyglądałyby identycznie.

Następnie pojawia się mechanizm uwagi (attention mechanism). To tutaj model analizuje wszystkie tokeny wejściowe i decyduje, które z nich są istotne dla przewidzenia następnego. Kiedy pytasz: „Kiedy założono firmę i kto nią obecnie kieruje?”, model musi powiązać słowo „founded” z datą, a „leads” z nazwiskiem CEO. Mechanizm uwagi tworzy te połączenia.

Operacje te układają się w warstwy — często dziesiątki — gdzie wczesne warstwy zajmują się składnią, a późniejsze budują abstrakcyjne rozumowanie. Gdzieś pośrodku sieci typu feed-forward przechowują skojarzenia faktograficzne. To tutaj model przechowuje wiedzę, że Paryż jest stolicą Francji lub że konkretne API oczekuje ładunku JSON. Nie jest to dokładnie baza danych, lecz skompresowana sieć wag, która aktywuje określone wzorce.

Na koniec dekodowanie (decoding) przekształca wewnętrzne reprezentacje wektorowe z powrotem w czytelne dla człowieka tokeny. Model nie „wie”, że pisze po angielsku; po prostu szereguje tysiące możliwych kolejnych tokenów i wybiera ten najbardziej prawdopodobny, raz po raz, aż napotka warunek stopu.

Warstwa RAG: Nadawanie modelom pamięci

Podstawowy model jest „zamrożony w czasie”. Jego wagi odzwierciedlają stan internetu do określonej daty granicznej i nie może on uzyskać dostępu do Twoich prywatnych dokumentów, chyba że mu je dostarczysz. To sprawia, że jest on bezużyteczny w większości zadań biznesowych. Retrieval-Augmented Generation, czyli RAG, rozwiązuje ten problem, dając modelowi zewnętrzną bibliotekę, z której może skorzystać przed udzieleniem odpowiedzi.

Koncepcja jest prosta, ale w praktyce bywa kapryśna. Najpierw bierzesz swoje dokumenty i stosujesz chunking (dzielenie na fragmenty). Nie wrzucasz stu-stronicowego pliku PDF bezpośrednio do okna promptu. Dzielisz go na akapity, sekcje lub bloki semantyczne na tyle małe, aby zmieściły się w limicie kontekstu modelu, zachowując przy tym sens.

Każdy fragment przechodzi przez model embeddingowy i staje się wektorem, dokładnie tak jak tokeny wewnątrz LLM. Wektory te trafiają do bazy danych wektorowych — wyspecjalizowanego magazynu zaprojektowanego do wyszukiwania podobieństwa, a nie dokładnych dopasowań. Kiedy użytkownik zadaje pytanie, tworzysz embedding zapytania i pytasz bazę: „Które fragmenty są semantycznie najbliższe temu wektorowi?”

Samo wyszukiwanie wektorowe często pomija dokładne dopasowania. Dobry system produkcyjny wykorzystuje wyszukiwanie hybrydowe (hybrid search), łącząc dopasowywanie słów kluczowych z podobieństwem semantycznym. Jeśli ktoś zapyta o „SLA-99 compliance”, chcesz otrzymać dokument, który dosłownie zawiera ten ciąg znaków, a nie tylko taki, który wydaje się podobny.

Po pobraniu danych (retrieval), re-ranking (ponowne rangowanie) filtruje szum. Początkowe wyszukiwanie może zwrócić dwadzieścia fragmentów, ale tylko trzy lub cztery z nich faktycznie pomagają. Re-ranker ocenia trafność i odrzuca resztę, zanim dane trafią do LLM, co oszczędza tokeny i ogranicza halucynacje.

Warstwa Agentów: Podejmowanie działań

RAG pozwala modelowi czytać. Agenci pozwalają mu działać.

Agent to w swojej istocie model LLM zamknięty w pętli. Obserwuje, rozumuje, działa, a następnie ponownie obserwuje. Jeśli poprosisz agenta o zarezerwowanie lotu, nie ograniczy się on jedynie do opisania procesu rezerwacji. Dzieli zadanie na etapy, wywołuje odpowiednie funkcje, odczytuje odpowiedzi i dostosowuje swoje działania.

Pętla wygląda następująco. Obserwacja: agent odczytuje aktualny stan — Twoją prośbę, wyniki poprzednich wywołań narzędzi, wszelkie błędy. Rozumowanie: LLM decyduje, co zrobić dalej, często generując ustrukturyzowany plan lub wybierając spośród zdefiniowanych opcji. Działanie: wywołuje narzędzie.

Narzędzia to sposób, w jaki agenci stykają się z rzeczywistym światem. Są one definiowane za pomocą schematów JSON, które precyzyjnie informują model, jakich parametrów wymaga API. LLM nie wysyła dowolnych żądań HTTP. Wypełnia schemat. „Wywołaj API pogodowe z parametrami city: London i units: metric”. Jeśli narzędzie zwróci temperaturę, agent przekazuje