View a markdown version of this page

Usa sessioni isolate per gli agenti - Amazon Bedrock AgentCore

Usa sessioni isolate per gli agenti

Amazon Bedrock AgentCore Runtime consente di isolare ogni sessione utente e riutilizzare il contesto in modo sicuro tra più chiamate in una sessione utente. L'isolamento delle sessioni è fondamentale per i carichi di lavoro degli agenti AI a causa delle loro caratteristiche operative uniche:

  • Separazione completa dell'ambiente di esecuzione: ogni sessione utente in AgentCore Runtime riceve una propria microVM dedicata con risorse di calcolo, memoria e file system isolate. Ciò impedisce all'agente di un utente di accedere ai dati di un altro utente. Dopo il completamento della sessione, l'intera MicroVM viene terminata e la memoria viene disinfettata per rimuovere tutti i dati della sessione, eliminando i rischi di contaminazione tra sessioni.

  • Processi di ragionamento basato sullo stato: a differenza delle funzioni stateless, gli agenti di intelligenza artificiale mantengono uno stato contestuale complesso durante tutto il loro ciclo di esecuzione, oltre alla semplice cronologia dei messaggi per le conversazioni a più turni. AgentCore Runtime preserva questo stato in modo sicuro all'interno di una sessione, garantendo al contempo l'isolamento completo tra i diversi utenti, consentendo esperienze personalizzate per gli agenti senza compromettere i limiti dei dati.

  • Operazioni privilegiate sugli strumenti: gli agenti di intelligenza artificiale eseguono operazioni privilegiate per conto degli utenti attraverso strumenti integrati che accedono a varie risorse. AgentCore Il modello di isolamento di Runtime garantisce che le operazioni di questi strumenti mantengano contesti di sicurezza adeguati e impediscano la condivisione delle credenziali o l'escalation delle autorizzazioni tra le diverse sessioni utente.

  • Sicurezza deterministica per processi non deterministici: il comportamento degli agenti di intelligenza artificiale può essere non deterministico a causa della natura probabilistica dei modelli di base. AgentCore Runtime fornisce limiti di isolamento coerenti e deterministici indipendentemente dai modelli di esecuzione degli agenti, offrendo le proprietà di sicurezza prevedibili necessarie per le implementazioni aziendali.

Nota

AgentCore non impone le mappature tra sessioni e utenti: il backend del client deve mantenere la relazione tra gli utenti e i relativi ID di sessione. Inoltre, il backend client dovrebbe implementare una logica per la gestione del ciclo di vita da utente a sessione, ad esempio il numero massimo di sessioni per utente. Per una guida completa sull'isolamento delle sessioni, consulta le migliori pratiche di sicurezza per Runtime. AgentCore

Comprendere il contesto effimero

Per impostazione predefinita, l'elaborazione (microVM) associata a una sessione è effimera. Tutti i dati archiviati in memoria o scritti su disco persistono solo per il ciclo di vita dell'elaborazione. Ciò include la cronologia delle conversazioni, le preferenze dell'utente, i risultati di calcolo intermedi e qualsiasi altra informazione sullo stato conservata dall'agente.

Per rendere persistenti i dati del file system tra i stop/resume cicli di sessione, configura l'archiviazione delle sessioni, una directory persistente che sopravvive alla terminazione del calcolo. Vedi Configurazioni del AgentCore file system per Runtime.

Per i dati strutturati che devono essere conservati oltre la durata della sessione (come la cronologia delle conversazioni degli utenti, le preferenze acquisite o informazioni importanti), usa AgentCore Memory. Questo servizio fornisce uno storage persistente appositamente progettato per i carichi di lavoro degli agenti, con funzionalità di memoria sia a breve che a lungo termine.

Conversazioni estese e flussi di lavoro in più fasi

A differenza delle tradizionali funzioni serverless che terminano dopo ogni richiesta, AgentCore supporta sessioni isolate supportate da calcoli temporanei della durata massima di 8 ore per ciclo di vita. Ciò semplifica la creazione di flussi di lavoro agentici in più fasi in quanto è possibile effettuare più chiamate allo stesso ambiente, con ogni chiamata basata sul contesto stabilito dalle interazioni precedenti. È possibile utilizzare sia InvokeAgentRuntime per il ragionamento degli agenti che per l'esecuzione deterministica dei comandi shell all'interno della InvokeAgentRuntimeCommand stessa sessione.

AgentCore Ciclo di vita della sessione di runtime

Creazione di sessioni

Alla prima chiamata viene creata una nuova sessione con un runtime univoco SessionId fornito dall'applicazione. AgentCore Runtime fornisce un ambiente di esecuzione dedicato (microVM) per ogni sessione. Il contesto viene preservato tra le chiamate alla stessa sessione. Entrambi InvokeAgentRuntime InvokeAgentRuntimeCommand funzionano sulla stessa sessione: un comando vede lo stesso contenitore, filesystem e ambiente dell'agente.

Stati della sessione

Lo stato della sessione è determinato dal ciclo di vita dell'elaborazione e può essere uno dei seguenti:

  • Attivo: elaborazione di una richiesta di sincronizzazione, esecuzione di un comando o esecuzione di attività in background. L'attività di chiamata di sincronizzazione e di esecuzione dei comandi viene tracciata automaticamente in base alle chiamate a una sessione di runtime. Le attività in background vengono comunicate dal codice dell'agente rispondendo con lo stato "" nei ping. HealthyBusy

  • Inattivo: quando non si elaborano richieste o attività in background. L'elaborazione della sessione è stata completata ma rimane disponibile per future chiamate.

  • Interrotta: l'elaborazione (microVM) fornita per la sessione è stata terminata e la sessione è stata interrotta. Ciò può verificarsi a causa dell'inattività (impostazione predefinita: 15 minuti), del raggiungimento della durata massima di elaborazione (impostazione predefinita: 8 ore), di un'interruzione esplicita mediante richiamo dell'StopRuntimeSessionAPI o se il calcolo non è considerato integro in base ai controlli di integrità. La sessione torna ad Active alla chiamata successiva e viene fornito un nuovo calcolo, con la stessa configurazione del ciclo di vita (ovvero idle e maxLifetime che possono durare fino a altre 8 ore). RuntimeSessionTimeout La sessione stessa rimane valida fino all'eliminazione del AgentCore Runtime ARN. Se il runtime è configurato con l'archiviazione della sessione, i dati del file system nel percorso di montaggio configurato persistono per tutti i cicli. stop/resume Vedi Configurazioni del file system per Runtime. AgentCore

Come usare le sessioni

Per utilizzare le sessioni in modo efficace:

  • Genera un ID di sessione univoco per ogni utente o conversazione con almeno 33 caratteri

  • Passa lo stesso ID di sessione per tutte le chiamate correlate

  • Usa ID di sessione diversi per utenti o conversazioni diversi

Esempio di utilizzo delle sessioni per una conversazione

# First message in a conversation response1 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "Tell me about AWS"}).encode() ) # Follow-up message in the same conversation reuses the runtimeSessionId. response2 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "How does it compare to other cloud providers"}).encode() )

Utilizzando lo stesso runtime SessionId per le chiamate correlate, vi assicurate che il contesto venga mantenuto per tutta la conversazione, permettendo all'agente di fornire risposte coerenti basate sulle interazioni precedenti.

Intestazioni di sessione per protocollo

Quando richiami gli agenti, includi l'intestazione di sessione appropriata per garantire che le richieste vengano instradate alla stessa microVM. L'intestazione dipende dal protocollo configurato dall'agente:

Protocollo Intestazione della sessione

MCP

Mcp-Session-Id

HTTP

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

A2A

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

AG-UI

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

Viscosità microVM: Amazon Bedrock AgentCore utilizza l'intestazione della sessione per indirizzare le richieste alla stessa istanza MicroVM. I client devono acquisire l'ID di sessione restituito nella risposta e includerlo in tutte le richieste successive per garantire l'affinità della sessione. Senza un ID di sessione coerente, ogni richiesta può essere indirizzata a una nuova microVM, il che può comportare una latenza aggiuntiva dovuta agli avvii a freddo.

Per le specifiche del protocollo MCP, incluse le modalità stateless e stateful, consulta Gestione delle sessioni MCP e rigidità delle microVM.