czyli jak Microsoft i Python widzą budowanie agentów AI
Jeśli choć raz pisałeś prompta w Jupyterze albo integrowałeś LLM z kodem w Pythonie – LangChain już pewnie obił Ci się o uszy.
To jeden z najpopularniejszych frameworków do pracy z dużymi modelami językowymi, z naciskiem na łańcuchy funkcji, narzędzia i pamięć.
A skoro już znasz Semantic Kernel (lub jesteś w trakcie poznawania, np. przez tę serię wpisów), to najwyższy czas na porównanie.
W tym wpisie zestawimy oba rozwiązania i zobaczymy, które warto wybrać i kiedy.
| Semantic Kernel (C# / Python) | LangChain (Python / JS) | |
|---|---|---|
| 🎯 Cel | Budowa agentów AI w aplikacjach | Tworzenie łańcuchów przetwarzania promptów |
| 🧱 Podejście | Komponentowe SDK z wtyczkami, pamięcią, planowaniem | Deklaratywne budowanie logicznych flow (Chain → Tool → Memory) |
| 🧩 Integracje | Microsoft 365, Azure OpenAI, Teams, OneDrive | HuggingFace, Google Search, Zapier, SerpAPI, Pinecone, itd. |
LangChain ma nieco szerszy ekosystem i większą społeczność, ale Semantic Kernel wyróżnia się tym, jak naturalnie integruje się z aplikacjami biznesowymi i infrastrukturą Microsoftu.
| Funkcja | LangChain | Semantic Kernel |
|---|---|---|
| Prompt chaining | ✅ | ✅ |
| Wtyczki (pluginy) | ✅ (Tools / Toolkits) | ✅ (native & prompt functions) |
| Planowanie | 🟡 (manualne, agentowe) | ✅ wbudowane Planery |
| Pamięć | ✅ (Retrieval + Vector Stores) | ✅ (Memory Store + embeddingi) |
| Agenci | ✅ (ReAct, zero-shot agent, etc.) | ✅ (Agents + Planner) |
| Integracje z usługami | bardzo szerokie | głównie Microsoft (ale solidne) |
| Deployment do aplikacji | ręczne | idealne do .NET / Azure / Copilotów |
LangChain:
definiujesz narzędzie (Tool) do odczytu maili
tworzysz prompt z przykładami (few-shot)
łączysz wszystko w LLMChain
opcjonalnie dodajesz pamięć konwersacyjną (ConversationBufferMemory)
Semantic Kernel:
importujesz gotowy plugin OutlookPlugin
dodajesz prompt funkcję z planowaniem
agent sam wybiera kolejny krok
await kernel.InvokePromptAsync("Outlook.ReadLastEmail");
W Semantic Kernel często mniej kodu oznacza więcej funkcjonalności.
LangChain jest bardziej rozbudowany jeśli chodzi o retrieval – możesz łatwo podpiąć Pinecone, ChromaDB czy inne wektory.
Semantic Kernel ma MemoryStore i pozwala na:
dodawanie wspomnień (kernel.Memory.SaveInformationAsync)
wyszukiwanie po embeddingach (SearchAsync)
przechowywanie kontekstu w czasie działania agenta
Oba frameworki wspierają długą pamięć kontekstową, ale SK ma tu lepsze wsparcie dla integracji z planowaniem i pluginami.
LangChain:
oferuje kilka gotowych agentów (ReAct, MRKL, Conversational)
każde narzędzie to osobna funkcja z opisem działania
Semantic Kernel:
skupia się na pluginach (czyli zestawach funkcji)
agent może wybierać je dynamicznie, korzystając z planera
ma wsparcie dla multi-step planning i memory-aware reasoning
Zasadniczo: LangChain wymaga więcej konfiguracji, Semantic Kernel działa szybciej out-of-the-box.
| Potrzeba | Wybór |
|---|---|
| Chcesz pisać w Pythonie, masz doświadczenie z Jupyterem i potrzebujesz wielu zewnętrznych integracji? | 🐍 LangChain |
| Tworzysz aplikację .NET lub Azure Copilot, potrzebujesz integracji z Outlookiem / M365 i zależy Ci na stabilnym SDK? | 🟦 Semantic Kernel |
| Znasz oba – i chcesz porównać? | Zbuduj tego samego agenta w obu! |
Nie ma jedynej słusznej drogi.
LangChain to potężne narzędzie dla eksploratorów i prototyperów.
Semantic Kernel to eleganckie SDK dla twórców prawdziwych aplikacji AI.
Jeśli tworzysz coś, co ma współpracować z Microsoft 365, działać stabilnie i integrować się z C#, SK będzie dla Ciebie bardziej naturalnym wyborem.
A jeśli jesteś jak ja – to użyjesz… obu 😄
W kolejnym wpisie wrócimy do Semantic Kernel i pokażemy jak naprawdę wykorzystać SDK w codziennej pracy.