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. Das Löschen auf Client-Ebene wartet auf die relevante frühere Hintergrundextraktion: Threadlöschung wartet auf diesen Thread, Speicherlöschung wartet auf den Thread des gespeicherten Ziels, wenn er vorhanden ist, und Benutzer- oder Agentlöschung wartet auf bekannte Threads, unabhängig davon, ob die kaskadierende Bereinigung aktiviert ist oder nicht. Diese Waits decken nur Arbeiten ab, die von demselben Client akzeptiert werden, bevor das Warten beginnt.
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. Insbesondere ist ein ausgelassener BildkontextDISABLED. - image_input_limit_config
ImageInputLimitConfig– Optionale Grenzwerte für Raw-Images und LLM-Imageanforderungen auf Client-Ebene. Ausgelassene Felder verwenden SDK-Standardwerte und werden von Threads geerbt, es sei denn, ein Thread stellt eine Überschreibung bereit. Validierung kann nicht deaktiviert werden. - 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. Wennschema_ownerfestgelegt ist, ist nurSchemaPolicy.REQUIRE_EXISTINGzulässig. Dadurch wird verwaltete Schema-DDL verhindert, einschließlich Schemaerstellung, Upgrades, Neuerstellung und erster Hybridindexerstellung. Führen Sie diese Aktionen aus, während Sie als Eigentümerdatenbankbenutzer ohneschema_ownerangemeldet sind. Der Client wird nicht schreibgeschützt: Lese- und Schreibvorgänge im normalen Speicher verwenden die vom Verbindungsbenutzer erteilten Datenbankberechtigungen. - 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. Der DB-Speicher normalisiert ihn in Großbuchstaben, sodass durch die Groß-/Kleinschreibung keine andere Speicheridentität erstellt wird. Ü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.Veraltet
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. - schema_owner
str: Optionaler Schemaeigentümer für einen vorhandenen verwalteten Speicherspeicher. Lassen Sie diese Option aus, um das Schema des Verbindungsbenutzers zu verwenden. Verwenden Sie es, wennconnection– eine Raw-Datenbankverbindung oder ein Verbindungspool – zu einem Anwendungs-DB-Benutzer gehört, der Berechtigungen für Tabellen besitzt, deren Eigentümer ein anderer Benutzer ist. Diese Option ist nur für Laufzeitzugriff auf einen bereits erstellten verwalteten Speicherspeicher vorgesehen und erfordertSchemaPolicy.REQUIRE_EXISTING. Erstellen, aktualisieren oder neu erstellen Sie den verwalteten Speicherspeicher, während Sie als Schemaeigentümer angemeldet sind, und lassen Sie diese Option aus. Übergeben Sie einen Bezeichner ohne Anführungszeichen. Die Eingabe in Kleinbuchstaben wird in Großbuchstaben normalisiert, und Schemaeigentümer, bei denen die Groß-/Kleinschreibung beachtet wird, werden nicht unterstützt. Wenn Sie eine vorkonfiguriertestoreübergeben, konfigurieren Sie stattdessenschema_ownerin diesem Speicher. Erteilen Sie dem Anwendungs-DB-BenutzerCREATE SESSIONund die erforderlichen Objektberechtigungen. Die genauen Berechtigungen finden Sie im AbschnittDatabase Users and Privilegesdes Handbuchs zur Fehlerbehebung. Alternativ können Sie Managed Object-Ansichten mit demselben Namen im Laufzeitschema bereitstellen undschema_ownerweglassen. Dies wird nur fürSchemaPolicy.REQUIRE_EXISTINGunterstützt. - 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. Wennschema_policy=SchemaPolicy.REQUIRE_EXISTINGund dieses Argument weggelassen werden, erkennt der beste Aufwand des DB-Speichers den gespeicherten Suchmodus des Schemas aus verwalteten Metadaten und verwendet diesen Modus, sofern verfügbar. - 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.Veraltet
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.Veraltet
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. - search_config
MemorySearchConfig– Optionale Suchkonfiguration auf Client-Ebene, die von neuen und geladenen Threads geerbt wird. Wenn keine Suche durchgeführt wird, wird eine feste Top-K-Suchkonfiguration verwendet. - pruner_llm
ILlm– Optionales LLM, das für das clientseitige Ergebnis-Pruning verwendet wird. Wenn diese Option festgelegt ist, verwenden direkte Clientsuchen und geerbte Threadsuchen standardmäßig das Pruning mit dem AuswertungsmodusFAST. Vorhandene Threads mit einer gespeicherten Suchkonfiguration behalten diese Konfiguration bei, wenn sie erneut geöffnet wird. Verwenden Siesearch_config=PruningMemorySearchConfig(...), um das Pruning-Verhalten anzupassen.pruner_llmkann nicht mitsearch_configkombiniert werden.
- 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 - image_input_limit_config
ImageInputLimitConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - schema_owner
str - search_strategy
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig - search_config
MemorySearchConfig - pruner_llm
ILlm
- Speicher
Beispiele
Um auf ein Schema zuzugreifen, das von einem anderen Datenbankbenutzer erstellt wurde, konfigurieren Sie memory_rw_pool für den Anwendungs-DB-Benutzer, und setzen Sie memory_schema_owner auf den Datenbanknamen des Eigentümerbenutzers ohne Anführungszeichen.
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),
)
pruned_search_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
pruner_llm=llm,
)
shared_client = OracleAgentMemory(
connection=memory_rw_pool,
embedder=embedder,
llm=llm,
schema_owner=memory_schema_owner,
)
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,
memory_store_id=memory_store_id,
)
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_agent_async (asynchron)
Fügen Sie dem Speicher asynchron 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,
)
import asyncio
asyncio.run(client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
))
'a1'
Methode add_image
Fügen Sie dem Client einen Bilddatensatz hinzu.
- Parameter:
- image
bytes: Imagebyte, die als Image gespeichert werden sollen. - Beschreibung
str | None– Optionale Beschreibung, die mit dem Bild verknüpft ist. Lassen Sie es aus, oder übergeben SieNone, um ein LLM mit dem konfigurierten LLM zu generieren. - mime_type
ImageMimeType– MIME-Typ des Images. Unterstützte Werte werden vonImageMimeTypebereitgestellt. Wenn diese Option ausgelassen wird, erkennt und validiert das SDK den Typ aus den Imagebytes. Die unterstützten erkannten Typen sind PNG, JPEG und WEBP. - image_id
str– Optionale vom Aufrufer bereitgestellte stabile ID. Wenn sie weggelassen wird, wird eine generiert. - user_id
str | None: Optionaler Benutzereigentümer. Geben Sie mindestens einen der folgenden Werte an:user_id,agent_idoderthread_id; alle drei können nichtNonesein. - agent_id
str | None: Optionale Agent-ID, die mit dem Image verknüpft werden soll. - thread_id
str– Optionale Thread-ID, die mit dem Image verknüpft werden soll. - metadata
dict[str, Any] | None– Optionale Metadaten, die mit der Bildzeile persistiert werden. - timestamp
str | None: Optionaler Ereigniszeitstempel, der für dieses Image gespeichert werden soll. Lassen Sie dieses Argument weg, oder übergeben SieNone, um einenNULL-Ereigniszeitstempel zu speichern. Wenn das Bild gelesen wird, wird die Erstellungszeit als effektiver Zeitstempel zurückgegeben. - 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 ein Image zu speichern, das nicht abläuft. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker. Verwenden SieTimeToLiveAnchor.CREATED_ATals Erstellungszeit der Datenbank oderTimeToLiveAnchor.TIMESTAMPals Imagezeitstempel. - **store_kwargs (Beliebig) – Implementierungsspezifische Schreiboptionen, die an den zugrunde liegenden Speicher weitergeleitet werden.
- image
- Rückgaben: ID des eingefügten Bilddatensatzes.
- Rückgabetyp: str
Beispiele
image_id = client.add_image(
b"image-bytes",
description="Image description",
mime_type=ImageMimeType.PNG,
image_id="img-1",
user_id="user-1",
)
image_id
'img-1'
Methode add_image_async (asynchron)
Behalten Sie ein Standalone-Abbild über den konfigurierten Speicher bei.
Wenn description weggelassen wird oder None, generiert das konfigurierte LLM einen Titel.
- Parameter:
- image
bytes: Zu persistierende Byte für Raw-Images. - Beschreibung
str | None– Optionale Beschreibung oder Beschriftung. Lassen Sie es aus, um eine Beschriftung zu generieren. - mime_type
ImageMimeType– Optionaler MIME-Typ, der für die Imagepersistenz und Beschriftungsgenerierung verwendet wird. Wenn diese Option ausgelassen wird, erkennt und validiert das SDK den Typ aus den Imagebytes. Die unterstützten erkannten Typen sind PNG, JPEG und WEBP. - image_id
str: Optionale ID. Eine wird generiert, wenn sie ausgelassen wird. - user_id
str | None: Geltungsbereichs-IDs des Eigentümers. Mindestens ein Wert darf nichtNonesein. Wennthread_idangegeben wird, ist die Verantwortung für den gespeicherten Benutzer und Agent maßgeblich; ausgelassene Benutzer- und Agent-Werte werden geerbt. - agent_id
str | None: Geltungsbereichs-IDs des Eigentümers. Mindestens ein Wert darf nichtNonesein. Wennthread_idangegeben wird, ist die Verantwortung für den gespeicherten Benutzer und Agent maßgeblich; ausgelassene Benutzer- und Agent-Werte werden geerbt. - thread_id
str: Geltungsbereichs-IDs des Eigentümers. Mindestens ein Wert darf nichtNonesein. Wennthread_idangegeben wird, ist die Verantwortung für den gespeicherten Benutzer und Agent maßgeblich; ausgelassene Benutzer- und Agent-Werte werden geerbt. - metadata
dict[str, Any] | None– Optionale Metadaten, die mit dem Image gespeichert sind. - timestamp
str | None: Optionaler Ereigniszeitstempel, der für dieses Image gespeichert werden soll. Lassen Sie dieses Argument weg, oder übergeben SieNone, um einenNULL-Ereigniszeitstempel zu speichern. Wenn das Bild gelesen wird, wird die Erstellungszeit als effektiver Zeitstempel zurückgegeben. - ttl_days
int | None– Optionale Ablaufeinstellungen. - ttl_anchor
TimeToLiveAnchor– Optionale Ablaufeinstellungen. - store_kwargs
Any: Zusätzliche speicherspezifische Optionen.
- image
- Rückgaben: Die persistente Bild-ID.
- Rückgabetyp: str
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. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - agent_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - thread_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - 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 Ereigniszeitstempel, der für diesen Speicher gespeichert werden soll. Lassen Sie dieses Argument weg, oder übergeben SieNone, um einenNULL-Ereigniszeitstempel zu speichern. Wenn der Datensatz gelesen wird, wird seine Erstellungszeit als effektiver Zeitstempel zurückgegeben. 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. - status
RecordStatus: Anfänglicher Lebenszyklusstatus. Lassen Sie es aus, umRecordStatus.VALIDzu speichern. - autonomous_linking
bool- Gibt an, ob Links aus diesem neuen Speicher zu relevanten gespeicherten Speichern mit dem LLM des Clients erstellt werden sollen. "Omitted" aktiviert es, wenn ein LLM vorhanden ist. Übergeben SieFalse, um zu überspringen. Bei einem Fehler bleibt der Speicher gespeichert. - memory_id_to_link
str: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Speicher, auch in einem anderen Bereich. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Speicher, auch in einem anderen Bereich. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. - link_id
str: Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - link_timestamp
str | None: Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - link_metadata
dict[str, Any] | None– Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - **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 asynchron einen Speicher im Speichersystem hinzu.
- 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. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - agent_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - thread_id
str– Optionale Geltungsbereichs-IDs, die mit dem gespeicherten Speicher verknüpft sind. Wennuser_idausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext überträgt, verwendet der Speicher den Benutzernamen dieses Kontexts. - 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 Ereigniszeitstempel, der für diesen Speicher gespeichert werden soll. Lassen Sie dieses Argument weg, oder übergeben SieNone, um einenNULL-Ereigniszeitstempel zu speichern. Wenn der Datensatz gelesen wird, wird seine Erstellungszeit als effektiver Zeitstempel zurückgegeben. 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. - status
RecordStatus: Anfänglicher Lebenszyklusstatus. Lassen Sie es aus, umRecordStatus.VALIDzu speichern. - autonomous_linking
bool- Gibt an, ob Links aus diesem neuen Speicher zu relevanten gespeicherten Speichern mit dem LLM des Clients erstellt werden sollen. "Omitted" aktiviert es, wenn ein LLM vorhanden ist. Übergeben SieFalse, um zu überspringen. Bei einem Fehler bleibt der Speicher gespeichert. - memory_id_to_link
str: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Speicher, auch in einem anderen Bereich. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Speicher, auch in einem anderen Bereich. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. - link_id
str: Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - link_timestamp
str | None: Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - link_metadata
dict[str, Any] | None– Optionale ID, Zeitstempel und Metadaten für den expliziten Link. - **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,
)
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"User likes pizza", memory_id="mem-1"
))
memory_id
'mem-1'
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 add_user_async (asynchron)
Fügen Sie dem Speicher asynchron 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,
)
import asyncio
asyncio.run(client.add_user_async(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
))
'u1'
Methode close
Schließen Sie die Agent-Speicherkomponente.
Beim Schließen werden keine neuen Hintergrundarbeiten akzeptiert, einschließlich Speicherextraktion und Generierung von Bildbeschreibungen, und es wird gewartet, bis die ausstehenden Arbeiten bis zum konfigurierten Timeout abgeschlossen sind. Wenn dieser Timeout abläuft, gibt close() auch dann zurück, wenn einige Arbeiten noch nicht abgeschlossen sind. Die Methode ist idempotent.
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die auf den Abschluss der angenommenen Hintergrundarbeit 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 Hintergrundarbeit noch ausgeführt wird.
- Parameter: timeout
float | None– Optionale maximale Anzahl von Sekunden, die auf den Abschluss der angenommenen Hintergrundarbeit warten. Standard ist300. Übergeben SieNone, um unbegrenzt zu warten. - Rückgabetyp: Keine
Beispiele
import asyncio
asyncio.run(client.close_async())
Methode create_thread
Erstellen und Registrieren eines Threads.
- 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. Wenn diese Option ausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext enthält, wird der Benutzername dieses Kontexts verwendet. Andernfalls wird eine neue ID 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. Die angegebenen Felder überschreiben die Clientkonfiguration. Der ausgelassene Bildkontext verwendet den Clientwert und dannDISABLED. Die aufgelöste Konfiguration wird mit dem Thread gespeichert, sodass spätere Ladevorgänge das Erstellungszeitverhalten beibehalten. - image_input_limit_config
ImageInputLimitConfig– Optionale Grenzwerte für Raw-Images und LLM-Imageanforderungen pro Thread. Ausgelassene Felder werden von der Clientkonfiguration übernommen. Die aufgelösten Grenzwerte werden mit dem Thread gespeichert. - search_config
MemorySearchConfig– Optionale Suchkonfiguration für den Thread. Wenn diese Option ausgelassen wird, wird die Konfiguration auf Client-Ebene verwendet. - 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.Veraltet
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.Veraltet
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–Anzahl der Nachrichten nach der letzten gültigen Übersicht, bevor sie automatisch aktualisiert werden. Wenn die Speicherextraktion aktiviert ist, erfolgt die Prüfung nach jeder fälligen Extraktion, sodass später eine Aktualisierung erfolgen kann. Werte kleiner/gleich
0Refresh bei jeder Prüfung. Wenn diese Option ausgelassen wird, wird standardmäßig-1verwendet.Veraltet
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.Veraltet
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.Veraltet
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.
Veraltet
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.
Veraltet
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.
Veraltet
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 create_thread_async (asynchron)
Thread asynchron erstellen und registrieren
- 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. Wenn diese Option ausgelassen wird und die DB-Verbindung einen Endbenutzersicherheitskontext enthält, wird der Benutzername dieses Kontexts verwendet. Andernfalls wird eine neue ID 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. Die angegebenen Felder überschreiben die Clientkonfiguration. Der ausgelassene Bildkontext verwendet den Clientwert und dannDISABLED. Die aufgelöste Konfiguration wird mit dem Thread gespeichert, sodass spätere Ladevorgänge das Erstellungszeitverhalten beibehalten. - image_input_limit_config
ImageInputLimitConfig– Optionale Grenzwerte für Raw-Images und LLM-Imageanforderungen pro Thread. Ausgelassene Felder werden von der Clientkonfiguration übernommen. Die aufgelösten Grenzwerte werden mit dem Thread gespeichert. - search_config
MemorySearchConfig– Optionale Suchkonfiguration für den Thread. Wenn diese Option ausgelassen wird, wird die Konfiguration auf Client-Ebene verwendet. - 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.Veraltet
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.Veraltet
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–Anzahl der Nachrichten nach der letzten gültigen Übersicht, bevor sie automatisch aktualisiert werden. Wenn die Speicherextraktion aktiviert ist, erfolgt die Prüfung nach jeder fälligen Extraktion, sodass später eine Aktualisierung erfolgen kann. Werte kleiner/gleich
0Refresh bei jeder Prüfung. Wenn diese Option ausgelassen wird, wird standardmäßig-1verwendet.Veraltet
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.Veraltet
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.Veraltet
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.
Veraltet
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.
Veraltet
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.
Veraltet
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,
)
import asyncio
thread = asyncio.run(client.create_thread_async(
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
Vor dem Löschen des Profils wartet diese Methode bis zu 300 Sekunden auf eine frühere Hintergrundextraktion, die bereits für eigene Threads akzeptiert wurde, die über diese Agent-Speicherkomponente bekannt sind. Dieses Warten gilt, ob die kaskadierende Bereinigung aktiviert ist oder nicht. Kaskadierende Bereinigung wird im Backing Store als ein Vorgang geplant und ausgeführt. Die Methode wartet nicht auf angenommene Arbeit, nachdem die Wartezeit beginnt oder die Arbeit 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_agent_async (asynchron)
Agent-Profildatensatz asynchron 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
- Raises: TimeoutError – Wird ausgelöst, ohne das Profil zu löschen, wenn die frühere akzeptiert Hintergrundextraktion für bekannte Threads im Eigentümer nicht innerhalb von 300 Sekunden abgeschlossen wird.
Hinweise
Diese Methode folgt dem von delete_agent() dokumentierten Warte- und Nebenläufigkeitsverhalten der Hintergrundextraktion.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_agent_async("a-delete", "Support assistant"))
'a-delete'
asyncio.run(client.delete_agent_async("a-delete"))
1
Methode delete_image
Bilddatensatz nach Kennung löschen.
- Parameter: image_id
str: ID des zu entfernenden Bilddatensatzes. - Rücksendungen: Anzahl gelöschter Bilddatensätze.
- Rückgabetyp: int
- Gelöst: ValueError – Wenn das Bild an eine Nachricht angehängt ist. Löschen oder aktualisieren Sie stattdessen die übergeordnete Nachricht.
Methode delete_image_async (asynchron)
Löschen Sie ein eigenständiges Bild über den konfigurierten Speicher.
- Parameter: image_id
str: ID des zu löschenden Images. - Rückgaben:
1, wenn sie gelöscht werden, andernfalls0, wenn kein übereinstimmendes Bild vorhanden ist. - Rückgabetyp: int
- Gelöst: ValueError – Wenn das Bild an eine Nachricht angehängt ist. Löschen oder aktualisieren Sie stattdessen die übergeordnete Nachricht.
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
- Raises: TimeoutError – Wird ohne Löschen des Datensatzes ausgelöst, wenn die frühere angenommene Hintergrundextraktion für den gespeicherten Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Vor dem Löschen eines Thread-bezogenen Datensatzes löst diese Methode den gespeicherten Thread auf und wartet auf eine frühere Hintergrundextraktion, die über diese Agent-Speicherkomponente akzeptiert wurde. Es wartet nicht auf nicht verwandte Threads, wird nach Beginn des Wait-Ereignisses angenommen oder wird von einer anderen Agent-Speicherkomponente oder einem anderen Agent-Prozess gestartet. Datensätze ohne Thread-Geltungsbereich und unbekannte IDs verursachen keine Extraktionswartezeit.
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)
Einen speicherähnlichen Datensatz asynchron löschen.
- 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
- Raises: TimeoutError – Wird ohne Löschen des Datensatzes ausgelöst, wenn die frühere angenommene Hintergrundextraktion für den gespeicherten Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Diese Methode folgt dem gezielten Warte- und Nebenläufigkeitsverhalten der Hintergrundextraktion, das von delete_memory() dokumentiert wurde.
Beispiele
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"Temporary memory", memory_id="mem-delete"
))
asyncio.run(client.delete_memory_async(memory_id))
1
Methode delete_record_link
Relation nach ID oder vollständigem Endpunkttupel löschen.
Wenn kein relation_id angegeben wird, geben Sie jedes Quell-, Ziel-, Typ- und Relation-Label-Argument in der gespeicherten Quell-zu-Ziel-Ausrichtung an.
- Parameter:
- source_record_id
str: Quell-ID bei der Auswahl nach Endpunkt-Tupel. - source_record_type
str: Logischer Quelldatensatztyp bei der Auswahl nach Endpunkt-Tupel. - target_record_id
str: Ziel-ID bei Auswahl nach Endpunkt-Tupel. - target_record_type
str: Logischer Zieldatensatztyp bei der Auswahl nach Endpunkt-Tupel. - relation_type
str: Beschriftung "Quelle zu Ziel" bei Auswahl nach Endpunkt-Tupel. - relation_id
str: Beziehungs-ID zur direkten Auswahl. Geben Sie dies alleine an.
- source_record_id
- Rückgaben: Anzahl der gelöschten Beziehungen, entweder
0oder1. - Rückgabetyp: int
Beispiele
client.delete_record_link(relation_id="relation-id")
1
Methode delete_record_link_async (asynchron)
Relation nach ID oder vollständigem Endpunkt-Tupel asynchron löschen.
- Parameter:
- source_record_id
str - source_record_type
str - target_record_id
str - target_record_type
str - relation_type
str - relation_id
str
- source_record_id
- 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_thread_async (asynchron)
Löschen Sie alle Datensätze, die einer Thread-ID zugeordnet sind, asynchron.
- 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,
)
import asyncio
thread = asyncio.run(client.create_thread_async(thread_id="c-delete"))
asyncio.run(client.delete_thread_async(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
Vor dem Löschen des Profils wartet diese Methode bis zu 300 Sekunden auf eine frühere Hintergrundextraktion, die bereits für eigene Threads akzeptiert wurde, die über diese Agent-Speicherkomponente bekannt sind. Dieses Warten gilt, ob die kaskadierende Bereinigung aktiviert ist oder nicht. Kaskadierende Bereinigung wird im Backing Store als ein Vorgang geplant und ausgeführt. Die Methode wartet nicht auf angenommene Arbeit, nachdem die Wartezeit beginnt oder die Arbeit 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 delete_user_async (asynchron)
Löschen Sie einen Benutzerprofildatensatz asynchron nach ID.
- 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
- Raises: TimeoutError – Wird ausgelöst, ohne das Profil zu löschen, wenn die frühere akzeptiert Hintergrundextraktion für bekannte Threads im Eigentümer nicht innerhalb von 300 Sekunden abgeschlossen wird.
Hinweise
Diese Methode folgt dem von delete_user() dokumentierten Warte- und Nebenläufigkeitsverhalten der Hintergrundextraktion.
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_user_async("u-delete", "Prefers concise answers."))
'u-delete'
asyncio.run(client.delete_user_async("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. Angegebene Felder überschreiben gespeicherte Threadwerte. Ein ausgelassener Bildkontext verwendet den gespeicherten Threadwert, dann den Clientwert und dannDISABLED. Das Override gilt nur für die zurückgegebeneOracleThread-Instanz und wird nicht in die gespeicherte Konversationsthreadkonfiguration zurückgeschrieben. - image_input_limit_config
ImageInputLimitConfig– Optionales Raw-Image- und LLM-Imageanforderungslimit außer Kraft gesetzt. Ausgelassene Felder erben Limits für gespeicherte Threads. Diese Überschreibung gilt nur für den zurückgegebenen Thread und wird nicht beibehalten. - search_config
MemorySearchConfig– Optionale Suchkonfiguration für das zurückgegebeneOracleThread. Wird diese Option ausgelassen, wird die gespeicherte Konfiguration oder die Konfiguration auf Client-Ebene verwendet. Diese Überschreibung gilt nur für den zurückgegebenen Thread. - 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.Veraltet
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.
Veraltet
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 Nachrichten nach der letzten gültigen Übersicht vor der automatischen Aktualisierung.
Veraltet
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.
Veraltet
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.
Veraltet
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.Veraltet
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.Veraltet
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.
Veraltet
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="c2", user_id="u1")
loaded = client.get_thread("c2")
loaded.user_id
'u1'
Methode get_thread_async (asynchron)
Ruft einen zuvor erstellten Thread asynchron 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. Angegebene Felder überschreiben gespeicherte Threadwerte. Ein ausgelassener Bildkontext verwendet den gespeicherten Threadwert, dann den Clientwert und dannDISABLED. Das Override gilt nur für die zurückgegebeneOracleThread-Instanz und wird nicht in die gespeicherte Konversationsthreadkonfiguration zurückgeschrieben. - image_input_limit_config
ImageInputLimitConfig– Optionales Raw-Image- und LLM-Imageanforderungslimit außer Kraft gesetzt. Ausgelassene Felder erben Limits für gespeicherte Threads. Diese Überschreibung gilt nur für den zurückgegebenen Thread und wird nicht beibehalten. - search_config
MemorySearchConfig– Optionale Suchkonfiguration für das zurückgegebeneOracleThread. Wird diese Option ausgelassen, wird die gespeicherte Konfiguration oder die Konfiguration auf Client-Ebene verwendet. Diese Überschreibung gilt nur für den zurückgegebenen Thread. - 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.Veraltet
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.
Veraltet
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 Nachrichten nach der letzten gültigen Übersicht vor der automatischen Aktualisierung.
Veraltet
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.
Veraltet
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.
Veraltet
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.Veraltet
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.Veraltet
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.
Veraltet
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,
)
import asyncio
created = asyncio.run(client.create_thread_async(
thread_id="c2", user_id="u1"
))
loaded = asyncio.run(client.get_thread_async("c2"))
loaded.user_id
'u1'
Methode link_records
Erstellen Sie eine gerichtete Beziehung zwischen zwei gespeicherten Datensätzen.
Derzeit müssen beide Endpunkte speicherähnliche Datensätze sein: "memory", "fact", "guideline" oder "preference". Integrierte Relationstypen sind "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") und "duplicates". "contradicts" und "duplicates" verwenden dasselbe Label umgekehrt.
Für ein Endpunktpaar kann nur eine Ausrichtung gespeichert werden. opposite_relation_type benennt die Beziehung beim Durchlaufen von Ziel zu Quelle. Beispiel: Wenn new "supersedes" old, ist der Reverse Traversal old "is_superseded_by" new.
- Parameter:
- source_record_id
str: Bezeichner des Quelldatensatzes. - source_record_type
str: Der logische Typ des Quelldatensatzes. - target_record_id
str: ID des Zieldatensatzes. - target_record_type
str: Logischer Typ des Zieldatensatzes. - relation_type
str– Beschriftung in Richtung Quelle zu Ziel. - opposite_relation_type
str– Optionales Label, das beim umgekehrten Durchlaufen dieser Beziehung verwendet werden soll. Lassen Sie dies bei integrierten Speicherbeziehungstypen aus, um das vordefinierte Reverse Label zu speichern (Beispiel:"supports"wird zu"is_supported_by"). Bei benutzerdefinierten Beziehungstypen verwendet das Auslassen dasselbe Label in beiden Richtungen. - relation_id
str– Optionale stabile Beziehungs-ID. Lassen Sie es aus, um eine zu generieren. - timestamp
str | None: Optionaler Zeitstempel, der mit der Beziehung verknüpft ist. - metadata
dict[str, Any] | None– Optionale Metadaten, die in der Beziehung gespeichert sind.
- source_record_id
- Rückgaben: ID der erstellten Beziehung.
- Rückgabetyp: str
Beispiele
client.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
Methode link_records_async (asynchron)
Erstellen Sie asynchron eine typisierte Beziehung zwischen gespeicherten Datensätzen.
Derzeit müssen beide Endpunkte speicherähnliche Datensätze sein: "memory", "fact", "guideline" oder "preference". Integrierte Relationstypen sind "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") und "duplicates". "contradicts" und "duplicates" verwenden dasselbe Label umgekehrt.
- Parameter:
- source_record_id
str - source_record_type
str - target_record_id
str - target_record_type
str - relation_type
str - gegenüber_relation_type
str - relation_id
str - Zeitstempel
str | None - Metadaten
dict[str, Any] | None
- source_record_id
- Rückgabetyp: str
Methode list_agents
Persistierte Agent-Profildatensätze auflisten.
- Parameter:
- metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Agent-Profilmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Profile ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- metadata_filter
- Rücksendungen: Agent-Profildatensätze, die vom Backing Store zurückgegeben werden.
- Liste Rückgabetyp:[AgentProfileRecord]
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'
[record.id for record in client.list_agents(metadata_filter={"source": "catalog"})]
['a1']
Methode list_agents_async (asynchron)
Persistente Agent-Profildatensätze asynchron auflisten.
- Parameter:
- metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Agent-Profilmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Profile ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- metadata_filter
- Rücksendungen: Agent-Profildatensätze, die vom Backing Store zurückgegeben werden.
- Liste Rückgabetyp:[AgentProfileRecord]
Beispiele
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
records = await client.list_agents_async(metadata_filter={"source": "catalog"})
return [record.id for record in records]
anyio.run(main)
['a1']
Methode list_images
Permanente Standalone-Bilddatensätze auflisten.
- Parameter:
- image_id
str– Optionale Bild-ID, mit der die vom Backing Store zurückgegebenen Datensätze eingegrenzt werden. Wenn keine Kennung angegeben wird, wird kein Kennungsfilter angewendet. Der ID-Filter wird vorlimitangewendet. - user_id
str | None– Optionaler genauer Benutzerfilter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Images ohne Benutzergeltungsbereich aufzulisten. Mindestens ein Nicht-None-Benutzer-, Agent- oder Threadgeltungsbereich ist erforderlich. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Agent zurückgegeben. Übergeben SieNone, um nur Images ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Thread zurückgegeben. Übergeben SieNone, um nur Images ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Imagemetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Bilder ohne gespeicherte Metadaten aufzulisten. - include_bytes
bool– Gibt an, ob Imagebyte in jedem zurückgegebenen Datensatz geladen werden sollen. Wenn keine Angabe gemacht wird oderFalse, werden die Bildbyte nicht geladen. Setzen Sie diesen Wert aufTrue, nur mit einemimage_id- und mindestens einem exakten Benutzer-, Agent- oder Threadgeltungsbereichsfilter. - Limit
int | None– Optionale maximale Anzahl von Datensätzen, die vom Sicherungsspeicher angefordert werden. Wenn er ausgelassen wird, kann der Store seine Standard-Auflistungs-Cap anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- image_id
- Retouren: Übereinstimmende Bilddatensätze nach Backing Store sortiert.
- Liste Rückgabetyp:[ImageRecord]
Beispiele
images = client.list_images(user_id="u1", limit=10)
[image.id for image in images]
['img-1']
Methode list_images_async (asynchron)
Permanente Standalone-Imagedatensätze asynchron auflisten.
- Parameter:
- image_id
str– Optionale Bild-ID, mit der die vom Backing Store zurückgegebenen Datensätze eingegrenzt werden. Wenn keine Kennung angegeben wird, wird kein Kennungsfilter angewendet. Der ID-Filter wird vorlimitangewendet. - user_id
str | None– Optionaler genauer Benutzerfilter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Images ohne Benutzergeltungsbereich aufzulisten. Mindestens ein Nicht-None-Benutzer-, Agent- oder Threadgeltungsbereich ist erforderlich. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Agent zurückgegeben. Übergeben SieNone, um nur Images ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn diese Option ausgelassen wird, werden Bilder für jeden Thread zurückgegeben. Übergeben SieNone, um nur Images ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Imagemetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Bilder ohne gespeicherte Metadaten aufzulisten. - include_bytes
bool– Gibt an, ob Imagebyte in jedem zurückgegebenen Datensatz geladen werden sollen. Wenn keine Angabe gemacht wird oderFalse, werden die Bildbyte nicht geladen. Setzen Sie diesen Wert aufTrue, nur mit einemimage_id- und mindestens einem exakten Benutzer-, Agent- oder Threadgeltungsbereichsfilter. - Limit
int | None– Optionale maximale Anzahl von Datensätzen, die vom Sicherungsspeicher angefordert werden. Wenn er ausgelassen wird, kann der Store seine Standard-Auflistungs-Cap anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- image_id
- Retouren: Übereinstimmende Bilddatensätze nach Backing Store sortiert.
- Liste Rückgabetyp:[ImageRecord]
Beispiele
images = await client.list_images_async(
user_id="u1",
limit=10,
)
[image.id for image in images]
['img-1']
Methode list_memories
Permanente speicherähnliche Datensätze auflisten.
- Parameter:
- user_id
str | None– Optionaler genauer Benutzerfilter. Wenn sie weggelassen werden, werden Speicher für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Speicher ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn sie weggelassen werden, werden Speicher für jeden Agent zurückgegeben. Übergeben SieNone, um nur Speicher ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn er ausgelassen wird, werden Erinnerungen für jeden Thread zurückgegeben. Übergeben SieNone, um nur Speicher ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Speichermetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Speicher ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- user_id
- Rückgaben: Speicherähnliche Datensätze, die vom Backing Store zurückgegeben werden, einschließlich der Datensätze
"memory","guideline","fact"und"preference". - Rückgabetyp: list[MemoryRecord]
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_memory("User likes pizza.", user_id="u1", memory_id="mem-1")
'mem-1'
[record.id for record in client.list_memories(user_id="u1", limit=10)]
['mem-1']
Methode list_memories_async (asynchron)
Persistente speicherähnliche Datensätze asynchron auflisten.
- Parameter:
- user_id
str | None– Optionaler genauer Benutzerfilter. Wenn sie weggelassen werden, werden Speicher für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Speicher ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn sie weggelassen werden, werden Speicher für jeden Agent zurückgegeben. Übergeben SieNone, um nur Speicher ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn er ausgelassen wird, werden Erinnerungen für jeden Thread zurückgegeben. Übergeben SieNone, um nur Speicher ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Speichermetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Speicher ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- user_id
- Rückgaben: Speicherähnliche Datensätze, die vom Backing Store zurückgegeben werden, einschließlich der Datensätze
"memory","guideline","fact"und"preference". - Rückgabetyp: list[MemoryRecord]
Beispiele
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_memory_async("User likes pizza.", user_id="u1", memory_id="mem-1")
records = await client.list_memories_async(user_id="u1", limit=10)
return [record.id for record in records]
anyio.run(main)
['mem-1']
Methode list_messages
Datensätze für persistente Chatnachrichten auflisten.
- Parameter:
- user_id
str | None– Optionaler genauer Benutzerfilter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Agent zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Thread zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Nachrichtenmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Nachrichten ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren. - include_image_bytes
bool– Gibt an, ob Imageteile, die an zurückgegebene Nachrichten angehängt sind, ihre gespeicherten Byte enthalten. Wenn kein Wert angegeben wird oderFalse, werden angehängte Imagemetadaten zurückgegeben, ohne die Byte zu laden. Legen SieTruefest, um die Byte zu laden.
- user_id
- Rücksendungen: Meldungsdatensätze, die vom Backing Store zurückgegeben werden.
- Liste Rückgabetyp:[MessageRecord]
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")
message_id = thread.add_messages([{"role": "user", "content": "Hello"}])[0]
[record.id for record in client.list_messages(thread_id="c1", limit=10)] == [message_id]
True
Methode list_messages_async (asynchron)
Datensätze für persistente Chatnachrichten asynchron auflisten.
- Parameter:
- user_id
str | None– Optionaler genauer Benutzerfilter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Benutzer zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Agent zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Agent-Geltungsbereich aufzulisten. - thread_id
str | None– Optionaler genauer Threadfilter. Wenn diese Option ausgelassen wird, werden Nachrichten für jeden Thread zurückgegeben. Übergeben SieNone, um nur Nachrichten ohne Threadgeltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Nachrichtenmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Nachrichten ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren. - include_image_bytes
bool– Gibt an, ob Imageteile, die an zurückgegebene Nachrichten angehängt sind, ihre gespeicherten Byte enthalten. Wenn kein Wert angegeben wird oderFalse, werden angehängte Imagemetadaten zurückgegeben, ohne die Byte zu laden. Legen SieTruefest, um die Byte zu laden.
- user_id
- Rücksendungen: Meldungsdatensätze, die vom Backing Store zurückgegeben werden.
- Liste Rückgabetyp:[MessageRecord]
Beispiele
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
thread = await client.create_thread_async(thread_id="c1", user_id="u1")
message_ids = await thread.add_messages_async(
[{"role": "user", "content": "Hello"}]
)
records = await client.list_messages_async(thread_id="c1", limit=10)
return [record.id for record in records] == message_ids
anyio.run(main)
True
Methode list_threads
Permanente Konversationsthreads auflisten.
- Parameter:
- user_id
str | None: Erforderlicher genauer Benutzerfilter. Übergeben SieNone, um nur Threads ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Threads für jeden Agent zurückgegeben. Übergeben SieNone, um nur Threads ohne Agent-Geltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Threadmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Threads ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- user_id
- Rückgaben: Thread-Datensätze, die vom Backing Store zurückgegeben werden.
- Rückgabetyp: list[ThreadRecord]
Beispiele
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.create_thread(thread_id="c1", user_id="u1").thread_id
'c1'
[record.thread_id for record in client.list_threads(user_id="u1", limit=10)]
['c1']
Methode list_threads_async (asynchron)
Permanente Unterhaltungsthreads asynchron auflisten.
- Parameter:
- user_id
str | None: Erforderlicher genauer Benutzerfilter. Übergeben SieNone, um nur Threads ohne Benutzergeltungsbereich aufzulisten. - agent_id
str | None– Optionaler exakter Agent-Filter. Wenn diese Option ausgelassen wird, werden Threads für jeden Agent zurückgegeben. Übergeben SieNone, um nur Threads ohne Agent-Geltungsbereich aufzulisten. - metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Threadmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Threads ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- user_id
- Rückgaben: Thread-Datensätze, die vom Backing Store zurückgegeben werden.
- Rückgabetyp: list[ThreadRecord]
Beispiele
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.create_thread_async(thread_id="c1", user_id="u1")
records = await client.list_threads_async(user_id="u1", limit=10)
return [record.thread_id for record in records]
anyio.run(main)
['c1']
Methode list_users
Permanente Benutzerprofildatensätze auflisten.
- Parameter:
- metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Benutzerprofilmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Profile ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- metadata_filter
- Rücksendungen: Vom Backing Store zurückgegebene Benutzerprofildatensätze.
- Liste Rückgabetyp:[UserProfileRecord]
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'
[record.id for record in client.list_users(metadata_filter={"source": "crm"})]
['u1']
Methode list_users_async (asynchron)
Permanente Benutzerprofildatensätze asynchron auflisten.
- Parameter:
- metadata_filter
dict[str, Any] | None– Metadatenfilter, der auf Benutzerprofilmetadaten angewendet wird. Wenn diese Option ausgelassen wird, wird keine Metadatenfilterung angewendet. Übergeben SieNone, um nur Profile ohne gespeicherte Metadaten aufzulisten. - limit
int | None– Optionale maximale Anzahl zurückzugebender Datensätze. Wenn er ausgelassen wird, kann der Backing Store seine Standardkappe für die Auflistung anwenden. Übergeben SieNone, um diese Memory Cap zu deaktivieren.
- metadata_filter
- Rücksendungen: Vom Backing Store zurückgegebene Benutzerprofildatensätze.
- Liste Rückgabetyp:[UserProfileRecord]
Beispiele
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_user_async(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
records = await client.list_users_async(metadata_filter={"source": "crm"})
return [record.id for record in records]
anyio.run(main)
['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. - token_budget
int– Optionales festes Limit für die geschätzte Tokenanzahl der endgültigen formatierten Ergebnisse. Wenn diese Option ausgelassen wird, wird die aufgelöste Suchkonfiguration verwendet. Positive Werte halten die vollständigen Ergebnisse in Rangfolge, während ihre kumulative Schätzung dem Budget entspricht. Wenn das erste Ergebnis nicht passt, werden keine Ergebnisse zurückgegeben. Nicht positive Werte deaktivieren diese Ausgabegrenze. - soft_token_budget
int– Optionales Ziel für die geschätzte Tokenanzahl der endgültigen formatierten Ergebnisse. Wenn diese Option ausgelassen wird, wird die aufgelöste Suchkonfiguration verwendet. Das vollständige Ergebnis, das dieses Ziel erreicht oder überschreitet, wird beibehalten. Nicht positive Werte deaktivieren dieses Ziel. Setzen Sietoken_budgetauf einen größeren Wert, wenn die Ausgabe auch einen absoluten Grenzwert haben muss. - record_types
list[str]: Optionale Liste der aufzunehmenden Datensatztypen, wie"memory","message"oder"image". -
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"}, }, } - include_invalid_results
bool– Gibt an, ob Ergebnisse Datensätze mit dem ungültigen Status enthalten. Lassen Sie dieses Argument weg, oder übergeben SieTrue, um sie einzuschließen. Übergeben SieFalse, um sie auszuschließen. - num_hops
int: Anzahl der Memory Link-Ränder, die von jedem Direct Memory-Ergebnis gefolgt werden sollen. Werte von0bis5werden unterstützt. Weglassen Sie sie nur für direkte Ergebnisse. Die Expansion folgt Links in beide Richtungen. - max_linked_results
int– Maximale Anzahl verknüpfter Speicher über alle Hops, die an jedes direkte Ergebnis angehängt sind. Lassen Sie den Standardwert100weg. Übergeben Sie0, um keinen verknüpften Kontext zurückzugeben. - 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. - token_budget
int– Optionales festes Limit für die geschätzte Tokenanzahl der endgültigen formatierten Ergebnisse. Wenn diese Option ausgelassen wird, wird die aufgelöste Suchkonfiguration verwendet. Positive Werte halten die vollständigen Ergebnisse in Rangfolge, während ihre kumulative Schätzung dem Budget entspricht. Wenn das erste Ergebnis nicht passt, werden keine Ergebnisse zurückgegeben. Nicht positive Werte deaktivieren diese Ausgabegrenze. - soft_token_budget
int– Optionales Ziel für die geschätzte Tokenanzahl der endgültigen formatierten Ergebnisse. Wenn diese Option ausgelassen wird, wird die aufgelöste Suchkonfiguration verwendet. Das vollständige Ergebnis, das dieses Ziel erreicht oder überschreitet, wird beibehalten. Nicht positive Werte deaktivieren dieses Ziel. Setzen Sietoken_budgetauf einen größeren Wert, wenn die Ausgabe auch einen absoluten Grenzwert haben muss. - record_types
list[str]: Optionale Liste der aufzunehmenden Datensatztypen, wie"memory","message"oder"image". -
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"}, }, } - include_invalid_results
bool– Gibt an, ob Ergebnisse Datensätze mit dem ungültigen Status enthalten. Lassen Sie dieses Argument weg, oder übergeben SieTrue, um sie einzuschließen. Übergeben SieFalse, um sie auszuschließen. - num_hops
int: Anzahl der Memory Link-Ränder, die von jedem Direct Memory-Ergebnis gefolgt werden sollen. Werte von0bis5werden unterstützt. Weglassen Sie sie nur für direkte Ergebnisse. Die Expansion folgt Links in beide Richtungen. - max_linked_results
int– Maximale Anzahl verknüpfter Speicher über alle Hops, die an jedes direkte Ergebnis angehängt sind. Lassen Sie den Standardwert100weg. Übergeben Sie0, um keinen verknüpften Kontext zurückzugeben. - 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_image
Einen gespeicherten Bilddatensatz nach Kennung aktualisieren.
- Parameter:
- image_id
str: ID des zu aktualisierenden Bilddatensatzes. - image
bytes– Optionale Ersatzimagebyte. Geben Sie Byte an, um das gespeicherte Image zu ersetzen. Wenn das Bild weggelassen wird, wird es beibehalten. - Beschreibung
str | None– Optionale Ersatzbeschreibung. Wenn diese Option ausgelassen wird, wird die gespeicherte Beschreibung beibehalten. Wenn SieNoneübergeben, wird eine neue Beschreibung mit dem konfigurierten LLM generiert. Eine Zeichenfolge, die nicht Null ist, ersetzt die gespeicherte Beschreibung und den durchsuchbaren Text direkt. - mime_type
ImageMimeType: MIME-Typ der Ersatzimagebyte.imageundmime_typemüssen zusammen angegeben werden. Lassen Sie beide aus, um das gespeicherte Image und den MIME-Typ beizubehalten. - 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 dieses Image. Wenn dieser Wert ausgelassen wird, wird der gespeicherte Zeitstempel beibehalten. Übergeben SieNone, um sie zu löschen. - 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. Der Ablauf für ein Bild, das an eine Nachricht angehängt ist, muss über die übergeordnete Nachricht geändert werden. - ttl_anchor
TimeToLiveAnchor– Optionaler Time-to-Live-Anker für eine Ablaufaktualisierung. Wenn Siettl_anchorohnettl_daysangeben, wird die Standarddauer für die Gültigkeitsdauer des Schemas verwendet. Wenn bei einer Aktualisierung ausgelassen wird, verwenden die SpeicherTimeToLiveAnchor.CREATED_AT. - **kwargs (Any) – Unerwartete Schlüsselwortargumente werden von Implementierungen abgelehnt.
- image_id
- Rücksendungen: ID des aktualisierten Bilddatensatzes.
- Rückgabetyp: str
- Raises: ValueError – Wenn Ablaufeinstellungen für ein Image angegeben werden, das an eine Nachricht angehängt ist.
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_image_async (asynchron)
Aktualisieren Sie ein Standalone-Image über den konfigurierten Speicher.
Lassen Sie image weg, um die vorhandenen Byte beizubehalten. Wenn image angegeben wird, muss mime_type damit angegeben werden. Lassen Sie description weg, um die vorhandene Beschreibung beizubehalten. Übergeben Sie None, um eine neue Beschreibung mit dem konfigurierten LLM zu generieren. Eine Beschreibung, die nicht Null ist, ersetzt sie direkt. Metadaten, Zeitstempel und Ablaufeinstellungen werden aktualisiert, wenn sie angegeben werden.
- Parameter:
- image_id
str: ID des zu aktualisierenden Images. - image
bytes– Optionale Raw-Image-Byte für Ersatz. - Beschreibung
str | None– Optionale Ersatzbeschreibung. Lassen Sie es aus, um die aktuelle Beschreibung beizubehalten. Übergeben SieNone, um eine neue Beschreibung mit dem konfigurierten LLM zu generieren. - mime_type
ImageMimeType– Ein MIME-Typ ist erforderlich, wenn Ersatzimagebyte angegeben werden. - metadata
dict[str, Any] | None– Optionale Ersetzungsmetadaten. - timestamp
str | None: Optionaler Zeitstempel für das Ersetzungsereignis. - ttl_days
int | None– Optionale Ablaufeinstellungen. Diese können mit dieser Methode nicht geändert werden, wenn das Bild an eine Nachricht angehängt ist. - ttl_anchor
TimeToLiveAnchor– Optionale Ablaufeinstellungen. Diese können mit dieser Methode nicht geändert werden, wenn das Bild an eine Nachricht angehängt ist. - kwargs
Any
- image_id
- Rückgaben: Die aktualisierte Image-ID.
- Rückgabetyp: str
- Raises: ValueError – Wenn Ablaufeinstellungen für ein Image angegeben werden, das an eine Nachricht angehängt ist.
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. 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. - status
RecordStatus: Optionaler Ersatzlebenszyklusstatus für diesen speicherähnlichen Datensatz. Lassen Sie es aus, um den aktuellen Status beizubehalten. - **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 ID.
- 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. 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. - status
RecordStatus: Optionaler Ersatzlebenszyklusstatus für diesen speicherähnlichen Datensatz. Lassen Sie es aus, um den aktuellen Status beizubehalten. - **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.
Beispiele
import asyncio
memory_id = asyncio.run(client.add_memory_async("Original memory"))
(
asyncio.run(client.update_memory_async(
memory_id, content="Updated memory"
))
== memory_id
)
True
Methode update_record_link
Veränderbare Felder einer gespeicherten Beziehung aktualisieren
Ausgelassene Werte werden beibehalten. Wenn relation_type zu einem integrierten Speicherbeziehungstyp wechselt, ersetzt das feste Reverse Label opposite_relation_type. Übergeben Sie None für timestamp oder metadata, um diesen Wert zu löschen.
- Parameter:
- relation_id
str: ID der zu aktualisierenden Beziehung. - relation_type
str– Optionales Ersatzlabel von Quelle zu Ziel. - opposite_relation_type
str– Optionales Reverse-Traversal-Label für Ersatz. Lassen Sie es aus, um das gespeicherte Label beizubehalten. - timestamp
str | None: Optionaler Ersatzzeitstempel. Übergeben SieNone, um sie zu löschen. - metadata
dict[str, Any] | None– Optionale Ersetzungsmetadaten. Er ersetzt das gespeicherte Objekt.
- relation_id
- Rückgaben: Anzahl der aktualisierten Beziehungen, entweder
0oder1. - Rückgabetyp: int
Beispiele
client.update_record_link("relation-id", relation_type="supports")
1
Methode update_record_link_async (asynchron)
Eine gespeicherte Beziehung asynchron aktualisieren.
- Parameter:
- relation_id
str - relation_type
str - gegenüber_relation_type
str - Zeitstempel
str | None - Metadaten
dict[str, Any] | None
- relation_id
- Rückgabetyp: int
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.
Veraltet
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.
Veraltet
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–Optionaler dauerhafter Override für Nachrichten nach der letzten gültigen Übersicht vor der automatischen Aktualisierung.
Veraltet
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.
Veraltet
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.
Veraltet
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.
Veraltet
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.Veraltet
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.
Veraltet
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. Ausgelassene Felder behalten ihre gespeicherten Werte bei, wenn sie vorhanden sind. Threads, die erstellt wurden, bevor Bilder-Kontexteinstellungen persistiert wurden, fallen auf den Clientwert zurück und dann aufDISABLED, wenn kein gespeicherter Bildkontext vorhanden ist. - image_input_limit_config
ImageInputLimitConfig– Optionales dauerhaftes Raw-Image und LLM-Imageanforderungslimit. Ausgelassene Felder behalten die gespeicherten Werte bei. Die angegebenen Felder werden von nachfolgend geladenen Threadinstanzen verwendet. - search_config
MemorySearchConfig– Optionale Suchkonfiguration zum Speichern für den Thread. Die angegebene Konfiguration wird von nachfolgenden geladenen Threadinstanzen 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 update_thread_async (asynchron)
Aktualisierte Threadmetadaten und dauerhafte Laufzeitkonfiguration asynchron 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. - **kwargs (Beliebig) – Zusätzliche dauerhafte Aktualisierungen der Laufzeitkonfiguration und Overrides pro Aufruf werden von
update_thread()akzeptiert.
- thread_id
- Rückgaben: Aktualisierte Instanz
OracleThreadmit den persistenten Metadaten und der Laufzeitkonfiguration. - Rückgabetyp: OracleThread
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
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
Grenzwerte für Bildeingabe
Klasse oracleagentmemory.core.ImageInputLimitConfig
Basis: object
Konfigurieren Sie Grenzwerte für Raw-Images und LLM-Imageanforderungen.
Ausgelassene Felder übernehmen den nächsten größeren Konfigurationsbereich. Clientfelder übernehmen SDK-Standardwerte, während Felder pro Thread die Clientkonfiguration erben. Die Validierung kann nicht deaktiviert werden, und die aufgelösten Werte dürfen die absolute Maxima des SDK nicht überschreiten.
- Parameter:
- max_raw_image_bytes
int: Maximale Raw-Byte-Länge eines Images. Der SDK-Standardwert ist 10 MiB und der absolute Höchstwert 32 MiB. - max_images_per_llm_request
int– Maximale Anzahl von Bildern in einer LLM-Anforderung. Der SDK-Standardwert ist 100, und das absolute Maximum ist 512. - max_total_raw_image_bytes_per_llm_request
int– Maximale kombinierte Raw Byte-Länge von Bildern in einer LLM-Anforderung. Text, Metadaten, JSON-Framing und base64-Erweiterung sind ausgeschlossen. Der SDK-Standardwert beträgt 100 MiB und der absolute Höchstwert 256 MiB.
- max_raw_image_bytes
Beispiele
from oracleagentmemory.core import ImageInputLimitConfig
config = ImageInputLimitConfig(
max_raw_image_bytes=16 * 1024 * 1024,
max_images_per_llm_request=200,
)
Speicherextraktion
Klasse oracleagentmemory.core.MemoryExtractionImageContext
Basis: str, Enum
Wählen Sie aus, wie Bilder an der automatischen Speicherextraktion teilnehmen.
Deaktiviert lässt Bilder und Bildbeschreibungen aus Extraktions-Prompts aus. IMAGE sendet Originalbildteile. CAPTION sendet Bildbeschreibungen als Text und erfordert, dass jedes ausgewählte Bild eine nicht leere Beschreibung enthält.
CAPTION = 'CAPTION'
Fügen Sie Beschreibungen als Text ein, und benötigen Sie für jedes ausgewählte Bild eine Beschreibung.
Deaktiviert = 'DISABLED'
Nehmen Sie keine Bilder oder Bildbeschreibungen in Extraktions-Prompts auf.
BILD = 'IMAGE'
Originalbildteile in Extraktions-Prompts aufnehmen.
MEMORY = "Arbeitsspeicher"
Die bildspezifische Speicherextraktion wird derzeit nicht unterstützt.
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. extraction_mode und die Einstellungen der Hintergrundwarteschlange steuern auch die automatische Generierung von Bildbeschreibungen. Jedes Feld wird unabhängig berechnet. Ein für einen Vorgang angegebener Wert hat Vorrang, gefolgt von einem gespeicherten Threadwert, dem Clientwert und dem SDK-Standardwert. Neue und eigenständige Threads haben keinen gespeicherten Thread-Wert.
- 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. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - context_summary_update_frequency
int– Anzahl der Nachrichten nach der letzten gültigen Übersicht, bevor sie automatisch aktualisiert werden. Wenn die Speicherextraktion aktiviert ist, erfolgt die Prüfung nach jeder fälligen Extraktion, sodass später eine Aktualisierung erfolgen kann. Werte kleiner/gleich0Refresh bei jeder Prüfung. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - memory_extraction_frequency
int: Anzahl der angehängten Nachrichten zwischen Speicherextraktionsausführungen. Werte unter0extrahieren nach jedem Anhängen. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - memory_extraction_token_limit
int: Eingabe-Tokenbudget für Extraktion und Aggregat-Prompts. Werte unter1deaktivieren das Prompt-Budgetlimit. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - 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. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - enable_context_summary
bool– Gibt an, ob Extraktions-Prompts eine laufende Kontextübersicht verwalten und verwenden. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - 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. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - memory_link_extraction_custom_instructions
str | None– Optionale Aufruferanweisungen, die an die System-Eingabeaufforderung zur automatischen Linkauflösung angehängt werden. Übergeben SieNoneanupdate_thread, um gespeicherte Anweisungen auf Threadebene zu löschen. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. Diese Einstellung wird ignoriert, wennmemory_link_extraction_modeMemoryLinkExtractionMode.DISABLEDist. - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext: Wählen Sie die Bilddarstellung aus, die während der Extraktion verwendet wird.DISABLEDlässt Bilder und Bildbeschreibungen aus Prompts aus,IMAGEsendet Raw-Bildteile, undCAPTIONsendet Bildbeschreibungen als Text und erfordert, dass jedes ausgewählte Bild eine nicht leere Beschreibung enthält.MEMORYwird derzeit nicht unterstützt. Wenn dieser Wert ausgelassen wird, verwenden Sie den gespeicherten Threadwert, dann den Clientwert und dannDISABLED. Das Weglassen dieses Feldes ermöglicht niemals die Bildverarbeitung. - 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. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode– Steuert, wann die automatische Speicherextraktion und Bildbeschreibungsgenerierung ausgeführt wird.MemoryExtractionMode.INLINEschließt sie ab, bevor die Schreibmethode zurückgibt.MemoryExtractionMode.BACKGROUNDgibt zurück, nachdem der Raw-Schreibvorgang erfolgreich war, und versucht, die abgeleitete Arbeit in eine Queue zu stellen. Im Hintergrundmodus können generierte Beschreibungen und abgeleitete Speicher später erscheinen oder niemals geschrieben werden, wenn die Arbeit nicht abgeschlossen werden kann. Beispiel:update_message()kann zurückgegeben werden, bevor ein späterer Speicherlesevorgang den aktualisierten Nachrichteninhalt widerspiegelt. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. Der SDK-Standardwert lautetBACKGROUND. Wenn Sieextract_memories=Falsefestlegen, wird die Speicherextraktion deaktiviert, aber die Generierung von Bildbeschreibungen wird nicht deaktiviert. - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode: So werden Links zu vorhandenen Speichern für neu extrahierte Speicher aufgelöst.DURING_EXTRACTIONenthält gebundene Kandidaten in der Extraktionsanforderung.POST_EXTRACTIONverwendet eine zusätzliche Anforderung zur Linkauflösung für den Extraktionsbatch.DISABLEDerstellt keine automatischen Links. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. Der SDK-Standardwert lautetPOST_EXTRACTION. - memory_link_extraction_token_limit
int: Gesamtbudget für Eingabetoken für alle Anforderungen nach der Extraktion zur Linkauflösung in einem Extraktionsdurchlauf. Werte unter1deaktivieren das Prompt-Budget. Diese Einstellung wird ignoriert, wennmemory_link_extraction_modeDURING_EXTRACTIONoderDISABLEDist. Aufrufe anadd_memory(autonomous_linking=True)verwenden denselben Post-Store-Resolver und Budget unabhängig vom Extraktionsmodus. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– Kontrolliert im Hintergrundmodus, was geschieht, wenn die automatische Extraktion oder die Generierung von Bildbeschreibungen 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. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. Der SDK-Standardwert lautetDROP. - background_extraction_queue_put_timeout_seconds
float– Im Hintergrundmodus wartet die maximale Anzahl von Sekunden für die automatische Extraktion oder die Generierung von Bildbeschreibungen auf die Warteschlangenkapazität, wennbackground_extraction_queue_full_behaviorWAIT_THEN_DROPoderWAIT_THEN_RAISEist. Verwenden Sie bei Auslassung die obige Auflösungsreihenfolge. Der SDK-Standardwert beträgt300.0Sekunden.
- memory_extraction_window
Beispiele
from oracleagentmemory.core import (
MemoryExtractionImageContext,
MemoryExtractionConfig,
MemoryExtractionMode,
MemoryLinkExtractionMode,
)
config = MemoryExtractionConfig(
extract_memories=True,
memory_extraction_image_context=MemoryExtractionImageContext.CAPTION,
extraction_mode=MemoryExtractionMode.BACKGROUND,
memory_link_extraction_mode=MemoryLinkExtractionMode.POST_EXTRACTION,
memory_link_extraction_token_limit=8_000,
)
Was zu tun ist, wenn Extraktion oder Bildbeschreibungen nicht sofort in die Warteschlange gestellt werden können.
Ausgelassene Werte werden in DROP aufgelöst.
Maximale Anzahl Sekunden, die Hintergrundarbeit im Wartemodus auf Warteschlangenkapazität wartet.
Ausgelassene Werte werden in 300.0 Sekunden aufgelöst.
Meldungen nach der letzten gültigen Übersicht vor der automatischen Aktualisierung.
Werte kleiner/gleich 0 Refresh bei jeder Prüfung.
Gibt an, ob OAM Kontextübersichten für Thread-Lese- und Extraktions-Prompts verwaltet.
Ob Extraktion und Bildbeschreibungen inline oder im Hintergrund ausgeführt werden.
Ausgelassene Werte werden in BACKGROUND aufgelöst.
Nachrichten zwischen Extraktionsausführungen; Werte unter 0-Extrakt nach jedem Anhängen.
Bilddarstellung; Auslassung wird in Thread, Client und dann DISABLED aufgelöst.
Metadaten der Quellnachricht in extrahierte Speicher kopiert.
Eingabe-Tokenbudget für Prompts; Werte unter 1 deaktivieren das Limit.
Fenster "Letzte Nachricht" für Extraktions-Prompts. -1 verwendet nur neue Nachrichten.
Optionale Anruferanweisungen, die an Prompts zur automatischen Linkauflösung angehängt werden.
Wie automatische Links für extrahierte Speicher aufgelöst werden.
Ausgelassene Werte werden in POST_EXTRACTION aufgelöst.
Gesamtbudget für Eingabe-Token für POST_EXTRACTION-Linkauflösung.
Werte unter 1 deaktivieren den Grenzwert.
Klasse oracleagentmemory.core.MemoryExtractionMode
Basis: str, Enum
Steuert, wann automatische Extraktion und Bildbeschreibungen ausgeführt werden.
INLINE schließt abgeleitete Arbeit ab, bevor die Schreibmethode zurückgegeben wird. BACKGROUND gibt zurück, nachdem der Raw-Schreibvorgang erfolgreich war, und versucht, diese Arbeit in eine Queue zu stellen. Hintergrundarbeit ist der beste Aufwand: Generierte Beschreibungen und abgeleitete Erinnerungen können später erscheinen oder nie geschrieben werden, wenn sie nicht abgeschlossen werden können.
HINTERGRUND = 'HINTERGRUND'
Geben Sie nach dem Raw-Schreibvorgang zurück, und führen Sie abgeleitete Arbeit im Hintergrund aus.
INLINE = 'INLINE'
Komplette Extraktion und Bildbeschreibungen vor der Rückgabe des Schreibvorgangs.
Klasse oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Basis: str, Enum
Steuert, was geschieht, wenn konfigurierte Hintergrundarbeit nicht rechtzeitig in eine Warteschlange gestellt werden kann.
Trotz des extraktionsspezifischen Namens gilt diese Einstellung auch für die automatische Bildbeschreibungsgenerierung im Hintergrundmodus.
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.