Keine Erinnerungen generiert
Der Prozess zum Merken von Informationen umfasst einen entscheidenden Schritt: Es wird ermittelt, ob die Informationen im Quellinhalt aussagekräftig genug sind, um gespeichert zu werden. Eine leere Antwort bedeutet, 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 einen potenziellen Fehler oder eine Fehlkonfiguration identifizieren.
Führen Sie die folgenden Schritte in der angegebenen Reihenfolge aus, um zu ermitteln, warum keine Erinnerungen generiert werden:
Prüfen, ob das Merken von Informationen ausgelöst wurde
Prüfen Sie zuerst, ob der Prozess zum Merken von Informationen tatsächlich gestartet wurde. Die Generierung von Erinnerungen wird durch Aufrufen von GenerateMemories (client.agent_engines.memories.generate(...)) ausgelöst.
Wenn Sie VertexAiMemoryBankService des ADK verwenden, wird das Merken von Informationen nicht automatisch ausgelöst. Sie müssen dafür sorgen, dass Ihr Agent oder Ihre Anwendung die Methode add_session_to_memory explizit aufgerufen hat.
Die add_session_to_memory Methode verwendet ein
Session Objekt als Eingabe
und die Ereignisse der Sitzung als Datenquelle für das Merken von Informationen. Die Methode ruft Ihre Memory Bank-Instanz nur auf, wenn im Sitzungsobjekt Ereignisse vorhanden sind. Wenn Ihre ADK-Anwendung oder Ihr Agent add_session_to_memory aufruft, das Merken von Informationen aber nicht ausgelöst wurde, sind die Ereignisse des Session-Objekts möglicherweise nicht vorhanden. Das kann auch dann der Fall sein, 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 zum Merken von Informationen abgeschlossen ist
Das Merken von Informationen ist ein Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO), der einige Sekunden dauern kann. Die genaue Latenz hängt von der Länge der Eingabeunterhaltung und der Komplexität der verarbeiteten Informationen ab.
Bei Verwendung des Agent Engine SDK ist das Merken von Informationen standardmäßig ein blockierender Vorgang standardmäßig. Daher blockiert client.generate_memories(...) die Ausführung Ihres Codes, bis der LRO zum Merken von Informationen abgeschlossen ist.
Wenn Sie VertexAiMemoryBankService des ADK verwenden, ist add_session_to_memory ein nicht blockierender Vorgang. Er löst nur das Merken von Informationen aus und wartet nicht auf den Abschluss des LRO.
In der Antwort des Vorgangs nach Fehlern suchen
Die LRO-Antwort kann eine Fehlermeldung enthalten, die darauf hinweist, dass das Merken von Informationen nicht erfolgreich war. Beispiel:
RuntimeError: Failed to generate memory: {'code': 3, 'message': 'Failed to extract memories: Please use a valid role: user, model.'}
Häufige Fehler sind:
Fehler vom Typ „Resource exhausted“ für Gemini bei Pay as you go. Bei dynamischem freigegebenem Kontingent (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. Verwendung anderer Rollen als
modelunduserin IhremContent.
Prüfen, ob die Unterhaltung aussagekräftig war
Wenn der Prozess ausgelöst wurde, erfolgreich abgeschlossen wurde und keine Fehler aufgetreten sind, hat Memory Bank wahrscheinlich festgestellt, dass keine Informationen in der Quellunterhaltung aussagekräftig genug waren, um gespeichert zu werden.
Memory Bank verwendet „Memory-Themen“, um zu ermitteln, welche Informationen aussagekräftig sind. Wenn der Inhalt Ihrer Unterhaltung nicht mit einem der konfigurierten Themen übereinstimmt, werden keine Erinnerungen generiert.
Durch Konfigurieren von Memory-Themen können Sie festlegen, welche Informationen gespeichert werden sollen. Durch Konfigurieren von Beispielen mit wenigen Versuchen kann Ihre Memory Bank-Instanz an Ihre Erwartungen angepasst werden, indem Sie ihr die Nuancen beibringen, welche Informationen gespeichert werden sollen und mit welcher Formulierung. Sie können die Anpassung Ihrer Memory Bank in zwei Schritten betrachten: „Sagen“ und „Zeigen“. Memory-Themen sagen Memory Bank, welche Informationen gespeichert werden sollen. Beispiele mit wenigen Versuchen zeigen 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.