Skip to content
Back to Blog
1 min read

LangChain vs Semantic Kernel: Choosing Your AI Framework

I wrote “LangChain vs Semantic Kernel: Choosing Your AI Framework” to share practical, production-minded guidance on this topic.

Framework Comparison

# LangChain approach
from langchain.chat_models import AzureChatOpenAI
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain.tools import tool

@tool
def query_database(query: str) -> str:
    """Execute SQL query."""
    return execute_sql(query)

llm = AzureChatOpenAI(deployment_name="gpt-4o")
agent = create_openai_tools_agent(llm, [query_database], prompt)
executor = AgentExecutor(agent=agent, tools=[query_database])

result = executor.invoke({"input": "Get sales data"})

# Semantic Kernel approach
import semantic_kernel as sk

kernel = sk.Kernel()
kernel.add_service(AzureChatCompletion(...))

@sk.kernel_function
def query_database(query: str) -> str:
    """Execute SQL query."""
    return execute_sql(query)

kernel.add_plugin(plugin, "data")
result = await kernel.invoke_prompt("Get sales data")
FeatureLangChainSemantic Kernel
LanguagePython-first.NET & Python
EcosystemLarge, many integrationsMicrosoft-focused
Learning CurveModerateEasier
Enterprise SupportCommunityMicrosoft

Choose based on your ecosystem and team skills.\n\n## Takeaways\n\nAdd a concise, personal takeaway and recommended next steps here.\n

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.