Agent-Speicher
Auf dieser Seite wird die konkrete Implementierung von Oracle AI Agent Memory vorgestellt.
Oracle Agent-Speicher
Hinweis: OracleAgentMemory.delete_thread() ist der unterstützte Pfad für die Thread-bezogene kaskadierende Bereinigung. Es entfernt den Thread zusammen mit zugehörigen Nachrichten, dauerhaften Speichern und verwalteten Abrufdaten. Dies ist breiter als OracleThread.delete_message(), wodurch nur die Raw-Nachrichtenzeile gelöscht wird. Bevor der Thread gelöscht wird, wartet er auf die frühere akzeptierte Hintergrundextraktion, die diesem Client für diesen Thread bereits bekannt ist. Es wird nicht jeder gleichzeitige Vorgang für denselben Thread serialisiert, während der Löschvorgang ausgeführt wird.
Klasse oracleagentmemory.core.OracleAgentMemory
Basen: IAgentMemory
Agent-Speicherclient, der von Oracle DB oder einem vom Aufrufer bereitgestellten Speicher gesichert wird.
Erstellen Sie einen Speicherclient.
- Parameter:
- store
OracleMemoryStore– Optionale vorkonfigurierte Speicherinstanz. Wenn angegeben, verwendet der Client diesen Speicher direkt, anstatt seinen eigenen Speicher zu instanziieren. Dies ist nützlich, wenn Aufrufer eine Speicherkonfiguration über die Konstruktoroptionen hinaus benötigen, die vonOracleAgentMemoryangegeben werden. - Verbindung
object– Optionale Oracle DB-Verbindung/Pool. Wenn angegeben, wird der DB-Speicher verwendet. Wenn Sie eine Raw-Verbindung übergeben, wird der Single Session-Modus für diese Clientinstanz aktiviert. Daher sollten gleichzeitige Anforderungen stattdessen einen Connection Pool verwenden. Wenn diese Option ausgelassen wird, müssen Aufrufer eine explizitestoreübergeben. - embedder
IEmbedder | str: Embedder-Implementierungsinstanz oder LiteLLM-Einbettungsmodell-ID. Wenn er ausgelassen wird, wird kein Einbetter angehängt. Die Nur-Vektor-DB-Suche erfordert dann vorab berechnete Vektoren über Speicher-APIs der unteren Ebene, während die Schlüsselwort-DB-Suche direkt aus Abfragetext ausgeführt werden kann. Für die Hybrid-DB-Suche ist eineOracleDBEmbedder-Instanz erforderlich, sodass der verwaltete Hybridindex und der Haupteinbettungsknoten dasselbe datenbankinterne Modell verwenden. - LLM
ILlm– Optionaler LLM-Adapter, der von Threads für die Speicherextraktion und/oder Kontextzusammenfassung verwendet wird. Standardmäßig erfordern Threads, die von diesem Client erstellt oder geladen werden, ein LLM, damit aktuelle Nachrichten für dauerhafte Speicher abgebaut werden können. Übergeben Sie hier einellm, geben Sie eine spätere increate_threadan, oder deaktivieren Sie die automatische Extraktion mitmemory_extraction_config=MemoryExtractionConfig(extract_memories=False). - memory_extraction_config
MemoryExtractionConfig– Optionale Konfiguration der Speicherextraktion auf Client-Ebene. Damit können Sie Einstellungen für die automatische Speicherextraktion steuern, wie Extraktionsmodus, Zusammenfassungsverhalten und Extraktionsgrenzwerte. Ausgelassene Felder verwenden SDK-Standardwerte. - schema_policy
SchemaPolicy | str: Die Setup-Policy für das DB-Schema wird nur beim Erstellen eines DB-Speichers ausconnectionverwendet. Standard istSchemaPolicy.REQUIRE_EXISTING. Verwenden SieSchemaPolicy.CREATE_IF_NECESSARY, wenn Sie zuerst die Schlüsselwort- oder Hybridsuche in einem vorhandenen Schema aktivieren oder wenn Sie ein unterstütztes älteres freigegebenes verwaltetes Schema öffnen, damit das SDK zerstörungsfreie Schemaupgrades anwenden und die erforderlichen Textsuchobjekte hinzufügen kann. Entwicklungsschemas oder teilweise aktualisierte Schemas, die bereits die aktuelle Releaseform beanspruchen, sollten stattdessen neu erstellt werden. - memory_store_id
str: Stabile ID für den verwalteten DB-Speicherspeicher, die nur beim Erstellen eines DB-Speichers ausconnectionverwendet wird. Verwenden Sie dieselbe ID erneut, um denselben verwalteten Speicher erneut zu öffnen. Die ID wird mit verwalteten DB-Objektnamen mit einem Unterstrich verknüpft. Daher muss sie mit einem Buchstaben beginnen, nur Buchstaben, Zahlen und Unterstriche enthalten und darf maximal 16 Zeichen enthalten. Übergeben Sie entweder diesen odertable_name_prefix, nicht beides. Wenn diese Option ausgelassen wird, verwendet der DB-Speichertable_name_prefixoder den Standard ohne Präfix, wenntable_name_prefixebenfalls ausgelassen wird. -
table_name_prefix
str–Optionales DB-Tabellen-/Indexpräfix, das nur beim Erstellen eines DB-Speichers aus
connectionverwendet wird. Übergeben Sie entweder diesen odermemory_store_id, nicht beides.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_store_id. - search_strategy
SearchStrategy: WertSearchStrategy, der das DB-search-Backend beim Erstellen eines DB-Speichers ausconnectionauswählt. Verwenden SieSearchStrategy.VECTOR(Standard) für den reinen Vektorabruf,SearchStrategy.HYBRID, um den verwalteten Oracle-Hybridvektorindex über den gespeicherten Suchtext abzufragen, oderSearchStrategy.KEYWORD, um nach Stichwort/Textabgleich über den gespeicherten Suchtext ohne Vektorfusion zu ordnen. FürKEYWORDist kein Embedder erforderlich. FürHYBRIDmussembeddereinOracleDBEmbeddersein. Clientstart nicht erfolgreich, wenn eine inkompatible Strategie mit einem vorhandenen Schema verwendet wird, weil dieses Schema möglicherweise nicht den gespeicherten Suchstatus enthält, den die Strategie benötigt. - search_index_sync
SearchIndexSyncMode– WertSearchIndexSyncMode, der das Verhalten der Aktualisierung des verwalteten Suchindex fürSearchStrategy.HYBRIDundSearchStrategy.KEYWORDauswählt.SearchIndexSyncMode.ON_COMMITist der Standardwert und macht Datensätze durchsuchbar, sobald die Schreibtransaktion festgeschrieben wird.SearchIndexSyncMode.MANUALlässt die Aktualisierung eines expliziten datenbankseitigen Synchronisierungsvorgangs zu. MitSearchIndexSyncMode.AUTOkann Oracle den verwalteten Hybridindex asynchron aktualisieren. Er wird nur mitSearchStrategy.HYBRIDunterstützt. Die Schlüsselwortsuche lehntAUTOab. -
extract_memories
bool–Wenn
True, Threads, die von diesem Client erstellt oder geladen werden, ein LLM erfordern und die automatische Speicherextraktion aktiviert bleibt. Setzen Sie diesen Wert aufFalse, um die automatische Speicherextraktion zu deaktivieren und zuzulassen, dass diese Threads ohne LLM ausgeführt werden können. Der Standardwert istTrue, sodass fehlende Extraktions-LLMs schnell fehlschlagen.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_custom_instructions
str–Optionale benutzerdefinierte Anweisungen, die an die Eingabeaufforderung zur automatischen Speicherextraktion für Threads angehängt werden, die von diesem Client erstellt oder geladen werden. Werte pro Thread, die an
create_thread,get_threadoderupdate_threadübergeben werden, haben Vorrang.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. - memory_retention_config
MemoryRetentionConfig– Optionale Speicheraufbewahrungskonfiguration, die nur beim Erstellen eines DB-Speichers ausconnectionverwendet wird.MemoryRetentionConfig.default_ttl_dayswird auf neue Nachrichten und Speicher angewendet, deren Schreibaufrufttl_daysauslässt.MemoryRetentionConfig.max_ttl_daysklemmt explizite Dauer pro Datensatz über dem konfigurierten Maximum mit einer Warnung. Wenn diese Option festgelegt ist, verwendetttl_days=Nonedieses Maximum, anstatt nicht ablaufende Datensätze zu erstellen. MitSchemaPolicy.CREATE_IF_NECESSARYaktualisiert eine explizite Konfiguration die gespeicherten Metadaten in einem vorhandenen aktuellen verwalteten Schema. Die vorhandenen Ablaufdaten werden jedoch nicht aktualisiert. Wenn Sie diese Option auslassen, wird die vorhandene Einstellung beibehalten. Wenn eine explizite Konfigurationdefault_ttl_daysodermax_ttl_daysunterNOT_SET_MARKERverlässt, löst das SDK dieses Attribut auf seinen Standardwert (None) auf, bevor Schemametadaten verglichen oder gespeichert werden. Wählen Sie diese Konfiguration basierend auf den erwarteten Informationen, die in Datensätzen gespeichert sind, dem Grund, warum die Anwendung sie aufrechterhält, und allen Verpflichtungen zur Beibehaltung von Anwendungen oder Vorschriften.
- store
Warnung: SchemaPolicy.CREATE_IF_NECESSARY kann teurer sein als der normale Clientstart, da es DDL des verwalteten Schemas anwenden und Daten mit bestmöglichem Aufwand neu schreiben kann, bevor die Initialisierung erfolgreich verläuft. Planen Sie das erste Öffnen eines älteren verwalteten Schemas als Migrations- oder Wartungsvorgang, wenn dieses Schema viele Zeilen enthalten kann.
Wenn das Schemasetup den Löschjob für verwaltete abgelaufene Datensätze erstellen muss, dem Datenbankbenutzer jedoch die Berechtigung für den Scheduler-Job fehlt, warnt die Initialisierung und wird fortgesetzt. Abgelaufene Nachrichten und Speicher bleiben vor Lese- und Suchvorgängen verborgen, werden jedoch erst physisch gelöscht, wenn der Job von einem Benutzer mit CREATE JOB oder einer entsprechenden Scheduler-Berechtigung erstellt wurde.
Wenn SchemaPolicy.CREATE_IF_NECESSARY zum ersten Mal einen verwalteten Hybridindex über ein vorhandenes Schema erstellt, scannt Oracle den gespeicherten Suchtext und erstellt den verwalteten Hybridindexstatus aus dem konfigurierten datenbankinternen Modell. Der Clientstart wartet, bis diese DDL abgeschlossen ist. Planen Sie daher das erste Hybridupgrade als Migrations- oder Wartungsvorgang für große Schemas. SearchIndexSyncMode steuert die laufende Wartung, nachdem der Index vorhanden ist. Die erste Indexerstellung wird nicht asynchron.
- Raises: ValueError – Wenn eine widersprüchliche Speicherkonfiguration angegeben wird, wie die Übergabe von
storeundconnection, DB-spezifischen Optionen ohne DB-Verbindung oder das Weglassen vonstoreundconnection. - Parameter:
- Speicher
OracleMemoryStore - Verbindung
object - Embedder
IEmbedder | str - llm
ILlm - memory_extraction_config
MemoryExtractionConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - search_strategy
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig
- Speicher
Beispiele
from oracleagentmemory.core import (
MemoryExtractionConfig,
SearchIndexSyncMode,
OracleAgentMemory,
SchemaPolicy,
SearchStrategy,
)
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
read_only_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
Verwenden Sie ein DB-internes Einbettungsmodell, um die Oracle-Hybridindexsuche zu nutzen:
from oracleagentmemory.core.embedders import OracleDBEmbedder
db_embedder = OracleDBEmbedder(
connection=db_pool,
model="DOC_MODEL",
embedding_dimension=768,
)
hybrid_client = OracleAgentMemory(
connection=db_pool,
embedder=db_embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
search_strategy=SearchStrategy.HYBRID,
search_index_sync=SearchIndexSyncMode.ON_COMMIT,
)
Methode add_agent
Fügen Sie dem Shop einen Agent-Profildatensatz hinzu.
- Parameter:
- agent_id
str: Agent-ID. - Informationen
str– Freiforminformationen zum Agent. - metadata
dict[str, Any] | None– Optionale Metadatenzuordnung, die in der Agent-Profilzeile gespeichert ist.
- agent_id
- Rückgaben: ID des gespeicherten Agent-Profils.
- Rückgabetyp: str
Hinweise
Agent-Profildatensätze werden im Speicher auf Client-Ebene gespeichert und absichtlich nicht kopiert. Die zurückgegebene Datensatz-ID ist dieselbe öffentliche ID, die von der Anwendung verwendet wird wie agent_id.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
'a1'
Methode add_memory
Fügen Sie im Speichersystem einen Speicher hinzu, der dem angegebenen Benutzer, Agent und Thread zugewiesen wird.
- Parameter:
- content
str: Speicherinhalt, der beibehalten werden soll. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: Zu speichernde Speicherkategorie. Unterstützte Werte sind"memory","fact","guideline"und"preference". Wenn der Inhalt ausgelassen wird, wird er als allgemeines"memory"gespeichert. - user_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. - agent_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. - thread_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. - memory_id
str– Optionale vom Aufrufer bereitgestellte stabile ID für diese Speicherzeile. - metadata
dict[str, Any] | None– Optionale Metadaten, die im gespeicherten Speicher persistiert werden. - timestamp
str | None– Optionaler Zeitstempel zur Speicherung dieses Speichers. Es stellt dar, wann der Speicher erstellt wurde. Wenn keine Angabe gemacht wird oderNone, verwendet der Speicher die aktuelle Zeit. Wennttl_anchorTimeToLiveAnchor.TIMESTAMPist, werden ISO-8601-Zeitstempel ohne Zeitzone als UTC behandelt. - ttl_days
int | None- Optionale Dauer für die Gültigkeitsdauer in Tagen. Lassen Sie dieses Argument weg, um die Standarddauer für die Gültigkeitsdauer des Schemas zu verwenden. Übergeben SieNone, umMemoryRetentionConfig.max_ttl_dayszu verwenden, wenn die Aufbewahrungskonfiguration eine festlegt, oder um einen nicht ablaufenden Speicher zu speichern, wenn dies nicht der Fall ist. Werte überMemoryRetentionConfig.max_ttl_dayswerden mit einer Warnung auf dieses Maximum geklemmt. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker. Verwenden SieTimeToLiveAnchor.CREATED_ATals Erstellungszeit der Datenbank oderTimeToLiveAnchor.TIMESTAMPals Speicherzeitstempel. ISO-8601-Zeitstempel ohne Zeitzone werden als UTC behandelt. - **store_kwargs (Beliebige) – Speicherspezifische Schreiboptionen, die an den zugrunde liegenden Speicher weitergeleitet werden.
- content
- Rückgaben: ID des eingefügten Speicherdatensatzes.
- Rückgabetyp: str
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
memory_id = client.add_memory("User likes pizza", memory_id="mem-1")
memory_id
'mem-1'
Methode add_memory_async (asynchron)
Fügen Sie dem Client asynchron einen Speicherdatensatz hinzu.
- Parameter:
- content
str: Textinhalt, der als Speicher gespeichert werden soll. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: Zu speichernde Speicherkategorie. Unterstützte Werte sind"memory","fact","guideline"und"preference". Wenn der Inhalt ausgelassen wird, wird er als allgemeines"memory"gespeichert. - user_id
str– Optionale Benutzer-ID, die mit dem Speicher verknüpft werden soll. - agent_id
str: Optionale Agent-ID, die mit dem Speicher verknüpft werden soll. - thread_id
str– Optionale Thread-ID, die mit dem Speicher verknüpft werden soll. - memory_id
str– Optionale vom Aufrufer bereitgestellte stabile ID. Wenn diese Option ausgelassen wird, wird eine Filiale generiert. - metadata
dict[str, Any] | None– Optionale Metadaten, die mit der Speicherzeile persistiert werden. - timestamp
str | None– Optionaler Zeitstempel zur Speicherung dieses Speichers. Es stellt dar, wann der Speicher erstellt wurde. Wenn keine Angabe gemacht wird oderNone, verwendet der Speicher die aktuelle Zeit. - ttl_days
int | None- Optionale Dauer für die Gültigkeitsdauer in Tagen. Lassen Sie dieses Argument weg, um die Standarddauer für die Gültigkeitsdauer des Schemas zu verwenden. Übergeben SieNone, um einen Speicher zu speichern, der nicht abläuft. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker. Verwenden SieTimeToLiveAnchor.CREATED_ATals Erstellungszeit der Datenbank oderTimeToLiveAnchor.TIMESTAMPals Speicherzeitstempel. - **store_kwargs (Beliebig) – Implementierungsspezifische Schreiboptionen, die an den zugrunde liegenden Speicher weitergeleitet werden.
- content
- Rückgaben: ID des eingefügten Speicherdatensatzes.
- Rückgabetyp: str
Methode add_user
Fügen Sie der Filiale einen Benutzerprofildatensatz hinzu.
- Parameter:
- user_id
str: Benutzer-ID. - Informationen
str– Freiforminformationen zum Benutzer. - metadata
dict[str, Any] | None– Optionale Metadatenzuordnung, die in der Benutzerprofilzeile gespeichert ist.
- user_id
- Rücksendungen: ID des gespeicherten Benutzerprofils.
- Rückgabetyp: str
Hinweise
Benutzerprofildatensätze werden im Kundenspeicher gespeichert und absichtlich unkopiert. Die zurückgegebene Datensatz-ID ist dieselbe öffentliche ID, die von der Anwendung verwendet wird wie user_id.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_user(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
'u1'
Methode close
Schließen Sie die Agent-Speicherkomponente.
Das Schließen stoppt die Annahme neuer Hintergrundextraktionsarbeiten und wartet, bis die ausstehende Hintergrundspeicherextraktion bis zum konfigurierten Timeout abgeschlossen ist. Wenn dieser Timeout abläuft, gibt close() auch dann zurück, wenn einige Hintergrundextraktionsarbeiten noch nicht abgeschlossen sind. Die Methode ist idempotent.
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die auf den Abschluss der akzeptierten Hintergrundextraktion warten. Standard ist300. Übergeben SieNone, um unbegrenzt zu warten. - Rückgabetyp: Keine
Beispiele
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
Methode close_async (asynchron)
Schließen Sie die Agent-Speicherkomponente asynchron.
Diese Methode folgt demselben Herunterfahrverhalten wie close(). Wenn der Timeout abläuft, kann er zurückgegeben werden, während die Hintergrundextraktion noch ausgeführt wird.
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die auf den Abschluss der akzeptierten Hintergrundextraktion warten. Standard ist300. Übergeben SieNone, um unbegrenzt zu warten. - Rückgabetyp: Keine
Beispiele
await client.close_async()
Methode create_thread
Erstellen und registrieren Sie einen Thread.
- Parameter:
- thread_id
str: Thread-ID. Wird keine Angabe gemacht, wird eine neue generiert. - user_id
str: Benutzer-ID, die an diesen Threaddatensatz angehängt ist. Wird keine Angabe gemacht, wird eine neue generiert. - agent_id
str: Agent-ID, die an diesen Threaddatensatz angehängt ist. Wird keine Angabe gemacht, wird eine neue generiert. - metadata
dict[str, Any] | None– Optionale JSON-ähnliche Metadaten werden im Unterhaltungsthread beibehalten. - LLM
ILlm– Optionales LLM-Override für diesen Thread. Wird dieser Wert ausgelassen, wird das zur Bauzeit konfigurierte LLM auf Client-Ebene verwendet. Standardmäßig muss entweder der Client oder der Thread ein LLM bereitstellen, damit die automatische Speicherextraktion ausgeführt werden kann. Legen Siememory_extraction_config=MemoryExtractionConfig(extract_memories=False)hier oder auf dem Client fest, um diese Anforderung abzulehnen. - max_message_token_length
int– Maximale Größe für Prompt-Time-Nachrichten vor dem Abschneiden oder Zusammenfassen während der Speicherextraktion und Aktualisierungen der Kontextzusammenfassung. Der gespeicherte Nachrichteninhalt bleibt unverändert. Wenn diese Option ausgelassen wird, wird standardmäßig15_000-Token verwendet. - message_shortening_input_token_limit
int– Maximale Größe in Token des an das LLM gesendeten Nachrichtenauszugs beim Kürzen von übergroßen Prompt-Time-Nachrichtenkopien. Wenn diese Option ausgelassen wird, wird standardmäßig30_000-Token verwendet. - memory_extraction_config
MemoryExtractionConfig– Optionale Konfiguration der Speicherextraktion pro Thread. Ausgelassene Felder werden von der Agent-Speicherkomponente übernommen. Die aufgelöste Konfiguration wird mit dem Thread gespeichert, sodass spätere Ladevorgänge das Erstellungszeitverhalten beibehalten. - context_card_token_limit
int: Maximales Eingabe-Tokenbudget für den LLM-Prompt, mit dem die in der Kontextkarte enthaltene Übersichts- und Themenliste erstellt wird. Wenn diese Option ausgelassen wird, wird standardmäßig100_000verwendet. - context_card_type_search_concurrency
int: Maximale Anzahl von Suchvorgängen nach speicherähnlichen Datensätzen, die beim Erstellen einer Kontextkarte mitmin_relevant_results_by_typegleichzeitig ausgeführt werden. Wenn diese Option ausgelassen wird, wird standardmäßig5verwendet. -
extract_memories
bool–Optionale Überschreibung pro Thread für automatische Speicherextraktion. Bei
Trueerfordert dieser Thread ein LLM, damit die automatische Extraktion ausgeführt werden kann. Setzen Sie diesen Wert aufFalse, um die automatische Extraktion für diesen Thread zu deaktivieren und den Vorgang ohne LLM zuzulassen. Wenn diese Option ausgelassen wird, wird die Einstellungextract_memoriesauf Clientebene verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_window
int–Anzahl der letzten Nachrichten, die während der Speicherextraktion aufgenommen werden sollen. Setzen Sie diesen Wert auf
-1, um eine Extraktion proadd_messages-Aufruf mit dem vollständigen Batch neu hinzugefügter Nachrichten auszuführen. Wenn diese Option ausgelassen wird, wird standardmäßig-1verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
context_summary_update_frequency
int–Häufigkeit der Aktualisierungen der Kontextübersicht. Setzen Sie diesen Wert auf
-1, um eine Übersichtsaktualisierung proadd_messages-Aufruf mit dem vollständigen Batch neu hinzugefügter Nachrichten auszuführen. Wenn diese Option ausgelassen wird, wird standardmäßig-1verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_frequency
int–Häufigkeit von Aktualisierungen der Speicherextraktion. Setzen Sie diesen Wert auf
-1, um eine Extraktion proadd_messages-Aufruf mit dem vollständigen Batch neu hinzugefügter Nachrichten auszuführen. Wenn diese Option ausgelassen wird, wird standardmäßig-1verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_token_limit
int–Maximale Größe der LLM-Prompts, die für die Speicherextraktion und die Ausführung von Übersichtsaktualisierungen verwendet werden, in Token. Wenn diese Option ausgelassen wird, wird standardmäßig
100_000verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_custom_instructions
str–Optionale benutzerdefinierte Anweisungen, die an die Eingabeaufforderung des Speicherextraktionssystems für diesen Thread angehängt werden. Wenn angegeben, wird der aufgelöste Wert mit der Thread-Laufzeitkonfiguration beibehalten.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Optionale Überschreibung pro Thread für Metadaten, die aus Quellnachrichten in automatisch extrahierte Speicher kopiert werden.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
enable_context_summary
bool–Gibt an, ob eine laufende Kontextübersicht für diesen Thread beibehalten werden soll.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. - **kwargs (Beliebig) – Zusätzliche implementierungsspezifische Threadoptionen.
- thread_id
- Rückgaben: Eine
OracleThread-Instanz. - Rückgabetyp: OracleThread
- Raises: ValueError – Wenn kein LLM für die automatische Speicherextraktion verfügbar ist und der Thread und Client nicht mit
memory_extraction_config=MemoryExtractionConfig(extract_memories=False)konfiguriert wurden.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c1", user_id="u1")
thread.thread_id
'c1'
Methode delete_agent
Agent-Profildatensatz nach ID löschen.
- Parameter:
- agent_id
str: Agent-ID, deren Profil entfernt werden soll. - kaskadieren
bool– WennTrue(Standard) gilt, löschen Sie auch Datensätze, die für diesen Agent gelten. Dazu gehören das Löschen eigener Threads selbst, der Nachrichten und speicherähnlicher Datensätze, die mit diesen Threads entfernt wurden, sowie aller verbleibenden direkt auf Agents bezogenen Datensätze, wie Nachrichten, Speicher, Richtlinien, Fakten oder Vorlieben. Diese Bereichsbereinigung wird noch ausgeführt, wenn die entsprechende Agent-Profilzeile bereits fehlt. Setzen Sie diesen Wert aufFalse, um nur den Profildatensatz zu entfernen.
- agent_id
- Rückgaben: Anzahl der gelöschten Agent-Profilzeilen (
0oder1). Dies kann immer noch0sein, wenn Bereichszeilen während der Kaskadenbereinigung entfernt wurden. - Rückgabetyp: int
- Auslöser: TimeoutError – Wird ausgelöst, wenn die frühere angenommene Hintergrundextraktion für bereits bekannte Threads im Eigentum nicht beendet wird, bevor die interne Wartezeit für das Löschen überschritten wird.
Hinweise
Kaskadierende Löschvorgänge werden im zugrunde liegenden Speicher geplant und ausgeführt, sodass das Löschen des Profils und alle untergeordneten Löschvorgänge mit Geltungsbereich in einem Speichervorgang erfolgen. Bevor das kaskadierende Löschen ausgeführt wird, wartet diese Methode auf eine frühere Hintergrundextraktion, die bereits für die zu diesem Zeitpunkt über diese Agent-Speicherkomponente bekannten eigenen Threads akzeptiert wurde. Sie wartet nicht auf die Arbeit, die nach Beginn dieser Wartezeit akzeptiert wird, oder auf die Arbeit, die von einer anderen Agent-Speicherkomponente oder einem anderen Agent-Prozess gestartet wurde. Die gleichzeitige Verwendung mit Akteurbereich während des Löschvorgangs wird nicht unterstützt.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent("a-delete", "Support assistant")
'a-delete'
client.delete_agent("a-delete")
1
Methode delete_memory
Löschen Sie einen speicherähnlichen Datensatz (z. B. Speicher, Fakt, Voreinstellung oder Richtlinie) nach Kennung.
- Parameter: memory_id
str– Speicher-ID. Die ID kann sich auf einen gespeichertenmemory-,guideline-,fact- oderpreference-Datensatz beziehen. - Rückgaben: Anzahl der gelöschten speicherähnlichen Zeilen (
0oder1). - Rückgabetyp: int
Beispiele
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
memory_id = client.add_memory("Temporary memory", memory_id="mem-delete")
client.delete_memory(memory_id)
1
Methode delete_memory_async (asynchron)
Löschen Sie asynchron einen speicherähnlichen Datensatz (z. B. Speicher, Fakt, Präferenz oder Richtlinie) durch Kennung.
- Parameter: memory_id
str: ID des zu entfernenden speicherähnlichen Datensatzes. - Rückgaben: Anzahl der gelöschten speicherähnlichen Datensätze.
- Rückgabetyp: int
Methode delete_thread
Löschen Sie alle Datensätze, die mit einer Thread-ID verknüpft sind.
- Parameter: thread_id
str– Zu löschende Thread-ID. - Rückgaben: Anzahl der gelöschten Unterhaltungsthreads (
0oder1). - Rückgabetyp: int
- Erhöhungen: TimeoutError – Wird ausgelöst, wenn die frühere angenommene Hintergrundextraktion für diesen Thread nicht abgeschlossen ist, bevor die interne Wartezeit beim Löschen überschritten wird.
Hinweise
Verwenden Sie diesen Vorgang, wenn ein Thread vollständig entfernt werden muss. Der Sicherungsspeicher löscht den Thread zusammen mit zugehörigen Thread-bezogenen Nachrichten, dauerhaften Speichern und verwalteten Abrufdaten. Dies unterscheidet sich von OracleThread.delete_message(), das nur den Raw-Nachrichtendatensatz entfernt und nicht auf abgeleitete Speicher kaskadiert, die aus dieser Nachricht erstellt wurden. Vor dem Löschen des Threads wartet diese Methode auf eine frühere Hintergrundextraktion, die bereits für diesen Thread über diese Agent-Speicherkomponente akzeptiert wurde. Es wartet nicht auf Hintergrundarbeit, die nach Beginn dieser Wartezeit akzeptiert wird, oder auf Arbeit, die von einer anderen Agent-Speicherkomponente oder einem anderen Agent-Prozess gestartet wurde. Die gleichzeitige Verwendung desselben Threads während des Löschvorgangs wird nicht unterstützt.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c-delete")
client.delete_thread(thread.thread_id)
1
Methode delete_user
Benutzerprofildatensatz nach ID löschen.
- Parameter:
- user_id
str: Benutzer-ID, deren Profil entfernt werden soll. - kaskadieren
bool– WennTrue(Standard) gilt, löschen Sie auch Datensätze, die für diesen Benutzer gelten. Dazu gehören das Löschen eigener Threads selbst, der Nachrichten und speicherähnlicher Datensätze, die mit diesen Threads entfernt wurden, sowie aller verbleibenden direkt benutzerbezogenen Datensätze, wie Nachrichten, Speicher, Richtlinien, Fakten oder Vorlieben. Diese Bereichsbereinigung wird noch ausgeführt, wenn die übereinstimmende Benutzerprofilzeile bereits fehlt. Setzen Sie diesen Wert aufFalse, um nur den Profildatensatz zu entfernen.
- user_id
- Rückgaben: Anzahl der gelöschten Benutzerprofilzeilen (
0oder1). Dies kann immer noch0sein, wenn Bereichszeilen während der Kaskadenbereinigung entfernt wurden. - Rückgabetyp: int
- Auslöser: TimeoutError – Wird ausgelöst, wenn die frühere angenommene Hintergrundextraktion für bereits bekannte Threads im Eigentum nicht beendet wird, bevor die interne Wartezeit für das Löschen überschritten wird.
Hinweise
Kaskadierende Löschvorgänge werden im zugrunde liegenden Speicher geplant und ausgeführt, sodass das Löschen des Profils und alle untergeordneten Löschvorgänge mit Geltungsbereich in einem Speichervorgang erfolgen. Bevor das kaskadierende Löschen ausgeführt wird, wartet diese Methode auf eine frühere Hintergrundextraktion, die bereits für die zu diesem Zeitpunkt über diese Agent-Speicherkomponente bekannten eigenen Threads akzeptiert wurde. Sie wartet nicht auf die Arbeit, die nach Beginn dieser Wartezeit akzeptiert wird, oder auf die Arbeit, die von einer anderen Agent-Speicherkomponente oder einem anderen Agent-Prozess gestartet wurde. Die gleichzeitige Verwendung mit Akteurbereich während des Löschvorgangs wird nicht unterstützt.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_user("u-delete", "Prefers concise answers.")
'u-delete'
client.delete_user("u-delete")
1
Methode get_thread
Ruft einen zuvor erstellten Thread ab.
- Parameter:
- thread_id
str: ID, die beim Erstellen des Threads verwendet wird. - LLM
ILlm– Optionales LLM-Override für den erneut geöffneten Thread. Wird das LLM auf Client-Ebene ausgelassen, das zur Bauzeit konfiguriert wurde, wird verwendet. - max_message_token_length
int– Optionales Override für die maximale Größe von Prompt-Time-Nachrichten vor dem Abschneiden oder Zusammenfassen während der Speicherextraktion und Aktualisierungen der Kontextzusammenfassung. Der gespeicherte Nachrichteninhalt bleibt unverändert. - message_shortening_input_token_limit
int– Optionale Überschreibung für die maximale Größe des Nachrichtenauszugs in Token, der an das LLM gesendet wird, wenn übergroße Nachrichtenkopien zur Eingabeaufforderung gekürzt werden. - memory_extraction_config
MemoryExtractionConfig– Optionale gruppierte Extraktionskonfiguration für die zurückgegebeneOracleThread-Instanz. Ausgelassene Felder werden von der Speicherkomponente der gespeicherten Threadkonfiguration und des Agent übernommen. Das Override gilt nur für die zurückgegebeneOracleThread-Instanz und wird nicht in die gespeicherte Konversationsthreadkonfiguration zurückgeschrieben. - context_card_token_limit
int– Optionales Override für die zurückgegebeneOracleThread-Instanz. Es legt das Eingabe-Tokenbudget des LLM-Prompts fest, mit dem die in der Kontextkarte enthaltene Übersichts- und Themenliste erstellt wird. - context_card_type_search_concurrency
int: Optionale Überschreibung für die zurückgegebeneOracleThread-Instanz. Es legt die Anzahl der speicherähnlichen Datensatzsuchen fest, die beim Erstellen einer Kontextkarte mitmin_relevant_results_by_typegleichzeitig ausgeführt werden. -
extract_memories
bool–Optionale Überschreibung für automatische Speicherextraktion auf dem erneut geöffneten Thread. Wenn diese Option ausgelassen wird, wird die Einstellung
extract_memoriesauf Clientebene verwendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_window
int–Optionale Überschreibung für die Anzahl der letzten Nachrichten, die während der Speicherextraktion verwendet wurden.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
context_summary_update_frequency
int–Optionale Überschreibung für die Häufigkeit von Aktualisierungen der Kontextübersicht.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_frequency
int–Optionale Überschreibung für die Häufigkeit von Speicherextraktionsaktualisierungen.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_token_limit
int–Optionale Überschreibung für die maximale Größe der LLM-Prompts, die für die Speicherextraktion und die Ausführung von Übersichtsaktualisierungen verwendet werden, in Token.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Optionales Override für benutzerdefinierte Speicherextraktionsanweisungen. Wenn Sie
Noneübergeben, werden benutzerdefinierte Anweisungen auf Threadebene für die zurückgegebeneOracleThread-Instanz gelöscht, ohne die gespeicherte Konversationsthreadkonfiguration zu aktualisieren. Bei der Konfiguration wird weiterhin ein Standardwert auf Clientebene angewendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Optionale Überschreibung für Metadaten, die aus Quellnachrichten in automatisch extrahierte Speicher kopiert werden. Die Überschreibung gilt nur für die zurückgegebene
OracleThread-Instanz.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
enable_context_summary
bool–Optionale Überschreibung, ob der erneut geöffnete Thread eine laufende Kontextübersicht beibehalten soll.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config.
- thread_id
- Rückgaben: Eine
OracleThread-Instanz, die aus Speichermetadaten rekonstruiert wurde. - Rückgabetyp: OracleThread
- Erhöht:
- KeyError – Wenn die Thread-ID dieser Clientinstanz unbekannt ist.
- ValueError – Wenn kein LLM für die automatische Speicherextraktion verfügbar ist und der Client nicht mit
memory_extraction_config=MemoryExtractionConfig(extract_memories=False)konfiguriert wurde.
Hinweise
Explizite Overrides pro Aufruf haben Vorrang. Wenn Laufzeit-Overrides ausgelassen werden, verwenden erneut geöffnete Threads eine persistente Laufzeitkonfiguration, sofern verfügbar, bevor sie auf SDK-Standardwerte zurückgreifen.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
created = client.create_thread(thread_id="c1", user_id="u1")
loaded = client.get_thread("c1")
loaded.user_id
'u1'
Methode search
Synchron nach Datensätzen suchen, die für eine Abfrage relevant sind.
- Parameter:
- query
str– Abfragezeichenfolge in natürlicher Sprache. - user_id
str | None: Benutzer-ID-Filter. OracleAgentMemory-Clientsuchen erfordern einen expliziten Benutzergeltungsbereich, es sei denn,scopewird mit einem angegeben. Übergeben Sie eine konkreteuser_id, um diesen Benutzer als Ziel festzulegen, oder übergeben SieNone, um nur nicht kopierte Benutzerdatensätze als Ziel festzulegen. - agent_id
str | None: Optionaler Agent-ID-Filter. Wird ignoriert, wennscopeangegeben wird. - thread_id
str | None– Optionaler Filter für Thread-ID. Wird ignoriert, wennscopeangegeben wird. - exact_user_match
bool– Gibt an, ob der Benutzerabgleich streng sein soll. Für OracleAgentMemory-Clientsuchen ist ein exakter Benutzerabgleich erforderlich, undFalsewird abgelehnt. Wird ignoriert, wennscopeangegeben wird. - exact_agent_match
bool: Gibt an, ob der Agent-Abgleich streng sein soll. Wird ignoriert, wennscopeangegeben wird. - exact_thread_match
bool– Gibt an, ob der Threadabgleich streng sein soll. Wird ignoriert, wennscopeangegeben wird. - max_results
int– Optionale maximale Anzahl von zurückzugebenden Ergebnissen. Wenn sie angegeben wird, muss sie mindestens1sein. Wenn Sie dieses Argument weglassen, wird der Standardwert10verwendet. Dies ist ein oberer Grenzwert: Der Aufruf gibt möglicherweise weniger alsmax_results-Ergebnisse zurück, wenn Filter zu restriktiv sind, wenn weniger nicht abgelaufene übereinstimmende Datensätze vorhanden sind oder das implementierungsspezifische Suchverhalten vorliegt. - record_types
list[str]: Optionale Liste der aufzunehmenden Datensatztypen, wie"memory"oder"message". -
metadata_filter
dict[str, Any] | None–Optionale Metadatenfilterzuordnung, die als zusätzlicher Filter nach Geltungsbereich und Datensatzfilterung verwendet wird. Einträge in
metadata_filterwerden mit AND-Semantik kombiniert. Einträge, deren Wert kein Operatordictionary auf Feldebene ist, verwenden eine Semantik mit genauen Übereinstimmungen: Der angeforderte Schlüssel muss in den Metadaten des gespeicherten Datensatzes vorhanden sein. Verschachtelte Wörterbücher stimmen mit verschachtelten Metadatenobjekten rekursiv überein. Skalare und Listenwerte müssen exakt übereinstimmen. Listenreihenfolge und -länge müssen ebenfalls übereinstimmen. Lassen Sie dieses Argument weg, oder übergeben SieNone, um ohne Metadatenfilter zu suchen. Beispiele:metadata_filter={"source": "profile_import"}für ein skalares Feld,metadata_filter={"prefs": {"category": "travel"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["survey", "travel"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Um die Arraymitgliedschaft zu testen, verwenden Sie ein Operatordictionary auf Feldebene.
"$array_contains"entspricht einem Wert oder allen Werten in einer Liste."$array_contains_any"entspricht mindestens einem Wert aus einer Liste."$not"negiert einen anderen Ausdruck auf Feldebene in demselben Feld, einschließlich eines Operator-Dictionarys oder eines Raw-Exact-Match-Wertes. Negierte Ausdrücke stimmen überein, wenn der positive Ausdruck fehlschlagen würde, einschließlich fehlender Felder; negierte Array-Mitgliedschaft stimmt auch mit Nicht-Array-Feldern überein:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - Geltungsbereich
SearchScope– Optionaler vordefinierter Suchbereich. Geben Sie entwederscopeoder die explizite ID und die exakten Übereinstimmungsargumente an, nicht beides. Bei OracleAgentMemory-Clientsuchen muss der aufgelöste Geltungsbereich eine expliziteuser_id-Datei mitexact_user_match=Trueenthalten. Verwenden Sieuser_id=None, um nur nicht kopierte Benutzerdatensätze als Ziel festzulegen.
- query
- Rückgaben: Die Suchergebnisse werden nach abnehmender Relevanz sortiert. Die Liste kann weniger als
max_results-Einträge enthalten. - Rückgabetyp: list[SearchResult]
- Raises: ValueError – Wenn
scopemit expliziten Identifier- oder Exact-Match-Argumenten kombiniert wird, wennmax_resultskleiner als1ist, wennmetadata_filterweder ein Dictionary nochNoneist oder wenn die Implementierung den aufgelösten Client-Suchgeltungsbereich ablehnt. OracleAgentMemory-Clientsuchen weisen den ausgelassenen Benutzergeltungsbereich zurück und lehnenexact_user_match=Falseab.
Hinweise
Explizite None-Geltungsbereichswerte folgen weiterhin den aufgelösten exakten Übereinstimmungsregeln: exact_*_match=False lässt diese Dimension uneingeschränkt zu, während exact_*_match=True nur mit Datensätzen übereinstimmt, die in dieser Dimension nicht kopiert wurden.
Methode search_async (asynchron)
Suche asynchron nach Datensätzen, die für eine Abfrage relevant sind.
- Parameter:
- query
str– Abfragezeichenfolge in natürlicher Sprache. - user_id
str | None: Benutzer-ID-Filter. OracleAgentMemory-Clientsuchen erfordern einen expliziten Benutzergeltungsbereich, es sei denn,scopewird mit einem angegeben. Übergeben Sie eine konkreteuser_id, um diesen Benutzer als Ziel festzulegen, oder übergeben SieNone, um nur nicht kopierte Benutzerdatensätze als Ziel festzulegen. - agent_id
str | None: Optionaler Agent-ID-Filter. Wird ignoriert, wennscopeangegeben wird. - thread_id
str | None– Optionaler Filter für Thread-ID. Wird ignoriert, wennscopeangegeben wird. - exact_user_match
bool– Gibt an, ob der Benutzerabgleich streng sein soll. Für OracleAgentMemory-Clientsuchen ist ein exakter Benutzerabgleich erforderlich, undFalsewird abgelehnt. Wird ignoriert, wennscopeangegeben wird. - exact_agent_match
bool: Gibt an, ob der Agent-Abgleich streng sein soll. Wird ignoriert, wennscopeangegeben wird. - exact_thread_match
bool– Gibt an, ob der Threadabgleich streng sein soll. Wird ignoriert, wennscopeangegeben wird. - max_results
int– Optionale maximale Anzahl von zurückzugebenden Ergebnissen. Wenn sie angegeben wird, muss sie mindestens1sein. Wenn Sie dieses Argument weglassen, wird der Standardwert10verwendet. - record_types
list[str]: Optionale Liste der aufzunehmenden Datensatztypen, wie"memory"oder"message". -
metadata_filter
dict[str, Any] | None–Optionale Metadatenfilterzuordnung, die als zusätzlicher Filter nach Geltungsbereich und Datensatzfilterung verwendet wird. Einträge in
metadata_filterwerden mit AND-Semantik kombiniert. Einträge, deren Wert kein Operatordictionary auf Feldebene ist, verwenden eine Semantik mit genauen Übereinstimmungen: Der angeforderte Schlüssel muss in den Metadaten des gespeicherten Datensatzes vorhanden sein. Verschachtelte Wörterbücher stimmen mit verschachtelten Metadatenobjekten rekursiv überein. Skalare und Listenwerte müssen exakt übereinstimmen. Listenreihenfolge und -länge müssen ebenfalls übereinstimmen. Lassen Sie dieses Argument weg, oder übergeben SieNone, um ohne Metadatenfilter zu suchen. Beispiele:metadata_filter={"source": "profile_import"}für ein skalares Feld,metadata_filter={"prefs": {"category": "travel"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["survey", "travel"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Um die Arraymitgliedschaft zu testen, verwenden Sie ein Operatordictionary auf Feldebene.
"$array_contains"entspricht einem Wert oder allen Werten in einer Liste."$array_contains_any"entspricht mindestens einem Wert aus einer Liste."$not"negiert einen anderen Ausdruck auf Feldebene in demselben Feld, einschließlich eines Operator-Dictionarys oder eines Raw-Exact-Match-Wertes. Negierte Ausdrücke stimmen überein, wenn der positive Ausdruck fehlschlagen würde, einschließlich fehlender Felder; negierte Array-Mitgliedschaft stimmt auch mit Nicht-Array-Feldern überein:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - Geltungsbereich
SearchScope– Optionaler vordefinierter Suchbereich. Geben Sie entwederscopeoder die explizite ID und die exakten Übereinstimmungsargumente an, nicht beides. Bei OracleAgentMemory-Clientsuchen muss der aufgelöste Geltungsbereich eine expliziteuser_id-Datei mitexact_user_match=Trueenthalten. Verwenden Sieuser_id=None, um nur nicht kopierte Benutzerdatensätze als Ziel festzulegen.
- query
- Rückgaben: Die Suchergebnisse werden nach abnehmender Relevanz sortiert.
- Rückgabetyp: list[SearchResult]
- Raises: ValueError – Wenn
scopemit expliziten Identifier- oder Exact-Match-Argumenten kombiniert wird, wennmax_resultskleiner als1ist, wennmetadata_filterweder ein Dictionary nochNoneist oder wenn die Implementierung den aufgelösten Client-Suchgeltungsbereich ablehnt. OracleAgentMemory-Clientsuchen weisen den ausgelassenen Benutzergeltungsbereich zurück und lehnenexact_user_match=Falseab.
Hinweise
Explizite None-Geltungsbereichswerte folgen weiterhin den aufgelösten exakten Übereinstimmungsregeln: exact_*_match=False lässt diese Dimension uneingeschränkt zu, während exact_*_match=True nur mit Datensätzen übereinstimmt, die in dieser Dimension nicht kopiert wurden.
Methode update_memory
Einen gespeicherten speicherähnlichen Datensatz nach Kennung aktualisieren.
- Parameter:
- memory_id
str: ID des zu aktualisierenden speicherähnlichen Datensatzes. - content
str: Optionaler Ersatzinhalt. Geben Sie eine Zeichenfolge an, um den gespeicherten Inhalt zu ersetzen. Wird der Inhalt ausgelassen, wird der gespeicherte Inhalt beibehalten. Die Übergabe vonNonewird nicht unterstützt. Lassen Siecontentweg, um den aktuellen Wert beizubehalten, oder verwenden Siedelete_memory(), um den Datensatz zu entfernen. - metadata
dict[str, Any] | None– Optionale Metadaten-Ersatzzuordnung. Wenn diese Option ausgelassen wird, werden die gespeicherten Metadaten beibehalten. Wenn angegeben, wird das gespeicherte Metadatenobjekt ersetzt. Diese API ersetzt keine Deep-Merge-Metadaten. - timestamp
str | None– Optionaler neuer Zeitstempel für diesen Speicher. Es stellt dar, wann der Speicher erstellt wurde. Wenn dieser Wert ausgelassen wird, wird der gespeicherte Zeitstempel beibehalten. Übergeben SieNone, um den gespeicherten Zeitstempel zu löschen und die Zeit zu verwenden, zu der der Datensatz im Speicher erstellt wurde. Wennttl_anchorTimeToLiveAnchor.TIMESTAMPist, werden ISO-8601-Zeitstempel ohne Zeitzone als UTC behandelt. - ttl_days
int | None– Optionale Ablaufaktualisierung in Tagen. Lassen Sie dieses Argument weg, damit der aktuelle Ablauf unverändert bleibt, es sei denn,ttl_anchorist angegeben. Übergeben SieNone, umMemoryRetentionConfig.max_ttl_dayszu verwenden, wenn die Aufbewahrungskonfiguration eine festlegt, oder um den Ablauf zu löschen, wenn dies nicht der Fall ist. Werte überMemoryRetentionConfig.max_ttl_dayswerden mit einer Warnung auf dieses Maximum geklemmt. Abgelaufene Speicher sind für diese Client-API nicht verfügbar und können nicht aktualisiert werden. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker für eine Ablaufaktualisierung. Verwenden SieTimeToLiveAnchor.CREATED_ATfür die Speichererstellungszeit oderTimeToLiveAnchor.TIMESTAMPfür den Ersatztimestamp, der in demselben Update bereitgestellt wird, oder den gespeicherten Ereigniszeitstempel, wenntimestampausgelassen wird. Wenn Siettl_anchorohnettl_daysangeben, wird die Standarddauer für die Gültigkeitsdauer des Schemas verwendet. Wennttl_anchorwährend einer Aktualisierung ausgelassen wird, verwendet der ClientTimeToLiveAnchor.CREATED_AT. ISO-8601-Zeitstempel ohne Zeitzone werden als UTC behandelt. - **kwargs (Any) – Unerwartete Schlüsselwortargumente werden abgelehnt.
- memory_id
- Rückgaben: ID des aktualisierten speicherähnlichen Datensatzes.
- Rückgabetyp: str
Hinweise
Ausgelassene Felder werden aus dem gespeicherten Datensatz beibehalten. Der gespeicherte Geltungsbereich bleibt unverändert. Metadatenersetzung ist eine vollständige Objektersetzung, keine rekursive JSON-Zusammenführung.
Methode update_memory_async (asynchron)
Aktualisieren Sie einen gespeicherten speicherähnlichen Datensatz asynchron nach Kennung.
- Parameter:
- memory_id
str: ID des zu aktualisierenden speicherähnlichen Datensatzes. - content
str: Optionaler Ersatzinhalt. Geben Sie eine Zeichenfolge an, um den gespeicherten Inhalt zu ersetzen. Wird der Inhalt ausgelassen, wird der gespeicherte Inhalt beibehalten. Die Übergabe vonNonewird nicht unterstützt. Lassen Siecontentweg, um den aktuellen Wert beizubehalten, oder verwenden Siedelete_memory(), um den Datensatz zu entfernen. - metadata
dict[str, Any] | None– Optionale Metadaten-Ersatzzuordnung. Wenn diese Option ausgelassen wird, werden die gespeicherten Metadaten beibehalten. Wenn angegeben, wird das gespeicherte Metadatenobjekt ersetzt. Diese API ersetzt keine Deep-Merge-Metadaten. - timestamp
str | None– Optionaler neuer Zeitstempel für diesen Speicher. Es stellt dar, wann der Speicher erstellt wurde. Wenn dieser Wert ausgelassen wird, wird der gespeicherte Zeitstempel beibehalten. Übergeben SieNone, um den gespeicherten Zeitstempel zu löschen und die Zeit zu verwenden, zu der der Datensatz im Speicher erstellt wurde. - ttl_days
int | None– Optionale Ablaufaktualisierung in Tagen. Lassen Sie dieses Argument zusammen mitttl_anchorweg, damit der aktuelle Ablauf unverändert bleibt. Übergeben SieNone, um den Ablauf zu löschen. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker für eine Ablaufaktualisierung. Verwenden SieTimeToLiveAnchor.CREATED_ATfür die Speichererstellungszeit oderTimeToLiveAnchor.TIMESTAMPfür den Ersatztimestamp, der in demselben Update bereitgestellt wird, oder den gespeicherten Ereigniszeitstempel, wenntimestampausgelassen wird. Wenn Siettl_anchorohnettl_daysangeben, wird die Standarddauer für die Gültigkeitsdauer des Schemas verwendet. Wennttl_anchorwährend einer Aktualisierung ausgelassen wird, verwenden die SpeicherTimeToLiveAnchor.CREATED_AT. - **kwargs (Any) – Unerwartete Schlüsselwortargumente werden abgelehnt.
- memory_id
- Rückgaben: ID des aktualisierten speicherähnlichen Datensatzes.
- Rückgabetyp: str
Hinweise
Ausgelassene Felder bleiben unverändert. Umfangsaktualisierungen werden von dieser API nicht unterstützt. Metadatenersetzung ist eine vollständige Objektersetzung, keine rekursive JSON-Zusammenführung.
Methode update_thread
Threadmetadaten und dauerhafte Aktualisierungen der Laufzeitkonfiguration beibehalten.
- Parameter:
- thread_id
str: ID des zu aktualisierenden Threads. - metadata
dict[str, Any] | None– Optionale Metadatenaktualisierung für den Unterhaltungsthread. Wenn diese Option ausgelassen wird, bleiben die gespeicherten Metadaten unverändert. Durch die Übergabe vonNonewerden gespeicherte Metadaten explizit gelöscht. Wenn ein Mapping bereitgestellt wird, ersetzt es das gespeicherte Metadatenobjekt. - LLM
ILlm– Optionales LLM-Override für die zurückgegebeneOracleThread-Instanz. Dieser Wert wird nicht beibehalten, sondern nimmt an denselben Validierungsregeln wieget_threadundcreate_threadteil. -
extract_memories
bool–Optionale dauerhafte Überschreibung für automatische Speicherextraktion.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. - max_message_token_length
int– Optionaler dauerhafter Override für die maximale Größe von Prompt-Time-Nachrichten, die während der Extraktion und Zusammenfassung verwendet wird. - message_shortening_input_token_limit
int– Optionaler dauerhafter Override für die maximale Auszugsgröße, die beim Kürzen von übergroßen Nachrichten an das LLM gesendet wird. -
memory_extraction_window
int–Optionale dauerhafte Überschreibung für die Extraktionsfenstergröße.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
context_summary_update_frequency
int–Optionale dauerhafte Überschreibung für die Anzahl der angehängten Nachrichten, die eine kontextbezogene Aktualisierung auslösen.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_frequency
int–Optionale dauerhafte Überschreibung für die Anzahl der angehängten Nachrichten löst die automatische Speicherextraktion aus.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_token_limit
int–Optionale dauerhafte Überschreibung für das Extrahieren und Ausführen von Summen-Prompt-Budgets.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. - context_card_token_limit
int– Optionale dauerhafte Überschreibung für das Eingabe-Tokenbudget des LLM-Prompts, mit dem die in der Kontextkarte enthaltene Übersichts- und Themenliste erstellt wird. -
enable_context_summary
bool–Optionale dauerhafte Überschreibung, wenn laufende Kontextübersichten aktiviert bleiben.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Optionale dauerhafte benutzerdefinierte Anweisungen, die an die Eingabeaufforderung des Speicherextraktionssystems angehängt werden. Wenn Sie
Noneübergeben, werden alle gespeicherten benutzerdefinierten Anweisungen auf Threadebene gelöscht. Bei der Konfiguration wird weiterhin ein Standardwert auf Clientsbene angewendet.Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Optionaler dauerhafter Override für Metadaten, die aus Quellnachrichten in automatisch extrahierte Speicher kopiert werden.
Info: Veraltet seit Version 26.6.0: Dieser Parameter sollte in 26.6.0 nicht mehr verwendet werden und wird in 27.1 entfernt. Verwenden Sie stattdessen
memory_extraction_config. - memory_extraction_config
MemoryExtractionConfig– Optionales, gruppiertes Konfigurationsupdate für dauerhafte Extraktion. Angegebene Felder werden in die gespeicherte Threadkonfiguration geschrieben und von später geladenenOracleThread-Instanzen und späteren Hintergrundextraktionsjobs verwendet. - **kwargs (Beliebig) – Zusätzliche implementierungsspezifische Optionen.
OracleAgentMemoryweist derzeit unbekannte Schlüsselwortargumente zurück.
- thread_id
- Rückgaben: Aktualisierte Instanz
OracleThreadmit den persistenten Metadaten und der Laufzeitkonfiguration. - Rückgabetyp: OracleThread
- Erhöht:
- KeyError – Wenn die Thread-ID dieser Clientinstanz unbekannt ist.
- ValueError – Wenn kein LLM für die automatische Speicherextraktion verfügbar ist, nachdem die effektive Laufzeitkonfiguration aufgelöst wurde.
Hinweise
Die Laufzeitkonfiguration wird aus dem gespeicherten Unterhaltungsthread plus den expliziten Overrides aufgelöst, die an diesen Aufruf übergeben werden, und entspricht der get_thread-Semantik, bevor das Ergebnis persistiert wird. Ausgelassene Metadaten- und Laufzeitkonfigurationsupdates werden aus gespeicherten Daten und nicht aus zuvor geladenen OracleThread-Instanzen aufgelöst. Nur explizit bereitgestellte Metadatenupdates oder dauerhafte Laufzeitkonfigurations-Overrides werden zurückgeschrieben. Metadatenersetzung ist eine vollständige Objektersetzung, keine rekursive JSON-Zusammenführung. Thread-Eigentümerschaft kann über diese API nicht geändert werden, sodass user_id und agent_id unverändert bleiben. Veränderbarer Laufzeitzustand, wie Extraktionszähler, bleibt unberührt.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
updated = client.update_thread(
"c1",
metadata={"flags": {"vip": True}},
message_shortening_input_token_limit=12_000,
)
updated.message_shortening_input_token_limit
12000
Methode wait_for_memory_extraction
Warten Sie auf eine frühere Hintergrundspeicherextraktion, die von diesem Client gestartet wurde.
Diese Methode wartet auf die Hintergrundextraktion, die bereits über diese OracleAgentMemory-Instanz gestartet wurde, über alle Threads hinweg, deren Eigentümer diese Agent-Speicherkomponente ist. Es wartet nicht auf den Start der Extraktion nach Beginn dieser Wartezeit, auf die Extraktion, die von einer anderen Agent-Speicherkomponente gestartet wurde, oder auf die Extraktion, die in einem anderen Prozess ausgeführt wird. Extraktionsfehler zählen als beendet für diese Wartezeit.
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die gewartet werden soll. Standard ist300. Übergeben SieNone, um zu warten, bis diese Agent-Speicherkomponente keine ausstehende Extraktion aufweist. - Gelöst: TimeoutError – Wird ausgelöst, wenn der Timeout abläuft, bevor die frühere Hintergrundextraktion abgeschlossen ist.
- Rückgabetyp: Keine
Beispiele
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
Methode wait_for_memory_extraction_async (asynchron)
Asynchrones Warten auf frühere Hintergrundspeicherextraktion.
Diese Methode folgt demselben Verhalten wie wait_for_memory_extraction().
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die gewartet werden soll. Standard ist300. Übergeben SieNone, um unbegrenzt zu warten. - Gelöst: TimeoutError – Wird ausgelöst, wenn der Timeout abläuft, bevor die frühere Hintergrundextraktion abgeschlossen ist.
- Rückgabetyp: Keine
Beispiele
await client.wait_for_memory_extraction_async(timeout=10)
Speicherextraktion
Klasse oracleagentmemory.core.MemoryExtractionConfig
Basis: object
Gruppierte Einstellungen für die automatische Speicherextraktion.
Übergeben Sie dieses Objekt an OracleAgentMemory, create_thread, get_thread oder update_thread, um die automatische Extraktion zu konfigurieren. Ausgelassene Felder werden von der nächsten größeren Einstellung übernommen. Beispiel: Ein Thread, der ohne memory_extraction_frequency erstellt wurde, verwendet den Standardwert der Agent-Speicherkomponente, und der Komponentenstandardwert wird auf den SDK-Standardwert zurückgesetzt.
- Parameter:
- memory_extraction_window
int: Fenster "Letzte Nachricht", das für Extraktions-Prompts verwendet wird.-1bedeutet, dass der Extraktions-Prompt nur die neu hinzugefügten Nachrichten verwendet. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - context_summary_update_frequency
int– Anzahl der angehängten Nachrichten zwischen laufenden Aktualisierungen der Kontextübersicht. Werte unter0werden nach jedem Anhängen aktualisiert. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - memory_extraction_frequency
int: Anzahl der angehängten Nachrichten zwischen Speicherextraktionsausführungen. Werte unter0extrahieren nach jedem Anhängen. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - memory_extraction_token_limit
int: Eingabe-Tokenbudget für Extraktion und Aggregat-Prompts. Werte unter1deaktivieren das Prompt-Budgetlimit. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - extract_memories
bool– Gibt an, ob die automatische Speicherextraktion aktiviert ist. Setzen Sie diesen Wert aufFalse, um die automatische Extraktion zu deaktivieren und den Vorgang ohne Extraktions-LLM zuzulassen. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - enable_context_summary
bool– Gibt an, ob Extraktions-Prompts eine laufende Kontextübersicht verwalten und verwenden. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - memory_extraction_custom_instructions
str | None– Optionale Aufruferanweisungen, die an die Eingabeaufforderung des Extraktionssystems angehängt werden. Übergeben SieNoneanupdate_thread, um gespeicherte Anweisungen auf Threadebene zu löschen. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]– Steuert Metadaten, die aus Quellnachrichten in extrahierte Speicher kopiert werden.Truekopiert alle Metadaten der Quellnachricht,Falsekopiert keine und eine Sequenz kopiert nur die Metadatenschlüssel der obersten Ebene. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode-MemoryExtractionMode.INLINEführt die automatische Extraktion aus, bevor die Schreibmethode zurückgegeben wird.MemoryExtractionMode.BACKGROUNDgibt zurück, nachdem der Raw-Schreibvorgang erfolgreich war und die erforderliche Extraktionsarbeit im Hintergrund versucht wurde. Im Hintergrundmodus können abgeleitete Speicher später erscheinen, vorübergehend veraltet sein oder niemals geschrieben werden, wenn die Hintergrundarbeit nicht abgeschlossen werden kann. Beispiel:update_message()kann zurückgegeben werden, bevor ein späterer Speicherlesevorgang den aktualisierten Nachrichteninhalt widerspiegelt. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. Wenn kein breiterer Wert konfiguriert ist, lautet der effektive ModusINLINE. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– Kontrolliert im Hintergrundmodus, was geschieht, wenn die automatische Extraktion nicht sofort in eine Warteschlange gestellt werden kann.DROPprotokolliert eine Warnung und wird ohne Warten fortgesetzt.WAIT_THEN_DROPwartet bis zum konfigurierten Timeout auf Queuekapazität, protokolliert dann eine Warnung und fährt fort.WAIT_THEN_RAISEwartet bis zum konfigurierten Timeout auf Queuekapazität und löst dannTimeoutErroraus, nachdem der Raw-Schreibvorgang erfolgreich war. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. Wenn kein breiterer Wert konfiguriert ist, lautet der effektive StandardwertDROP. - background_extraction_queue_put_timeout_seconds
float– Im Hintergrundmodus wartet die maximale Anzahl von Sekunden, bis die automatische Extraktion auf die Warteschlangenkapazität wartet, wennbackground_extraction_queue_full_behaviorWAIT_THEN_DROPoderWAIT_THEN_RAISEist. Lassen Sie dieses Feld aus, um den Wert zu übernehmen. Wenn kein breiterer Wert konfiguriert ist, beträgt der effektive Standardwert300.0Sekunden.
- memory_extraction_window
Beispiele
from oracleagentmemory.core import MemoryExtractionConfig, MemoryExtractionMode
config = MemoryExtractionConfig(
extract_memories=True,
extraction_mode=MemoryExtractionMode.BACKGROUND,
)
Klasse oracleagentmemory.core.MemoryExtractionMode
Basis: str, Enum
Steuert, wann die automatische Speicherextraktion ausgeführt wird.
INLINE führt die automatische Extraktion aus, bevor die Schreibmethode zurückgegeben wird. BACKGROUND gibt zurück, nachdem der Raw-Schreibvorgang erfolgreich war und die erforderliche Extraktionsarbeit im Hintergrund versucht wurde. Die Hintergrundextraktion ist am besten: abgeleitete Erinnerungen können später erscheinen oder niemals geschrieben werden, wenn die Hintergrundarbeit nicht abgeschlossen werden kann.
HINTERGRUND = 'HINTERGRUND'
Nach Raw-Nachrichtenpersistenz zurückkehren und Best-Effort-Extraktion in Hintergrundarbeit ausführen.
INLINE = 'INLINE'
Führen Sie die Extraktion aus, bevor die Schreibmethode zurückgegeben wird.
Klasse oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Basis: str, Enum
Steuert, was passiert, wenn die Hintergrundextraktion nicht rechtzeitig in eine Warteschlange gestellt werden kann.
LÖSCHEN = 'DROP'
Melden Sie eine Warnung, und fahren Sie sofort fort, wenn die Warteschlangenkapazität nicht verfügbar ist.
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
Warten Sie bis zum konfigurierten Timeout auf die Queuekapazität, melden Sie eine Warnung an, und fahren Sie fort.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
Warten Sie bis zum konfigurierten Timeout auf die Queuekapazität, und starten Sie dann TimeoutError.