AI Wisdom
accepted2026-02-10

ADR-004: Orchestration Framework — LangChain vs Semantic Kernel

In this article

The problem

We need an orchestration framework for building RAG pipelines, agent workflows, and tool-calling chains. The two leading options are LangChain (Python/JS) and Semantic Kernel (C#/.NET/Python).

What we weighed

LangChain / LangGraph

Pros
  • +Largest community and ecosystem
  • +LangGraph provides stateful agent graphs
  • +Extensive integrations (100+ tools, vector stores)
  • +LangSmith for observability
Cons
  • Heavy abstraction layers — "framework lock-in"
  • Breaking API changes between versions
  • Over-abstracted for simple use cases

Semantic Kernel

Pros
  • +First-class .NET support (our backend stack)
  • +Clean plugin architecture
  • +Native Azure AI integration
  • +Enterprise-focused with Microsoft backing
Cons
  • Smaller community than LangChain
  • Fewer third-party integrations
  • Python SDK less mature than .NET
  • Entered maintenance mode in 2025 — merged with AutoGen into Microsoft Agent Framework, which now receives new features

Direct SDK calls (no framework)

Pros
  • +Zero abstraction overhead
  • +Full control over every API call
  • +No dependency on framework versioning
Cons
  • Must build retry, streaming, tool calling from scratch
  • No built-in agent patterns
  • More code to maintain

What we chose

We chose direct SDK calls with lightweight wrappers for our TypeScript/Next.js frontend, and Semantic Kernel for any .NET backend services. This avoids LangChain's heavy abstractions while leveraging Semantic Kernel where .NET integration is natural. For agent workflows, we'll evaluate LangGraph only if direct implementation becomes unwieldy.

What it committed us to

  • Must build our own retry/streaming utilities (minimal — Vercel AI SDK handles most)
  • Semantic Kernel plugins for any .NET microservices
  • Team needs to stay current on both OpenAI and Anthropic SDK changes
  • Lower barrier to switching models since no framework lock-in

Discussion

Sign in to share your feedback and join the discussion.