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.