IA avec .NET 10 : Créer un agent IA du cloud Azure à l'exécution 100 % locale

IA avec .NET 10 : Créer un agent IA du cloud Azure à l'exécution 100 % locale

28 Septembre 2026

Cette année a marqué une avancée majeure pour l’écosystème .NET avec la sortie du Microsoft Agent Framework, qui encapsule le meilleur de AutoGen et du Semantic Kernel autour d’un socle unique : Microsoft.Extensions.AI. Pour les développeurs .NET, c’est révolutionnaire, créer un agent capable de raisonner, d’appeler des fonctions métiers, de maintenir le fil d’une conversation ne nécessitait pas plus d’une poignée de lignes de code.

Nous allons construire dans cet article le même agent commercial de deux façons différentes :

  • Une version connectée à Azure OpenAI, avec un usage en production.
  • Une version 100% locale et gratuite, avec Ollama, pour prototyper sans clé API, sans coût.

L’intérêt de cette comparaison est de montrer que le code de l’agent reste quasiment identique. Seul le client de modèle change. C’est toute la force de l’abstraction AIAgent.



.NET 10 : l'IA prend une nouvelle dimension

Sorti le 15 Novembre 2025. Il s'agit d'une version supportée à long terme (LTS), avec un support officiel jusqu'à novembre 2028. Microsoft la décrit comme « la version la plus productive, moderne, sécurisée, intelligente et performante » de l'écosystème.NET, et pour la première fois, la question de l'IA ne se pose plus en termes de packages tiers qu'on viendrait ajouter à la plateforme : il faut désormais compter avec la plateforme entière, des intégrations les plus simples jusqu'à de vrais systèmes multi-agents complexes.

Voici les nouveautés qui comptent vraiment côté IA.


Le Microsoft Agent Framework, tête d'affiche de la release

C'est la nouveauté la plus visible : le framework fait d'un seul objet Semantic Kernel et AutoGen, qui étaient jusque-là des voies de développement d'agents différentes et souvent incompatibles. Ça ne l'est plus.

Concrètement, le framework met à disposition des patrons d'orchestration prêts à l'usage pour faire collaborer plusieurs agents entre eux, sans avoir à réinventer la logique de coordination :

  • Séquentiel : les agents interviennent l’un après l’autre, chacun apportant à la tâche le plus-value du précédent (ex. un agent rédige, un autre relit).
  • Concurrent : plusieurs agents travaillent en parallèle sur une même tâche, puis leurs productions sont agrégées.
  • Handoff : un agent transfère la main à un autre agent plus spécialisé selon le fil de la discussion (ex. un agent d’accueil qui bascule vers un agent technique).
  • Group chat : plusieurs agents discutent en temps réel dans un même fil, comme une réunion virtuelle entre spécialistes.

C'est ce qui permet de passer d'un agent isolé (comme nos deux exemples plus haut) à un véritable système multi-agents sans changer d'outillage.


Microsoft.Extensions.AI : une couche d'abstraction unifiée

Microsoft.Extensions.AI est à la base de tout. Microsoft.Extensions.AI propose des interfaces (IChatClient, IEmbeddingGenerator) qui sont communes et indépendantes du fabricant de modèles : que vous utilisiez Azure OpenAI, OpenAI, Ollama ou un autre service qui ressemble à OpenAI. C'est ce qui nous a permis lors de nos deux démos de ne pas toucher au code de l'agent et juste de changer qui crée le client : est-ce que le modèle tourne dans le cloud ou chez moi en local et sur ma machine? Dans tous les cas, l'application ne change pas.


EF Core 10 : le vectoriel rentre dans l'ORM

Entity Framework Core 10 permet maintenant de faire des recherches vectorielles de manière native, et offre également des évolutions sur la gestion du JSON natif et des nouveaux scénarios LINQ. Concrètement, il est désormais possible de conserver des embeddings et de faire des recherches de similarité depuis EF Core, sans nécessité d'utiliser une base vectorielle externe dans le cas de certaines requêtes, ce qui simplifie beaucoup de choses pour la création de RAG (retrieval-augmented generation)


ASP.NET Core 10 : exposer des API d'agents plus facilement

ASP.NET Core 10 tente de rendre l'api IA performante et observable plus simple à faire : meilleur traitement des requêtes HTTP, support de la spécification OpenAPI 3.1, et permet même d'héberger très simplement un agent derrière un point d'entrée HTTP (c'est le cas du protocole AG-UI qui est un protocole qui permet d'exposer une API sur un endpoint grâce à ASP.NET Core et qui se connecte ensuite côté frontend via un navigateur)


Côté outillage développeur (Visual Studio 2026)

Ce n'est pas une nouveauté pour le framework.NET mais plutôt une évolution de Visual Studio 2026 qui est sorti en même temps : Visual Studio 2026 intègre des agents Copilots directement dans l'IDE : comme un agent de profiling qui surveille l'utilisation CPU/mémoire et propose des optimisations, un agent de debugging qui corrige les tests unitaires qui tombent en échec, et un "adaptive paste" qui adapte la copie du code à l'endroit où on est en train de travailler. Bref, l'IA est partout pendant le développement avec.NET mais aussi pendant le développement dans.NET.


En résumé

Nouveauté Le changement concret
Microsoft Agent Framework Un seul framework pour agents simples et systèmes multi-agents (fusion Semantic Kernel + AutoGen)
Orchestrations intégrées Séquentiel, concurrent, handoff, group chat, sans code de coordination à écrire soi-même
Microsoft.Extensions.AI Abstraction unifiée : on change de fournisseur de modèle sans changer son code métier
EF Core 10 Recherche vectorielle native pour du RAG sans base vectorielle externe
ASP.NET Core 10 Exposition d'agents via API HTTP plus simple, avec observabilité intégrée


Pourquoi un agent, et pas juste un appel de chat ?

Un modèle linguistique LLM comme ChatGPT par exemple répond juste à une question. Mais un agent va plus loin. On lui donne des instructions, un rôle, et surtout des outils. Ces outils, ce sont des fonctions C# qu'il peut décider d'utiliser tout seul. Ils lui servent à trouver des informations ou à faire des actions. Il se souvient aussi de ce qui a été dit pendant la conversation grâce à un AgentThread.

Dans notre exemple, cet agent travaille comme un commercial pour Artza Technologies. Il peut regarder le catalogue des formations et répondre aux questions des clients potentiels en se basant sur ce catalogue.


Version 1 : Agent connecté à Azure OpenAI

Installation


Code complet


Ce qu'il faut retenir :

  • Pour s'authentifier, on utilise AzureCliCredential ou une autre méthode d'Azure.Identity, sans mettre de clé API directement dans le code.
  • L'outil AsAIAgent transforme un client de chat normal en un agent capable d'utiliser des outils.
  • Cette version est prête pour la production, car elle bénéficie de la gouvernance, de la facturation et du suivi d'Azure AI Foundry.


Version 2 : Agent 100 % local avec Ollama (gratuit)

On peut faire tourner le même agent sur son ordinateur pour prototyper, faire des démos en interne, ou juste développer sans passer par le cloud, en utilisant Ollama.


Installation


D'autres modèles valent le détour selon la machine disponible :

Modèle Profil
llama3.2 (3B) Léger, tourne bien sur CPU
qwen2.5:7b Bon compromis qualité/performance, très bon en français
mistral-nemo Solide en français, gère bien l'appel d'outils

Code complet


Voici les points à surveiller quand on utilise des modèles localement :

  • Appels de fonctions : tous les modèles disponibles avec Ollama ne gèrent pas bien la fonctionnalité d'appel d'outils. Les modèles comme llama3.2, qwen2.5 et mistral-nemo fonctionnent bien. Si votre agent n'appelle jamais la fonction, c'est souvent le modèle que vous avez choisi qui pose problème.
  • Qualité par rapport aux modèles en ligne : un modèle de taille 3B à 7B peut donner des réponses correctes, mais il est moins performant qu'un modèle comme GPT-4o-mini pour des raisonnements compliqués ou pour comprendre des nuances de langue française. Pour du prototypage ou une démonstration, c'est souvent suffisant.
  • Ressources nécessaires : le modèle llama3.2 (taille 3B) fonctionne sans problème sur un processeur (CPU). Si vous utilisez un modèle de plus de 7B, avoir une carte graphique (GPU) avec au moins 8 Go de mémoire vidéo (VRAM) rendra l'utilisation beaucoup plus fluide.

L'intérêt principal, c'est que le code est quasiment le même.

En comparant les deux versions, seule la partie qui gère le modèle change vraiment.


Le reste, comme les instructions, les outils, la façon de gérer la conversation et les appels à RunAsync, ne change pas. C'est le gros avantage de s'appuyer sur Microsoft.Extensions.AI et le Microsoft Agent Framework. On peut développer et tester ses agents tranquillement sur son propre ordinateur, sans frais, puis passer à Azure AI Foundry quand on veut les déployer, sans avoir à tout refaire au niveau de la logique de l'agent.



Pour aller plus loin

Ce sont des exemples simples pour montrer comment ça marche. Le Microsoft Agent Framework peut aussi faire d'autres choses :

  • Il permet de gérer plusieurs agents qui travaillent ensemble. Par exemple, un agent peut écrire un texte et un autre le vérifier.
  • Il peut renvoyer les réponses morceau par morceau, au fur et à mesure qu'elles sont générées (avec la méthode RunStreamingAsync).
  • Il permet d'obtenir directement des réponses sous forme d'objets C#, bien définis (avec la méthode RunAsync<t>).
  • Il peut se connecter à des sources de données pour le RAG, comme la recherche sémantique ou les bases de données vectorielles.

Nous parlerons plus en détail de ces différentes fonctionnalités dans les articles à venir.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *