O technicznych aspektach LLM-ów i AI dla nieinformatyków, cz. 2. „Model Context Protocol (MCP)”

Posłuchaj:
Udostępnij:

Duże modele językowe (ang. Large language models – LLM) są coraz bardziej zaawansowane, ale nadal ograniczone kontekstowo. Nie mają „wiedzy i świadomości biznesowej”. Nie mają dostępu do danych i przepływów czy wyników pracy w firmach. Działają w izolacji. Powadzi to do uzyskiwania ogólnych wyników i odpowiedzi na zadawane im pytania. Wciąż brakuje im aktualnej i konkretnej wiedzy na specyficzne tematy. Wynika to z tego, że pomimo dostępu do zasobów Internetu opierają się one głównie na tym czego nauczyły się podczas ich trenowania, czyli na statycznym zbiorze wiedzy, gdzie brakuje dostępu do konkretnej informacji w czasie rzeczywistym, a to ogranicza ich możliwości. 

Pewnym rozwiązaniem może być rozszerzone generowanie oparte na pobieranych danych kontekstowych (ang. Retrieval Augmented Generation – RAG), czyli technologia umożliwiająca za pomocą rozszerzonych zapytań (ang. promptów) dostarczanie modelom nowych danych. Dostarczanie poprzez udostępnianie im kontekstu zawierającego odpowiednie informacje z zewnętrznych źródeł danych, np. własnych danych kontekstowych w postaci dokumentów czy zestawień danych. Znacząco zwiększa to ich zdolność do generowania prawidłowych wyników, bardziej efektywnego wyszukiwania informacji. Jednak profesjonalne implementacje RAG pozostają niszowe, fragmentaryczne, co prowadzi do niestandardowych, nieskalowalnych rozwiązań. dzieje się to, dlatego  że wymagają one wielu prac i ciągłej aktualizacji. Więcej o tej technologii w oddzielnym artykule tutaj 

Tu pojawia się Model Context Protocol (MCP) – otwarty standard technologiczny opracowany przez firmę Anthropic, który umożliwia efektywną i bezpieczną integrację dużych modeli językowych (LLM) z zewnętrznymi źródłami danych i narzędziami. MCP działa na znanej zasadzie architektury klient-serwer, składającej się z hostów MCP, klientów MCP i serwerów MCP. Ten protokół standaryzuje proces integracji, eliminując potrzebę tworzenia niestandardowych i nietrwałych połączeń ze źródłami danych. Umożliwia dwukierunkową komunikację między modelami AI, a zewnętrznymi systemami. Zapewnia dostęp do danych i narzędzi, takich jak bazy danych, API czy pliki. Dzięki MCP, modele AI mogą samodzielnie wykonywać zapytania do baz danych, korzystać z zaawansowanych innych modeli i integrować się z platformami do automatyzacji i workflow. 

Pomimo iż protokół MCP ma na celu standaryzację sposobu implementacji RAG i agentowej sztucznej inteligencji, zapewniając skalowalność, niezawodność i głęboką świadomość kontekstu dla aplikacji opartych na LLM to ma też pewne ograniczenia, ale o tym później. 

Jak działa MCP?  MCP jest złożony z kilku elementów.  

– Środowiska hosta (ang. MCP Hosts), czyli infrastruktura, w której działają aplikacje oparte na LLM, tj. aplikacje takie jak chatboty, asystenci i agenci Al wspierający przepływ i automatyzacje pracy oraz wykonywanych zadań zlokalizowane na fizycznych stacjach roboczych, serwerach lokalnych czy maszynach wirtualnych w chmurze np. prywatnej. 

– Klienci protokołu MCP (ang. MCP Clients), działający wewnątrz aplikacji hosta, wysyłający żądania do serwerów MCP dotyczące zewnętrznych danych lub wykonywanych zadań.  

– Serwery MCP (ang. MCP Servers), działające jako pomost między modelami LLM, a zewnętrznymi źródłami danych (wiedzy) poprzez interfejsy API. 

– Lokalne źródła danych (ang. Local Data Sources), jak systemy CRM, ERP i inne narzędzia informatyczne wykorzystywane w przedsiębiorstwach bazujące na danych zawartych w bazach danych operacyjnych lokalnie i w chmurze, czy repozytoria plików. 

– Usługi zdalne (ang. Remote Services), usługi dostępne poprzez API takie jak GitHub czy Slack, ale i kontenery tj. Docker, Kubernetes. 

– Tzw. warstwa przesyłu danych (ang. Data Transfer), która odpowiada za wymianę danych między klientem, a serwerem zapewniając bezpośrednią komunikację. Dla lokalnych integracji wykorzystuje się mechanizm (wejście/wyjście), a dla zdalnych połączeń HTTP stosowany jest jednokierunkowy streaming danych z serwera do klienta (ang. Server-Sent Events – SSE) lub dwukierunkowe strumieniowanie modelu do klienta (ang. frontendu) z wykorzystaniem poprzez REST API. 

Można tu pisać wiele jak wykorzystanie repozytoriów kodu i plików zawierających tymczasowe dane kontekstowe czy zapisy strumieni zdarzeń z systemów na żywo (tzw. event logi) generowane przez serwery i aplikacje, ale na początek to wystarczy, a uzupełnieniem niech będzie poniższa grafika. 

MCP wyznacza kamień milowy w ewolucji sztucznej inteligencji poprzez zdefiniowanie protokołu do integracji i implementacji wzorców, ale nie jest pozbawione problemów. 

Tworząc standardowy protokół, każdy klient MCP może korzystać z setek i tysięcy serwerów MCP, które będą dostępne. Dodaje ogromną moc narzędziom AI takim jak ChatGPT i Agenci AI. Umożliwia niemal powszechnie zastosowanie i pozwala na szybką implementacje, ale powstaje też duży problem ze znalezieniem odpowiednich serwerów MCP i podłączeniem ich do czegoś takiego jak ChatGPT i Agenci AI. Dzieje się tak dlatego, bo to wciąż rozwijająca się i „nieuporządkowana” technologia. Spora cześć serwerów jest udostępniana jako repozytoria GitHub i aby z nich korzystać, trzeba umieć z nich samodzielnie korzystać i je hostować. M.in. dlatego nadal potrzebne jest wsparcie dobrego zespołu doradców i informatyków, którzy wiedzą, jak poukładać tę architekturę i zbudować sieć MCP, która sprawi, że praca będzie bezproblemowa i zapewni efektywną realizacje zadań. 

Od czego należy zacząć taki projekt? Moim zdaniem, od zbudowania katalogu serwerów MCP, który pozwoliłby to, że każdy zainteresowany odpyta katalog i będzie wiedzieć z jakiego serwera MCP skorzystać i gdzie jest hostowany w sieci. Ponadto dodałbym oceny serwerów MCP i wyszukiwanie semantyczne w celu ułatwienia znalezienia odpowiednich narzędzi, w jakich użytkownicy mogą żądać dostępu do określonych danych i funkcji, które są im potrzebne.  Zbierałbym informacje o tym, co jest potrzebne a jeszcze niedostępne. 

W sieci pojawiło się już kilka katalogów, a sam twórca MCP – Anthropic pracuje nad takim „rejestrem”. Powstaje pytanie czy będzie on odpowiadał na potrzeby użytkowników Twojej firmy? 

Bartosz Radziszewski

O technicznych aspektach LLM-ów i AI dla nieinformatyków, cz. 4. „Budowa Agentów AI”

O technicznych aspektach LLM-ów i AI dla nieinformatyków, cz. 1. „Retrieval-Augmented Generation (RAG)”

O technicznych aspektach LLM-ów i AI dla nieinformatyków, cz. 3. „Automatyzacja zakupów konsumenckich”