Estendi i modelli di grandi linguaggi alimentati da Amazon SageMaker AI utilizzando il protocollo Model Context Protocol - Amazon Web Services (AWS)
Le organizzazioni che implementano agenti e sistemi basati su agenti spesso incontrano sfide come l'uso di più strumenti, il richiamo di funzioni e la gestione dei flussi di lavoro di chiamata del software. Un agente utilizza una chiamata a funzione per invocare un strumento esterno (come un API o un database) per eseguire azioni specifiche o recuperare informazioni che non possiede internamente. Questi strumenti vengono integrati come una chiamata API all'interno dell’agente stesso, portando a sfide nella scalabilità e nella riutilizzazione degli strumenti all’interno dell’azienda. I clienti che desiderano distribuire agenti su larga scala hanno bisogno di un modo coerente per integrare questi strumenti, che siano interni o esterni, indipendentemente dal framework di orchestrazione utilizzato o dalla funzione degli strumenti.
Protocollo Model Context (MCP)
Il Model Context Protocol (MCP) mira a standardizzare come questi canali, agenti, strumenti e dati del cliente possano essere utilizzati dagli agenti. Per i clienti, ciò si traduce direttamente in un’esperienza più fluida, coerente ed efficiente rispetto alla gestione di sistemi o agenti frammentati. Semplificando l’integrazione degli strumenti e standardizzandola, i clienti che costruiscono agenti possono concentrarsi ora su quali strumenti utilizzare e come utilizzarli, piuttosto che dedicare risorse alla scrittura del codice di integrazione personalizzata. In questo articolo esploreremo più in dettaglio l’architettura MCP.
Per l’implementazione MCP, è necessaria un’infrastruttura scalabile per ospitare i server e un ambiente per ospitare il modello di grandi linguaggi (LLM), che eseguirà le azioni con gli strumenti implementati dal server MCP.
Amazon SageMaker AI
Amazon SageMaker AI fornisce la possibilità di ospitare LLMs senza preoccuparsi della scalabilità o della gestione del lavoro pesante non differenziato. Puoi distribuire il tuo modello o LLM negli servizi Hosting di SageMaker AI e ottenere un endpoint utilizzabile per l’inferenza in tempo reale. Inoltre, puoi ospitare i server MCP nell’ambiente di calcolo della tua scelta su AWS, che include Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS) e AWS Lambda, in base al livello desiderato di servizio gestito—che tu voglia avere il completo controllo della macchina su cui si esegue il server o preferire di non occuparti del mantenimento e della gestione di questi server.
Raccomandati argomenti discussi in questo post
- Comprendere l’architettura MCP, perché utilizzare l’MCP rispetto all’implementazione di microservizi o API, e due modi popolari per implementare l’MCP tramite gli adattatori LangGraph:
- FastMCP per prototipi e casi d’uso semplici
- FastAPI per routing complesso e autenticazione
- Architettura consigliata per la distribuzione scalabile degli MCP
- Utilizzo di SageMaker AI con FastMCP per un rapido prototipo
- Implementazione del flusso di lavoro di un creditore MCP con LangGraph e SageMaker AI utilizzando FastAPI per il routing personalizzato
Comprendere il Protocollo MCP
Approfondiamo l’architettura MCP. Sviluppato da Anthropic come un protocollo aperto, il MCP fornisce un modo standardizzato per collegare i modelli di intelligenza artificiale a praticamente qualsiasi fonte di dati o strumento. Utilizzando un’architettura client-server, come illustrato nel grafico sottostante, il MCP aiuta gli sviluppatori a esporre i loro dati tramite server MCP leggeri, mentre costruiscono applicazioni di intelligenza artificiale come client MCP che si connettono a questi server.
L’MCP utilizza un’architettura client-server composta dai seguenti componenti:
- Host – Un programma o uno strumento AI che richiede l’accesso ai dati tramite il protocollo MCP, ad esempio Anthropic’s Claude Desktop, un ambiente di sviluppo integrato (IDE) o altre applicazioni AI
- Client – Client del protocollo che mantengono connessioni uno-a-uno con i server
- Server – Programmi leggeri che espongono funzionalità attraverso il protocollo MCP o agiscono come strumenti
- Dati – Fonti di dati locali, come database e sistemi di file, o sistemi esterni disponibili su internet attraverso API (web API) alle quali i server MCP possono connettersi
Sulla base di questi componenti, possiamo definire il protocollo MCP come la colonna vertebre della comunicazione che collega il client MCP al server, all’interno dell’architettura. Questo include l’insieme di regole e standard che definiscono come i client e i server dovrebbero interagire, i messaggi che scambiano (tramite JSON-RPC 2.0) e i ruoli diversi dei componenti.
Flusso di lavoro MCP e interazione con un LLM
Per comprendere meglio il flusso di lavoro MCP e come interagisce con un LLM, consideriamo un esempio di agente viaggi. Chiedi all’agente di “Prendere una vacanza di 5 giorni in Europa a gennaio e preferiamo il clima caldo”. L’applicazione host (che funziona come un client MCP) identifica la necessità di dati esterni e si connette tramite il protocollo a server specializzati MCP per voli, hotel e informazioni meteorologiche. Questi server restituiscono i dati rilevanti tramite MCP, che l’applicazione host integra nel prompt originale, fornendo un contesto arricchito al LLM per generare una risposta completa, migliorata per l’utente. La seguente figura illustra questo flusso di lavoro.
Quando utilizzare il protocollo Model Context invece degli microservizi o API
Il protocollo MCP rappresenta un notevole avanzamento rispetto alle tradizionali API monolitiche e alle complesse architetture di microservizi. Le API tradizionali spesso aggregano funzionalità insieme, portando a sfide dove l’espansione richiede l’aggiornamento completo del sistema, gli aggiornamenti comportano elevati rischi di fallimento generale e la gestione di diverse versioni per applicazioni diverse si complica. Sebbene i microservizi offrano maggiore modularità, richiedono di solito integrazioni separate, spesso complesse, per ogni servizio e un carico di gestione overhead intricato.
Il protocollo MCP supera questi limit