View a markdown version of this page

Usa sessioni isolate per gli agenti - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa sessioni isolate per gli agenti

Amazon Bedrock AgentCore Runtime ti consente di isolare ogni sessione utente e di riutilizzare in modo sicuro il contesto in più chiamate in una sessione utente. L'isolamento delle sessioni è fondamentale per i carichi di lavoro degli agenti di intelligenza artificiale 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. Al termine 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 stateful: a differenza delle funzioni stateless, gli agenti di intelligenza artificiale mantengono uno stato contestuale complesso per tutto il ciclo di esecuzione, al di là della semplice cronologia dei messaggi per conversazioni a più turni. AgentCore Runtime preserva questo stato in modo sicuro all'interno di una sessione garantendo al contempo il completo isolamento tra i diversi utenti, consentendo esperienze personalizzate per gli agenti senza compromettere i limiti dei dati.

  • Operazioni con strumenti privilegiati: 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 queste operazioni sugli strumenti mantengano contesti di sicurezza adeguati e impedisce la condivisione delle credenziali o l'escalation delle autorizzazioni tra 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 Il runtime fornisce limiti di isolamento coerenti e deterministici indipendentemente dai modelli di esecuzione degli agenti, offrendo le proprietà di sicurezza prevedibili richieste per le implementazioni aziendali.

Nota

AgentCore non impone la mappatura tra sessione e utente: il backend del client deve mantenere la relazione tra gli utenti e i relativi ID di sessione. Inoltre, il backend del 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 best practice 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 del calcolo. 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 mantenere i dati del file system in tutti i stop/resume cicli di sessione, configura l'archiviazione delle sessioni, una directory persistente che sopravvive alla cessazione dell'elaborazione. 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 apprese o le informazioni importanti), usa AgentCore Memory. Questo servizio fornisce uno storage persistente appositamente progettato specificamente 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 effimeri. Le sessioni durano fino a 8 ore per ogni ciclo di vita su MicroVMS o fino a 14 giorni sulle istanze. Con queste sessioni, puoi creare flussi di lavoro agentici in più fasi, effettuando più chiamate allo stesso ambiente con ogni chiamata basata sul contesto delle interazioni precedenti. È possibile utilizzarli sia InvokeAgentRuntime per il ragionamento degli agenti che per l'esecuzione deterministica di comandi di shell all'InvokeAgentRuntimeCommandinterno della stessa sessione.

AgentCore Ciclo di vita della sessione di runtime

Creazione della sessione

Al primo richiamo 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 operano nella stessa sessione: un comando vede lo stesso contenitore, file system e ambiente dell'agente.

Stati della sessione

Lo stato della sessione è determinato dal ciclo di vita del calcolo e può essere uno dei seguenti:

  • Attivo: elaborazione di una richiesta di sincronizzazione, esecuzione di un comando o attività in background. Le chiamate di sincronizzazione e l'attività di esecuzione dei comandi vengono tracciate 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 chiamate future.

  • Interrotto: l'elaborazione (microVM) di cui è stato eseguito il provisioning per la sessione è stata terminata e la sessione è stata interrotta. Ciò può verificarsi a causa di inattività (impostazione predefinita 15 minuti), del raggiungimento della durata massima di elaborazione (impostazione predefinita 8 ore), di un'interruzione esplicita richiamando l'StopRuntimeSessionAPI o se il calcolo è considerato non integro in base ai controlli di integrità. La sessione torna ad Attiva alla chiamata successiva e viene eseguito il provisioning di un nuovo computer, con la stessa configurazione del ciclo di vita (ad esempio idle e maxLifetime che possono durare fino a altre 8 ore). RuntimeSessionTimeout La sessione stessa rimane valida fino all'eliminazione del Runtime ARN. AgentCore 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

Nota

Mentre il servizio fornisce o interrompe una sessione, una seconda operazione destinata alla stessa sessione restituisce un HTTP 409 () riutilizzabile. RetryableConflictException Session operation in progress, please retry Questa finestra è breve. Already-running le sessioni non sono interessate. Riprova con un breve backoff esponenziale.

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, ti assicuri che il contesto venga mantenuto durante tutta la conversazione, consentendo al tuo 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 indirizzate alla stessa MicroVM. L'intestazione dipende dal protocollo configurato dell'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

Stabilità della microVM: Amazon Bedrock AgentCore utilizza l'intestazione della sessione per indirizzare le richieste alla stessa istanza MicroVM. I clienti 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 avviamenti a freddo.

Per le specifiche del protocollo MCP, incluse le modalità stateless e stateful, vedi Gestione delle sessioni MCP e compatibilità delle microVM. Gestione delle sessioni MCP e persistenza delle microVM