AWS ha recentemente lanciato Strands Agents, un SDK open source progettato per semplificare lo sviluppo e la distribuzione di agenti intelligenti basati su modelli linguistici avanzati. Questo strumento rappresenta una risposta alle sfide incontrate dai team di sviluppo nel creare agenti AI complessi utilizzando framework tradizionali, spesso caratterizzati da logiche di orchestrazione complesse e tempi di sviluppo prolungati.
Strands Agents adotta un approccio “model-driven”, che consente agli sviluppatori di definire un agente attraverso tre componenti principali: un modello linguistico, una serie di strumenti (tools) e un prompt. Questo approccio riduce significativamente la necessità di scrivere codice complesso per la gestione dei flussi di lavoro, permettendo una prototipazione e distribuzione più rapide degli agenti.
Il cuore del funzionamento di Strands Agents è il “loop agentico”, un ciclo iterativo in cui l’agente interagisce con il modello e gli strumenti fino al completamento del compito assegnato. Questo loop sfrutta le capacità avanzate dei modelli linguistici di ragionare, pianificare e selezionare gli strumenti più appropriati per ogni fase del processo.
I componenti chiave di Strands Agents sono:
- Modello (Model): Strands supporta una varietà di modelli linguistici, tra cui quelli disponibili su Amazon Bedrock, Anthropic, Meta (via Llama API), Ollama e altri tramite LiteLLM. Questo consente agli sviluppatori di scegliere il modello più adatto alle loro esigenze specifiche.
- Strumenti (Tools): Gli strumenti sono componenti che l’agente utilizza per interagire con l’ambiente esterno. Strands offre oltre 20 strumenti predefiniti, tra cui funzionalità per l’interazione con file, API e servizi AWS. Inoltre, è possibile integrare facilmente funzioni Python personalizzate come strumenti, utilizzando il decoratore @tool fornito da Strands.
- Prompt: Il prompt è l’input fornito all’agente, che definisce il compito da eseguire. Strands consente di fornire prompt in linguaggio naturale, semplificando la definizione delle attività da parte degli sviluppatori.
I vantaggi di Strands Agents sono:
- Semplicità e velocità: Rispetto ai framework tradizionali, Strands permette di sviluppare e distribuire agenti in tempi significativamente ridotti, passando da mesi a giorni o settimane.
- Flessibilità: La possibilità di scegliere tra diversi modelli linguistici e strumenti consente di adattare l’agente alle specifiche esigenze del progetto.
- Scalabilità: Strands supporta sia casi d’uso semplici che complessi, dalla fase di sviluppo locale fino alla distribuzione in produzione su larga scala.
- Collaborazione: Essendo un progetto open source, Strands beneficia del contributo di una comunità attiva, con aziende come Accenture, PwC, Meta e Anthropic che partecipano attivamente al suo sviluppo.
Strands Agents offre diverse opzioni per la distribuzione degli agenti in produzione:
- Monolitica: L’agente e gli strumenti vengono eseguiti nello stesso ambiente, semplificando la gestione e la distribuzione.
- Microservizi: L’agente e gli strumenti sono separati in servizi distinti, permettendo una maggiore modularità e scalabilità.
- Esecuzione isolata degli strumenti: Gli strumenti vengono eseguiti in ambienti separati, come AWS Lambda, mentre l’agente interagisce con essi tramite API, migliorando la sicurezza e la gestione delle risorse.
Inoltre, Strands supporta l’uso di più agenti in modalità collaborativa, grazie all’integrazione del protocollo Agent2Agent (A2A), che facilita la comunicazione e la cooperazione tra agenti diversi.
Per iniziare con Strands Agents, è possibile accedere al repository GitHub del progetto, dove sono disponibili documentazione, esempi di codice e strumenti per la configurazione dell’ambiente di sviluppo. AWS offre anche un server MCP (Model Context Protocol) preconfigurato, che semplifica l’integrazione degli strumenti con l’agente.