Questo documento mostra come risolvere i problemi comuni durante l'utilizzo di Memory Bank di Vertex AI Agent Engine.
Non sono stati generati ricordi
Il processo di generazione della memoria include un passaggio cruciale: determinare se le informazioni nei contenuti di origine sono significative al punto da essere conservate. Una risposta vuota indica che la procedura è stata eseguita correttamente, ma non sono state trovate informazioni che soddisfano i criteri per essere salvate. Se ti aspettavi che venissero generate delle creazioni, questa guida può aiutarti a identificare un potenziale errore o una configurazione errata.
Per risolvere il problema della mancata generazione dei ricordi, segui questi passaggi in ordine:
Controllare se è stata attivata la generazione di ricordi
Innanzitutto, verifica che la procedura di generazione dei ricordi sia stata effettivamente avviata. La generazione di memoria viene avviata richiamando GenerateMemories
(client.agent_engines.memories.generate(...)
).
Se utilizzi VertexAiMemoryBankService
di ADK, la generazione di memoria non viene attivata automaticamente. Devi assicurarti che l'agente o l'applicazione abbia chiamato esplicitamente il metodo add_session_to_memory
per attivare la procedura.
add_session_to_memory
accetta un oggetto Session
come input e utilizza gli eventi della sessione come origine dati per la generazione della memoria. Chiama l'istanza di Memory Bank solo se sono presenti eventi nell'oggetto sessione. Se l'applicazione o l'agente ADK richiama add_session_to_memory
, ma la generazione della memoria non è stata attivata, gli eventi dell'oggetto Session
potrebbero non essere compilati. Ciò è possibile anche se hai interagito con la sessione, soprattutto se utilizzi adk.Runner
. Per risolvere il problema, recupera la sessione e i relativi eventi nell'ambiente in cui stai richiamando add_session_to_memory
:
session = await session_service.get_session(
app_name=app_name,
user_id=user_id,
session_id=session.id
)
# Confirm that events are populated.
print(session.events)
memory_service.add_session_to_memory(session)
Verifica che l'operazione LRO di generazione della memoria sia completata
La generazione di ricordi è un'operazione a lunga esecuzione (LRO) e può richiedere alcuni secondi. La latenza esatta dipende dalla durata della conversazione di input e dalla complessità delle informazioni elaborate.
Quando utilizzi l'SDK Agent Engine, la generazione della memoria è un'operazione di blocco per impostazione predefinita. Pertanto, client.generate_memories(...)
blocca l'esecuzione del codice finché l'operazione LRO di generazione della memoria non è completata.
Quando si utilizza VertexAiMemoryBankService
dell'ADK, add_session_to_memory
è un'operazione non bloccante. Attiva solo la generazione della memoria e non attende il completamento dell'operazione LRO.
Cercare errori nella risposta dell'operazione
La risposta LRO potrebbe contenere un messaggio di errore simile che indica che la generazione della memoria non è andata a buon fine. Ad esempio:
RuntimeError: Failed to generate memory: {'code': 3, 'message': 'Failed to extract memories: Please use a valid role: user, model.'}
Gli errori più comuni includono:
Errori di esaurimento delle risorse per Gemini quando utilizzi il pagamento a consumo. Con la quota condivisa dinamica (DSQ), non sono previsti limiti di quota predefiniti per l'utilizzo. Per garantire l'alta disponibilità di Memory Bank e ottenere livelli di servizio prevedibili per i carichi di lavoro di produzione, consulta Throughput riservato.
Dati di origine non validi, ad esempio l'utilizzo di ruoli diversi da
model
euser
nel fileContent
.
Determinare se la conversazione è stata significativa
Se il processo è stato attivato, completato correttamente e non ha prodotto errori, è probabile che Memory Bank abbia stabilito che nessuna informazione nella conversazione di origine fosse significativa al punto da essere conservata.
Memory Bank utilizza i "argomenti dei ricordi" per identificare le informazioni significative. Se i contenuti della conversazione non corrispondono ad alcun argomento configurato, non vengono generate memorie.
Se ritieni che le informazioni avrebbero dovuto essere mantenute, puoi personalizzare la configurazione dell'istanza di Memory Bank per allinearla meglio alle tue aspettative.
La configurazione degli argomenti di memoria consente di definire quali informazioni devono essere mantenute. La configurazione di esempi few-shot aiuta l'istanza di Memory Bank ad adattarsi alle tue aspettative insegnandole le sfumature di quali informazioni devono essere mantenute e con quale formulazione. Puoi personalizzare la tua Banca dei ricordi in due passaggi: raccontare e mostrare. Gli argomenti della Memoria indicano alla Banca della Memoria quali informazioni conservare. Gli esempi mostrano a Memory Bank il tipo di informazioni che devono generare un ricordo specifico, aiutandolo a imparare i pattern, le sfumature e le formulazioni che ti aspetti che comprenda.