cool-solution — dev.blog
Tecnologie

Orchestrazione di agenti AI: pattern, framework e un esempio in ASP.NET Core

Un singolo agente AI va benissimo per un compito isolato: “scrivi una funzione che valida le email”. Ma il lavoro vero — capire una codebase, scrivere su più file, testare, gestire i casi limite — manda in crisi un agente solo: satura il contesto, perde le dipendenze, produce soluzioni fragili. La risposta del 2026 si chiama orchestrazione di agenti AI: un livello di coordinamento che fa lavorare insieme più agenti specializzati. I numeri raccontano un'adozione già mainstream, e sotto al marketing c'è un'architettura concreta che puoi montare oggi anche in .NET. Vediamo i pattern, i framework e un esempio in ASP.NET Core.

Un host ASP.NET Core con Microsoft Agent Framework: l'orchestratore (planner) delega a quattro agenti specializzati — architect, coder, tester e reviewer — con il modello IChatClient condiviso, palette Cool Solution.

🎼 Dall'agente singolo all'orchestra

L'orchestrazione di agenti AI è il livello che coordina più agenti specializzati per portare a termine compiti che nessun agente singolo gestisce da solo. È il direttore d'orchestra: ogni agente suona il suo strumento, l'orchestrazione fa in modo che suonino insieme. Non è teoria — le richieste sui sistemi multi-agente sono cresciute del 1.445% nel 2025 e il 57% delle organizzazioni ha già workflow multi-step in produzione.

Il motivo è pratico. Le sessioni degli agenti di coding sono passate da 4 a 23 minuti di media, con il 78% che tocca più file. Un solo agente su questa complessità perde il filo; dividere le responsabilità tra agenti con confini chiari è ciò che rende il risultato robusto. Non a caso si parla di un 90% di ingegneri che stanno spostando il baricentro dallo scrivere codice al dirigere, rivedere e ottimizzare agenti.

Perché il multi-agente è diventato mainstream (2025-2026)
Organizzazioni con workflow multi-step in produzione+57%Sessioni agent con edit su più file+78%Ingegneri orientati all'orchestrazione+90%Sviluppatori che si fidano del codice AI “as-is”+29%

Dati indicativi da report di settore su adozione e produttività degli agenti di coding.

🧩 I 4 pattern di orchestrazione

Non tutti i sistemi multi-agente sono uguali: l'architettura dipende dal caso d'uso. Nel 2026 dominano quattro pattern, e riconoscerli è il primo passo per non montare un castello dove basterebbe una pipeline.

La regola pratica che seguo: parti dal gerarchico (delega ordinata) e aggiungi complessità solo quando serve. Il collaborativo brilla sui problemi creativi, il competitivo quando vuoi il migliore tra più tentativi, l'ibrido è ciò che finisce in produzione perché mescola i tre a seconda del sotto-task.

  • Gerarchico: un planner scompone il task e delega a worker specializzati (code, test, review). È il più comune nello sviluppo software.
  • Collaborativo: agenti pari che condividono stato e si migliorano a vicenda, come una design review tra backend, frontend e DevOps.
  • Competitivo: più agenti tentano lo stesso task e un valutatore sceglie il risultato migliore per performance, leggibilità o sicurezza.
  • Ibrido: i sistemi reali combinano i pattern — un planner gerarchico che delega a team collaborativi con valutazione competitiva sugli output critici.
I quattro pattern a confronto
Quattro riquadri con i pattern di orchestrazione: gerarchico (un planner delega a tre worker), collaborativo (tre agenti pari interconnessi), competitivo (tre agenti verso un valutatore che sceglie il migliore) e ibrido (un planner combina un team collaborativo e una valutazione finale).

Gerarchico per la delega, collaborativo per la creatività, competitivo per l'ottimizzazione, ibrido per la produzione.

🛠️ I framework che contano nel 2026

Il panorama si è consolidato. Nel mondo Python comandano LangGraph (grafi di stato, lo standard di fatto per i workflow complessi, in produzione da Klarna a Cisco), CrewAI (agenti a ruoli, curva di apprendimento dolce) e AutoGen (l'approccio conversazionale nato in Microsoft Research). Per chi lavora su piattaforma .NET, invece, il riferimento è il Microsoft Agent Framework.

Il Microsoft Agent Framework è la sintesi ufficiale di AutoGen e Semantic Kernel: ne eredita le astrazioni semplici e le feature enterprise (stato di sessione, type safety, telemetria) e aggiunge workflow a grafo per l'orchestrazione esplicita. È arrivato alla 1.0 (GA) il 3 aprile 2026, quindi è la scelta naturale se il tuo stack è C# e ASP.NET Core.

Ecosistema Python vs piattaforma .NET

Python (LangGraph, CrewAI, AutoGen)

  • Ecosistema più ampio e maturo per la ricerca
  • LangGraph: grafi di stato, molte deployment enterprise
  • CrewAI: agenti a ruoli, prototipazione rapida
  • Ideale se il team vive già in Python/ML

.NET (Microsoft Agent Framework)

  • Un solo stack con la tua Web API ASP.NET Core
  • Sequential, Concurrent e Handoff nativi
  • Type safety, DI, telemetria e sessioni integrate
  • GA 1.0 da aprile 2026, successore di Semantic Kernel

Non c'è un vincitore assoluto: vince il framework che sta nello stack che già mantieni.

🗺️ Un metodo in 6 passi

Prima del codice, il metodo. Le squadre che portano davvero l'orchestrazione in produzione seguono sei mosse ripetibili, indipendenti dal framework. Saltarne una è il modo più comune per restare bloccati in un proof of concept che non scala.

Il cuore sono i passi 5 e 6: senza error recovery e senza observability hai un prototipo, non un sistema. È la differenza tra una demo che stupisce e qualcosa che regge il traffico reale.

Dalla scomposizione al deploy osservabile
  1. 01
    1 · Definisci lo scopeSpezza il lavoro in sotto-task atomici con input, output e criteri di successo chiari.
  2. 02
    2 · Progetta i ruoliUn agente per responsabilità: architettura, implementazione, test, review.
  3. 03
    3 · Scegli il patternGerarchico o ibrido per la maggior parte dei workflow di sviluppo.
  4. 04
    4 · Definisci la comunicazioneMessage passing e stato condiviso: l'output di un agente è l'input del successivo.
  5. 05
    5 · Aggiungi error recoveryAgenti di fallback, retry con backoff, valutatori che filtrano gli output.
  6. 06
    6 · Deploy con observabilityTracing, logging strutturato, metriche di latenza, successo e costo token.

🧰 Preparare il progetto ASP.NET Core

Passiamo alla pratica con il Microsoft Agent Framework. Creo una Web API minimal e aggiungo tre pacchetti: il framework degli agenti, le sue estensioni di hosting per ASP.NET Core e un provider per il modello. Le librerie di hosting registrano gli agenti nel container di dependency injection, così li risolvo come qualunque altro servizio.

Le astrazioni di Microsoft.Extensions.AI (`IChatClient`) tengono il codice indipendente dal provider: oggi OpenAI, domani Azure OpenAI o un modello locale via Ollama, cambiando una riga. I pacchetti dell'Agent Framework sono in preview, quindi li aggiungo con `--prerelease`.

Terminale · progetto ASP.NET Core e pacchetti
# nuova Web API minimal
dotnet new web -n DevCrew.Orchestration && cd DevCrew.Orchestration

# Agent Framework + hosting ASP.NET Core + provider del modello
dotnet add package Microsoft.Agents.AI --prerelease
dotnet add package Microsoft.Agents.AI.Hosting --prerelease
dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease

Hosting in ASP.NET Core · Microsoft Learn

Tre pacchetti: il framework degli agenti, l'hosting per ASP.NET Core e il provider del modello.

🧑‍🚀 Registrare gli agenti e il workflow

Ora il cuore dell'orchestrazione. Registro un `IChatClient` condiviso come keyed singleton, poi quattro agenti specializzati con `AddAIAgent`: architect, coder, tester, reviewer. Ognuno ha istruzioni mirate e riusa lo stesso modello tramite `chatClientServiceKey`.

Con `AddWorkflow` li compongo in una pipeline sequenziale — il pattern gerarchico nella sua forma più diretta: l'output di ogni agente diventa l'input del successivo. La chiamata `AddAsAIAgent()` espone l'intero workflow come se fosse un singolo agente, pronto da risolvere via DI.

Program.cs · registrare agenti e workflow
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Workflows;
using Microsoft.Extensions.AI;
using OpenAI;

var builder = WebApplication.CreateBuilder(args);

// 1) Modello condiviso da tutti gli agenti: un IChatClient keyed.
var apiKey = builder.Configuration["OpenAI:ApiKey"]!;
IChatClient chat = new OpenAIClient(apiKey)
    .GetChatClient("gpt-4o-mini")
    .AsIChatClient();
builder.Services.AddKeyedSingleton<IChatClient>("chat-model", chat);

// 2) Quattro agenti specializzati, uno per responsabilita'.
builder.AddAIAgent("architect",
    instructions: "Analizzi la codebase e proponi il piano.", chatClientServiceKey: "chat-model");
builder.AddAIAgent("coder",
    instructions: "Implementi il piano scrivendo il codice.", chatClientServiceKey: "chat-model");
builder.AddAIAgent("tester",
    instructions: "Scrivi ed esegui i test sul codice.", chatClientServiceKey: "chat-model");
builder.AddAIAgent("reviewer",
    instructions: "Rivedi qualita' e sicurezza, restituisci la versione finale.", chatClientServiceKey: "chat-model");

// 3) Workflow gerarchico: pipeline sequenziale dei quattro agenti.
builder.AddWorkflow("dev-crew", (sp, key) =>
{
    var architect = sp.GetRequiredKeyedService<AIAgent>("architect");
    var coder = sp.GetRequiredKeyedService<AIAgent>("coder");
    var tester = sp.GetRequiredKeyedService<AIAgent>("tester");
    var reviewer = sp.GetRequiredKeyedService<AIAgent>("reviewer");
    return AgentWorkflowBuilder.BuildSequential(key, [architect, coder, tester, reviewer]);
}).AddAsAIAgent();

Workflow orchestrations · Microsoft Learn

AddAIAgent registra i ruoli, AddWorkflow + BuildSequential li mette in pipeline, AddAsAIAgent espone tutto come un agente unico.

🔌 Esporre l'orchestrazione con un endpoint

Il workflow è un `AIAgent` registrato con la chiave `dev-crew`: lo espongo con un endpoint Minimal API risolvendolo dal container con `FromKeyedServices`. Nessun controller, nessuna cerimonia — una POST, un task, la risposta orchestrata.

In pratica il client manda l'obiettivo (“aggiungi l'endpoint di login con test”) e sotto al cofano architect, coder, tester e reviewer si passano il lavoro in sequenza. Il chiamante vede un solo risultato finale.

Program.cs · endpoint Minimal API
using Microsoft.Agents.AI;
using Microsoft.Extensions.DependencyInjection;

var app = builder.Build();

// L'orchestrazione e' un AIAgent keyed: la risolvo e la eseguo.
app.MapPost("/orchestrate", async (
    OrchestrationRequest body,
    [FromKeyedServices("dev-crew")] AIAgent crew) =>
{
    var run = await crew.RunAsync(body.Task);
    return Results.Ok(new { output = run.Text });
});

app.Run();

record OrchestrationRequest(string Task);
Minimal API + FromKeyedServices: l'intero team di agenti si invoca come un normale servizio DI.

🔀 Concurrent e handoff: gli altri due pattern

Cambiare pattern costa una riga. Con `BuildConcurrent` gli stessi input vanno a più agenti in parallelo e i risultati si aggregano: è il pattern competitivo/collaborativo, utile per brainstorming o per confrontare più implementazioni.

Con `CreateHandoffBuilderWith` costruisci invece il pattern handoff: un agente di triage instrada la richiesta allo specialista giusto, che può restituire il controllo. È il modello tipico del supporto clienti o dei sistemi esperti, dove la delega è dinamica e dipende dal contenuto.

Program.cs · concurrent e handoff
// Concorrente: stessi input a piu' agenti in parallelo, risultati aggregati.
var concurrent = AgentWorkflowBuilder.BuildConcurrent(
    [architect, coder, tester]);

// Handoff: un triage instrada, gli specialisti possono tornare al triage.
var handoff = AgentWorkflowBuilder.CreateHandoffBuilderWith(triage)
    .WithHandoffs(triage, [backendAgent, frontendAgent])
    .WithHandoffs([backendAgent, frontendAgent], triage)
    .Build();

Handoff orchestration · Microsoft Learn

Sequential, Concurrent, Handoff: lo stesso set di agenti, tre topologie diverse cambiando il builder.

🏭 Dalla demo alla produzione

Qui si separa il giocattolo dal sistema. Il primo tema è il costo: gli strumenti agentici possono valere 200-2.000 dollari al mese per ingegnere in token, e il multi-agente moltiplica la spesa perché cinque agenti su un task consumano cinque volte. Servono budget per workflow, tracciamento e contesti ottimizzati; il ROI c'è (2,5-3,5x in media, fino a 4-6x per i migliori) ma solo con i controlli giusti.

Il secondo è la sicurezza: il codice generato dall'AI ha 2,74 volte più vulnerabilità di quello umano, e nei sistemi multi-agente i difetti si compongono mentre gli agenti costruiscono l'uno sull'output dell'altro. Scanning nel pipeline, review umana sui cambiamenti critici, ambienti sandbox. E infine gli MCP server: sono lo strato di capacità (database, API, ricerca) che gli agenti usano senza sapere come funziona ogni tool — con oltre 5.000 server disponibili, sono diventati fondamentali.

Prototipo vs sistema di produzione

Prototipo

  • Nessun controllo di costo sui token
  • Output degli agenti usati senza validazione
  • Zero tracing: impossibile capire cosa è successo
  • Un fallimento blocca l'intero workflow

Produzione

  • Budget per workflow e ottimizzazione del contesto
  • Valutatori e review umana sugli output critici
  • Tracing, logging e metriche end-to-end
  • Fallback, retry con backoff, tassi di errore monitorati

I tassi di fallimento reali degli agenti stanno tra il 5% e il 15%: la produzione li mette in conto, il prototipo li ignora.

✅ In sintesi

L'orchestrazione di agenti AI non è un concetto futuro: è il modo in cui si costruisce software complesso nel 2026. Scegli il pattern in base al task, dai a ogni agente un confine chiaro, e investi in observability dal primo giorno. In .NET il Microsoft Agent Framework rende tutto questo poche righe dentro la tua Web API.

Il resto è ingegneria di sempre: misura, limita il blast radius di ogni agente, tieni l'umano in cabina di regia sulle decisioni critiche. Meno magia, più metodo.

Orchestrare agenti in ASP.NET Core: le mosse
  1. 01
    Scegli il patterngerarchico, collaborativo, competitivo o ibrido
  2. 02
    Progetto + NuGetAgent Framework + Hosting + provider
  3. 03
    Registra gli agentiAddAIAgent per ogni ruolo, IChatClient keyed
  4. 04
    Componi il workflowBuildSequential / Concurrent / Handoff
  5. 05
    Esponi l'endpointAddAsAIAgent + Minimal API MapPost
  6. 06
    Osserva e limitatracing, budget token, review umana

Domande frequenti su orchestrazione agenti AI

Quando conviene un sistema multi-agente invece di un singolo agente?

Quando il task richiede capacità distinte (scrivere codice + testare + revisionare), elaborazione parallela, error recovery con fallback, o coordinamento tra domini diversi. Per compiti isolati e ben definiti, un singolo agente resta la scelta più semplice ed economica.

Qual è la differenza tra i quattro pattern di orchestrazione?

Gerarchico: un planner delega a worker specializzati. Collaborativo: agenti pari che condividono stato. Competitivo: più agenti tentano lo stesso task e un valutatore sceglie. Ibrido: combina i tre a seconda del sotto-task ed è ciò che di solito finisce in produzione.

Che framework scelgo se lavoro in .NET?

Il Microsoft Agent Framework: è la sintesi ufficiale di AutoGen e Semantic Kernel, con orchestrazioni Sequential, Concurrent e Handoff native, dependency injection e telemetria. È GA dalla 1.0 (aprile 2026) e vive nello stesso stack della tua Web API ASP.NET Core, senza uscire da C#.

Posso orchestrare agenti dentro un'app ASP.NET Core esistente?

Sì. Le librerie di hosting registrano agenti e workflow nel container di dependency injection: registri gli agenti con AddAIAgent, componi il workflow con AddWorkflow e lo esponi come AIAgent con AddAsAIAgent. Da lì lo risolvi in un endpoint Minimal API come un normale servizio.

Come gestisco i fallimenti degli agenti in produzione?

Con circuit breaker, agenti di fallback e retry con backoff esponenziale, più valutatori che controllano gli output prima di passarli a valle. I tassi di fallimento reali stanno tipicamente tra il 5% e il 15%: vanno messi in conto e loggati per l'analisi.

Quanto costa un sistema multi-agente?

Il costo scala con il numero di agenti, perché ognuno consuma token: gli strumenti agentici possono valere 200-2.000 dollari al mese per ingegnere. Il ROI riportato è 2,5-3,5x in media e fino a 4-6x per i team migliori, ma solo con budget per workflow e ottimizzazione del contesto.

Parliamone

Se questo tema ti riguarda, scrivimi: confrontarsi su codice e AI è sempre tempo speso bene.

Altri articoli del blog

tips-claude-resume-luglio-2026.md10 luglio 2026claude-code-hooks-quality-gate-2026.md9 luglio 2026mcp-stdio-http-autenticazione-csharp-dotnet.md7 luglio 2026