Come Sviluppare Applicazioni Agentiche su AWS
Come Sviluppare Applicazioni Agentiche su AWS
Le applicazioni agentiche stanno diventando lo standard con cui le aziende automatizzano processi complessi, non solo semplici task di generazione testo. AWS ha ridisegnato negli ultimi mesi l’intero stack per l’AI agentica, spostando il baricentro da Amazon Bedrock Agents (oggi in manutenzione) verso Amazon Bedrock AgentCore, affiancato da framework open source come Strands Agents. In questa guida vediamo pilastri architetturali, step di sviluppo, tool, osservabilità e gli errori più comuni da evitare, dal laptop del developer fino alla produzione su AWS.
Indice dei contenuti – Come Sviluppare Applicazioni Agentiche su AWS
- I pilastri di un’applicazione agentica su AWS
- Dal prototipo locale al deploy: gli step di sviluppo
- Tool e framework: cosa usare in ogni fase
- Monitoraggio e Osservabilità
- Funzionalità avanzate per agenti di produzione
- Errori comuni da evitare, dal locale ad AWS
- Conclusioni: correre al passo dell’AI con la formazione giusta
1. I pilastri di un’applicazione agentica su AWS
Cominciamo la nostra guida su “Come Sviluppare Applicazioni Agentiche su AWS”. Un’applicazione agentica non è un semplice wrapper attorno a un modello linguistico: è un sistema che ragiona, sceglie strumenti, mantiene contesto e agisce su sistemi esterni con permessi controllati. Su AWS, questo sistema si regge oggi su alcuni pilastri architetturali resi disponibili soprattutto tramite Amazon Bedrock AgentCore, la piattaforma agentica pensata per essere agnostica rispetto a framework e modello.
Runtime e isolamento delle sessioni.
Ogni sessione agentica gira in un ambiente isolato (una microVM dedicata), con supporto a esecuzioni lunghe fino a diverse ore e persistenza dello stato: l’agente può sospendersi a metà task e riprendere esattamente da dove si era fermato.
Identity: autenticazione e autorizzazione.
AgentCore Identity gestisce l’autenticazione in ingresso (chi può invocare l’agente, tramite SigV4 o token JWT/OIDC) e le credenziali in uscita verso servizi terzi, evitando che il codice applicativo gestisca segreti o token OAuth manualmente.
Gateway: esposizione sicura degli strumenti.
Il Gateway trasforma API esistenti, funzioni Lambda e server MCP in strumenti che l’agente può scoprire e invocare, fungendo da endpoint unico e sicuro senza integrazioni custom per ogni tool.
Memory: contesto a breve e lungo termine.
AgentCore Memory mantiene lo storico di una conversazione (memoria a breve termine) e informazioni persistenti su un utente o un dominio (memoria a lungo termine), con la possibilità recente di applicare controlli di accesso granulari basati su policy Cedar, cosicché ogni utente acceda solo ai propri dati.
Governance: policy e Guardrails.
Al perimetro del Gateway, le policy di AgentCore possono integrare Amazon Bedrock Guardrails per valutare in tempo reale input e output, bloccando prompt injection, contenuti dannosi o fughe di dati sensibili prima che raggiungano i sistemi a valle, indipendentemente dal grado di autonomia dell’agente.
Observability: visibilità end-to-end.
Metriche, log e trace distribuiti in formato OpenTelemetry permettono di seguire ogni fase del ciclo di ragionamento dell’agente, dalla scelta dello strumento all’esecuzione, fino alla risposta finale.
Questi pilastri lavorano insieme o in modo indipendente: si può usare il Gateway senza il Runtime gestito, oppure adottare solo Memory e Observability se l’orchestrazione è già gestita da un framework come Strands Agents, LangGraph o CrewAI. È un punto chiave per chi arriva da Bedrock Agents Classic, il servizio storico lanciato nel 2023: dal 30 luglio 2026 non è più aperto a nuovi clienti e il suo catalogo di modelli è congelato, quindi ogni nuovo progetto agentico su AWS va impostato direttamente su AgentCore.
2. Dal prototipo locale al deploy: gli step di sviluppo – Come Sviluppare Applicazioni Agentiche su AWS
Lo sviluppo di un’applicazione agentica su AWS segue tipicamente un percorso a stadi, pensato per validare la logica di business prima di investire in infrastruttura.
Fase 1: Prototipazione locale.
Si parte definendo modello, system prompt e strumenti in locale, tipicamente con un framework open source come Strands Agents (Python o TypeScript) o direttamente con l’AgentCore CLI, che offre un harness gestito: basta specificare modello, prompt e tool per ottenere subito un ciclo di ragionamento funzionante, senza scrivere codice di orchestrazione. In questa fase il modello può essere invocato tramite Amazon Bedrock oppure provider terzi, dato che sia AgentCore sia Strands sono agnostici rispetto al modello.
Fase 2: Aggiunta di strumenti e conoscenza.
Una volta validato il ciclo base, si collegano tool reali: chiamate API, funzioni Lambda, ricerca semantica su basi di conoscenza tramite Amazon Bedrock Knowledge Bases. Se il numero di strumenti cresce, conviene esporli tramite AgentCore Gateway e lasciare che l’agente li scopra tramite ricerca semantica, invece di descriverli tutti nel prompt di sistema.
Fase 3: Persistenza e memoria.
Si introduce AgentCore Memory per dare continuità alle conversazioni tra sessioni diverse e personalizzare le risposte in base allo storico dell’utente, oltre a valutazioni automatiche di qualità sulle risposte prodotte.
Fase 4: Hardening e sicurezza.
Si aggiungono AgentCore Identity per la gestione di credenziali e permessi, e le policy con Guardrails per filtrare input e output, così la sicurezza è applicata a livello di infrastruttura e non solo nel codice applicativo.
Fase 5: Deploy in produzione.
Con l’AgentCore CLI si esporta la configurazione dell’harness in codice basato su Strands e si effettua il deploy su AgentCore Runtime, con AWS CDK come gestore delle risorse infrastrutturali (il supporto a Terraform è annunciato in arrivo). Da questo momento l’agente gira in produzione con isolamento delle sessioni, autoscaling gestito e nessuna infrastruttura server da amministrare direttamente.
3. Tool e framework: cosa usare in ogni fase
Come Sviluppare Applicazioni Agentiche su AWS: proseguiamo. La scelta degli strumenti dipende dal livello di controllo che si vuole mantenere sull’orchestrazione.
Strands Agents SDK.
È l’SDK open source rilasciato da AWS, disponibile in Python e TypeScript con licenza Apache 2.0. Segue un approccio model-driven: pochi componenti (modello, system prompt, tool) bastano per ottenere un agente funzionante, mentre pattern multi-agente come Agent-as-Tool e Swarm permettono di orchestrare più agenti specializzati che collaborano. È già usato in produzione da team interni AWS come Amazon Q Developer e AWS Glue, oltre che da numerose aziende terze.
Amazon Bedrock AgentCore.
È la piattaforma gestita che ospita, mette in sicurezza e osserva gli agenti a prescindere dal framework scelto (Strands, LangGraph, LlamaIndex, CrewAI, Google ADK, OpenAI Agents SDK). Include Runtime, Gateway, Identity, Memory e Observability come servizi modulari, oltre al nuovo harness gestito e alla relativa CLI per portare un prototipo in produzione senza riscrivere l’orchestrazione.
Amazon Bedrock (modelli e Knowledge Bases).
Fornisce accesso ai modelli fondazionali (Anthropic, Amazon Nova e altri) e alle Knowledge Bases per il retrieval semantico, componente fondamentale per agenti che devono rispondere basandosi su documentazione aziendale.
Servizi di supporto: Lambda, API Gateway, DynamoDB, CloudWatch, IAM.
I tool esposti agli agenti sono spesso funzioni Lambda o API esistenti collegate tramite AgentCore Gateway; DynamoDB è comunemente usata per stato applicativo custom; IAM definisce i permessi minimi per ogni ruolo di esecuzione; CloudWatch raccoglie log, metriche e trace.
Infrastructure as Code.
AWS CDK è oggi il resource manager consigliato per il deploy dell’harness AgentCore e per l’intero stack (Cognito per l’identity provider, ruoli IAM, pipeline di observability), garantendo tracciabilità e ripetibilità delle configurazioni.
4. Monitoraggio e Osservabilità
La disciplina dell’osservabilità è ciò che distingue un prototipo da un’applicazione pronta per la produzione. AgentCore Observability offre visibilità in tempo reale su conteggio delle sessioni, latenza, utilizzo di token e tasso di errore, tutto consultabile nella dashboard GenAI Observability di Amazon CloudWatch, filtrabile per ID agente, ID sessione o intervallo temporale.
Il telemetry segue il protocollo OpenTelemetry: questo significa che gli stessi dati possono essere esportati verso backend terzi come Datadog, Grafana Cloud, Dynatrace o Langfuse senza dover riscrivere l’instrumentazione. Oltre alle metriche aggregate, i trace distribuiti mostrano passo dopo passo come l’agente ha ragionato, quali strumenti ha selezionato e in quale punto un flusso si è interrotto, utile per diagnosticare loop infiniti o fallimenti nell’invocazione dei tool.
Per attivare la dashboard completa è necessario abilitare CloudWatch Transaction Search (un’operazione una tantum per account e regione) e instrumentare il codice dell’agente con l’AWS Distro for OpenTelemetry (ADOT): framework come Strands, LangChain e CrewAI offrono già supporto nativo a OTEL e alle convenzioni semantiche GenAI, semplificando questo passaggio. È buona norma impostare allarmi CloudWatch su latenza e tasso di errore, così da essere avvisati automaticamente prima che un problema di produzione diventi visibile agli utenti finali.
5. Funzionalità avanzate per agenti di produzione
Quando un’applicazione agentica supera la fase di proof of concept, entrano in gioco funzionalità pensate specificamente per scalabilità e affidabilità in produzione.
- Orchestrazione multi-agente: pattern come Agent-as-Tool e Swarm in Strands Agents, oltre al supporto nativo al protocollo Agent-to-Agent (A2A), permettono a più agenti specializzati di collaborare e delegarsi compiti.
- Sessioni lunghe e persistenza dello stato: AgentCore Runtime supporta finestre di esecuzione fino a diverse ore, con la possibilità di esternalizzare lo stato locale (filesystem persistence) così un agente può sospendersi e riprendere esattamente da dove era arrivato.
- Esecuzione di codice in sandbox: AgentCore Code Interpreter consente agli agenti di scrivere ed eseguire codice in ambienti isolati e sicuri, utile per task analitici o di trasformazione dati.
- Accesso al browser: AgentCore Browser fornisce un ambiente gestito per agenti che devono navigare siti web ed eseguire azioni, con isolamento delle sessioni.
- Controllo degli accessi granulare sulla memoria: policy Cedar applicate al connettore Memory permettono di restringere l’accesso ai dati per singolo utente o namespace, spostando l’enforcement dal codice applicativo all’infrastruttura.
- Protocolli aperti: oltre a MCP e A2A, l’ecosistema Strands supporta integrazioni comunitarie per interfacce utente in tempo reale (AG-UI) e pagamenti agentici (x402), per agenti che devono esporre progresso all’utente o effettuare micropagamenti verso servizi terzi.
- Valutazioni di qualità automatiche: man mano che un prototipo matura, si possono aggiungere evaluation automatizzate per misurare la qualità delle risposte prima di promuovere una nuova versione dell’agente in produzione.
6. Errori comuni da evitare, dal locale ad AWS
Alcuni errori ricorrenti compaiono in quasi tutti i progetti agentici, indipendentemente dal settore. Conoscerli in anticipo fa risparmiare settimane di refactoring.
- Costruire subito su Bedrock Agents Classic: essendo ora in manutenzione, senza nuove funzionalità pianificate e con catalogo modelli congelato dal 30 luglio 2026, ogni nuovo progetto va impostato direttamente su AgentCore, non su Classic.
- Descrivere troppi strumenti nel prompt di sistema: quando i tool superano poche decine, i modelli faticano a scegliere correttamente; meglio usare la ricerca semantica dei tool offerta da AgentCore Gateway o dai tool nativi di Strands.
- Gestire manualmente token e credenziali nel codice applicativo: è la causa più comune di falle di sicurezza; AgentCore Identity va usato fin dalle prime fasi, non aggiunto a posteriori.
- Fidarsi ciecamente di un userId passato dal frontend: senza verifica tramite token JWT/OIDC, un client malevolo può impersonare un altro utente e accedere a memoria o sessioni non proprie.
- Saltare l’osservabilità in fase di prototipo: aggiungerla solo dopo un incidente in produzione significa non avere trace storici per capire cosa sia successo; va attivata da subito, anche in locale con log strutturati compatibili OTEL.
- Non abilitare Transaction Search e i log vended su CloudWatch: è la causa più frequente di dashboard di osservabilità vuote in produzione, anche quando l’instrumentazione del codice è corretta.
- Ignorare i Guardrails perché ‘l’agente è controllato dal nostro prompt’: i Guardrails applicati a livello di Gateway proteggono anche da prompt injection e output dannosi che il solo system prompt non può bloccare.
- Migrare in fretta e senza test comportamentali: per agenti con orchestratori custom o collaborazione multi-agente, una migrazione da Classic ad AgentCore richiede di verificare il comportamento reale, non solo una trasposizione letterale del prompt.
- Non separare ambienti di test e produzione: ogni configurazione impostata in fase di creazione può essere sovrascritta per singola invocazione: senza ambienti distinti si rischia di validare in produzione modifiche non testate.
7. Conclusioni: correre al passo dell’AI con la formazione giusta
Il mondo dell’AI agentica corre a una velocità che poche altre aree dell’IT hanno mai sperimentato: nel giro di pochi mesi un servizio cardine come Bedrock Agents è passato da riferimento del settore a soluzione in manutenzione, sostituito da un’architettura completamente nuova. Per i team IT, restare aggiornati non è più un’opzione ma una condizione necessaria per rimanere competitivi: le competenze su LLM, agenti e infrastrutture cloud vanno rinnovate con la stessa frequenza con cui evolvono i servizi stessi.
Innovaformazione supporta aziende e professionisti IT italiani nel colmare questo divario con percorsi formativi pratici sull’AI Generativa, disponibili nella categoria dedicata del sito (innovaformazione.net/categorie-corsi/ai-generativa/). Tra questi, il corso di sviluppo applicazioni LLM guida sviluppatori e team tecnici nella progettazione di applicazioni basate su modelli linguistici, dalle fondamenta fino ai pattern architetturali usati in produzione.
Sono disponibili anche percorsi su misura per aziende, personalizzabili in base allo stack tecnologico e agli obiettivi del team. I corsi si svolgono online in modalità classe virtuale, con calendario da concordare direttamente con i partecipanti, e possono essere finanziati tramite Fondimpresa o altri fondi interprofessionali, riducendo l’investimento diretto a carico dell’azienda.
Per richiedere un preventivo personalizzato o maggiori informazioni sui corsi disponibili:
Email: info@innovaformazione.net
Telefono: 347 1012275
Referente: Dario Carrassi
Per altri articoli tecnici consigliamo di navigare sul nostro blog a questo LINK.
Articoli correlati
Guida Muse Spark 1.3
Distributed Systems Patterns
Imparare SAP Apre Porte
Chi usa l’AI in Europa?
Vendere gratis su eBay
