Semantic Kernel est un framework dont j'ai déjà beaucoup parlé, notamment dans le dernier podcast sur DevDevDev. Pour ceux qui préfèrent un article à une écoute ou le visionnage d'une vidéo voici la version "papier" de mon intervention.
TL;DR
Semantic Kernel (SK) est un framework d’orchestration open-source qui relie intention en langage naturel → fonctions (déterministes / IA) → contexte (mémoire, documents) → action. Il fonctionne en .NET, Python et Java, s’interface avec des LLM de dernière génération (OpenAI, Azure, etc.), et propose des plugins (natifs et sémantiques), une mémoire et des connecteurs de bases vectorielles pour le RAG. En 2025, SK a également introduit un cadre multi-agents pour des workflows plus riches. (Microsoft Learn)
1) Qu’est-ce que Semantic Kernel ?
Sur le plan officiel, Semantic Kernel est un SDK open-source et agnostique des modèles pour construire et orchestrer des applications et agents IA — en C#/.NET, Python et Java. La documentation de Microsoft (24 juin 2024) présente SK comme un kit permettant de construire facilement des agents et d’intégrer des modèles récents dans vos codebases existantes ; la page GitHub précise les prérequis (.NET 8+ donc compatible .NET 9) et l’orientation « model-agnostic ». (Microsoft Learn)
« Semantic Kernel is a model-agnostic SDK that empowers developers to build, orchestrate, and deploy AI agents… » (README du dépôt, consulté en 2025). (GitHub)
Actualité 2025. Le billet du 26 août 2025 sur le blog officiel Semantic Kernel annonce un cadre d’orchestration multi-agents, avec de nouveaux motifs pour composer et faire collaborer des agents. (Microsoft for Developers)
2) Ce que SK n’est pas
SK n’est pas une simple librairie pour « appeler une API d’IA ». Vous pouvez déjà le faire avec des SDK dédiés. La valeur de SK est l’orchestration : décomposer une intention utilisateur, choisir les fonctions utiles, injecter le bon contexte (mémoire, documents), exécuter des actions déterministes, tracer l’exécution et rejouer. (Voir les sections Kernel et Plugins de la doc). (Microsoft Learn)
3) Trois familles d’usages
-
Assistants opérationnels : secrétariat automatisé, gestion de tickets de support automatisé, support N1/N2...
-
Copilotes métier : recherche catalogue, configuration produit, aide au diagnostic de pannes.
-
Interfaces sur documents : Interroger en langage naturel FAQ, manuels, procédures qualité, politiques internes...
Dans ces scénarios, l’ancrage documentaire (RAG) améliore la précision et la vérifiabilité des réponses : on retrouve des passages pertinents dans vos sources et on les injecte dans le prompt. La technique RAG a été formalisée dès 2020 (Lewis et al.) et abondamment étudiée depuis (enquêtes 2023–2025). (arXiv)
4) Les briques d’architecture
4.1 Le Kernel (le cœur DI)
Le kernel agit comme un conteneur d’injection de dépendances : il centralise services IA et plugins, et « pilote » les invocations (sélection de service, rendu du prompt, appel LLM, parsing de la réponse, etc.). Cette conception en fait le point d’observation et de configuration de vos agents. (Doc mise à jour le 16 avril 2025.) (Microsoft Learn)
4.2 Plugins et fonctions
Un plugin regroupe des fonctions exposées à l’IA et orchestrables par votre application. SK distingue :
-
Fonctions natives : votre code déterministe (C#/Python/Java) annoté/exposé (ex. KernelFunction), pour lire/écrire en base, appeler une API interne, déclencher une action physique, etc.
-
Fonctions sémantiques : prompts paramétrés (variables, température…) exécutés via un LLM.
La doc « Plugins » (10 déc. 2024) et « Adding native plugins » (6 mars 2025) détaillent la création/annotation et l’import (y compris depuis un OpenAPI). (Microsoft Learn)
4.3 LLM et fournisseurs
SK est agnostique : vous pouvez brancher OpenAI, Azure OpenAI et autres. L’objectif est de laisser le choix entre coût, performance et confidentialité. (Voir overview et GitHub.) (Microsoft Learn). On peut aussi se connecter à des LLM locaux avec Ollama par exemple.
4.4 Mémoire & RAG (bases vectorielles)
Pour le RAG, SK s’appuie sur des connecteurs de bases vectorielles (Qdrant, etc.). Le Qdrant Connector (doc 19 mai 2025) et le package NuGet dédié (versions 1.6x preview en 2025) illustrent l’approche « pluggable ». (Microsoft Learn)
4.5 KernelArguments (état partagé)
KernelArguments est la structure d’état qui transporte variables et paramètres d’exécution lors d’un InvokeAsync de fonction/prompt ; c’est un dictionnaire fort pratique pour faire circuler contexte et résultats intermédiaires entre étapes. (Docs .NET et Python.) (Microsoft Learn). Au-delà du nom exact de l'objet ce qui intéresse ici est bien entendu le principe d'un "sac" de variables qui est passé de fonction en fonction permettant à chacune d'utiliser les résultats déjà obtenus et d'ajouter dans ce "sac" ses propres résultats, le tout permettant en fin de course d'élaborer une réponse complète à partir de différents traitements (déterministes et IA).
5) Orchestration : deux styles complémentaires
-
Composition pilotée par le modèle : pour les tâches ouvertes, le modèle peut proposer l’enchaînement des fonctions pertinentes selon l’intention et le contexte (voir quick start : « watch the AI create plans on the fly »). (Microsoft Learn)
-
Orchestration manuelle : pour un pipeline prévisible (conformité, perf, sécurité), le développeur impose l’ordre d’exécution et les garde-fous.
En 2025, SK étend ces motifs d’orchestration au multi-agents, ouvrant la voie à des systèmes collaboratifs (annonce du 26 août 2025). (Microsoft for Developers)
6) Exemple guidé : support interne + base documentaire
Contexte. Un collaborateur écrit : « Le logiciel X plante à l’ouverture, que faire ? »
-
Intention : SK classe la requête (incident applicatif), récupère version, environnement, traces.
-
Contexte documentaire (RAG) : recherche sémantique dans vos KB internes, tickets similaires, manuels. Les passages pertinents sont injectés au prompt (réduction des hallucinations, citations possibles). (RAG : Lewis 2020 ; synthèses 2023.) (arXiv)
-
Fonctions :
-
Native : lecture de l’historique, création/MàJ du ticket, récupération du n° de contrat.
-
Sémantique : génération d’une réponse structurée (étapes de diagnostic adaptées).
-
État : partage via KernelArguments (inputs, résultats intermédiaires, décisions). (Microsoft Learn)
-
Résultat : réponse contextualisée + ticket mis à jour + traçabilité (qui a fait quoi, avec quel contexte).
7) Déploiement : cloud, local, hybride
SK n’impose pas un mode d’exécution : vous pouvez bâtir des pipelines 100 % cloud, des chaînes 100 % locales (LLM et vecteurs sur site), ou — le plus courant — un hybride (documents et embeddings sensibles en local, génération sur un modèle de pointe). Voir overview (agnostique modèles) et connecteurs (Qdrant notamment). (Microsoft Learn)
8) Bonnes pratiques
-
Penser « intention → fonctions → contexte → action ».
-
Nommer et documenter vos fonctions de plugin (description claire = meilleure « affordance » pour la sélection automatique). (Microsoft Learn)
-
Tracer : centraliser les appels via le kernel pour une observabilité homogène. (Microsoft Learn)
-
RAG pragmatique : commencer simple (un store, un schéma), mesurer la pertinence et la latence, itérer. (Contexte général RAG.) (arXiv)
-
Multi-agents : réserver aux cas où la collaboration d’agents apporte un vrai gain (spécialisation, parallélisme). (Annonce 26 août 2025.) (Microsoft for Developers)
9) Pourquoi se former à SK maintenant ?
Parce que l’IA devient une capacité transverse (comme async/await en son temps) : outillage, intégration, support, qualité, data. La promesse de SK n’est pas « un prompt », c’est une architecture opérable : fonctions testables, contexte traçable, garde-fous explicites, et liberté de choisir vos fournisseurs et votre périmètre (cloud/local). (Voir overview, GitHub.) (Microsoft Learn)
10) Ressources pour démarrer
-
Documentation officielle Semantic Kernel : parcours « Overview », « Kernel », « Plugins », « Quick start ». (2024–2025). (Microsoft Learn)
-
Connecteurs vectoriels : Qdrant (doc 19 mai 2025) + package NuGet (branche 1.6x preview en 2025). (Microsoft Learn)
-
Billets officiels SK (évolutions, breaking changes, agents, encodage des templates ; 26 août 2025, etc.). (Microsoft for Developers)
-
Starters GitHub (projets de démarrage multi-langages). (GitHub)
-
RAG — bases scientifiques : papier fondateur (2020) + survey (2023). (arXiv)
Astuce pour les lecteurs francophones : tapez sur Bing ou Google « Semantic Kernel initiation C# – olivier dahan e-naxos » pour trouver une série d’introduction gratuite et à jour (C#/.NET). Ne pas louper la série de 11 vidéos d'initiation à SK (voir les billets Dot.Blog de fin septembre)
Annexe A — Mini-extrait C#
Objectif : montrer l’assemblage Kernel → Plugins → KernelArguments (notations volontairement réduites et stables).
// 1) Construire le kernel (services IA + vector store configurés ailleurs)
var builder = Kernel.CreateBuilder();
// builder.AddOpenAIChatCompletion("model", apiKey); // ou Azure, etc.
// builder.Services.AddVectorStore<QdrantVectorStore>(...);
Kernel kernel = builder.Build();
// 2) Enregistrer un plugin natif (fonctions déterministes)
var myPlugin = KernelPluginFactory.CreateFromType<MySupportPlugin>();
kernel.Plugins.Add(myPlugin);
// 3) Préparer l’état partagé
var args = new KernelArguments {
["userIssue"] = "Le logiciel plante à l’ouverture",
["productVersion"] = "v5.4"
// args.ExecutionSettings = new PromptExecutionSettings { Temperature = 0.2 };
};
// 4) Appeler une fonction sémantique (prompt) puis une fonction native
var draft = await kernel.InvokeAsync<string>("SupportPlugin", "ComposeAnswer", args);
args["draft"] = draft;
await kernel.InvokeAsync("SupportPlugin", "UpdateTicket", args);
Les noms de types/méthodes peuvent évoluer ; reportez-vous à la doc .NET pour Kernel, KernelArguments et la création/annotation de plugins. (Microsoft Learn)
Le Futur ?
Si vous suivez l'information vous savez que parallèlement à la sortie des 11 vidéos de formation et au podcast DevDevDev, presque au jour près, Microsoft à annoncé la sortie de Agent Framework, une évolution de Semantic Kernel écrit par la même équipe.
L'essentiel de ce qui est dit ici reste donc valable mais va évoluer légèrement (dans l'écriture, pas l'esprit) avec la nouvelle version de l'outil. Il va se passer la même chose qu'entre Xamarin.Forms et MAUI : nom différent, mais même équipe, même langage, même finalité et tout ce qu'on a appris de l'un est utile pour l'autre. La coexistence des deux frameworks a été évoquée tout comme le passage de l'un vers l'autre. A l'heure où j'écris ces lignes rien ne semble figer mais AF semble bien devenir la norme pour les Agents IA chez Microsoft.
Dans les semaines et mois à venir, de toute évidence, Dot.Blog se tournera plutôt vers la nouvelle version de Semantic Kernel, à savoir Agent Framework, mais il faudra attendre que ce framework en Preview devienne un peu plus stable. Pour l'instant restez en SK si vous avez commencé un projet. Pour les nouveaux projets il faudra privilégier Agent Framework (qui n'est qu'en preview à l'heure de cet article).
Dans le même temps (l'IA est un sujet bouillant et la rentrée de septembre / octobre est toujours très mouvementée en annonces...) OpenAI a fait plusieurs annonces dont celle d'un toolkit pour Agent. Il s'agit là d'un produit à part qui ne s'intègre pas à des installations dotnet/C# en entreprise, mais qui sera intéressant à suivre. J'y reviendrai quand cela sera plus riche qu'une simple annonce marketing.
Conclusion
Semantic Kernel n’est pas un “connecteur LLM” de plus : c’est l’orchestrateur qui relie intention, fonctions, contexte et action, avec une architecture testable et traçable, compatible cloud/local/hybride, et désormais multi-agents. Pour des développeurs .NET, c’est une manière opérationnelle de transformer une bonne réponse isolée en système industrialisable. Dès demain, la nouvelle version "Agent Framework" prendra la suite, on y retrouvera les mêmes concepts, les mêmes fondements, les mêmes fondations (Microsoft AI Extensions), mais une écriture plus condensée synthétisant tout ce que SK a permis d'engranger en expérience et savoir-faire.
Si vous ne deviez retenir qu’une phrase : « SK, c’est la colle entre votre code et l’IA. » Et je vous dirai la même chose pour sa nouvelle version "Agent Framework" !
Et pour vous faire une meilleure idée, suivez la série en 11 épisodes sur SK ou regardez le film complet.
Demain sera passionnant, alors...
Stay Tuned !