<?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>Foundry | The .NET Blog</title><link>https://thedotnetblog.com/it/tags/foundry/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>it</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 02 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/it/tags/foundry/index.xml" rel="self" type="application/rss+xml"/><item><title>Microsoft Foundry Aprile 2026: Foundry Local GA, GPT-5.5, CodeAct con Hyperlight</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/microsoft-foundry-april-2026-whats-new/</link><pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/microsoft-foundry-april-2026-whats-new/</guid><description>Il riepilogo di Foundry di aprile è ricco: Foundry Local raggiunge la GA, arriva GPT-5.5, Agent Framework ottiene il tracing OpenTelemetry, CodeAct esegue Python in micro-VM Hyperlight, e arriva il Dashboard di Monitoraggio degli Agenti.</description><content:encoded>&lt;p&gt;Un mese impegnativo per Microsoft Foundry. Ecco gli annunci più importanti.&lt;/p&gt;
&lt;h2 id="foundry-local-è-generalmente-disponibile"&gt;Foundry Local è Generalmente Disponibile&lt;/h2&gt;
&lt;p&gt;Foundry Local — il runtime AI locale multipiattaforma di Microsoft — passa dalla preview alla GA su Windows, macOS (Apple Silicon) e Linux x64. Inferenza di modelli locali pronta per la produzione con un SDK orientato agli sviluppatori. La versione 1.1 aggiunge il supporto per trascrizione, embeddings e API Responses.&lt;/p&gt;
&lt;h2 id="gpt-55"&gt;GPT-5.5&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;ultimo modello della famiglia GPT-5 è ora disponibile in Foundry. Quota predefinita per gli abbonamenti Tier 5 e Tier 6. Se hai lavorato con varianti precedenti di GPT-5, vale la pena valutarlo per i tuoi casi d&amp;rsquo;uso.&lt;/p&gt;
&lt;h2 id="tracing-di-agent-framework-in-foundry"&gt;Tracing di Agent Framework in Foundry&lt;/h2&gt;
&lt;p&gt;Due funzionalità di tracing vengono rilasciate in anteprima questo mese:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tracing di Microsoft Agent Framework&lt;/strong&gt; — Gli agenti MAF possono ora emettere trace OpenTelemetry in Foundry. Esegui il debug del comportamento degli agenti, traccia l&amp;rsquo;esecuzione in più passaggi, individua latenza ed errori nelle chiamate agli strumenti. Questo colma una lacuna reale: sapere &lt;em&gt;cosa ha effettivamente fatto il tuo agente&lt;/em&gt; in produzione, non solo cosa ha restituito.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tracing degli agenti ospitati&lt;/strong&gt; — Sessioni, chiamate agli strumenti e passaggi di esecuzione degli agenti ospitati appaiono anche nelle trace di Foundry. La stessa storia di osservabilità estesa al livello ospitato.&lt;/p&gt;
&lt;h2 id="codeact-con-hyperlight-alpha"&gt;CodeAct con Hyperlight (Alpha)&lt;/h2&gt;
&lt;p&gt;Questa è l&amp;rsquo;aggiunta tecnicamente più interessante: Agent Framework può ora eseguire codice Python all&amp;rsquo;interno di micro-macchine virtuali &lt;a href="https://github.com/hyperlight-dev/hyperlight"&gt;Hyperlight&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;CodeAct è il pattern in cui un agente genera ed esegue codice Python come strumento. La preoccupazione ovvia è la sicurezza — stai eseguendo codice generato dal modello. Le micro-VM di Hyperlight forniscono isolamento a livello di processo con tempi di avvio vicini al nativo, rendendo pratica l&amp;rsquo;esecuzione di codice in sandbox senza il sovraccarico di container o VM completi.&lt;/p&gt;
&lt;p&gt;Per i flussi di lavoro agentici dove l&amp;rsquo;esecuzione di codice è necessaria, questo è un miglioramento significativo della sicurezza rispetto all&amp;rsquo;esecuzione di codice nel processo host.&lt;/p&gt;
&lt;h2 id="dashboard-di-monitoraggio-degli-agenti-anteprima"&gt;Dashboard di Monitoraggio degli Agenti (Anteprima)&lt;/h2&gt;
&lt;p&gt;Un dashboard operativo unificato che combina l&amp;rsquo;utilizzo dei token, la latenza, il tasso di successo delle esecuzioni e i punteggi degli evaluator in un&amp;rsquo;unica vista. La distinzione dai normali dashboard di osservabilità: include i risultati di valutazione insieme alle metriche operative, così puoi correlare &amp;ldquo;l&amp;rsquo;agente è più lento&amp;rdquo; con &amp;ldquo;i punteggi dell&amp;rsquo;evaluator sono scesi&amp;rdquo; — o confermare che non sono correlati.&lt;/p&gt;
&lt;h2 id="evaluator-personalizzati-per-la-valutazione-continua-anteprima"&gt;Evaluator Personalizzati per la Valutazione Continua (Anteprima)&lt;/h2&gt;
&lt;p&gt;Ora puoi portare i tuoi evaluator basati su codice o prompt nelle pipeline di valutazione continua. In precedenza, la valutazione continua era limitata agli evaluator integrati. Gli evaluator personalizzati ti permettono di applicare criteri di qualità specifici del team nel tuo ciclo di monitoraggio in produzione.&lt;/p&gt;
&lt;h2 id="inventario-degli-agenti-nel-piano-di-controllo"&gt;Inventario degli Agenti nel Piano di Controllo&lt;/h2&gt;
&lt;p&gt;La vista Operate del Piano di Controllo di Foundry mostra ora tutti gli agenti supportati in un abbonamento: agenti Foundry, Azure SRE Agent, cicli di agenti Logic Apps e agenti personalizzati registrati. Una vista per capire cosa è distribuito e dove.&lt;/p&gt;
&lt;p&gt;Post originale: &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/"&gt;What&amp;rsquo;s new in Microsoft Foundry | April 2026&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Il Tuo Agente MAF Locale Ha Appena Trovato Casa in Produzione</title><link>https://thedotnetblog.com/it/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/it/news/emiliano-montesdeoca/maf-agent-local-to-production-foundry-hosted-agents/</guid><description>Foundry Hosted Agents dà al tuo agente Microsoft Agent Framework identità, scaling, persistenza delle sessioni e osservabilità senza configurazione aggiuntiva. Ecco come si presenta in pratica.</description><content:encoded>&lt;p&gt;Far funzionare un agente localmente è la parte divertente. La parte difficile è tutto ciò che viene dopo: distribuirlo senza impazzire, gestire le sessioni, configurare l&amp;rsquo;identità, collegare l&amp;rsquo;osservabilità. Di solito questo significa molta infrastruttura personalizzata.&lt;/p&gt;
&lt;p&gt;Foundry Hosted Agents ha appena rimosso la maggior parte di quella infrastruttura per gli utenti di Microsoft Agent Framework (MAF).&lt;/p&gt;
&lt;h2 id="cosa-fa-realmente-foundry-hosted-agents"&gt;Cosa Fa Realmente Foundry Hosted Agents&lt;/h2&gt;
&lt;p&gt;Quando distribuisci un agente MAF in Foundry Hosted Agents, la piattaforma gestisce una lista sorprendentemente lunga di cose che altrimenti dovresti costruire tu stesso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scala a zero&lt;/strong&gt; — il tuo agente non costa nulla quando è inattivo e si riavvia automaticamente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sandbox isolati per VM per sessione&lt;/strong&gt; — ogni sessione utente ottiene il proprio sandbox con persistenza del filesystem che sopravvive agli eventi di riduzione dello scale&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Entra ID integrato&lt;/strong&gt; — ogni agente ottiene la propria identità per chiamare modelli Foundry, Toolbox e servizi Azure senza segreti nell&amp;rsquo;immagine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deployment versionati&lt;/strong&gt; — ogni deployment è uno snapshot immutabile, con supporto per blue/green e canary rollout&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Osservabilità senza configurazione&lt;/strong&gt; — &lt;code&gt;APPLICATIONINSIGHTS_CONNECTION_STRING&lt;/code&gt; viene iniettato a runtime in modo che le tracce OpenTelemetry di MAF fluiscano automaticamente in App Insights&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quest&amp;rsquo;ultimo è genuinamente piacevole. Nessun cablaggio aggiuntivo, nessuna configurazione extra. Le tracce appaiono semplicemente.&lt;/p&gt;
&lt;h2 id="la-differenza-nel-codice-è-minima"&gt;La Differenza nel Codice È Minima&lt;/h2&gt;
&lt;p&gt;Questo è ciò che apprezzo di più di questa integrazione. Non riscrivi il tuo agente. Lo avvolgi semplicemente:&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;Tutto qui. La stessa logica che hai testato localmente è ciò che gira in produzione. La piattaforma la avvolge nell&amp;rsquo;infrastruttura di gestione delle sessioni, identità e scaling.&lt;/p&gt;
&lt;h2 id="due-protocolli-un-agente"&gt;Due Protocolli, Un Agente&lt;/h2&gt;
&lt;p&gt;Gli Hosted Agents supportano due stili di endpoint:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Responses&lt;/strong&gt; (&lt;code&gt;/responses&lt;/code&gt;) — compatibile con OpenAI, gestisce la cronologia delle conversazioni e lo streaming. Buon default per agenti a forma di chat.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Invocations&lt;/strong&gt; (&lt;code&gt;/invocations&lt;/code&gt;) — tu definisci lo schema richiesta/risposta. Buono per workflow non conversazionali.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se stai costruendo qualcosa che assomiglia a una conversazione, inizia con Responses. Se stai costruendo un agente a forma di API che prende input strutturato e restituisce output strutturato, Invocations ti dà la flessibilità.&lt;/p&gt;
&lt;h2 id="il-flusso-di-deployment-con-azd"&gt;Il Flusso di Deployment con &lt;code&gt;azd&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Quando esegui &lt;code&gt;azd up&lt;/code&gt; con un agente MAF:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crea opzionalmente un progetto Foundry e distribuisce un modello&lt;/li&gt;
&lt;li&gt;Impacchetta il tuo codice e carica un&amp;rsquo;immagine su Azure Container Registry&lt;/li&gt;
&lt;li&gt;Provvede compute dall&amp;rsquo;immagine ACR&lt;/li&gt;
&lt;li&gt;Assegna un Entra ID dedicato all&amp;rsquo;agente&lt;/li&gt;
&lt;li&gt;Espone un endpoint stabile (&lt;code&gt;https://{project_endpoint}/agents/{agent_name}&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Gestisce tutto il resto da quel punto in poi&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Le sessioni persistono per un massimo di 30 giorni. Il compute inattivo viene deprovisionato dopo 15 minuti e ripristinato trasparentemente alla successiva richiesta. Dal punto di vista dell&amp;rsquo;agente, nulla è cambiato.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;La distanza tra &amp;ldquo;funzionante localmente&amp;rdquo; e &amp;ldquo;in esecuzione in produzione&amp;rdquo; è stata storicamente lunga e dolorosa per gli agenti AI. Foundry Hosted Agents + MAF riduce significativamente questo divario. Se hai già un agente locale costruito con Agent Framework, vale la pena provarlo oggi.&lt;/p&gt;
&lt;p&gt;Il team dice che GA arriverà presto — questo è attualmente in preview. Consulta i &lt;a href="https://learn.microsoft.com/en-us/agent-framework/hosting/foundry-hosted-agent"&gt;documenti di integrazione MAF Hosted Agent&lt;/a&gt; e gli &lt;a href="https://github.com/microsoft/agent-framework/tree/main/dotnet/samples/04-hosting/FoundryHostedAgents"&gt;esempi .NET&lt;/a&gt; per iniziare.&lt;/p&gt;
&lt;p&gt;Articolo originale: &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><item><title>Foundry Local 1.1: Trascrizione in Tempo Reale, Embeddings e l'API di Risposta</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-local-11-transcription-embeddings-responses-api/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-local-11-transcription-embeddings-responses-api/</guid><description>Foundry Local 1.1 aggiunge la trascrizione live dal microfono, gli embeddings di testo e il supporto per l'API di Risposta — tutto in esecuzione locale senza dipendenza dal cloud, senza latenza di rete, senza costi per token.</description><content:encoded>&lt;p&gt;Foundry Local 1.0 ha dimostrato il concetto: eseguire modelli di IA localmente su Windows, macOS (Apple Silicon) e Linux x64 con un SDK adatto agli sviluppatori. La versione 1.1 aggiunge tre funzionalità che coprono molti casi d&amp;rsquo;uso reali in produzione.&lt;/p&gt;
&lt;h2 id="trascrizione-audio-in-diretta"&gt;Trascrizione Audio in Diretta&lt;/h2&gt;
&lt;p&gt;La nuova funzionalità più significativa: streaming di riconoscimento vocale in tempo reale direttamente dal microfono. Sottotitoli, interfacce vocali, trascrizione di riunioni, strumenti di accessibilità — tutto eseguito localmente senza alcuna dipendenza dal cloud.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;API è basata su sessioni e trasmette i risultati man mano che arrivano, con marcatori &lt;code&gt;is_final&lt;/code&gt; per distinguere il testo intermedio da quello finalizzato. Disponibile per tutti i binding linguistici: JavaScript, C#, Python e Rust.&lt;/p&gt;
&lt;p&gt;Carica un modello vocale in streaming dal catalogo, crea una sessione con le impostazioni audio (frequenza di campionamento, canali, lingua), avviala, invia blocchi audio PCM grezzi e consuma lo stream asincrono di risultati. Il post contiene esempi completi in Python e C#.&lt;/p&gt;
&lt;h2 id="embeddings-di-testo"&gt;Embeddings di Testo&lt;/h2&gt;
&lt;p&gt;Ricerca semantica, pipeline RAG, clustering, corrispondenza di similarità — tutto questo richiede embeddings. Foundry Local 1.1 aggiunge il supporto per i modelli di embedding così da poter generare vettori localmente dallo stesso SDK, senza inviare dati a un endpoint cloud.&lt;/p&gt;
&lt;p&gt;Per le applicazioni in cui la residenza dei dati è importante o dove si elabora contenuto sensibile, la generazione locale di embeddings è una capacità significativa.&lt;/p&gt;
&lt;h2 id="api-di-risposta"&gt;API di Risposta&lt;/h2&gt;
&lt;p&gt;Foundry Local supporta ora la &lt;a href="https://platform.openai.com/docs/api-reference/responses"&gt;API di Risposta&lt;/a&gt; — l&amp;rsquo;interfaccia strutturata progettata per le interazioni agentiche. Questo aggiunge:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chiamata agli strumenti&lt;/strong&gt; — consente ai modelli in esecuzione locale di invocare strumenti che definisci tu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Input multimodale visione-linguaggio&lt;/strong&gt; — passa immagine + testo a modelli capaci di visione&lt;/li&gt;
&lt;li&gt;Compatibile con la forma API standard, quindi gli agenti esistenti che puntano all&amp;rsquo;API di Risposta di OpenAI funzionano contro modelli locali&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="miglioramenti-alle-dimensioni-del-pacchetto"&gt;Miglioramenti alle Dimensioni del Pacchetto&lt;/h2&gt;
&lt;p&gt;Due modifiche riducono la dimensione del pacchetto JavaScript:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Il layer FFI &lt;code&gt;koffi&lt;/code&gt; è stato sostituito con un addon C Node-API personalizzato&lt;/li&gt;
&lt;li&gt;Il provider di esecuzione WebGPU viene distribuito come plugin separato, così le applicazioni che non necessitano di accelerazione GPU non ne pagano il costo in termini di dimensioni&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L&amp;rsquo;SDK C# ora punta a versioni di framework inferiori per una compatibilità .NET più ampia.&lt;/p&gt;
&lt;h2 id="perché-è-importante"&gt;Perché È Importante&lt;/h2&gt;
&lt;p&gt;Le tre funzionalità insieme — trascrizione, embeddings, chiamata agli strumenti — coprono i blocchi di costruzione fondamentali di molte applicazioni di IA. Eseguirli localmente significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nessun internet richiesto&lt;/li&gt;
&lt;li&gt;Nessun costo per token&lt;/li&gt;
&lt;li&gt;Nessun dato lascia la macchina&lt;/li&gt;
&lt;li&gt;Latenza costante indipendentemente dalle condizioni di rete&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Foundry Local è la scelta giusta per scenari edge, carichi di lavoro sensibili alla privacy, applicazioni offline, o qualsiasi cosa in cui si voglia evitare la dipendenza dal cloud durante lo sviluppo.&lt;/p&gt;
&lt;p&gt;Post originale: &lt;a href="https://devblogs.microsoft.com/foundry/foundry-local-v1-1/"&gt;Foundry Local 1.1: Live Transcription, Embeddings, and Responses API&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>GPT-5.5 È Arrivato su Azure Foundry — Cosa Devono Sapere i Sviluppatori .NET</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/</guid><description>GPT-5.5 è generalmente disponibile in Microsoft Foundry. La progressione da GPT-5 a 5.5, cosa è realmente migliorato e come iniziare a usarlo nei tuoi agenti oggi.</description><content:encoded>&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/gpt-55-foundry-ga-what-dotnet-developers-need-to-know/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Microsoft ha appena annunciato che &lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;GPT-5.5 è generalmente disponibile in Microsoft Foundry&lt;/a&gt;. Se stai costruendo agenti su Azure, questo è l&amp;rsquo;aggiornamento che stavi aspettando.&lt;/p&gt;
&lt;h2 id="la-progressione-di-gpt-5"&gt;La progressione di GPT-5&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-5&lt;/strong&gt;: ha unificato ragionamento e velocità in un unico sistema&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.4&lt;/strong&gt;: ragionamento multi-step più solido, capacità agentiche per l&amp;rsquo;enterprise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-5.5&lt;/strong&gt;: ragionamento in contesto lungo più profondo, esecuzione agentica più affidabile, migliore efficienza dei token&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cosa-è-cambiato-davvero"&gt;Cosa è cambiato davvero&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Coding agentico migliorato&lt;/strong&gt;: GPT-5.5 mantiene il contesto su grandi codebase, diagnostica guasti architetturali e anticipa i requisiti di test. Il modello ragiona su &lt;em&gt;cos&amp;rsquo;altro&lt;/em&gt; influenza una correzione prima di agire.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Efficienza dei token&lt;/strong&gt;: Output di qualità superiore con meno token e meno tentativi. Costo e latenza direttamente inferiori in produzione.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analisi in contesto lungo&lt;/strong&gt;: Gestisce documenti estesi e cronologie multi-sessione senza perdere il filo.&lt;/p&gt;
&lt;h2 id="prezzi"&gt;Prezzi&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modello&lt;/th&gt;
&lt;th&gt;Input ($/M token)&lt;/th&gt;
&lt;th&gt;Input in cache&lt;/th&gt;
&lt;th&gt;Output ($/M token)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;$5,00&lt;/td&gt;
&lt;td&gt;$0,50&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;$30,00&lt;/td&gt;
&lt;td&gt;$3,00&lt;/td&gt;
&lt;td&gt;$180,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="perché-foundry-è-importante"&gt;Perché Foundry è importante&lt;/h2&gt;
&lt;p&gt;Foundry Agent Service permette di definire agenti in YAML o collegarli con Microsoft Agent Framework, GitHub Copilot SDK, LangGraph o OpenAI Agents SDK — ed eseguirli come agenti ospitati isolati con filesystem persistente, identità Microsoft Entra e prezzi scale-to-zero.&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="n"&gt;AIAgent&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aiProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AsAIAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;gpt-5.5&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Sei un assistente utile.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;MioAgente&amp;#34;&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;Consulta l&amp;rsquo;&lt;a href="https://azure.microsoft.com/en-us/blog/openais-gpt-5-5-in-microsoft-foundry-frontier-intelligence-on-an-enterprise-ready-platform/"&gt;annuncio completo&lt;/a&gt; per tutti i dettagli.&lt;/p&gt;</content:encoded></item><item><title>L'RFT di Foundry è ora più economico e intelligente — Ecco cosa è cambiato</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/</guid><description>Microsoft Foundry ha rilasciato tre aggiornamenti RFT questo mese: addestramento globale per o4-mini, nuovi valutatori di modello GPT-4.1 e una guida alle best practice che vi farà risparmiare ore di debugging.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-fine-tuning-april-2026-rft-graders/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Se state sviluppando app .NET che si basano su modelli fine-tunati, gli aggiornamenti Foundry di questo mese meritano la vostra attenzione. Il Reinforcement Fine-Tuning è diventato più accessibile e significativamente più economico.&lt;/p&gt;
&lt;p&gt;I dettagli completi sono nell&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-foundry-finetune-april-2026/"&gt;annuncio ufficiale&lt;/a&gt;, ma ecco il riassunto pratico.&lt;/p&gt;
&lt;h2 id="addestramento-globale-per-o4-mini"&gt;Addestramento Globale per o4-mini&lt;/h2&gt;
&lt;p&gt;o4-mini è il modello di riferimento per workload pesanti in ragionamento e agentici. La grande notizia: ora potete lanciare job di fine-tuning da più di 13 regioni Azure con tariffe di addestramento per token più basse rispetto all&amp;rsquo;addestramento Standard. Stessa infrastruttura, stessa qualità, maggiore copertura.&lt;/p&gt;
&lt;p&gt;Se il vostro team è distribuito geograficamente, questo conta. Non siete più vincolati a un pugno di regioni per addestrare.&lt;/p&gt;
&lt;p&gt;Ecco la chiamata API REST per avviare un job di addestramento globale:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -X POST &lt;span class="s2"&gt;&amp;#34;https://&amp;lt;your-resource&amp;gt;.openai.azure.com/openai/fine_tuning/jobs?api-version=2025-04-01-preview&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -H &lt;span class="s2"&gt;&amp;#34;api-key: &lt;/span&gt;&lt;span class="nv"&gt;$AZURE_OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -d &lt;span class="s1"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;model&amp;#34;: &amp;#34;o4-mini&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;training_file&amp;#34;: &amp;#34;&amp;lt;your-training-file-id&amp;gt;&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;method&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;type&amp;#34;: &amp;#34;reinforcement&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;reinforcement&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;grader&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;type&amp;#34;: &amp;#34;string_check&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;name&amp;#34;: &amp;#34;answer-check&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;input&amp;#34;: &amp;#34;{{sample.output_text}}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;reference&amp;#34;: &amp;#34;{{item.reference_answer}}&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;operation&amp;#34;: &amp;#34;eq&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;hyperparameters&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;n_epochs&amp;#34;: 2,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;compute_multiplier&amp;#34;: 1.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; &amp;#34;trainingType&amp;#34;: &amp;#34;globalstandard&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quel flag &lt;code&gt;trainingType: globalstandard&lt;/code&gt; è la differenza chiave.&lt;/p&gt;
&lt;h2 id="nuovi-valutatori-di-modello-famiglia-gpt-41"&gt;Nuovi Valutatori di Modello: Famiglia GPT-4.1&lt;/h2&gt;
&lt;p&gt;I valutatori definiscono il segnale di ricompensa contro cui il vostro modello ottimizza. Finora, i valutatori basati su modello erano limitati a un insieme più ristretto di modelli. Ora avete tre nuove opzioni: GPT-4.1, GPT-4.1-mini e GPT-4.1-nano.&lt;/p&gt;
&lt;p&gt;Quando dovreste usare valutatori di modello invece di quelli deterministici? Quando l&amp;rsquo;output del vostro task è aperto, quando avete bisogno di punteggio parziale su più dimensioni, o quando state costruendo workflow agentici dove la correttezza delle chiamate agli strumenti dipende dal contesto semantico.&lt;/p&gt;
&lt;p&gt;Il punto è che la strategia a livelli è pratica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-nano&lt;/strong&gt; per le iterazioni iniziali. Basso costo, cicli di feedback rapidi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1-mini&lt;/strong&gt; una volta che la vostra rubrica di valutazione è stabile e avete bisogno di maggiore fedeltà.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPT-4.1&lt;/strong&gt; per la valutazione in produzione o rubriche complesse dove ogni decisione di punteggio conta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Potete persino mescolare tipi di valutatori in un singolo job RFT. Usate string-match per la dimensione &amp;ldquo;risposta corretta&amp;rdquo; e un valutatore di modello per valutare la qualità del ragionamento. Questa flessibilità è onestamente ciò che lo rende utile per workload reali.&lt;/p&gt;
&lt;h2 id="la-trappola-del-formato-dati-rft"&gt;La Trappola del Formato Dati RFT&lt;/h2&gt;
&lt;p&gt;Questo fa inciampare molti. Il formato dati RFT è diverso da SFT. L&amp;rsquo;ultimo messaggio in ogni riga deve avere il ruolo User o Developer — non Assistant. La risposta attesa va in una chiave di livello superiore come &lt;code&gt;reference_answer&lt;/code&gt; che il valutatore referenzia direttamente.&lt;/p&gt;
&lt;p&gt;Se stavate facendo supervised fine-tuning e volete passare a RFT, dovete ristrutturare i vostri dati di addestramento. Non saltate questo passaggio o i vostri job falliranno silenziosamente.&lt;/p&gt;
&lt;h2 id="perché-questo-è-importante-per-gli-sviluppatori-net"&gt;Perché Questo È Importante per gli Sviluppatori .NET&lt;/h2&gt;
&lt;p&gt;Se state chiamando modelli fine-tunati dalle vostre app .NET tramite l&amp;rsquo;SDK Azure OpenAI, un addestramento più economico significa che potete iterare in modo più aggressivo. Le opzioni dei valutatori di modello significano che potete fare fine-tuning per task sfumati — non solo scenari di corrispondenza esatta. E la guida alle best practice su &lt;a href="https://github.com/microsoft-foundry/fine-tuning/blob/main/Demos/Agentic_RFT_PrivatePreview/RFT_Best_Practice.md"&gt;GitHub&lt;/a&gt; vi farà risparmiare tempo reale di debugging.&lt;/p&gt;
&lt;p&gt;Iniziate in piccolo. Da dieci a cento campioni. Valutatore semplice. Validate il ciclo. Poi scalate.&lt;/p&gt;</content:encoded></item><item><title>Collega i tuoi server MCP su Azure Functions ai Foundry Agents — Ecco come</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/</guid><description>Costruisci il tuo server MCP una volta, distribiscilo su Azure Functions e collegalo agli agenti Microsoft Foundry con autenticazione adeguata. I tuoi strumenti funzionano ovunque — VS Code, Cursor, e ora agenti AI aziendali.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-agents-mcp-servers-azure-functions/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ecco cosa adoro dell&amp;rsquo;ecosistema MCP: costruisci il tuo server una volta e funziona ovunque. VS Code, Visual Studio, Cursor, ChatGPT — ogni client MCP può scoprire e utilizzare i tuoi strumenti. Ora, Microsoft sta aggiungendo un altro consumatore a quella lista: gli agenti Foundry.&lt;/p&gt;
&lt;p&gt;Lily Ma del team Azure SDK &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;ha pubblicato una guida pratica&lt;/a&gt; su come collegare server MCP distribuiti su Azure Functions con gli agenti Microsoft Foundry. Se hai già un server MCP, questo è puro valore aggiunto — nessuna ricostruzione necessaria.&lt;/p&gt;
&lt;h2 id="perché-questa-combinazione-ha-senso"&gt;Perché questa combinazione ha senso&lt;/h2&gt;
&lt;p&gt;Azure Functions ti offre infrastruttura scalabile, autenticazione integrata e fatturazione serverless per ospitare server MCP. Microsoft Foundry ti dà agenti AI che possono ragionare, pianificare e agire. Collegare i due significa che i tuoi strumenti personalizzati — interrogare un database, chiamare un&amp;rsquo;API aziendale, eseguire logica di validazione — diventano capacità che gli agenti AI aziendali possono scoprire e utilizzare autonomamente.&lt;/p&gt;
&lt;p&gt;Il punto chiave: il tuo server MCP resta lo stesso. Stai semplicemente aggiungendo Foundry come un altro consumatore. Gli stessi strumenti che funzionano nel tuo setup VS Code ora alimentano un agente AI con cui il tuo team o i clienti interagiscono.&lt;/p&gt;
&lt;h2 id="opzioni-di-autenticazione"&gt;Opzioni di autenticazione&lt;/h2&gt;
&lt;p&gt;È qui che il post offre davvero valore. Quattro metodi di autenticazione a seconda del tuo scenario:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metodo&lt;/th&gt;
&lt;th&gt;Caso d&amp;rsquo;uso&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Basato su chiave&lt;/strong&gt; (predefinito)&lt;/td&gt;
&lt;td&gt;Sviluppo o server senza autenticazione Entra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Microsoft Entra&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Produzione con identità gestite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Passthrough identità OAuth&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Produzione dove ogni utente si autentica individualmente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Senza autenticazione&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Dev/test o solo dati pubblici&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Per la produzione, Microsoft Entra con identità dell&amp;rsquo;agente è il percorso consigliato. Il passthrough identità OAuth è per quando il contesto utente conta — l&amp;rsquo;agente chiede agli utenti di accedere, e ogni richiesta porta il token personale dell&amp;rsquo;utente.&lt;/p&gt;
&lt;h2 id="configurazione"&gt;Configurazione&lt;/h2&gt;
&lt;p&gt;Il flusso generale:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Distribuisci il tuo server MCP su Azure Functions&lt;/strong&gt; — esempi disponibili per &lt;a href="https://github.com/Azure-Samples/remote-mcp-functions-dotnet"&gt;.NET&lt;/a&gt;, Python, TypeScript e Java&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abilita l&amp;rsquo;autenticazione MCP integrata&lt;/strong&gt; sulla tua function app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ottieni l&amp;rsquo;URL del tuo endpoint&lt;/strong&gt; — &lt;code&gt;https://&amp;lt;FUNCTION_APP_NAME&amp;gt;.azurewebsites.net/runtime/webhooks/mcp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aggiungi il server MCP come strumento in Foundry&lt;/strong&gt; — naviga al tuo agente nel portale, aggiungi un nuovo strumento MCP, fornisci endpoint e credenziali&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Poi testalo nel playground dell&amp;rsquo;Agent Builder inviando un prompt che attiverebbe uno dei tuoi strumenti.&lt;/p&gt;
&lt;h2 id="la-mia-opinione"&gt;La mia opinione&lt;/h2&gt;
&lt;p&gt;La storia della composabilità qui sta diventando davvero forte. Costruisci il tuo server MCP una volta in .NET (o Python, TypeScript, Java), distribuiscilo su Azure Functions, e ogni client compatibile con MCP può usarlo — strumenti di codifica, app di chat, e ora agenti AI aziendali. È un pattern &amp;ldquo;scrivi una volta, usa ovunque&amp;rdquo; che funziona davvero.&lt;/p&gt;
&lt;p&gt;Per gli sviluppatori .NET nello specifico, l&amp;rsquo;&lt;a href="https://github.com/Azure-Samples/remote-mcp-functions-dotnet"&gt;estensione MCP di Azure Functions&lt;/a&gt; rende tutto semplice. Definisci i tuoi strumenti come Azure Functions, fai il deploy, e hai un server MCP di livello produzione con tutta la sicurezza e la scalabilità che Azure Functions offre.&lt;/p&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;Se hai strumenti MCP in esecuzione su Azure Functions, collegarli agli agenti Foundry è una vittoria rapida — i tuoi strumenti personalizzati diventano capacità AI aziendali con autenticazione adeguata e senza modifiche al codice del server.&lt;/p&gt;
&lt;p&gt;Leggi la &lt;a href="https://devblogs.microsoft.com/azure-sdk/give-your-foundry-agent-custom-tools-with-mcp-servers-on-azure-functions/"&gt;guida completa&lt;/a&gt; per istruzioni passo passo su ogni metodo di autenticazione, e consulta la &lt;a href="https://learn.microsoft.com/azure/azure-functions/functions-mcp-foundry-tools?tabs=entra%2Cmcp-extension%2Cfoundry"&gt;documentazione dettagliata&lt;/a&gt; per configurazioni di produzione.&lt;/p&gt;</content:encoded></item><item><title>Microsoft Foundry Marzo 2026 — GPT-5.4, Agent Service GA e il Refresh dell'SDK Che Cambia Tutto</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/</guid><description>L'aggiornamento di marzo 2026 di Microsoft Foundry è enorme: Agent Service raggiunge la GA, GPT-5.4 porta un ragionamento affidabile, l'SDK azure-ai-projects diventa stabile in tutti i linguaggi, e Fireworks AI porta i modelli aperti su Azure.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Questo post è stato tradotto automaticamente. Per la versione originale, &lt;a href="https://thedotnetblog.com/it/news/emiliano-montesdeoca/microsoft-foundry-march-2026-whats-new/"&gt;clicca qui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I post mensili &amp;ldquo;Novità in Microsoft Foundry&amp;rdquo; sono solitamente un mix di miglioramenti incrementali e occasionali funzionalità di rilievo. L&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;edizione di marzo 2026&lt;/a&gt;? Praticamente tutte funzionalità di rilievo. Foundry Agent Service raggiunge la GA, GPT-5.4 arriva in produzione, l&amp;rsquo;SDK riceve un importante rilascio stabile, e Fireworks AI porta l&amp;rsquo;inferenza di modelli aperti su Azure. Vediamo cosa conta per gli sviluppatori .NET.&lt;/p&gt;
&lt;h2 id="foundry-agent-service-è-pronto-per-la-produzione"&gt;Foundry Agent Service è pronto per la produzione&lt;/h2&gt;
&lt;p&gt;Questa è la grande notizia. Il runtime di agenti di nuova generazione è generalmente disponibile — costruito sull&amp;rsquo;API Responses di OpenAI, compatibile a livello di protocollo con gli agenti OpenAI, e aperto a modelli di diversi provider. Se state costruendo con l&amp;rsquo;API Responses oggi, migrare a Foundry aggiunge sicurezza enterprise, networking privato, RBAC di Entra, tracing completo e valutazione sulla vostra logica di agenti esistente.&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="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PromptAgentDefinition&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;project_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&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;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_PROJECT_ENDPOINT&amp;#34;&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;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DefaultAzureCredential&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="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;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_version&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;agent_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;my-enterprise-agent&amp;#34;&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;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PromptAgentDefinition&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;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&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;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&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="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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;Aggiunte chiave: networking privato end-to-end, espansione dell&amp;rsquo;autenticazione MCP (incluso il passthrough OAuth), anteprima di Voice Live per agenti voce-a-voce, e agenti ospitati in 6 nuove regioni.&lt;/p&gt;
&lt;h2 id="gpt-54--affidabilità-oltre-lintelligenza-pura"&gt;GPT-5.4 — affidabilità oltre l&amp;rsquo;intelligenza pura&lt;/h2&gt;
&lt;p&gt;GPT-5.4 non riguarda l&amp;rsquo;essere più intelligente. Riguarda l&amp;rsquo;essere più affidabile. Ragionamento più solido nelle interazioni lunghe, migliore aderenza alle istruzioni, meno fallimenti a metà workflow, e capacità integrate di computer use. Per gli agenti in produzione, quell&amp;rsquo;affidabilità conta molto più dei punteggi nei benchmark.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modello&lt;/th&gt;
&lt;th&gt;Prezzo (per M token)&lt;/th&gt;
&lt;th&gt;Ideale Per&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 (≤272K)&lt;/td&gt;
&lt;td&gt;$2.50 / $15 output&lt;/td&gt;
&lt;td&gt;Agenti in produzione, coding, workflow documentali&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Pro&lt;/td&gt;
&lt;td&gt;$30 / $180 output&lt;/td&gt;
&lt;td&gt;Analisi approfondita, ragionamento scientifico&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4 Mini&lt;/td&gt;
&lt;td&gt;Economico&lt;/td&gt;
&lt;td&gt;Classificazione, estrazione, chiamate leggere a strumenti&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La mossa intelligente è una strategia di routing: GPT-5.4 Mini gestisce il lavoro ad alto volume e bassa latenza mentre GPT-5.4 si occupa delle richieste con ragionamento pesante.&lt;/p&gt;
&lt;h2 id="lsdk-è-finalmente-stabile"&gt;L&amp;rsquo;SDK è finalmente stabile&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;SDK &lt;code&gt;azure-ai-projects&lt;/code&gt; ha rilasciato versioni stabili in tutti i linguaggi — Python 2.0.0, JS/TS 2.0.0, Java 2.0.0, e .NET 2.0.0 (1 aprile). La dipendenza da &lt;code&gt;azure-ai-agents&lt;/code&gt; è sparita — tutto vive sotto &lt;code&gt;AIProjectClient&lt;/code&gt;. Installate con &lt;code&gt;pip install azure-ai-projects&lt;/code&gt; e il pacchetto include &lt;code&gt;openai&lt;/code&gt; e &lt;code&gt;azure-identity&lt;/code&gt; come dipendenze dirette.&lt;/p&gt;
&lt;p&gt;Per gli sviluppatori .NET, questo significa un singolo pacchetto NuGet per l&amp;rsquo;intera superficie di Foundry. Basta destreggiarsi tra SDK di agenti separati.&lt;/p&gt;
&lt;h2 id="fireworks-ai-porta-i-modelli-aperti-su-azure"&gt;Fireworks AI porta i modelli aperti su Azure&lt;/h2&gt;
&lt;p&gt;Forse l&amp;rsquo;aggiunta più interessante dal punto di vista architetturale: Fireworks AI elabora oltre 13 trilioni di token al giorno a ~180K richieste/secondo, ora disponibile tramite Foundry. DeepSeek V3.2, gpt-oss-120b, Kimi K2.5, e MiniMax M2.5 al lancio.&lt;/p&gt;
&lt;p&gt;La vera storia è il &lt;strong&gt;bring-your-own-weights&lt;/strong&gt; — caricate pesi quantizzati o fine-tunati da qualsiasi luogo senza cambiare lo stack di serving. Deploy tramite serverless pay-per-token o throughput provisionato.&lt;/p&gt;
&lt;h2 id="altri-punti-salienti"&gt;Altri punti salienti&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phi-4 Reasoning Vision 15B&lt;/strong&gt; — ragionamento multimodale per grafici, diagrammi e layout di documenti&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluations GA&lt;/strong&gt; — valutatori pronti all&amp;rsquo;uso con monitoraggio continuo della produzione integrato in Azure Monitor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority Processing&lt;/strong&gt; (Preview) — corsia di calcolo dedicata per carichi di lavoro sensibili alla latenza&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Voice Live&lt;/strong&gt; — runtime voce-a-voce che si connette direttamente agli agenti Foundry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracing GA&lt;/strong&gt; — ispezione end-to-end delle tracce degli agenti con ordinamento e filtraggio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprecazione di PromptFlow&lt;/strong&gt; — migrazione a Microsoft Framework Workflows entro gennaio 2027&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conclusione"&gt;Conclusione&lt;/h2&gt;
&lt;p&gt;Marzo 2026 è un punto di svolta per Foundry. Agent Service GA, SDK stabili in tutti i linguaggi, GPT-5.4 per agenti di produzione affidabili, e inferenza di modelli aperti via Fireworks AI — la piattaforma è pronta per carichi di lavoro seri.&lt;/p&gt;
&lt;p&gt;Leggete il &lt;a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-mar-2026/"&gt;riepilogo completo&lt;/a&gt; e &lt;a href="https://learn.microsoft.com/azure/foundry/quickstarts/get-started-code"&gt;create il vostro primo agente&lt;/a&gt; per iniziare.&lt;/p&gt;</content:encoded></item><item><title>Azure DevOps MCP Server arriva in Microsoft Foundry: cosa significa per i tuoi agenti IA</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/azure-devops-mcp-server-microsoft-foundry/</guid><description>L'Azure DevOps MCP Server è ora disponibile in Microsoft Foundry. Collega i tuoi agenti IA direttamente ai workflow DevOps — work item, repo, pipeline — con pochi clic.</description><content:encoded>&lt;p&gt;MCP (Model Context Protocol) sta avendo il suo momento. Se hai seguito l&amp;rsquo;ecosistema degli agenti IA, probabilmente hai notato che i server MCP stanno spuntando ovunque — dando agli agenti la capacità di interagire con strumenti e servizi esterni attraverso un protocollo standardizzato.&lt;/p&gt;
&lt;p&gt;Ora l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;Azure DevOps MCP Server è disponibile in Microsoft Foundry&lt;/a&gt;, e questa è una di quelle integrazioni che ti fa pensare alle possibilità pratiche.&lt;/p&gt;
&lt;h2 id="cosa-sta-succedendo-realmente-qui"&gt;Cosa sta succedendo realmente qui&lt;/h2&gt;
&lt;p&gt;Microsoft ha già rilasciato l&amp;rsquo;Azure DevOps MCP Server come &lt;a href="https://devblogs.microsoft.com/devops/azure-devops-remote-mcp-server-public-preview"&gt;public preview&lt;/a&gt; — quello è il server MCP stesso. La novità è l&amp;rsquo;integrazione con Foundry. Ora puoi aggiungere l&amp;rsquo;Azure DevOps MCP Server ai tuoi agenti Foundry direttamente dal catalogo degli strumenti.&lt;/p&gt;
&lt;p&gt;Per chi non conosce ancora Foundry: è la piattaforma unificata di Microsoft per costruire e gestire applicazioni e agenti alimentati dall&amp;rsquo;IA su larga scala. Accesso ai modelli, orchestrazione, valutazione, deployment — tutto in un unico posto.&lt;/p&gt;
&lt;h2 id="la-configurazione"&gt;La configurazione&lt;/h2&gt;
&lt;p&gt;La configurazione è sorprendentemente semplice:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Nel tuo agente Foundry, vai su &lt;strong&gt;Add Tools&lt;/strong&gt; &amp;gt; &lt;strong&gt;Catalog&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Cerca &amp;ldquo;Azure DevOps&amp;rdquo;&lt;/li&gt;
&lt;li&gt;Seleziona l&amp;rsquo;Azure DevOps MCP Server (preview) e clicca su &lt;strong&gt;Create&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Inserisci il nome della tua organizzazione e connetti&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tutto qui. Il tuo agente ora ha accesso agli strumenti Azure DevOps.&lt;/p&gt;
&lt;h2 id="controllare-a-cosa-può-accedere-il-tuo-agente"&gt;Controllare a cosa può accedere il tuo agente&lt;/h2&gt;
&lt;p&gt;Questa è la parte che apprezzo: non sei bloccato con un approccio tutto-o-niente. Puoi specificare quali strumenti sono disponibili per il tuo agente. Quindi se vuoi che legga solo i work item ma non tocchi le pipeline, puoi configurarlo. Principio del minimo privilegio, applicato ai tuoi agenti IA.&lt;/p&gt;
&lt;p&gt;Questo conta per gli scenari enterprise dove non vuoi che un agente attivi accidentalmente una pipeline di deployment perché qualcuno gli ha chiesto di &amp;ldquo;aiutare con il release.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="perché-è-interessante-per-i-team-net"&gt;Perché è interessante per i team .NET&lt;/h2&gt;
&lt;p&gt;Pensa a cosa abilita nella pratica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Assistenti per la pianificazione degli sprint&lt;/strong&gt; — agenti che possono recuperare work item, analizzare dati di velocità e suggerire la capacità dello sprint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bot di code review&lt;/strong&gt; — agenti che capiscono il contesto della tua PR perché possono effettivamente leggere i tuoi repo e work item collegati&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Risposta agli incidenti&lt;/strong&gt; — agenti che possono creare work item, interrogare i deployment recenti e correlare bug con modifiche recenti&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Onboarding degli sviluppatori&lt;/strong&gt; — &amp;ldquo;Su cosa dovrei lavorare?&amp;rdquo; ottiene una risposta reale basata su dati reali del progetto&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Per i team .NET che già usano Azure DevOps per le loro pipeline CI/CD e la gestione dei progetti, avere un agente IA che può interagire direttamente con questi sistemi è un passo significativo verso un&amp;rsquo;automazione utile.&lt;/p&gt;
&lt;h2 id="il-quadro-più-ampio-di-mcp"&gt;Il quadro più ampio di MCP&lt;/h2&gt;
&lt;p&gt;Questo fa parte di una tendenza più ampia: i server MCP stanno diventando il modo standard in cui gli agenti IA interagiscono con il mondo esterno. Li vediamo per GitHub, Azure DevOps, database, API SaaS — e Foundry sta diventando l&amp;rsquo;hub dove tutte queste connessioni convergono.&lt;/p&gt;
&lt;p&gt;Se stai costruendo agenti nell&amp;rsquo;ecosistema .NET, vale la pena tenere d&amp;rsquo;occhio MCP. Il protocollo è standardizzato, gli strumenti stanno maturando, e l&amp;rsquo;integrazione Foundry lo rende accessibile senza dover configurare manualmente le connessioni server.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;Azure DevOps MCP Server in Foundry è in preview, quindi aspettati che si evolva. Ma il workflow principale è solido: connettere, configurare l&amp;rsquo;accesso agli strumenti e lasciare che i tuoi agenti lavorino con i tuoi dati DevOps. Se sei già nell&amp;rsquo;ecosistema Foundry, è a pochi clic. Provalo e vedi quali workflow puoi costruire.&lt;/p&gt;
&lt;p&gt;Consulta l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/devops/remote-mcp-server-preview-in-microsoft-foundry/"&gt;annuncio completo&lt;/a&gt; per la configurazione passo per passo e maggiori dettagli.&lt;/p&gt;</content:encoded></item><item><title>Dal laptop alla produzione: deploy di agenti IA su Microsoft Foundry con due comandi</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/deploy-ai-agents-foundry-azd-two-commands/</guid><description>L'Azure Developer CLI ora ha i comandi 'azd ai agent' che portano il tuo agente IA dallo sviluppo locale a un endpoint Foundry in produzione in pochi minuti. Ecco il workflow completo.</description><content:encoded>&lt;p&gt;Conosci quel divario tra &amp;ldquo;funziona sulla mia macchina&amp;rdquo; e &amp;ldquo;è in produzione e serve traffico&amp;rdquo;? Per gli agenti IA, quel divario è stato dolorosamente ampio. Devi provisionare risorse, fare il deploy dei modelli, configurare l&amp;rsquo;identità, impostare il monitoraggio — e questo è prima che qualcuno possa effettivamente chiamare il tuo agente.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;Azure Developer CLI ha appena reso tutto questo una &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;questione di due comandi&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="il-nuovo-workflow-azd-ai-agent"&gt;Il nuovo workflow &lt;code&gt;azd ai agent&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Lascia che ti mostri come funziona nella pratica. Hai un progetto di agente IA — diciamo un agente concierge d&amp;rsquo;hotel. Funziona in locale. Vuoi farlo girare su Microsoft Foundry.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent init
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd up
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tutto qui. Due comandi. &lt;code&gt;azd ai agent init&lt;/code&gt; genera l&amp;rsquo;infrastructure-as-code nel tuo repo, e &lt;code&gt;azd up&lt;/code&gt; provisiona tutto su Azure e pubblica il tuo agente. Ottieni un link diretto al tuo agente nel portale Foundry.&lt;/p&gt;
&lt;h2 id="cosa-succede-sotto-il-cofano"&gt;Cosa succede sotto il cofano&lt;/h2&gt;
&lt;p&gt;Il comando &lt;code&gt;init&lt;/code&gt; genera template Bicep reali e ispezionabili nel tuo repo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una &lt;strong&gt;Foundry Resource&lt;/strong&gt; (contenitore di livello superiore)&lt;/li&gt;
&lt;li&gt;Un &lt;strong&gt;Foundry Project&lt;/strong&gt; (dove vive il tuo agente)&lt;/li&gt;
&lt;li&gt;Configurazione del &lt;strong&gt;deployment del modello&lt;/strong&gt; (GPT-4o, ecc.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Managed Identity&lt;/strong&gt; con assegnazioni di ruoli RBAC appropriate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;azure.yaml&lt;/code&gt; per la mappa dei servizi&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent.yaml&lt;/code&gt; con metadati dell&amp;rsquo;agente e variabili d&amp;rsquo;ambiente&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il punto chiave: tutto questo è tuo. È Bicep versionato nel tuo repo. Puoi ispezionarlo, personalizzarlo e committarlo insieme al codice del tuo agente. Nessuna scatola nera magica.&lt;/p&gt;
&lt;h2 id="il-ciclo-interno-di-sviluppo"&gt;Il ciclo interno di sviluppo&lt;/h2&gt;
&lt;p&gt;Quello che mi piace davvero è l&amp;rsquo;esperienza di sviluppo locale. Quando stai iterando sulla logica dell&amp;rsquo;agente, non vuoi fare il redeploy ogni volta che cambi un prompt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo avvia il tuo agente in locale. Combinalo con &lt;code&gt;azd ai agent invoke&lt;/code&gt; per inviare prompt di test, e hai un ciclo di feedback stretto. Modificare codice, riavviare, invocare, ripetere.&lt;/p&gt;
&lt;p&gt;Il comando &lt;code&gt;invoke&lt;/code&gt; è anche intelligente nel routing — quando un agente locale è in esecuzione, lo punta automaticamente. Quando non lo è, va all&amp;rsquo;endpoint remoto.&lt;/p&gt;
&lt;h2 id="monitoraggio-in-tempo-reale"&gt;Monitoraggio in tempo reale&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità che mi ha convinto. Una volta che il tuo agente è in deploy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;azd ai agent monitor --follow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ogni richiesta e risposta che passa attraverso il tuo agente viene trasmessa al tuo terminale in tempo reale. Per il debug di problemi in produzione, non ha prezzo. Niente ricerche in Log Analytics, niente attese per l&amp;rsquo;aggregazione delle metriche — vedi cosa sta succedendo adesso.&lt;/p&gt;
&lt;h2 id="il-set-completo-dei-comandi"&gt;Il set completo dei comandi&lt;/h2&gt;
&lt;p&gt;Ecco il riferimento rapido:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comando&lt;/th&gt;
&lt;th&gt;Cosa fa&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Scaffold di un progetto agente Foundry con IaC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd up&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Provisiona risorse Azure e fa il deploy dell&amp;rsquo;agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent invoke&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Invia prompt all&amp;rsquo;agente remoto o locale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Esegue l&amp;rsquo;agente in locale per lo sviluppo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Streama log in tempo reale dall&amp;rsquo;agente pubblicato&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd ai agent show&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Controlla salute e stato dell&amp;rsquo;agente&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;azd down&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Pulisce tutte le risorse Azure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="perché-è-importante-per-gli-sviluppatori-net"&gt;Perché è importante per gli sviluppatori .NET&lt;/h2&gt;
&lt;p&gt;Anche se l&amp;rsquo;esempio nell&amp;rsquo;annuncio è basato su Python, la storia dell&amp;rsquo;infrastruttura è language-agnostic. Il tuo agente .NET ottiene lo stesso scaffolding Bicep, lo stesso setup di managed identity, la stessa pipeline di monitoraggio. E se stai già usando &lt;code&gt;azd&lt;/code&gt; per le tue app .NET Aspire o deployment Azure, si integra direttamente nel tuo workflow esistente.&lt;/p&gt;
&lt;p&gt;Il divario di deployment per gli agenti IA è stato uno dei maggiori punti di attrito nell&amp;rsquo;ecosistema. Passare da un prototipo funzionante a un endpoint di produzione con identità, networking e monitoraggio appropriati non dovrebbe richiedere una settimana di lavoro DevOps. Ora richiede due comandi e qualche minuto.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;azd ai agent&lt;/code&gt; è disponibile ora. Se hai rimandato il deployment dei tuoi agenti IA perché il setup dell&amp;rsquo;infrastruttura sembrava troppo lavoro, provalo. Consulta il &lt;a href="https://devblogs.microsoft.com/azure-sdk/azd-ai-agent-end-to-end/"&gt;walkthrough completo&lt;/a&gt; per la guida passo per passo inclusa l&amp;rsquo;integrazione di un&amp;rsquo;app chat frontend.&lt;/p&gt;</content:encoded></item><item><title>Foundry Agent Service è GA: Cosa conta davvero per chi costruisce agenti .NET</title><link>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/it/news/emiliano-montesdeoca/foundry-agent-service-ga-what-matters/</guid><description>Il Foundry Agent Service di Microsoft è appena andato in GA con networking privato, Voice Live, valutazioni di produzione e un runtime multi-modello aperto. Ecco cosa devi sapere.</description><content:encoded>&lt;p&gt;Siamo onesti — costruire un prototipo di agente IA è la parte facile. La parte difficile è tutto quello che viene dopo: metterlo in produzione con un adeguato isolamento di rete, eseguire valutazioni che significhino davvero qualcosa, gestire i requisiti di conformità e non rompere nulla alle 2 di notte.&lt;/p&gt;
&lt;p&gt;Il &lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;Foundry Agent Service è appena andato in GA&lt;/a&gt;, e questo rilascio è focalizzato come un laser su quel gap del &amp;ldquo;tutto quello che viene dopo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="costruito-sulla-responses-api"&gt;Costruito sulla Responses API&lt;/h2&gt;
&lt;p&gt;Il titolo: il Foundry Agent Service di nuova generazione è costruito sulla OpenAI Responses API. Se stai già costruendo con quel wire protocol, migrare a Foundry richiede modifiche minime al codice. Cosa guadagni: sicurezza enterprise, networking privato, RBAC Entra, tracing completo e valutazione — sopra la tua logica di agente esistente.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;architettura è intenzionalmente aperta. Non sei vincolato a un provider di modelli o a un framework di orchestrazione. Usa DeepSeek per la pianificazione, OpenAI per la generazione, LangGraph per l&amp;rsquo;orchestrazione — il runtime gestisce il livello di consistenza.&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="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AIProjectClient&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;azure.ai.projects.models&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;PromptAgentDefinition&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="k"&gt;with&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;DefaultAzureCredential&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;credential&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;AIProjectClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_PROJECT_ENDPOINT&amp;#34;&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;credential&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;credential&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;project_client&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;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_openai_client&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;openai_client&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="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;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;project_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create_version&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;agent_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;my-enterprise-agent&amp;#34;&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;definition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;PromptAgentDefinition&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;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&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;instructions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;You are a helpful assistant.&amp;#34;&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="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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;conversation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conversations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&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;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&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;conversation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;conversation&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&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="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;What are best practices for building AI agents?&amp;#34;&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;extra_body&lt;/span&gt;&lt;span class="o"&gt;=&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="s2"&gt;&amp;#34;agent_reference&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_reference&amp;#34;&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="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&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;blockquote&gt;
&lt;p&gt;Se vieni dal pacchetto &lt;code&gt;azure-ai-agents&lt;/code&gt;, gli agenti sono ora operazioni di prima classe su &lt;code&gt;AIProjectClient&lt;/code&gt; in &lt;code&gt;azure-ai-projects&lt;/code&gt;. Rimuovi la dipendenza standalone e usa &lt;code&gt;get_openai_client()&lt;/code&gt; per gestire le risposte.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="networking-privato-il-bloccante-enterprise-rimosso"&gt;Networking privato: il bloccante enterprise rimosso&lt;/h2&gt;
&lt;p&gt;Questa è la funzionalità che sblocca l&amp;rsquo;adozione enterprise. Foundry ora supporta networking privato completo end-to-end con BYO VNet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nessun egress pubblico&lt;/strong&gt; — il traffico dell&amp;rsquo;agente non tocca mai internet pubblico&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Iniezione di container/subnet&lt;/strong&gt; nella tua rete per comunicazione locale&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connettività degli strumenti inclusa&lt;/strong&gt; — server MCP, Azure AI Search, agenti dati Fabric operano tutti su percorsi privati&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L&amp;rsquo;ultimo punto è critico. Non sono solo le chiamate di inferenza a restare private — ogni invocazione di strumento e chiamata di retrieval resta anch&amp;rsquo;essa all&amp;rsquo;interno del perimetro della tua rete. Per i team che operano sotto policy di classificazione dei dati che vietano il routing esterno, questo era ciò che mancava.&lt;/p&gt;
&lt;h2 id="autenticazione-mcp-fatta-bene"&gt;Autenticazione MCP fatta bene&lt;/h2&gt;
&lt;p&gt;Le connessioni ai server MCP ora supportano l&amp;rsquo;intero spettro di pattern di autenticazione:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metodo di auth&lt;/th&gt;
&lt;th&gt;Quando usarlo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Basato su chiave&lt;/td&gt;
&lt;td&gt;Accesso condiviso semplice per strumenti interni all&amp;rsquo;organizzazione&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Agent Identity&lt;/td&gt;
&lt;td&gt;Servizio a servizio; l&amp;rsquo;agente si autentica come se stesso&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entra Managed Identity&lt;/td&gt;
&lt;td&gt;Isolamento per progetto; nessuna gestione delle credenziali&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OAuth Identity Passthrough&lt;/td&gt;
&lt;td&gt;Accesso delegato dall&amp;rsquo;utente; l&amp;rsquo;agente agisce per conto degli utenti&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;OAuth Identity Passthrough è quello interessante. Quando gli utenti devono concedere a un agente l&amp;rsquo;accesso ai propri dati personali — il loro OneDrive, la loro organizzazione Salesforce, un&amp;rsquo;API SaaS con scope per utente — l&amp;rsquo;agente agisce per loro conto con flussi OAuth standard. Nessuna identità di sistema condivisa che finge di essere tutti.&lt;/p&gt;
&lt;h2 id="voice-live-voce-a-voce-senza-lidraulica"&gt;Voice Live: voce a voce senza l&amp;rsquo;idraulica&lt;/h2&gt;
&lt;p&gt;Aggiungere la voce a un agente significava unire STT, LLM e TTS — tre servizi, tre hop di latenza, tre superfici di fatturazione, tutto sincronizzato a mano. &lt;strong&gt;Voice Live&lt;/strong&gt; collassa tutto in una singola API gestita con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rilevamento semantico dell&amp;rsquo;attività vocale e del fine turno (capisce il significato, non solo il silenzio)&lt;/li&gt;
&lt;li&gt;Soppressione del rumore e cancellazione dell&amp;rsquo;eco lato server&lt;/li&gt;
&lt;li&gt;Supporto barge-in (gli utenti possono interrompere a metà risposta)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le interazioni vocali passano attraverso lo stesso runtime dell&amp;rsquo;agente del testo. Stessi valutatori, stesse tracce, stessa visibilità dei costi. Per supporto clienti, servizio sul campo o scenari di accessibilità, questo sostituisce ciò che prima richiedeva una pipeline audio personalizzata.&lt;/p&gt;
&lt;h2 id="valutazioni-da-checkbox-a-monitoraggio-continuo"&gt;Valutazioni: da checkbox a monitoraggio continuo&lt;/h2&gt;
&lt;p&gt;Qui è dove Foundry diventa serio sulla qualità in produzione. Il sistema di valutazione ora ha tre livelli:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Valutatori pronti all&amp;rsquo;uso&lt;/strong&gt; — coerenza, rilevanza, fondatezza, qualità del retrieval, sicurezza. Connetti a un dataset o al traffico live e ottieni punteggi.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Valutatori personalizzati&lt;/strong&gt; — codifica la tua logica di business, standard di tono e regole di conformità specifiche del dominio.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Valutazione continua&lt;/strong&gt; — Foundry campiona il traffico di produzione live, esegue la tua suite di valutatori e mostra i risultati nei dashboard. Imposta alert di Azure Monitor per quando la fondatezza cala o le soglie di sicurezza vengono superate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tutto viene pubblicato in Azure Monitor Application Insights. Qualità dell&amp;rsquo;agente, salute dell&amp;rsquo;infrastruttura, costi e telemetria dell&amp;rsquo;applicazione — tutto in un unico posto.&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;eval_object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai_client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;evals&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&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;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Agent Quality Evaluation&amp;#34;&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;data_source_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;DataSourceConfigCustom&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="nb"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;custom&amp;#34;&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;item_schema&lt;/span&gt;&lt;span class="o"&gt;=&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="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;object&amp;#34;&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="s2"&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;string&amp;#34;&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="s2"&gt;&amp;#34;required&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;query&amp;#34;&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="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;include_sample_schema&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&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="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;testing_criteria&lt;/span&gt;&lt;span class="o"&gt;=&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="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;azure_ai_evaluator&amp;#34;&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="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;fluency&amp;#34;&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="s2"&gt;&amp;#34;evaluator_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;builtin.fluency&amp;#34;&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="s2"&gt;&amp;#34;initialization_parameters&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="s2"&gt;&amp;#34;deployment_name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AZURE_AI_MODEL_DEPLOYMENT_NAME&amp;#34;&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="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;data_mapping&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&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="s2"&gt;&amp;#34;query&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;{{item.query}}&amp;#34;&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="s2"&gt;&amp;#34;response&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;{{sample.output_text}}&amp;#34;&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="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&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;h2 id="sei-nuove-regioni-per-agenti-ospitati"&gt;Sei nuove regioni per agenti ospitati&lt;/h2&gt;
&lt;p&gt;Gli agenti ospitati sono ora disponibili in East US, North Central US, Sweden Central, Southeast Asia, Japan East e altre. Questo conta per i requisiti di residenza dei dati e per comprimere la latenza quando il tuo agente gira vicino alle sue fonti dati.&lt;/p&gt;
&lt;h2 id="perché-è-importante-per-gli-sviluppatori-net"&gt;Perché è importante per gli sviluppatori .NET&lt;/h2&gt;
&lt;p&gt;Anche se gli esempi di codice nell&amp;rsquo;annuncio GA sono Python-first, l&amp;rsquo;infrastruttura sottostante è language-agnostic — e l&amp;rsquo;SDK .NET per &lt;code&gt;azure-ai-projects&lt;/code&gt; segue gli stessi pattern. La Responses API, il framework di valutazione, il networking privato, l&amp;rsquo;auth MCP — tutto questo è disponibile da .NET.&lt;/p&gt;
&lt;p&gt;Se stavi aspettando che gli agenti IA passassero da &amp;ldquo;demo cool&amp;rdquo; a &amp;ldquo;posso davvero consegnare questo al lavoro&amp;rdquo;, questo rilascio GA è il segnale. Networking privato, autenticazione adeguata, valutazione continua e monitoraggio di produzione sono i pezzi che mancavano.&lt;/p&gt;
&lt;h2 id="per-concludere"&gt;Per concludere&lt;/h2&gt;
&lt;p&gt;Foundry Agent Service è disponibile ora. Installa l&amp;rsquo;SDK, apri &lt;a href="https://ai.azure.com"&gt;il portale&lt;/a&gt; e inizia a costruire. La &lt;a href="https://learn.microsoft.com/azure/foundry/quickstarts/get-started-code"&gt;guida quickstart&lt;/a&gt; ti porta da zero a un agente funzionante in pochi minuti.&lt;/p&gt;
&lt;p&gt;Per il deep-dive tecnico completo con tutti gli esempi di codice, consulta l&amp;rsquo;&lt;a href="https://devblogs.microsoft.com/foundry/foundry-agent-service-ga/"&gt;annuncio GA&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>