In diesem Dokument wird beschrieben, wie Sie häufige Probleme bei der Verwendung von Vertex AI Agent Engine Memory Bank beheben.
Es wurden keine Erinnerungen erstellt
Der Prozess der Speichergenerierung umfasst einen entscheidenden Schritt: Es wird ermittelt, ob Informationen in den Quellinhalten aussagekräftig genug sind, um gespeichert zu werden. Eine leere Antwort gibt an, dass der Prozess erfolgreich ausgeführt wurde, aber keine Informationen gefunden wurden, die die Kriterien für das Speichern erfüllen. Wenn Sie erwartet haben, dass Erinnerungen generiert werden, können Sie mit dieser Anleitung potenzielle Fehler oder Falschkonfigurationen erkennen.
Wenn keine Erinnerungen generiert werden, gehen Sie zur Fehlerbehebung so vor:
Prüfen, ob die Erinnerungserstellung ausgelöst wurde
Prüfen Sie zuerst, ob der Prozess zum Erstellen von Erinnerungen tatsächlich gestartet wurde. Die Arbeitsspeichergenerierung wird durch Aufrufen von GenerateMemories
(client.agent_engines.memories.generate(...)
) initiiert.
Wenn Sie VertexAiMemoryBankService
des ADK verwenden, wird die Speichergenerierung nicht automatisch ausgelöst. Sie müssen dafür sorgen, dass in Ihrem Agent oder Ihrer Anwendung die Methode add_session_to_memory
explizit aufgerufen wurde, um den Prozess auszulösen.
add_session_to_memory
verwendet ein Session
-Objekt als Eingabe und die Ereignisse der Sitzung als Datenquelle für die Generierung von Erinnerungen. Die Memory Bank-Instanz wird nur aufgerufen, wenn im Sitzungsobjekt Ereignisse vorhanden sind. Wenn Ihre ADK-Anwendung oder Ihr ADK-Agent add_session_to_memory
aufruft, die Speichergenerierung aber nicht ausgelöst wurde, werden die Ereignisse des Session
-Objekts möglicherweise nicht ausgefüllt. Das ist auch dann möglich, wenn Sie mit der Sitzung interagiert haben, insbesondere wenn Sie adk.Runner
verwenden. Um dieses Problem zu beheben, rufen Sie die Sitzung und ihre Ereignisse in der Umgebung ab, in der Sie add_session_to_memory
aufrufen:
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)
Prüfen, ob der LRO für die Speichergenerierung abgeschlossen ist
Das Erstellen von Erinnerungen ist ein Vorgang mit langer Ausführungszeit und kann einige Sekunden dauern. Die genaue Latenz hängt von der Länge des Eingabegesprächs und der Komplexität der verarbeiteten Informationen ab.
Wenn Sie das Agent Engine SDK verwenden, ist die Speichergenerierung standardmäßig ein blockierender Vorgang. client.generate_memories(...)
blockiert also die Ausführung Ihres Codes, bis der LRO für die Speichergenerierung abgeschlossen ist.
Wenn Sie VertexAiMemoryBankService
des ADK verwenden, ist add_session_to_memory
ein nicht blockierender Vorgang. Dadurch wird nur die Speichergenerierung ausgelöst. Es wird nicht gewartet, bis der LRO abgeschlossen ist.
In der Vorgangsantwort nach Fehlern suchen
Die LRO-Antwort kann eine Fehlermeldung enthalten, die darauf hinweist, dass die Speichergenerierung fehlgeschlagen ist. Beispiel:
RuntimeError: Failed to generate memory: {'code': 3, 'message': 'Failed to extract memories: Please use a valid role: user, model.'}
Häufige Fehler:
Fehler vom Typ „Resource exhausted“ für Gemini bei der nutzungsbasierten Abrechnung: Bei dynamischen freigegebenen Kontingenten (Dynamic Shared Quota, DSQ) gibt es keine vordefinierten Kontingentlimits für Ihre Nutzung. Informationen zur Gewährleistung einer hohen Verfügbarkeit für Memory Bank und zur Erzielung vorhersehbarer Servicelevels für Ihre Produktionsarbeitslasten finden Sie unter Bereitgestellter Durchsatz.
Ungültige Quelldaten, z. B. wenn Sie in Ihrem
Content
andere Rollen alsmodel
unduser
verwenden.
Feststellen, ob die Unterhaltung sinnvoll war
Wenn der Prozess ausgelöst und erfolgreich abgeschlossen wurde und keine Fehler aufgetreten sind, hat Memory Bank wahrscheinlich festgestellt, dass keine Informationen im Quell-Chat sinnvoll genug waren, um gespeichert zu werden.
Memory Bank verwendet Erinnerungsthemen, um zu ermitteln, welche Informationen relevant sind. Wenn der Inhalt Ihres Gesprächs nicht mit den konfigurierten Themen übereinstimmt, werden keine Erinnerungen generiert.
Wenn Sie der Meinung sind, dass Informationen hätten beibehalten werden sollen, können Sie die Konfiguration Ihrer Memory Bank-Instanz anpassen, um sie besser an Ihre Erwartungen anzupassen.
Mit Erinnerungsthemen konfigurieren können Sie festlegen, welche Informationen gespeichert werden sollen. Durch das Konfigurieren von Few-Shot-Beispielen kann sich Ihre Memory Bank-Instanz an Ihre Erwartungen anpassen, indem sie lernt, welche Informationen mit welcher Formulierung beibehalten werden sollen. Die Anpassung der Memory Bank erfolgt in zwei Schritten: „Erzählen“ und „Zeigen“. Mit Memory-Themen wird Memory Bank mitgeteilt, welche Informationen gespeichert werden sollen. Few-Shots zeigen der Memory Bank, welche Art von Informationen zu einer bestimmten Erinnerung führen soll. So kann sie die Muster, Nuancen und Formulierungen lernen, die Sie von ihr erwarten.