<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Deployment | The .NET Blog</title><link>https://thedotnetblog.com/nl/tags/deployment/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>nl</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/nl/tags/deployment/index.xml" rel="self" type="application/rss+xml"/><item><title>Uw Lokale MAF-agent Heeft Eindelijk Een Thuis in Productie</title><link>https://thedotnetblog.com/nl/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/nl/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</guid><description>Foundry Hosted Agents geeft uw Microsoft Agent Framework-agent identiteit, schaling, sessiepersistentie en observabiliteit zonder extra configuratie. Zo ziet het er in de praktijk uit.</description><content:encoded>&lt;p&gt;Een agent lokaal laten werken is het leuke deel. Het lastige deel is alles wat daarna komt: het deployen zonder uw verstand te verliezen, sessies beheren, identiteit instellen, observabiliteit aansluiten. Dat betekent gewoonlijk veel aangepaste infrastructuurlijm.&lt;/p&gt;
&lt;p&gt;Foundry Hosted Agents heeft het grootste deel van die lijm net verwijderd voor gebruikers van Microsoft Agent Framework (MAF).&lt;/p&gt;
&lt;h2 id="wat-foundry-hosted-agents-werkelijk-doet"&gt;Wat Foundry Hosted Agents Werkelijk Doet&lt;/h2&gt;
&lt;p&gt;Wanneer u een MAF-agent deployt naar Foundry Hosted Agents, verwerkt het platform een verrassend lange lijst van dingen die u anders zelf zou moeten bouwen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Schalen naar nul&lt;/strong&gt; — uw agent kost niets in idle en start automatisch opnieuw op&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Per-sessie VM-geïsoleerde sandboxen&lt;/strong&gt; — elke gebruikerssessie krijgt zijn eigen sandbox met bestandssysteempersistentie die scale-down-gebeurtenissen overleeft&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ingebouwde Entra ID&lt;/strong&gt; — elke agent krijgt zijn eigen identiteit om Foundry-modellen, Toolbox en Azure-services aan te roepen zonder geheimen in de image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Versioned deployments&lt;/strong&gt; — elke deployment is een onveranderlijke snapshot, met ondersteuning voor blue/green en canary-uitrol&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Observabiliteit zonder configuratie&lt;/strong&gt; — &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; wordt bij runtime geïnjecteerd zodat MAF&amp;rsquo;s OpenTelemetry-traces automatisch naar App Insights vloeien&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Die laatste is echt fijn. Geen extra bedrading, geen extra configuratie. Traces verschijnen gewoon.&lt;/p&gt;
&lt;h2 id="het-codeverschil-is-minimaal"&gt;Het Codeverschil Is Minimaal&lt;/h2&gt;
&lt;p&gt;Dit is wat ik het meest waardeer aan deze integratie. U herschrijft uw agent niet. U omhult hem gewoon:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In .NET:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.Agents.AI.Foundry.Hosting&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;WebApplication&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateBuilder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;MapFoundryResponses&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;In Python:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ResponsesHostServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dat is alles. Dezelfde logica die u lokaal testte, is wat in productie draait. Het platform omhult het met sessiebeheers-, identiteits- en schalinginfrastructuur.&lt;/p&gt;
&lt;h2 id="twee-protocollen-één-agent"&gt;Twee Protocollen, Één Agent&lt;/h2&gt;
&lt;p&gt;Hosted Agents ondersteunen twee endpoint-stijlen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Responses&lt;/strong&gt; (&lt;code&gt;/responses&lt;/code&gt;) — OpenAI-compatibel, beheert gespreksgeschiedenis en streaming. Goed standaard voor chat-achtige agents.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Invocations&lt;/strong&gt; (&lt;code&gt;/invocations&lt;/code&gt;) — u definieert het verzoek/antwoord-schema. Goed voor niet-conversationele workflows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Als u iets bouwt dat eruit ziet als een gesprek, begin dan met Responses. Als u een API-achtige agent bouwt die gestructureerde invoer neemt en gestructureerde uitvoer retourneert, geeft Invocations u de flexibiliteit.&lt;/p&gt;
&lt;h2 id="de-deployment-flow-met-azd"&gt;De Deployment-flow met &lt;code&gt;azd&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Wanneer u &lt;code&gt;azd up&lt;/code&gt; uitvoert met een MAF-agent:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Maakt optioneel een Foundry-project en deployt een model&lt;/li&gt;
&lt;li&gt;Pakt uw code en pusht een image naar Azure Container Registry&lt;/li&gt;
&lt;li&gt;Voorziet compute vanuit de ACR-image&lt;/li&gt;
&lt;li&gt;Wijst een toegewijd Entra ID toe aan de agent&lt;/li&gt;
&lt;li&gt;Stelt een stabiel endpoint bloot (&lt;code&gt;https://{project_endpoint}/agents/{agent_name}&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Verwerkt al het andere vanaf dat punt&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sessies blijven tot 30 dagen bestaan. Idle compute wordt na 15 minuten gede-provisioneerd en transparant hersteld bij het volgende verzoek. Vanuit het perspectief van de agent is er niets veranderd.&lt;/p&gt;
&lt;h2 id="afsluiting"&gt;Afsluiting&lt;/h2&gt;
&lt;p&gt;De afstand tussen &amp;ldquo;lokaal werkend&amp;rdquo; en &amp;ldquo;in productie draaiend&amp;rdquo; was historisch lang en pijnlijk voor AI-agents. Foundry Hosted Agents + MAF verkleint die kloof aanzienlijk. Als u al een lokale agent heeft gebouwd met Agent Framework, is dit het proberen waard vandaag.&lt;/p&gt;
&lt;p&gt;Het team zegt dat GA binnenkort komt — dit is momenteel in preview. Bekijk de &lt;a href="https://learn.microsoft.com/en-us/agent-framework/hosting/foundry-hosted-agent"&gt;MAF Hosted Agent integratie-documentatie&lt;/a&gt; en de &lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/04-hosting/FoundryHostedAgents"&gt;.NET-voorbeelden&lt;/a&gt; om te beginnen.&lt;/p&gt;
&lt;p&gt;Origineel artikel: &lt;a href="https://devblogs.microsoft.com/agent-framework/from-local-to-production-deploy-your-microsoft-agent-framework-agent-with-foundry-hosted-agents/"&gt;From Local to Production: Deploy Your Microsoft Agent Framework Agent with Foundry Hosted Agents&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>