Skip to content
← Wszystkie wpisy

Wpisy z tagiem #ai

7 min czytania

Budowanie niezawodnych narzędzi dla LLM

Function calling, agenci i MCP wszystkie opierają się na tym samym: narzędziach, które LLM może wywołać. Ale narzędzie zbudowane dla niedeterministycznego, omylnego wołającego potrzebuje innego projektu niż zbudowane dla kodu. Deep-dive o tym, co czyni narzędzie niezawodnym dla LLM — nazewnictwo, zakres, walidacja, komunikaty błędów, z których może się odzyskać, i bezpieczeństwo, które nie może żyć w modelu.

7 min czytania

AI-native Rails stack w 2026

Poskładaj to razem — Solid Stack bez Redisa, Kamal, pgvector i wypracowane w praktyce zasady budowania z LLM — a wyłania się spójny obraz: Rails to znakomite środowisko dla aplikacji AI-native, właśnie dlatego, że pozwala małemu zespołowi budować i uruchamiać zarówno aplikację, jak i jej funkcje AI. Synteza tego, w którym miejscu ten stos się dziś znajduje.

5 min czytania

Systemy wieloagentowe: wzorce orkiestracji

Gdy pojedyncze agenty działają, kusi, by spiąć kilka razem — badacza, pisarza, krytyka — i pozwolić im współpracować. Czasem to potężne; często to złożoność, której nie potrzebowałeś. Deep-dive o wzorcach orkiestracji dla systemów wieloagentowych, kiedy zarabiają na swoje utrzymanie i o trybach awarii, które mnożą się, gdy agenty się mnożą.

6 min czytania

Rozwój sterowany specyfikacją z agentami AI

Gdy agent AI robi implementację, specyfikacja staje się artefaktem o najwyższej dźwigni w projekcie — jasna specyfikacja produkuje dobry kod, mglista produkuje pewny siebie bałagan. Deep-dive o tym, dlaczego rozwój sterowany specyfikacją odżył w erze agentów, jak wygląda dobra specyfikacja dla agenta i jak faktycznie zmienia się przepływ pracy.

6 min czytania

Projektowanie przepływów z człowiekiem w pętli

Najbardziej niezawodne systemy AI działające produkcyjnie nie są w pełni autonomiczne — utrzymują człowieka przy decyzjach, które mają znaczenie. Ale „człowieka w pętli” łatwo zaprojektować źle: bezmyślne zatwierdzenia, zmęczenie alertami, obwinianie ludzi za błędy modelu. Dogłębna analiza tego, jak podzielić pracę między człowieka a AI, żeby każde robiło to, w czym jest naprawdę dobre.

6 min czytania

pgvector na produkcji: wnioski z praktyki

Nieraz stawałem po stronie pgvectora jako sensownego wyboru domyślnego do wyszukiwania wektorowego. Po jakimś czasie utrzymywania go na produkcji zebrałem to, o czym wprowadzające poradniki milczą: wybór indeksu i jego kompromisy, dostrajanie relacji recall–szybkość, utrzymywanie embeddingów w zgodzie ze źródłem i pułapki operacyjne, które ujawniają się dopiero przy skali.

5 min czytania

AI local-first: uruchamianie modeli na brzegu

Małe modele stały się dość dobre, a urządzenia dość potężne, że uruchamianie AI na własnym sprzęcie użytkownika — telefonie, laptopie, przeglądarce — jest teraz realną opcją. Wpis trendowy o tym, co kupuje AI local-first, co kosztuje i o hybrydowej rzeczywistości, gdzie uczciwą odpowiedzią jest „trochę obu”.

6 min czytania

Bariery i evale dla agentów produkcyjnych

Postawienie agenta na produkcji jest trudniejsze niż pojedyncze wywołanie LLM, bo agent to pętla z pomnożoną powierzchnią awarii — i musisz zarazem ograniczyć go w czasie wykonania i mierzyć go w czasie. Deep-dive o dwóch dyscyplinach, które czynią agentów produkcyjnych godnymi zaufania: barierach ograniczających, co agent może zrobić, i evalach testujących całą trajektorię, nie pojedyncze wyjście.

5 min czytania

Fine-tuning kontra RAG kontra prompting: wybór w 2025

Są trzy sposoby, by skłonić LLM, by robił to, czego twoja aplikacja potrzebuje — prompting, pobieranie i fine-tuning — a zespoły rutynowo sięgają po niewłaściwy. Rozwiązują różne problemy, a koszty różnią się ogromnie. Wpis trendowy o tym, do czego każdy faktycznie służy, i kolejność decyzji, która ratuje cię przed przeinżynierowaniem.

7 min czytania

Wyszukiwanie wektorowe na dużą skalę: pgvector kontra dedykowane bazy wektorowe

Gdy wyszukiwanie semantyczne przerośnie testowy zbiór danych, pojawia się pytanie: zostać przy pgvector w Postgresie, czy przejść na dedykowaną bazę wektorową, taką jak Pinecone, Qdrant czy Weaviate? Szczegółowo o tym, co naprawdę zmienia się w dużej skali, z czego rezygnujesz, opuszczając Postgres, i jak podjąć decyzję bez przeinżynierowania.

6 min czytania

Self-hosting otwartych LLM: Llama i przyjaciele

Modele o otwartych wagach, takie jak Llama 2 i Mistral, sprawiają, że sprawnego LLM można dziś uruchomić na własnej infrastrukturze zamiast korzystać z czyjegoś API. Spojrzenie na to, po co w ogóle to robić — prywatność, koszt, kontrola — jaki jest realny koszt operacyjny i uczciwe pytanie, czy w ogóle warto.

6 min czytania

Function calling: pozwól modelowi używać twoich narzędzi

Function calling pozwala LLM-owi poprosić twój kod o uruchomienie funkcji i skorzystanie z wyniku — model, który umiał tylko mówić, zaczyna wyszukiwać dane i działać. Szczegółowo o tym, jak to naprawdę działa, dlaczego to po prostu ustrukturyzowany output z pętlą dookoła i dlaczego to ty w pełni kontrolujesz, co się faktycznie uruchamia.

6 min czytania

Ewaluacja wyjścia LLM: testy dla niedeterministycznego kodu

Nie możesz asertować dokładnej równości na wyjściu, które za każdym razem jest inne — więc jak w ogóle testować funkcję LLM? Deep-dive o evalach: budowaniu reprezentatywnego zbioru testowego, ocenianiu właściwości zamiast łańcuchów, łapaniu regresji i traktowaniu ewaluacji jako siatki bezpieczeństwa, która pozwala zmieniać prompty z pewnością.

6 min czytania

Strumieniowanie odpowiedzi LLM z Turbo Streams

Wywołanie LLM trwa sekundy, a użytkownik gapiący się na spinner czuje każdą z nich. Strumieniowanie tokenów w miarę ich generowania zamienia martwe oczekiwanie w żywy tekst — a Turbo Streams to dokładnie ten prymityw Railsów, który wypycha ten tekst na stronę. Deep-dive o podłączeniu wolnego wyjścia modelu do responsywnego UI.