この記事ではAIエージェントに特化して解説します。AIエージェント全般は AIエージェントフレームワーク比較2026年版 をご覧ください。

概要

Semantic Kernelは、Microsoftが開発するオープンソースのAIエージェント構築SDKです。LLMをアプリケーションへ統合する際の煩雑さ——プロンプト管理、コンテキスト制御、外部ツール連携——を抽象化し、開発者がビジネスロジックに専念できる環境を提供します。

あるスタートアップのCTOが「LangChainで書いたコードが、モデル変更のたびに壊れる」と嘆いていたのを機に、Semantic Kernelへの移行を試みました。モデルを抽象化する統一インターフェースのおかげで、OpenAIからAzure OpenAIへの切り替えが設定変更のみで完了。チームは「モデルの違い」を気にせずエージェント設計に集中できるようになりました。

2026年3月時点でスター数は27,600超。Python・.NET・Javaの3言語に対応しており、エンタープライズから個人開発まで幅広い現場で採用が進んでいます。

主な機能

  • プラグインシステム:LLMのスキルを再利用可能なプラグインとして定義できます。複数モデルや外部APIに対して同一インターフェースで接続できます。
  • セマンティックメモリー:会話履歴やドキュメントをベクトル化して保存し、LLMが文脈を保ちながら応答できる長期記憶機能を標準提供します。
  • マルチエージェントオーケストレーション:複数のAIエージェントが協調して動作するシステムを構築できます。AgentGroupChatを使ったグループ対話も可能です。
  • マルチモデル対応:OpenAI・Azure OpenAI・Anthropic・Hugging Face・Ollamaなどを同一インターフェースで切り替えられます。
  • プロンプトテンプレート:変数埋め込みと条件分岐を使ったテンプレートで、プロンプト管理を構造化・バージョン管理できます。
  • ハイブリッド検索:PostgreSQLやSQL ServerでのRAGを、ベクトル検索とキーワード検索の組み合わせで実装できます(v1.74.0〜)。
  • マルチモーダル対応:テキスト・画像・音声を入力として扱えます。GPT-4oなどのビジョンモデルともシームレスに連携します。

技術スタック

  • 対応言語:C#(メイン実装)、Python(1.41.1系列)、Java
  • フレームワーク:.NET 8+(dotnet-1.74.0系列)、ASP.NET Core
  • LLMプロバイダー:OpenAI、Azure OpenAI、Anthropic、Hugging Face、Ollama、LM Studio、ONNX
  • ベクトルDB対応:Azure AI Search、Elasticsearch、Chroma、Qdrant、Pinecone、Weaviate、PostgreSQL
  • パッケージ配布:NuGet(C#)、pip(Python)、Maven(Java)

導入方法

C#(.NET)の場合:

dotnet add package Microsoft.SemanticKernel

Pythonの場合:

pip install semantic-kernel

C#での基本的な初期化とエージェント実行:

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Agents;

var kernel = Kernel.CreateBuilder()
    .AddAzureOpenAIChatCompletion(deploymentName, endpoint, apiKey)
    .Build();

// プラグインの追加
kernel.Plugins.AddFromType<FileIOPlugin>();

// チャット完了エージェントの定義
var agent = new ChatCompletionAgent
{
    Name = "AssistantAgent",
    Instructions = "You are a helpful assistant.",
    Kernel = kernel
};

// 実行
await foreach (var message in agent.InvokeAsync(thread))
{
    Console.WriteLine(message.Content);
}

Pythonの場合:

from semantic_kernel import Kernel
from semantic_kernel.agents import ChatCompletionAgent
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion

kernel = Kernel()
kernel.add_service(AzureChatCompletion(
    deployment_name="gpt-4o",
    endpoint=endpoint,
    api_key=api_key
))

agent = ChatCompletionAgent(
    kernel=kernel,
    name="AssistantAgent",
    instructions="You are a helpful assistant."
)

競合比較

項目 Semantic Kernel LangChain CrewAI
主な強み エンタープライズ・型安全 汎用性・豊富なコミュニティ マルチエージェント特化
対応言語 C# / Python / Java Python / JavaScript Python
メモリー機能 セマンティックメモリー標準搭載 別途Vector Store接続が必要 基本的な短期記憶のみ
マルチエージェント AgentGroupChatで対応 LangGraph経由で対応 ネイティブ対応
企業バックアップ Microsoft Anthropic / community Community
型安全性 C#で非常に強い Python中心で弱め Python中心で弱め
ベクトルDB統合 10種以上をネイティブ対応 多数だが設定が複雑 限定的

Semantic Kernelは.NET / Azureエコシステムとの親和性が最大の強みです。LangChainはPythonエコシステムとの相性が良く、研究・プロトタイピング向きです。PythonチームがLangChainを使い、.NETチームがSemantic Kernelを使うという使い分けも現場では一般的です。RAG構築の詳細はHelixDBも参照してください。CrewAIは「複数エージェントに役割分担させる」構成に特化しており、用途が明確な場合に有力な選択肢になります。

こんな人におすすめ

  • C# / .NET開発者:型安全なAPIとネイティブ統合により、エンタープライズ品質のAIアプリを効率よく構築できます。
  • Azure環境を使うチーム:Azure OpenAI・AI Search・Bot Frameworkとの統合が密で、既存インフラをそのまま活かせます。
  • 複数のLLMを使い分けたい組織:モデル抽象化により、OpenAI・Anthropic・ローカルLLMを同一コードで切り替えられます。ベンダーロックインを避けられます。
  • マルチエージェントシステムを設計したい開発者:AgentGroupChatを使った協調エージェント構成が標準サポートされており、複雑なAIワークフローを整理して実装できます。
  • エンタープライズでAIを導入したいアーキテクト:セキュリティ強化・監査ログ・テスト可能な設計が組み込まれており、本番運用に耐えるAI基盤を構築できます。