View a markdown version of this page

Crea un evento - 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à.

Crea un evento

Gli eventi sono le unità fondamentali di breve termine da cui le informazioni strutturate vengono estratte nella memoria a lungo termine in AgentCore Memoria. L'CreateEventoperazione consente di archiviare vari tipi di dati all'interno della AgentCore memoria, organizzati per attore e sessione. Gli eventi sono classificati all'interno della memoria in:

ActorId

Identifica l'entità associata all'evento, ad esempio gli utenti finali o le combinazioni agent/user

SessionId

Raggruppa gli eventi correlati, ad esempio una sessione di conversazione

L'CreateEventoperazione memorizza un nuovo evento immutabile all'interno di una sessione di memoria specificata. Gli eventi rappresentano singole informazioni che l'agente desidera ricordare, come messaggi di conversazione, azioni dell'utente o eventi di sistema.

Questa operazione è utile per:

  • Registrazione della cronologia delle conversazioni tra utenti, agenti e strumenti

  • Archiviazione delle interazioni e dei comportamenti degli utenti

  • Acquisizione degli eventi del sistema e dei cambiamenti di stato

  • Creazione di un registro cronologico delle attività all'interno di una sessione

Ad esempio di codice, vedi Scenario: un agente AI dell'assistenza clienti che utilizza AgentCore la memoria.

Nota

Se desideri inserire contenuti nella memoria a lungo termine senza conservarli come evento recuperabile a breve termine, utilizza invece l'IngestDataoperazione.

Tipi di payload degli eventi

Il payload parametro accetta un elenco di elementi del payload, consentendo di archiviare diversi tipi di dati in un singolo evento. I tipi di payload più comuni includono:

Conversazionale

Per archiviare messaggi di conversazione con ruoli (ad esempio, «utente» o «assistente») e contenuti.

JSON

Per archiviare JSON-formatted dati non conversazionali, come eventi comportamentali, registri delle attività o eventi di sistema, fino a 100 KB per ogni payload.

Blob

Per archiviare dati in formato binario, come immagini e documenti, o dati esclusivi del tuo agente, come i dati archiviati in formato JSON.

Nota

I payload conversazionali e JSON vengono estratti nella memoria a lungo termine. I payload BLOB vengono archiviati solo nella memoria a breve termine e non vengono estratti.

Poiché payload è un elenco, un singolo evento può contenere più di un elemento di payload e diversi tipi di payload. L'esempio seguente mostra il corpo di una richiesta JSON che memorizza un messaggio conversazionale, un registro delle attività JSON e un blob binario (un'immagine con codifica base64) in un unico evento:

Multi-payload Esempio: richiesta di evento

{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "Here's a photo of the camera I'm interested in." }, "role": "USER" } }, { "json": { "content": { "eventType": "product_viewed", "productId": "cam-9921", "category": "action-cameras", "priceUsd": 349.99 } } }, { "blob": "iVBORw0KGgoAAAANSUhEUg..." } ] }

Configurazione dell'estrazione

Utilizzate il extractionConfig parametro per configurare il comportamento dell'estrazione della memoria a lungo termine per questo evento. Utilizzate questo parametro per passare i valori delle variabili namespace personalizzate che il servizio sostituisce durante l'estrazione. namespaceTemplates

Variabili dello spazio dei nomi

Una mappa delle chiavi delle variabili namespace personalizzate in base ai relativi valori. Se hai definito variabili di namespace personalizzate con il namespaceKeys parametro durante la creazione della memoria, passa qui i loro valori in modo che il servizio possa risolvere la gerarchia dello spazio dei nomi per l'archiviazione di memoria a lungo termine. Tutte le chiavi e i valori devono essere in lettere minuscole.

L'esempio seguente mostra come passare valori personalizzati delle variabili namespace durante la creazione di un evento:

{ "memoryId": "mem-12345abcdef", "actorId": "user456", "sessionId": "session789", "eventTimestamp": 1692804206123, "payload": [ { "conversational": { "content": {"text": "I need help with my deployment."}, "role": "USER" } } ], "extractionConfig": { "namespaceVariables": { "orgname": "engineering", "teamname": "backend" } } }
Nota

Se i valori obbligatori extractionConfig sono mancanti o non validi, l'CreateEventoperazione ha comunque esito positivo e l'evento viene mantenuto nella memoria a breve termine. Tuttavia, l'estrazione della memoria a lungo termine potrebbe non essere avviata per le strategie interessate. Configura i log forniti per monitorare gli errori di estrazione.

Branching degli eventi

Il branch parametro consente di organizzare gli eventi tramite una ramificazione avanzata. Ciò è utile per scenari come la modifica di messaggi o percorsi di conversazione alternativi. Ad esempio, supponiamo di avere una conversazione di lunga durata e di renderti conto di essere interessato a esplorare una conversazione alternativa a partire da 5 messaggi fa. Potete utilizzare il branch parametro per iniziare una nuova conversazione partendo da quel messaggio, memorizzato nel nuovo ramo, in modo da tornare anche alla conversazione originale. E, più banalmente, questo è utile se si desidera consentire all'utente di modificare il messaggio più recente (nel caso in cui l'utente prema invio in anticipo o abbia un errore di battitura) e continuare la conversazione.

Quando si crea un ramo, si specifica:

name

Un nome descrittivo per la filiale, ad esempio «edited-conversation».

rootEventId

L'ID dell'evento da cui ha origine la filiale.

Ecco un esempio di creazione di un evento ramificato per rappresentare un messaggio modificato:

{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "I'm looking for a waterproof action camera for extreme sports." }, "role": "USER" } } ], "branch": { "name": "edited-conversation", "rootEventId": "evt-67890" } }