Le runbook : le mode d'emploi que votre agent attend — c'est pas sorcier !
« Ça devrait marcher. » Si cette phrase d’un agent IA vous hérisse autant que moi, posez-vous la question qui fâche : l’agent avait-il les moyens d...
$ cat welcome.md
Tech notes on .NET, Azure, DevOps & AI — by Adrien Clerbois, Microsoft MVP in Developer Technologies.
« Ça devrait marcher. » Si cette phrase d’un agent IA vous hérisse autant que moi, posez-vous la question qui fâche : l’agent avait-il les moyens d...
“It should work.” If that sentence from an AI agent makes your skin crawl as much as mine, ask yourself the uncomfortable question: did the agent h...
« Pourquoi l’agent a-t-il remboursé cette note de frais à 3 h du matin ? » Avec du code classique, vous liriez les logs et la stack trace. Avec un ...
“Why did the agent reimburse that expense claim at 3 a.m.?” With classic code, you’d read the logs and the stack trace. With an agent, the “why” li...
Dans l’article sur les tokens, une ligne du tableau de prix intriguait : les tokens cachés, facturés une fraction du prix normal. Et dans la boucle...
In the tokens article, one line of the price table was intriguing: cached tokens, billed at a fraction of the normal price. And in the tool calling...
Tout ce blog repose sur une petite phrase répétée partout : « l’agent appelle un outil ». Copilot lance vos tests, votre serveur MCP répond au modè...
This whole blog rests on one little phrase repeated everywhere: “the agent calls a tool”. Copilot runs your tests, your MCP server answers the mode...
Dans l’article RAG et embeddings, on a compris la théorie : la carte des idées, la bibliothèque rangée par sens, le bibliothécaire qui pose trois e...
In the RAG and embeddings article, we understood the theory: the map of ideas, the library sorted by meaning, the librarian laying three excerpts o...
Dans l’article de présentation d’Agent Framework, je promettais que les workflows permettaient d’instruire « le dossier de prêt automatiquement, ma...
In the Agent Framework overview article, I promised that workflows let you process “the loan application automatically, while the final approval re...
Dans le premier article MCP, on a fabriqué la prise universelle : un serveur en trente lignes, en STDIO, sur votre poste. Et je vous avais promis l...
In the first MCP article, we built the universal plug: a server in thirty lines, over STDIO, on your machine. And I promised the sequel: “Streamabl...
Hier soir, on a mis un chef d’orchestre devant nos agents, avec cinq patterns en poche. Mais un chef d’orchestre suit une partition qui va de gauch...
Last night, we put a conductor in front of our agents, with five patterns in our pocket. But a conductor follows a score that runs left to right — ...
Dans l’épisode 3 de la série Copilot CLI, on a rencontré l’équipe : Explore, Task, Plan, Code-review, et vos propres agents en .agent.md. Plusieurs...
In episode 3 of the Copilot CLI series, we met the team: Explore, Task, Plan, Code-review, and your own agents in .agent.md. Several readers gave m...
Un violoniste virtuose peut jouer une sonate. Mais une symphonie ? Il faut quarante musiciens — et surtout un chef d’orchestre : quelqu’un qui ne j...
A virtuoso violinist can play a sonata. But a symphony? You need forty musicians — and above all a conductor: someone who plays no instrument, yet ...
Posez cette question à un RAG classique : « si le service Paiement tombe, quels clients sont impactés ? ». Il va chercher des passages qui ressembl...
Ask a classic RAG this question: “if the Payment service goes down, which customers are impacted?”. It will look for passages that resemble the que...
Vous avez un collègue brillant. Trois façons de travailler avec lui : lui poser une question à la machine à café, lui confier une tâche (« reviens ...
You have a brilliant colleague. Three ways to work with them: ask a question at the coffee machine, hand over a task (“come back when it’s done”), ...
Regardez un agent IA travailler sur un bug un peu retors : à un moment, presque toujours, il lance git log ou git blame. Il fait exactement ce que ...
Watch an AI agent work on a tricky bug: at some point, almost always, it runs git log or git blame. It does exactly what a good dev would do: find ...
« Je te l’ai dit hier ! » — et pourtant non : hier n’existe pas pour un modèle de langage. Ses connaissances sont figées à l’entraînement, et sa fe...
“I told you yesterday!” — and yet no: yesterday doesn’t exist for a language model. Its knowledge is frozen at training time, and its context windo...
Vous discutez avec Claude ou ChatGPT depuis une heure, et quelque chose se dégrade : il « oublie » ce que vous avez dit au début, mélange des consi...
You’ve been chatting with Claude or ChatGPT for an hour, and something degrades: it “forgets” what you said at the beginning, mixes up instructions...
Dans le billet sur le vibe engineering, mon prompt de base imposait une architecture — CQRS, Minimal API, Carter, un handler par cas d’usage — en p...
Le 9 juillet, OpenAI sort la famille GPT-5.6 — Luna, Terra, Sol — et annonce battre Claude Fable 5 « de 13,1 points ». Le 24 juillet, Anthropic rép...
In the vibe engineering post, my base prompt imposed an architecture — CQRS, Minimal API, Carter, one handler per use case — promising it would ser...
On July 9, OpenAI shipped the GPT-5.6 family — Luna, Terra, Sol — claiming to beat Claude Fable 5 “by 13.1 points”. On July 24, Anthropic answered ...
Dernier épisode de la série. Vous savez pourquoi, vous maîtrisez le quotidien, vous avez monté l’équipe. Reste la dimension qui change le métier : ...
Final episode of the series. You know why, you’ve mastered the daily routine, you’ve built the team. What remains is the dimension that changes the...
Jusqu’ici, Copilot CLI ressemblait à un excellent employé dans votre terminal. Aujourd’hui, changement d’échelle : c’est toute une équipe qui s’y c...
So far, Copilot CLI looked like one excellent employee in your terminal. Today, change of scale: there’s a whole team hiding in there — built-in sp...
Épisode 1 : Copilot CLI est installé, vous connaissez les trois régimes de conduite. Aujourd’hui, on s’installe dans le quotidien — et c’est là que...
Episode 1: Copilot CLI is installed, you know the three driving modes. Today we settle into the daily routine — and that’s where the tool shines: s...
Pour beaucoup, GitHub Copilot vit dans VS Code. Complétion, chat, modes — tout se passe dans l’éditeur. Et pendant ce temps, un autre Copilot a gra...
For many people, GitHub Copilot lives in VS Code. Completion, chat, modes — everything happens in the editor. Meanwhile, another Copilot has been g...
Vous avez suivi le prompt de base : triple A, 80 % de couverture, tout est vert. Puis vous ajoutez la fonctionnalité IA — un résumé automatique de ...
You followed the base prompt: triple A, 80% coverage, everything green. Then you add the AI feature — automatic ticket summarization — and you naiv...
Un dotnet add package d’une bibliothèque qui n’existe pas. Une méthode d’API parfaitement nommée, parfaitement documentée… et parfaitement fictive....
A dotnet add package for a library that doesn’t exist. A perfectly named, perfectly documented… perfectly fictional API method. An American lawyer ...
La scène est universelle. Vous êtes au milieu d’une feature, quinze fichiers ouverts, la tête dedans — et le hotfix urgent tombe. Le réflexe : git ...
The scene is universal. You’re deep in a feature, fifteen files open, fully in the zone — and the urgent hotfix lands. The reflex: git stash, git s...
Posez à un modèle d’IA une question sur l’histoire de Rome : réponse brillante. Posez-lui une question sur votre procédure de remboursement interne...
Ask an AI model a question about the history of Rome: brilliant answer. Ask it about your internal expense reimbursement procedure: it makes things...
Un LLM sorti de sa boîte est un collègue brillant… amnésique, coupé du monde et figé à sa date d’entraînement. Il ne connaît ni vos documents, ni v...
An LLM fresh out of the box is a brilliant colleague… amnesiac, cut off from the world, and frozen at its training date. It knows neither your docu...
Quelque part dans votre wiki dort un magnifique diagramme d’architecture. Trois heures de Visio, des flèches impeccables, des couleurs par domaine....
Somewhere in your wiki sleeps a magnificent architecture diagram. Three hours of Visio, impeccable arrows, colors by domain. It has a single flaw: ...
Ouvrez un projet de plus de six mois et cherchez « client ». Vous trouverez Client, Customer, Account, User — et, dans la base de données, une tabl...
Open any project older than six months and search for “client”. You’ll find Client, Customer, Account, User — and, in the database, a table called ...
Vous faites votre premier appel à une API de modèle, et là, un mur de paramètres : temperature, top_p, max_tokens, frequency_penalty, stop, seed… L...
You make your first call to a model API, and there it is: a wall of parameters — temperature, top_p, max_tokens, frequency_penalty, stop, seed… Mos...
Sprint 23. Un nouveau développeur rejoint l’équipe et pose la question fatale : « Pourquoi MongoDB, ici ? Tout le reste est en SQL Server. » Silenc...
Sprint 23. A new developer joins the team and asks the fatal question: “Why MongoDB, here? Everything else is SQL Server.” Silence. The person who ...
Dans les derniers articles, MCP revient sans arrêt sous le même surnom : la prise universelle. On l’a branchée sur GitHub Copilot, sur Agent Framew...
In the last few articles, MCP kept coming back under the same nickname: the universal plug. We plugged it into GitHub Copilot, into Agent Framework...
Démarrer un projet à partir de rien avec une IA, c’est grisant : quelques phrases, et le code jaillit. Mais le code jaillit dans la direction que v...
Starting a project from scratch with an AI is exhilarating: a few sentences, and code pours out. But it pours out in the direction you set — or in ...
Vous avez peut-être croisé le nom : Microsoft Agent Framework. C’est le nouveau framework open source de Microsoft pour construire des agents IA — ...
You may have come across the name: Microsoft Agent Framework. It’s Microsoft’s new open source framework for building AI agents — the official succ...
Copilot lit votre code, lance des commandes, ouvre des Pull Requests. Formidable. Mais posez-vous la question qu’on pose pour tout nouvel arrivant ...
Copilot reads your code, runs commands, opens Pull Requests. Wonderful. But ask yourself the question you’d ask about any newcomer to the team: wha...
Quand on commence à utiliser des modèles d’IA — que ce soit via une API, GitHub Copilot ou un chatbot — un mot revient partout : token. Sur votre f...
The moment you start using AI models — through an API, GitHub Copilot or a chatbot — one word is everywhere: token. On your bill, in the limits (“c...
Même Copilot, même modèle, même projet… et pourtant quatre résultats radicalement différents selon un petit menu déroulant que la plupart des gens ...
Same Copilot, same model, same project… and yet four radically different outcomes depending on a little dropdown most people ignore: the mode. Ask,...
GitHub Copilot n’est plus le petit assistant qui complétait vos lignes de code. C’est devenu un véritable agent, capable de lire votre projet, lanc...
GitHub Copilot is no longer the little assistant that finished your lines of code. It has become a real agent, able to read your project, run comma...
Tout le monde parle du « modèle » : GPT, Claude, Gemini… Comme si toute la magie tenait dans le cerveau. Pourtant, un modèle tout seul ne sait rien...
Everyone talks about “the model”: GPT, Claude, Gemini… as if all the magic lived in the brain. Yet a model on its own can’t do anything: it can’t s...
Vous ouvrez le sélecteur de modèles de GitHub Copilot et vous tombez sur une carte des vins : GPT-5.5, Claude Opus 4.8, Gemini 3.5 Flash, Haiku, So...
You open GitHub Copilot’s model picker and land on a wine list: GPT-5.5, Claude Opus 4.8, Gemini 3.5 Flash, Haiku, Sonnet, mini, nano, Codex… Which...
Affranchir GitHub Copilot CLI des tokens : brancher un modèle local avec Microsoft Foundry Local GitHub Copilot CLI est un excellent agent de dével...
Freeing GitHub Copilot CLI from Tokens: Wiring Up a Local Model with Microsoft Foundry Local GitHub Copilot CLI is an excellent command-line develo...
À l’heure où l’intelligence artificielle accélère massivement la production, une question s’impose : comment rester pertinent et irremplaçable ? Lo...
At a time when artificial intelligence is massively accelerating production, one question becomes unavoidable: how do we stay relevant and irreplac...
Le défi de la migration vers Fluent UI Blazor V5 Microsoft Fluent UI Blazor version 5 apporte une multitude de nouvelles fonctionnalités, de breaki...
The Challenge of Migrating to Fluent UI Blazor V5 Microsoft Fluent UI Blazor version 5 brings a wealth of new features, breaking changes, and refac...
Le Model Context Protocol : une révolution… et une surface d’attaque Le Model Context Protocol (MCP) s’impose rapidement comme le standard ouvert p...
The Model Context Protocol: A Revolution… and an Attack Surface The Model Context Protocol (MCP) is rapidly establishing itself as the open standar...
Introduction à DevBox et à ses avantages DevBox est un environnement de développement puissant qui permet aux développeurs de créer, tester et dépl...
Introduction to DevBox and its Benefits DevBox is a powerful development environment that allows developers to create, test, and deploy application...
Introduction : Azure DevOps est une plateforme puissante qui permet une collaboration fluide et des workflows d’intégration continue / déploiement ...
Introduction: Azure DevOps is a powerful platform that enables seamless collaboration and continuous integration/continuous deployment (CI/CD) work...
Le Principe FIRST dans le Test Introduction Le principe FIRST est un ensemble de conventions largement adoptées pour la rédaction de tests, en part...
The FIRST Principle in Testing Introduction The FIRST principle is a widely adopted set of conventions for writing tests, particularly unit tests. ...
Comment supprimer un Wiki de projet dans Azure DevOps ? Pour suivre ce billet de blog, vous devez avoir l’Azure CLI et l’extension Azure DevOps ins...
How to delete a project Wiki in Azure DevOps? To follow this blog post, you should have the Azure CLI and the Azure DevOps extension installed in y...
Changer le nom du pipeline pendant le build Quand vous commencez à travailler sur votre propre pipeline, que ce soit en YAML ou via l’interface gra...
Quand vous avez plusieurs clients ou projets et que, comme moi, vous utilisez souvent votre invite de commande, il est souvent pénible de naviguer ...
Change pipeline name in build time When you start to work on your own pipeline, either with YAML or using the GUI, you may be interested in changin...
When you have several clients or projects and, like me, you often use your command prompt, it is often painful to navigate from folder to folder to...
Les photos en portrait prises par un appareil reflex n’ont pas des dimensions de hauteur et de largeur qui reflètent une photo en portrait. Dans l’...
Portrait photos taken by an SLR camera do not have the height and width dimensions that reflect a portrait photo. In one of the projects I’m develo...
Dans cet article, nous allons aborder la possibilité d’ajouter des capacités multilingues à votre application Blazor WebAssembly.
In this article we will discuss the possibility of adding multilingual capabilities to your Blazor WebAssembly application.
Inclure le dossier .well-known dans votre projet ASP.NET Core .well-known/acme-challenge/*** introuvable (http 404) Si vous souhaitez utiliser Let’...
Il peut parfois être compliqué de générer un certificat. Même si Let’s Encrypt nous permet d’obtenir gratuitement des certificats renouvelables tou...
Include .well-known folder in your asp.net core project .well-known/acme-challenge/***not found (http 404) If you want to use Let’s Encrypt, choose...
It can sometimes be complicated to generate a certificate. Even though Let’s Encrypt allows us to get free certificates that can be renewed every t...
Sur l’un des projets que j’ai menés chez Ingenico ePayments, je devais intégrer ApplePay comme nouveau moyen de paiement supporté par la nouvelle A...
Être développeur, c’est être paresseux. J’utilise souvent les dotnet global tools installés via la dotnet CLI. Malheureusement, à ce jour il n’exis...
On one of the projects I had at Ingenico ePayments, I had to integrate ApplePay as a new payment method supported by the new Ingenico API. During t...
To be a developer is to be lazy. I often use the dotnet global tools set up through the dotnet CLI. Unfortunately, to date there is no “dotnet tool...
Comment créer un nouvel Azure Container Registry et y pousser des images. Si, comme moi, vous souhaitez disposer d’un dépôt d’images privé pour sto...
How to create a new Azure Container Registry and push images on it. If, like me, you want a private image repository to store your Docker projects,...
Maîtriser les global tools dans .NET Core Comme vous le savez peut-être déjà, .NET Core nous permet de créer et d’exécuter des applications sur une...
Conquering the global tool in .NET Core As you may already know, .NET Core allows us to create and run applications on a multitude of platforms. It...
Développer des applications ASP.NET Core avec un file watcher Par Rick Anderson et Victor Hurdugaci dotnet watch est un outil qui exécute une comma...
Develop ASP.NET Core apps using a file watcher By Rick Anderson and Victor Hurdugaci dotnet watch is a tool that runs a .NET Core CLI command when ...
Microsoft propose une comparaison entre Microsoft Azure et Amazon Web Services. https://docs.microsoft.com/en-us/azure/architecture/aws-professiona...
Microsoft provides a comparison between Microsoft Azure and Amazon Web Services. https://docs.microsoft.com/en-us/azure/architecture/aws-profession...
Par défaut, git est configuré pour utiliser VIM comme éditeur, mais vous pouvez configurer votre environnement git pour utiliser Visual Studio Code.
By default, git is configured to use VIM as its editor, but you can configure your git environment to use Visual Studio Code.
Lors de mon premier commit pour un site web au design volumineux, j’ai reçu l’erreur 10054 dans l’invite git, comme suit :
During my first commit for a website with a large design, I received error 10054 in the git prompt as follows:
Lorsque vous tentez de cloner un dépôt, vous pouvez obtenir une erreur du type « ssl certificate problem: unable to get local issuer certificate »
Introduction à ZoomIt ZoomIt est un outil de zoom et d’annotation d’écran destiné aux présentations techniques comportant des démonstrations d’appl...
ngrok expose au public, via des tunnels sécurisés, des serveurs locaux situés derrière des NAT et des pare-feux.
When you try to clone a repository, you may get an error like “ssl certificate problem: unable to get local issuer certificate”
Introduction to ZoomIt ZoomIt is a screen zoom and annotation tool for technical presentations that include application demonstrations. ZoomIt runs...
ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels.