Paweł Łukasiewicz: programista blogger
Paweł Łukasiewicz
2025-05-18
Paweł Łukasiewicz
2025-05-18
Udostępnij Udostępnij Kontakt
⚔️ Semantic Kernel vs LangChain

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.


🧠 Cel i filozofia

Semantic Kernel (C# / Python)LangChain (Python / JS)
🎯 CelBudowa agentów AI w aplikacjachTworzenie łańcuchów przetwarzania promptów
🧱 PodejścieKomponentowe SDK z wtyczkami, pamięcią, planowaniemDeklaratywne budowanie logicznych flow (Chain → Tool → Memory)
🧩 IntegracjeMicrosoft 365, Azure OpenAI, Teams, OneDriveHuggingFace, 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.


🛠️ Praktyczne porównanie: co dostajesz?

FunkcjaLangChainSemantic 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ługamibardzo szerokiegłównie Microsoft (ale solidne)
Deployment do aplikacjiręczneidealne do .NET / Azure / Copilotów

📦 Przykład: prosty agent, który analizuje maile

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.


🔄 Pamięć i kontekst

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.


🤖 Agenci i łańcuchy

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.


🚀 Kiedy wybrać co?

PotrzebaWybó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!

✅ Podsumowanie

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.