Threads
Auf dieser Seite wird das konkrete Oracle-Thread-Handle zusammen mit dem Entwickler-Helper-Typ vorgestellt.
Oracle-Thread
Klasse oracleagentmemory.core.OracleThread
Basen: IThread
Thread wird von einem Oracle-Speicher unterstützt.
Diese Implementierung integriert und speichert sowohl Thread-Nachrichten als auch manuell hinzugefügte Speicher und unterstützt dann die Ähnlichkeitssuche über alle gespeicherten Datensätze.
Hinweise
- Nachrichten werden als einzelne Datensätze gespeichert (ein Datensatz pro Nachricht).
- Die Suche kann auf den aktuellen Thread beschränkt sein oder Ergebnisse aus einem beliebigen Thread zurückgeben (Client-gesteuert).
Erstellen Sie eine neue OracleThread-Instanz.
- Parameter:
- store
OracleMemoryStore: Shared Store-Backend, das zum Persistieren eingebetteter Datensätze verwendet wird. - thread_id
str: Thread-ID. Wenn keine Angabe gemacht wird, wird eine UUID generiert. - user_id
str: Mit dem Thread verknüpfte Benutzer-ID. Wird in einem DBSchemaPolicy.NO_CHECK-Laufzeitspeicher nicht angegeben, wird der Benutzername des aktiven Endbenutzersicherheitskontexts verwendet. Andernfalls wird eine UUID generiert. - agent_id
str: Agent-ID, die mit dem Thread verknüpft ist. Wird kein Wert angegeben, wird eine UUID generiert. - Metadaten
dict[str, Any] | None– Optionale JSON-ähnliche Metadaten, die mit dem Thread verknüpft sind. - persist_messages_in_config
bool– Gibt an, ob_to_configaktuelle Raw-Nachrichten-Snapshots enthalten soll. Wird für Threads, die den DB-Speicher verwenden, automatisch aufFalsegesetzt, um zu vermeiden, dass Inhalt der Meldungstabelle über die Threadkonfiguration exportiert wird. - LLM
ILlm | None– Optionaler LLM-Adapter für Speicherextraktion und Aktualisierungen der Kontextübersicht. Wenn angegeben, extrahiertadd_messagesrelevante Speicher aus jeder hinzugefügten Nachricht und speichert sie als eingegebene Speicherdatensätze ("memory","guideline","fact"oder"preference"). - memory_extraction_config
MemoryExtractionConfig– Optionale Speicherextraktionskonfiguration auf Threadebene. Damit können Sie automatische Extraktionseinstellungen wie Extraktionsmodus, Zusammenfassungsverhalten, Extraktionsgrenzwerte und ob die automatische Extraktion überhaupt aktiviert ist steuern. Übergeben Sie entweder diese gruppierte Konfiguration oder die veralteten Inline-Extraktionsparameter, nicht beides. Wenn keine Angabe gemacht wird, verwendet Standalone-OracleThread()SDK-Standardwerte für die Extraktionsfelder und aktiviert Kontextübersichten. Ein ausgelassener Bildkontext istDISABLED. - image_input_limit_config
ImageInputLimitConfig– Optionale Grenzwerte für Raw-Images und LLM-Imageanforderungen für diesen Standalone-Thread. Ausgelassene Felder verwenden SDK-Standardwerte. Validierung kann nicht deaktiviert werden. -
memory_extraction_window
int–Anzahl der letzten Nachrichten (einschließlich der neu hinzugefügten), die während der Extraktion als Kontext für das LLM bereitgestellt werden sollen. Setzen Sie diesen Wert auf
-1, um nur einmal proadd_messages-Aufruf mit dem vollständigen Batch neu hinzugefügter Nachrichten zu extrahieren. Standard ist-1.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. Standard ist-1.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–Anzahl der Nachrichten, nach denen die Speicherextraktion ausgelöst wird. Setzen Sie diesen Wert auf
-1, um nur einmal proadd_messages-Aufruf mit dem vollständigen Batch neu hinzugefügter Nachrichten zu extrahieren.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. Längere Eingabeaufforderungen werden abgeschnitten. Wenn negativ oder 0, ist das Abschneiden der Eingabeaufforderung deaktiviert.
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: Maximales Eingabe-Tokenbudget für den LLM-Prompt, mit dem die in der Kontextkarte enthaltene Übersichts- und Themenliste erstellt wird. Standard ist100_000; Werte kleiner/gleich 0 deaktivieren Prompt-Abschneiden. - 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. Standard ist5. - max_message_token_length
int– Maximale Größe der Prompt-Time-Kopie jeder Nachricht, die während der LLM-gesicherten Speicherextraktion und Aktualisierungen der Kontextübersicht verwendet wird, in Token. Der gespeicherte Nachrichteninhalt bleibt unverändert. Wenn negativ oder 0, wird keine Verkürzung der Prompt-Zeit durchgeführt. Wenn ein LLM bereitgestellt wird, werden übergroße Prompt-Kopien zusammengefasst und nicht abgeschnitten. - message_shortening_input_token_limit
int– Maximale Größe des Nachrichtenauszugs in Token, der an das LLM gesendet wird, wenn übergroße Prompt-Kopien gekürzt werden. Standard ist30_000-Token. Wenn negativ oder 0, wird während der LLM-basierten Verkürzung keine ausgehende Grenze angewendet. -
enable_context_summary
bool–Gibt an, ob eine kompakte Zusammenfassung des Threads beibehalten werden soll. Wenn diese Option aktiviert ist und eine
llmangegeben ist, aktualisiert OAM sie gemäßcontext_summary_update_frequencyund verwendet eine Übersicht vor den Zielnachrichten als Extraktionskontext. Der Standardwert istTruefür Standalone-OracleThread().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 benutzerdefinierte Anweisungen, die an die Eingabeaufforderung zur automatischen Speicherextraktion für diesen Thread angehängt 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_inherit_message_metadata
bool | Sequence[str]–Gibt an, ob automatisch extrahierte Speicher Metadaten aus Quellnachrichten übernehmen. Übergeben Sie
True, um alle Nachrichtenmetadaten zu erben, eine Nicht-Zeichenfolge von Nachrichtenmetadatenschlüsseln der obersten Ebene, um nur diese Schlüssel zu erben, oderFalse, um die Vererbung zu deaktivieren. Der Standardwert istTrue. Wenn ein Extraktionsdurchlauf mehrere Quellnachrichten verwendet, müssen die ausgewählten Metadaten über diese Nachrichten hinweg übereinstimmen.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. - search_config
MemorySearchConfig– Optionale Suchkonfiguration für diesen Thread. Wenn keine Suche durchgeführt wird, wird eine feste Top-K-Suchkonfiguration verwendet. - Client
OracleAgentMemory | None
- store
Beispiele
from oracleagentmemory.core import MemoryExtractionConfig, OracleAgentMemory
client = OracleAgentMemory(connection=db_pool, embedder=embedder)
thread = client.create_thread(
thread_id="c4",
llm=llm,
memory_extraction_config=MemoryExtractionConfig(enable_context_summary=True),
)
len(thread.add_messages([{"role": "user", "content": "I love pizza."}]))
1
Methode add_image
Beibehalten Sie ein Bild, das mit diesem Thread verknüpft ist.
description wird als durchsuchbarer Text des Bildes gespeichert. Wenn es ausgelassen wird oder None, generiert ein angehängtes LLM eine Beschriftung. Nicht aufgeführte Geltungsbereichswerte erben die entsprechenden Benutzer-, Agent- und Thread-IDs dieses Threads.
- 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– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - agent_id
str | None– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - thread_id
str– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - 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_image_async (asynchron)
Beibehalten Sie ein Bild, das diesem Thread asynchron zugeordnet ist.
description wird als durchsuchbarer Text des Bildes gespeichert. Wenn es ausgelassen wird oder None, generiert ein angehängtes LLM eine Beschriftung. Nicht aufgeführte Geltungsbereichswerte erben die entsprechenden Benutzer-, Agent- und Thread-IDs dieses Threads.
- 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– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - agent_id
str | None– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - thread_id
str– Optionale Geltungsbereichs-Assertions. Ausgelassene Werte erben den Geltungsbereich dieses Threads. Die angegebenen Werte müssen genau übereinstimmen. - 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 einen manuellen Speichereintrag hinzu, und indexieren Sie ihn.
- Parameter:
- content
str: Textinhalt, der als Speicher gespeichert werden soll. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: Zu speichernde Speicherkategorie. Unterstützte Werte sind"memory","fact","guideline"und"preference". Wenn der Inhalt ausgelassen wird, wird er als allgemeines"memory"gespeichert. - user_id
str: Optionales Überschreiben der Benutzer-ID. - agent_id
str: Optionales Überschreiben der Agent-ID. - thread_id
str– Optionales Überschreiben der Thread-ID. - 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, geben Sie einen konkreten ISO-8601-Zeitstempelwert an. ISO-8601-Zeitstempel ohne Zeitzone werden 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. Der zeitstempelverankerte Ablauf erfordert einen konkreten ISO-8601-Zeitstempel für diesen Speicher. 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 Threads 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 Thread-eigenen Speicher. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. Lassen Sie beide aus, um keinen expliziten Link zu erstellen. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Thread-eigenen Speicher. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. Lassen Sie beide aus, um keinen expliziten Link zu erstellen. - 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
thread.add_memory("Remember this preference", memory_id="mem-thread-docs")
'mem-thread-docs'
Methode add_memory_async (asynchron)
Fügen Sie einen manuellen Speichereintrag hinzu, und indexieren Sie ihn asynchron.
- Parameter:
- content
str: Textinhalt, der als Speicher gespeichert werden soll. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: Zu speichernde Speicherkategorie. Unterstützte Werte sind"memory","fact","guideline"und"preference". Wenn der Inhalt ausgelassen wird, wird er als allgemeines"memory"gespeichert. - user_id
str: Optionales Überschreiben der Benutzer-ID. - agent_id
str: Optionales Überschreiben der Agent-ID. - thread_id
str– Optionales Überschreiben der Thread-ID. - 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, geben Sie einen konkreten ISO-8601-Zeitstempelwert an. ISO-8601-Zeitstempel ohne Zeitzone werden 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. Der zeitstempelverankerte Ablauf erfordert einen konkreten ISO-8601-Zeitstempel für diesen Speicher. 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 Threads 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 Thread-eigenen Speicher. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. Lassen Sie beide aus, um keinen expliziten Link zu erstellen. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: Erstellen Sie zusammen einen gerichteten Link aus dem neuen Speicher zu diesem vorhandenen Thread-eigenen Speicher. Ausgelassene Benutzer-, Agent- und Threadgeltungsbereiche werden von diesem Ziel übernommen. Lassen Sie beide aus, um keinen expliziten Link zu erstellen. - 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
import asyncio
asyncio.run(thread.add_memory_async(
"Remember this preference", memory_id="mem-thread-docs-async"
))
'mem-thread-docs-async'
Methode add_messages
Fügen Sie dem Thread Nachrichten hinzu, und indexieren Sie sie.
Im Hintergrundextraktionsmodus gibt diese Methode zurück, nachdem Raw-Nachrichten eingefügt wurden und die Hintergrundextraktion im Hintergrund versucht wurde.
Raw-Nachrichten werden vor der automatischen Extraktion in beiden Modi gespeichert. Wenn eine spätere Extraktion oder ein abgeleiteter Speicherspeicher fehlschlägt, bleiben die Raw-Nachrichten gespeichert, während abgeleitete Speicher oder Zusammenfassungsaktualisierungen fehlen.
- Parameter:
- Nachrichten
Sequence[Message | ThreadMessageTypedDictT | Mapping[str, str | Sequence[Mapping[str, Any]] | Mapping[str, Any] | None]]: Liste der anzuhängenden Nachrichten. Nachrichten könnenMessage-Objekte oder Wörterbücher mitroleundcontent(und optionalid) sein. - metadata
dict[str, Any] | None | list[dict[str, Any] | None]– Optionale Metadaten für gemeinsame Nutzung oder Nachrichten, die dauerhaft gespeichert werden. Wenn diese Option ausgelassen wird, werden Metadaten verwendet, die in jede Nachricht eingebettet sind. - ttl_days
int | None | list[int | None]: Optionale Dauer der Gültigkeitsdauer in Tagen für angehängte Nachrichten. 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 nicht ablaufende Nachrichten zu erstellen, wenn dies nicht der Fall ist. Werte überMemoryRetentionConfig.max_ttl_dayswerden mit einer Warnung auf dieses Maximum geklemmt. Skalare Werte gelten für den gesamten Batch. - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor]– Optionaler Time-to-Live-Anker. Verwenden SieTimeToLiveAnchor.CREATED_ATfür die Datenbankerstellungszeit oderTimeToLiveAnchor.TIMESTAMPfür jeden Nachrichtenzeitstempel. Der zeitstempelverankerte Ablauf erfordert einen konkreten ISO-8601-Zeitstempel für jede betroffene Nachricht. Wenn diese Option ausgelassen wird, laufen Nachrichten relativ zuTimeToLiveAnchor.CREATED_ATab. ISO-8601-Zeitstempel ohne Zeitzone werden als UTC behandelt. - **store_kwargs (Beliebige) – Speicherspezifische Schreiboptionen, die an den zugrunde liegenden Speicher weitergeleitet werden.
- Nachrichten
- Rückgaben: IDs der eingefügten Meldungsdatensätze. Im Hintergrundextraktionsmodus werden möglicherweise noch automatische Extraktionsarbeiten ausgeführt, wenn diese Kennungen zurückgegeben werden.
- Rückgabetyp: list[str]
Hinweise
In MemoryExtractionMode.BACKGROUND werden Raw-Nachrichten persistiert, bevor extrahierte Speicher gespeichert werden. Wenn die Hintergrundextraktion nicht in eine Warteschlange gestellt wird oder wenn eine konfigurierte Warteschlangenkapazität den Timeout erreicht, bleiben die eingefügten Raw-Nachrichten gespeichert, und der Aufruf wird entweder ohne extrahierte Speicher fortgesetzt, oder TimeoutError wird je nach background_extraction_queue_full_behavior ausgelöst.
Beispiele
len(thread.add_messages([{"role": "user", "content": "Thread message from docs"}]))
1
Methode add_messages_async (asynchron)
Fügen Sie dem Thread asynchron Nachrichten hinzu, und indexieren Sie sie.
Im Hintergrundextraktionsmodus gibt diese Methode zurück, nachdem Raw-Nachrichten eingefügt wurden und die Hintergrundextraktion im Hintergrund versucht wurde.
Raw-Nachrichten werden vor der automatischen Extraktion in beiden Modi gespeichert. Wenn eine spätere Extraktion oder ein abgeleiteter Speicherspeicher fehlschlägt, bleiben die Raw-Nachrichten gespeichert, während abgeleitete Speicher oder Zusammenfassungsaktualisierungen fehlen.
In MemoryExtractionMode.BACKGROUND werden Raw-Nachrichten persistiert, bevor extrahierte Speicher gespeichert werden. Wenn die Hintergrundextraktion nicht in eine Warteschlange gestellt wird oder wenn eine konfigurierte Warteschlangenkapazität den Timeout erreicht, bleiben die eingefügten Raw-Nachrichten gespeichert, und der Aufruf wird entweder ohne extrahierte Speicher fortgesetzt, oder TimeoutError wird je nach background_extraction_queue_full_behavior ausgelöst.
- Parameter:
- Nachrichten
Sequence[Message | ThreadMessageTypedDictT | Mapping[str, str | Sequence[Mapping[str, Any]] | Mapping[str, Any] | None]] - Metadaten
dict[str, Any] | None | list[dict[str, Any] | None] - ttl_days
int | None | list[int | None] - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor] - store_kwargs
Any
- Nachrichten
- Rückgabetyp: list[str]
Methode delete_image
Eine Grafik dieses Diskussionsthemas löschen.
- Parameter: image_id
str: ID des zu löschenden Images. - Rückgaben:
1beim Löschen, andernfalls0, wenn das Image nicht vorhanden ist oder zu einem anderen Thread gehört. - 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)
Eine Grafik dieses Diskussionsthemas asynchron löschen.
- Parameter: image_id
str: ID des zu löschenden Images. - Rückgaben:
1beim Löschen, andernfalls0, wenn das Image nicht vorhanden ist oder zu einem anderen Thread gehört. - 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. einen Speicher, einen Fakt, eine Voreinstellung oder eine Richtlinie) nach Kennung aus diesem Thread.
- Parameter: memory_id
str– Speicher-ID. Es werden nur speicherähnliche Datensätze (memory,guideline,fact,preference) gelöscht, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt. - Rücksendungen: Anzahl der gelöschten Datensätze (0 oder 1). Gibt
0zurück, wenn die ID nicht vorhanden ist oder zu einem anderen Thread gehört. - Rückgabetyp: int
- Raises: TimeoutError – Wird ausgelöst, ohne den Datensatz zu löschen, wenn die frühere akzeptierte Hintergrundextraktion für diesen Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Vor dem Löschen des Datensatzes wartet diese Methode auf eine frühere Hintergrundextraktion, die für diesen Thread über die angehängte Agent-Speicherkomponente akzeptiert wurde. Sie wartet nicht auf angenommene Arbeit, nachdem die Wartezeit beginnt oder die Arbeit von einer anderen Komponente oder einem anderen Prozess gestartet wurde.
Beispiele
thread.delete_memory("456")
0
Methode delete_memory_async (asynchron)
Löschen Sie einen speicherähnlichen Datensatz (z. B. einen Speicher, eine Tatsache, eine Präferenz oder eine Richtlinie) asynchron von diesem Thread.
- Parameter: memory_id
str– Speicher-ID. Es werden nur speicherähnliche Datensätze (memory,guideline,fact,preference) gelöscht, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt. - Rücksendungen: Anzahl der gelöschten Datensätze (0 oder 1). Gibt
0zurück, wenn die ID nicht vorhanden ist oder zu einem anderen Thread gehört. - Rückgabetyp: int
- Raises: TimeoutError – Wird ausgelöst, ohne den Datensatz zu löschen, wenn die frühere akzeptierte Hintergrundextraktion für diesen Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Diese Methode folgt dem von delete_memory() dokumentierten Warte- und Nebenläufigkeitsverhalten der Hintergrundextraktion.
Beispiele
import asyncio
asyncio.run(thread.delete_memory_async("456"))
0
Methode delete_message
Meldungsdatensatz aus diesem Thread nach ID löschen.
- Parameter: message_id
str: Nachrichten-ID. Nur Nachrichten, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden gelöscht. - Rücksendungen: Anzahl der gelöschten Nachrichtendatensätze (0 oder 1). Gibt
0zurück, wenn die ID nicht vorhanden ist oder zu einem anderen Thread gehört. - Rückgabetyp: int
- Raises: TimeoutError – Wird ausgelöst, ohne die Nachricht zu löschen, wenn die frühere angenommene Hintergrundextraktion für diesen Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Vor dem Löschen der Nachricht wartet diese Methode auf eine frühere Hintergrundextraktion, die für diesen Thread über die angehängte Agent-Speicherkomponente akzeptiert wurde. Sie wartet nicht auf angenommene Arbeit, nachdem die Wartezeit beginnt oder die Arbeit von einer anderen Komponente oder einem anderen Prozess gestartet wurde.
Beim Löschen einer Nachricht wird nur der Raw-Nachrichtendatensatz entfernt. Abgeleitete Speicher werden nicht gelöscht, da wir noch nicht verfolgen, welche extrahierten Speicher aus welcher Nachricht stammen, so dass sie durchsuchbar bleiben oder sich immer noch auf die Kontextkartenausgabe auswirken können. Verwenden Sie OracleAgentMemory.delete_thread(), um den Thread zusammen mit den zugehörigen Nachrichten und Speichern zu löschen.
Beispiele
thread.delete_message("123")
0
Methode delete_message_async (asynchron)
Löschen Sie einen Meldungsdatensatz asynchron aus diesem Thread.
- Parameter: message_id
str: Nachrichten-ID. Nur Nachrichten, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden gelöscht. - Rücksendungen: Anzahl der gelöschten Nachrichtendatensätze (0 oder 1). Gibt
0zurück, wenn die ID nicht vorhanden ist oder zu einem anderen Thread gehört. - Rückgabetyp: int
- Raises: TimeoutError – Wird ausgelöst, ohne die Nachricht zu löschen, wenn die frühere angenommene Hintergrundextraktion für diesen Thread nicht innerhalb von 300 Sekunden abgeschlossen ist.
Hinweise
Diese Methode folgt dem von delete_message() dokumentierten Warte- und Nebenläufigkeitsverhalten der Hintergrundextraktion.
Beim Löschen einer Nachricht wird nur der Raw-Nachrichtendatensatz entfernt. Abgeleitete Speicher werden nicht gelöscht, da wir noch nicht verfolgen, welche extrahierten Speicher aus welcher Nachricht stammen, so dass sie durchsuchbar bleiben oder sich immer noch auf die Kontextkartenausgabe auswirken können. Verwenden Sie OracleAgentMemory.delete_thread(), um den Thread zusammen mit den zugehörigen Nachrichten und Speichern zu löschen.
Beispiele
import asyncio
asyncio.run(thread.delete_message_async("123"))
0
Methode delete_record_link
Löschen Sie eine Thread-eigene Beziehung nach ID oder vollständigem Endpunkttupel.
Endpunkt-Tupel-Selektoren müssen die gespeicherte Ausrichtung von Quelle zu Ziel verwenden.
- Parameter:
- source_record_id
str: Quell-ID für einen Endpunkt-Tupel-Selektor. - source_record_type
str: Logischer Quelldatensatztyp für einen Endpunkt-Tupel-Selektor. - target_record_id
str: Ziel-ID für einen Endpunkt-Tupel-Selektor. - target_record_type
str: Logischer Zieldatensatztyp für einen Endpunkt-Tupelselektor. - relation_type
str: Label "Quelle zu Ziel" für einen Endpunkt-Tupelselektor. - relation_id
str: Beziehungs-ID zur direkten Auswahl. Geben Sie dieses Argument allein an.
- source_record_id
- Rückgaben: Anzahl der gelöschten Beziehungen, entweder
0oder1. - Rückgabetyp: int
Beispiele
thread.delete_record_link(relation_id="relation-id")
1
Methode delete_record_link_async (asynchron)
Eine Beziehung, die diesem Thread gehört, 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 get_context_card
Gibt ein Kontextkartenobjekt für den Thread zurück.
Wählen Sie get_context_card_async, wenn eine LLM-gestützte Implementierung Remote-Netzwerk-I/O ausführen kann.
- Parameter:
- fallback_message_count
int: Anzahl der letzten Nachrichten, die verwendet werden sollen, wenn der Fallback-Zusammenfassungstext zum Abrufen und Rendering abgeleitet wird. Wird dieser Wert ausgelassen, wird er in5aufgelöst. -
max_relevant_results
int–Maximale Anzahl der relevanten Datensätze (speicherähnlich, z.B. Fakten/Voreinstellungen sowie Nachrichten), die in den Abschnitt
<relevant_information>der Kontextkarte aufgenommen werden sollen.- Wenn sowohl dieser Wert als auch
min_relevant_results_by_typeausgelassen werden, wirdmax_relevant_resultsin5aufgelöst. - Wenn
min_relevant_results_by_typeangegeben ist, wirdmax_relevant_resultsinmax(max_relevant_results, sum(min_relevant_results_by_type.values()))aufgelöst.
- Wenn sowohl dieser Wert als auch
- token_budget
int | None– Optionales festes Limit für die geschätzte Tokenanzahl formatierter relevanter Ergebnisse in der Kontextkarte. Wenn diese Option ausgelassen wird, wird die Threadsuchkonfiguration 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 relevanten Ergebnisse berücksichtigt. Nicht positive Werte deaktivieren die Memory Cap. - soft_token_budget
int | None– Optionales Ziel für die geschätzte Tokenanzahl der formatierten relevanten Ergebnisse. Wenn diese Option ausgelassen wird, wird die Threadsuchkonfiguration 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. - max_recent_messages
int: Maximale Anzahl der letzten Unterhaltungsnachrichten, die in den Abschnitt<recent_messages>der Kontextkarte aufgenommen werden sollen. Wenn diese Option ausgelassen wird, wirdmax_recent_messagesin0aufgelöst. -
except_last_messages
int–Anzahl der nachgestellten Nachrichten, die aus der generierten Übersichts- und Informationssuche in der Kontextkarte ausgeschlossen werden sollen. Dadurch wird verhindert, dass Meldungen, die separat in LLM-Prompts bereitgestellt werden, in der Kontextkarte dupliziert werden. Verwenden Sie eines dieser Muster:
-
- Externer Raw-Tail (empfohlen für Prompt-Caching):
get_context_card(except_last_messages=N, max_recent_messages=0)Der Prompt enthält die Kontextkarte gefolgt von den letztenN-Raw-Nachrichten.
-
- In sich geschlossene Kontextkarte:
get_context_card(except_last_messages=N, max_recent_messages=N)Die Kontextkarte enthält die letztenN-Nachrichten selbst.
Wenn der Wert ungleich null ist, muss
max_recent_messages0oder derselbe Wert sein. -
- min_relevant_results_by_type
Mapping[Literal['message', 'memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker– Optionale Mindestwerte pro Typ für relevante Datensätze, die in der Kontextkarte enthalten sind. Angeforderte Typen werden zuerst durchsucht, und die restlichenmax_relevant_results-Slots werden von allen unterstützten speicherähnlichen Datensatztypen ausgefüllt. Unterstützte Schlüssel sind"memory","fact","guideline","preference"und"message". Nachrichtenergebnisse sind auf den aktuellen Thread begrenzt. -
metadata_filter
dict[str, Any] | None–Optionale Metadatenfilterzuordnung, die als zusätzlicher Filter nach Geltungsbereich und Datensatzfilterung bei der Suche nach speicherähnlichen Datensätzen verwendet wird, die in die Kontextkarte aufgenommen werden sollen. 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": "chat"}für ein skalares Feld,metadata_filter={"travel": {"need": "transit"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["trip", "urgent"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }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": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool– Gibt an, ob relevante Datensätze mit dem ungültigen Lebenszyklusstatus in der Kontextkarte enthalten sind. Lassen Sie dieses Argument weg, oder übergeben SieTrue, um sie einzuschließen. Übergeben SieFalse, um sie auszuschließen. - **kwargs (Beliebig) – Reserviert für zukünftige Kontextkartenoptionen. Unerwartete Schlüsselwortargumente lösen
TypeErroraus.
- fallback_message_count
- Rückgaben: Ein Kontextkartenobjekt, das eine Threadkontextübersicht basierend auf den neuesten Nachrichten enthält. Verwenden Sie
OracleContextCard.content, um auf den gerenderten XML-ähnlichen Text zuzugreifen. - Rückgabetyp: OracleContextCard
Hinweise
Dabei wird der standardmäßige Suchgeltungsbereich des Threads mit exact_thread_match=False verwendet, sodass relevante Speicher aus anderen Threads für denselben Benutzer/Agent enthalten sein können.
Beispiele
thread.add_memory("User likes pizza", memory_id="mem-context-docs")
'mem-context-docs'
len(thread.add_messages([{"role": "user", "content": "Tell me about pizza"}]))
1
"User likes pizza" in thread.get_context_card().content
True
card = thread.get_context_card(
max_relevant_results=4,
min_relevant_results_by_type={"memory": 1},
)
len(card.relevant_results or []) <= 4
True
Methode get_context_card_async (asynchron)
Gibt ein Kontextkartenobjekt für den Thread asynchron zurück.
- Parameter:
- fallback_message_count
int: Anzahl der letzten Nachrichten, die verwendet werden sollen, wenn der Fallback-Zusammenfassungstext zum Abrufen und Rendering abgeleitet wird. Wird dieser Wert ausgelassen, wird er in5aufgelöst. -
max_relevant_results
int–Maximale Anzahl der relevanten Datensätze (speicherähnlich, z.B. Fakten/Voreinstellungen sowie Nachrichten), die in den Abschnitt
<relevant_information>der Kontextkarte aufgenommen werden sollen.- Wenn sowohl dieser Wert als auch
min_relevant_results_by_typeausgelassen werden, wirdmax_relevant_resultsin5aufgelöst. - Wenn
min_relevant_results_by_typeangegeben ist, wirdmax_relevant_resultsinmax(max_relevant_results, sum(min_relevant_results_by_type.values()))aufgelöst.
- Wenn sowohl dieser Wert als auch
- token_budget
int | None– Optionales festes Limit für die geschätzte Tokenanzahl formatierter relevanter Ergebnisse in der Kontextkarte. Wenn diese Option ausgelassen wird, wird die Threadsuchkonfiguration 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 relevanten Ergebnisse berücksichtigt. Nicht positive Werte deaktivieren die Memory Cap. - soft_token_budget
int | None– Optionales Ziel für die geschätzte Tokenanzahl der formatierten relevanten Ergebnisse. Wenn diese Option ausgelassen wird, wird die Threadsuchkonfiguration 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. - max_recent_messages
int: Maximale Anzahl der letzten Unterhaltungsnachrichten, die in den Abschnitt<recent_messages>der Kontextkarte aufgenommen werden sollen. Wenn diese Option ausgelassen wird, wirdmax_recent_messagesin0aufgelöst. -
except_last_messages
int–Anzahl der nachgestellten Nachrichten, die aus der generierten Übersichts- und Informationssuche in der Kontextkarte ausgeschlossen werden sollen. Dadurch wird verhindert, dass Meldungen, die separat in LLM-Prompts bereitgestellt werden, in der Kontextkarte dupliziert werden. Verwenden Sie eines dieser Muster:
-
- Externer Raw-Tail (empfohlen für Prompt-Caching):
get_context_card(except_last_messages=N, max_recent_messages=0)Der Prompt enthält die Kontextkarte gefolgt von den letztenN-Raw-Nachrichten.
-
- In sich geschlossene Kontextkarte:
get_context_card(except_last_messages=N, max_recent_messages=N)Die Kontextkarte enthält die letztenN-Nachrichten selbst.
Wenn der Wert ungleich null ist, muss
max_recent_messages0oder derselbe Wert sein. -
- min_relevant_results_by_type
Mapping[Literal['message', 'memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker– Optionale Mindestwerte pro Typ für relevante Datensätze, die in der Kontextkarte enthalten sind. Angeforderte Typen werden zuerst durchsucht, und die restlichenmax_relevant_results-Slots werden von allen unterstützten speicherähnlichen Datensatztypen ausgefüllt. Unterstützte Schlüssel sind"memory","fact","guideline","preference"und"message". Nachrichtenergebnisse sind auf den aktuellen Thread begrenzt. -
metadata_filter
dict[str, Any] | None–Optionale Metadatenfilterzuordnung, die als zusätzlicher Filter nach Geltungsbereich und Datensatzfilterung bei der Suche nach speicherähnlichen Datensätzen verwendet wird, die in die Kontextkarte aufgenommen werden sollen. 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": "chat"}für ein skalares Feld,metadata_filter={"travel": {"need": "transit"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["trip", "urgent"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }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": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool– Gibt an, ob relevante Datensätze mit dem ungültigen Lebenszyklusstatus in der Kontextkarte enthalten sind. Lassen Sie dieses Argument weg, oder übergeben SieTrue, um sie einzuschließen. Übergeben SieFalse, um sie auszuschließen. - **kwargs (Beliebig) – Reserviert für zukünftige Kontextkartenoptionen. Unerwartete Schlüsselwortargumente lösen
TypeErroraus.
- fallback_message_count
- Rückgaben: Ein Kontextkartenobjekt für den Thread.
- Rückgabetyp: OracleContextCard
Beispiele
import asyncio
card = asyncio.run(thread.get_context_card_async(
min_relevant_results_by_type={"preference": 1, "guideline": 1},
))
len(card.relevant_results or []) <= 5
True
Methode get_message
Gibt eine Nachricht zurück, die diesem Thread gehört.
Bildteile werden standardmäßig mit ihren Kennungen und Beschreibungen zurückgegeben. Übergeben Sie included_image_ids, um Byte für ausgewählte Imageteile zu laden. Nicht zugehörige Kennungen werden ignoriert.
- Parameter:
- message_id
str: ID der abzurufenden Nachricht. Die Nachricht muss zu diesem Thread gehören. - included_image_ids
list[str]– Optionale Liste der angehängten Image-IDs, deren Byte geladen werden sollen. Lassen Sie dieses Argument weg, oder übergeben SieNone, um Bildmetadaten zurückzugeben, ohne Byte zu laden.
- message_id
- Rücksendungen: Die angeforderte Nachricht, einschließlich aller angehängten Bildteile.
- Rückgabetyp: Nachricht
- Raises: KeyError – Wenn die Nachricht nicht vorhanden ist oder zu einem anderen Thread gehört.
Methode get_message_async (asynchron)
Gibt eine Thread-eigene Nachricht asynchron zurück.
included_image_ids wählt optional angehängte Imageteile aus, deren Byte geladen werden sollen. "omitted" oder "None" gibt nur Imagemetadaten zurück.
- Parameter:
- message_id
str: ID der abzurufenden Nachricht. Die Nachricht muss zu diesem Thread gehören. - included_image_ids
list[str]– Optionale Liste der angehängten Image-IDs zur Hydratisierung.
- message_id
- Rücksendungen: Die angeforderte Nachricht, einschließlich aller angehängten Bildteile.
- Rückgabetyp: Nachricht
- Raises: KeyError – Wenn die Nachricht nicht vorhanden ist oder zu einem anderen Thread gehört.
Methode get_messages
Gespeicherte Nachrichten für diesen Thread zurückgeben.
- Parameter:
- start
int | None: Startindex (0-basiert). Wenn zusammen mitendausgelassen wird, wird das zuletzt beschränkte Fenster zurückgegeben. - end
int | None: Endindex (exklusiv). Wenn diese Option ausgelassen wird, wird ein begrenztes Fenster mit den neuesten Nachrichten zurückgegeben. Übergeben SieNoneoder-1, um alle Nachrichten abstartexplizit anzufordern. - include_image_bytes
bool– Gibt an, ob Byte für Imageteile geladen werden sollen, die an die zurückgegebenen Nachrichten angehängt sind. Lassen Sie dieses Argument aus, oder übergeben SieFalse, um Bildmetadaten zurückzugeben, ohne BLOB-Werte zu laden.
- start
- Rückgaben: Nachrichten in chronologischer Reihenfolge.
- Liste Rückgabetyp:[Nachricht]
Beispiele
len(thread.add_messages([{"role": "user", "content": "Stored message example"}]))
1
messages = thread.get_messages()
messages[-1].content
'Stored message example'
Methode get_messages_async (asynchron)
Rufen Sie die nicht verarbeiteten Nachrichten aus dem Thread ab, wie sie mit add_messages asynchron hinzugefügt wurden.
- Parameter:
- start
int | None: Startindex (0-basiert). Wenn zusammen mitendausgelassen wird, wird das zuletzt beschränkte Fenster zurückgegeben. - end
int | None: Endindex (exklusiv). Wenn diese Option ausgelassen wird, wird ein begrenztes Fenster mit den neuesten Nachrichten zurückgegeben. Übergeben SieNoneoder-1, um alle Nachrichten abstartexplizit anzufordern. - include_image_bytes
bool– Gibt an, ob Byte für Imageteile geladen werden sollen, die an die zurückgegebenen Nachrichten angehängt sind. Lassen Sie dieses Argument aus, oder übergeben SieFalse, um Bildmetadaten zurückzugeben, ohne BLOB-Werte zu laden.
- start
- Rückgaben: Nachrichten in chronologischer Reihenfolge.
- Liste Rückgabetyp:[Nachricht]
Beispiele
import asyncio
message_ids = asyncio.run(thread.add_messages_async(
[{"role": "user", "content": "Stored message example"}]
))
len(message_ids)
1
messages = asyncio.run(thread.get_messages_async())
messages[-1].content
'Stored message example'
Methode get_summary
Gibt eine Zusammenfassung des Threads zurück.
Eine Anforderung für das gesamte Thread verwendet oder aktualisiert die dauerhafte Zusammenfassung. Eine Anforderung mit except_last fasst dieses Präfix zusammen, ohne die dauerhafte Ganz-Thread-Zusammenfassung zu ändern.
Wählen Sie get_summary_async, wenn eine LLM-gestützte Implementierung Remote-Netzwerk-I/O ausführen kann.
- Parameter:
- except_last
int– Anzahl der letzten Nachrichten, die aus der Übersicht ausgeschlossen werden sollen. - token_budget
int: Budget für Soft-Token. Wenn kein Wert angegeben wird, wird ein gebundener Standardwert angewendet. Positive Werte werden nur abgeschnitten, wenn die formatierte Übersicht das Budget überschreitet. Nicht positive Werte deaktivieren das budgetbasierte Abschneiden. Transkript-Rückmeldungen bleiben auf 4.000 Zeichen begrenzt. - **kwargs (Beliebig) – Reserviert für zukünftige Übersichtsoptionen. Unerwartete Schlüsselwortargumente lösen
TypeErroraus.
- except_last
- Rückgaben: Zusammenfassungsobjekt mit dem Synthesized Thread-Zusammenfassungstext.
- Rückgabetyp: OracleSummary
Beispiele
len(thread.add_messages([{"role": "assistant", "content": "Summary source message"}]))
1
summary = thread.get_summary()
bool(summary.content)
True
Methode get_summary_async (asynchron)
Gibt eine Zusammenfassung des Threads asynchron zurück.
Eine Anforderung für das gesamte Thread verwendet oder aktualisiert die dauerhafte Zusammenfassung. Eine Anforderung mit except_last fasst dieses Präfix zusammen, ohne die dauerhafte Ganz-Thread-Zusammenfassung zu ändern.
- Parameter:
- except_last
int– Anzahl der letzten Nachrichten, die aus der Übersicht ausgeschlossen werden sollen. - token_budget
int: Budget für Soft-Token. Wenn kein Wert angegeben wird, wird ein gebundener Standardwert angewendet. Positive Werte werden nur abgeschnitten, wenn die formatierte Übersicht das Budget überschreitet. Nicht positive Werte deaktivieren das budgetbasierte Abschneiden. Transkript-Rückmeldungen bleiben auf 4.000 Zeichen begrenzt. - **kwargs (Beliebig) – Reserviert für zukünftige Übersichtsoptionen. Unerwartete Schlüsselwortargumente lösen
TypeErroraus.
- except_last
- Rückgaben: Zusammenfassungsobjekt mit dem Synthesized Thread-Zusammenfassungstext.
- Rückgabetyp: OracleSummary
Methode link_records
Erstellen Sie eine gerichtete Beziehung zwischen zwei Datensätzen, deren Eigentümer dieser Thread ist.
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.
Beide Endpunkte müssen genau zu diesem Thread gehören. Für ein Endpunktpaar kann nur eine Ausrichtung gespeichert werden. opposite_relation_type benennt die Beziehung beim Durchlaufen von Ziel zu Quelle. Beispiel: new "supersedes" old wird in diese Richtung zu old "is_superseded_by" new.
- Parameter:
- source_record_id
str: Bezeichner des Quelldatensatzes, der Eigentümer eines Threads ist. - source_record_type
str: Der logische Typ des Quelldatensatzes. - target_record_id
str: ID des Thread-eigenen Zieldatensatzes. - target_record_type
str: Logischer Typ des Zieldatensatzes. - relation_type
str: Quell-zu-Ziel-Beziehungslabel. - opposite_relation_type
str– Optionales Reverse-Traversal-Label. Bei einem integrierten Speicherbeziehungstyp verwendet der Verzicht sein vordefiniertes Reverse Label. Bei einem benutzerdefinierten Beziehungstyp verwendet der Verzicht dasselbe Label in beide Richtungen. - relation_id
str– Optionale stabile Beziehungs-ID. Lassen Sie es aus, um eine zu generieren. - timestamp
str | None– Optionaler Zeitstempel, der in der Beziehung gespeichert wird. - metadata
dict[str, Any] | None– Optionale Beziehungsmetadaten.
- source_record_id
- Rückgaben: ID der erstellten Beziehung.
- Rückgabetyp: str
Beispiele
thread.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
Methode link_records_async (asynchron)
Erstellen Sie asynchron eine Beziehung zwischen Datensätzen, deren Eigentümer dieser Thread ist.
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_images
Bilddatensätze auflisten, deren Eigentümer dieser Thread ist.
Zurückgegebene Datensätze enthalten standardmäßig Bildmetadaten. Raw-Byte werden nur geladen, wenn include_bytes=True und image_id angegeben sind.
- Parameter:
- image_id
str: Optionale ID zum Filtern der Bilder. Wenn keine Kennung angegeben wird, wird kein Kennungsfilter angewendet. - metadata_filter
dict[str, Any] | None– Optionaler Filter, der auf Imagemetadaten angewendet wird. - include_bytes
bool– Gibt an, ob Raw-Byte geladen werden sollen. Dazu ist eineimage_iderforderlich. - limit
int | None– Optionale maximale Anzahl von Datensätzen. Übergeben SieNone, um das Standardlimit des Speichers zu deaktivieren.
- image_id
- Retouren: Abgleichende Bilder in Filialbestellung.
- Liste Rückgabetyp:[ImageRecord]
Methode list_images_async (asynchron)
Bilddatensätze dieses Threads asynchron auflisten
Zurückgegebene Datensätze enthalten standardmäßig Bildmetadaten. Raw-Byte werden nur geladen, wenn include_bytes=True und image_id angegeben sind. Der Geltungsbereich dieses Threads wird automatisch angewendet.
- Parameter:
- image_id
str: Optionale ID zum Filtern der Bilder. Wenn keine Kennung angegeben wird, wird kein Kennungsfilter angewendet. - metadata_filter
dict[str, Any] | None– Optionaler Filter, der auf Imagemetadaten angewendet wird. - include_bytes
bool– Gibt an, ob Raw-Byte geladen werden sollen. Dazu ist eineimage_iderforderlich. - limit
int | None– Optionale maximale Anzahl von Datensätzen. Übergeben SieNone, um das Standardlimit des Speichers zu deaktivieren.
- image_id
- Retouren: Abgleichende Bilder in Filialbestellung.
- Liste Rückgabetyp:[ImageRecord]
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– Optionales Überschreiben des Benutzergeltungsbereichs. Ausgelassene Werte erben den standardmäßigen Benutzergeltungsbereich des Threads. - agent_id
str | None: Optionales Überschreiben des Geltungsbereichs des Agent. Ausgelassene Werte erben den Standard-Agent-Geltungsbereich des Threads. - thread_id
str | None– Optionales Überschreiben des Threadgeltungsbereichs. Ausgelassene Werte erben die aktuelle Thread-ID des Threads. - exact_user_match
bool– Gibt an, ob der Benutzerabgleich streng sein soll. - exact_agent_match
bool: Gibt an, ob der Agent-Abgleich streng sein soll. - exact_thread_match
bool– Gibt an, ob der Threadabgleich streng sein soll. - 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. Der Aufruf gibt möglicherweise weniger alsmax_resultszurück, wenn weniger übereinstimmende Datensätze vorhanden sind, die nicht abgelaufen sind. - 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": "chat"}für ein skalares Feld,metadata_filter={"travel": {"need": "transit"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["trip", "urgent"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }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": "chat", "tags": { "$array_contains": "trip", "$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. Direkte Nachrichten-, Bild- und Profilergebnisse werden beibehalten, aber nicht grafisch erweitert. - 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.
- query
- Rückgaben: Die Suchergebnisse werden nach abnehmender Relevanz sortiert.
- Rückgabetyp: list[SearchResult]
- Raises: ValueError – Wenn
scopemit expliziten Bezeichnern oder Argumenten mit exakter Übereinstimmung kombiniert wird, wennmax_resultskleiner als1ist oder wennmetadata_filterweder ein Dictionary nochNoneist.
Hinweise
Ausgelassene Geltungsbereichsfelder übernehmen den Standardsuchgeltungsbereich dieses Threads: exakter Benutzer- und Agent-Abgleich plus aktuellem user_id, agent_id und thread_id dieses Threads. Bei der Standardthreadsuche wird exact_thread_match=False absichtlich beibehalten, sodass relevante Datensätze aus anderen Threads für denselben Benutzer/Agent zurückgegeben werden können. Übergeben Sie exact_thread_match=True, um die Ergebnisse auf den aktuellen Thread zu beschränken. 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 gespeicherten None-Werten entspricht.
Explizite max_results-Werte müssen mindestens 1 sein. Wenn das Argument weggelassen wird, wird der Standardwert 10 verwendet. Dies ist ein oberer Grenzwert: Der Aufruf gibt möglicherweise weniger als max_results-Ergebnisse zurück, wenn Filter zu restriktiv sind, wenn weniger übereinstimmende Datensätze vorhanden sind oder das implementierungsspezifische Suchverhalten vorliegt.
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– Optionales Überschreiben des Benutzergeltungsbereichs. Ausgelassene Werte erben den standardmäßigen Benutzergeltungsbereich des Threads. - agent_id
str | None: Optionales Überschreiben des Geltungsbereichs des Agent. Ausgelassene Werte erben den Standard-Agent-Geltungsbereich des Threads. - thread_id
str | None– Optionales Überschreiben des Threadgeltungsbereichs. Ausgelassene Werte erben die aktuelle Thread-ID des Threads. - exact_user_match
bool– Gibt an, ob der Benutzerabgleich streng sein soll. - exact_agent_match
bool: Gibt an, ob der Agent-Abgleich streng sein soll. - exact_thread_match
bool– Gibt an, ob der Threadabgleich streng sein soll. - 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": "chat"}für ein skalares Feld,metadata_filter={"travel": {"need": "transit"}}für ein verschachteltes Feld undmetadata_filter={"tags": ["trip", "urgent"]}für eine genaue Listenübereinstimmung. Kombinieren Sie Bedingungen, um sie alle zu benötigen:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }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": "chat", "tags": { "$array_contains": "trip", "$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. Direkte Nachrichten-, Bild- und Profilergebnisse werden beibehalten, aber nicht grafisch erweitert. - 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.
- query
- Rückgaben: Die Suchergebnisse werden nach abnehmender Relevanz sortiert.
- Rückgabetyp: list[SearchResult]
- Raises: ValueError – Wenn
scopemit expliziten Bezeichnern oder Argumenten mit exakter Übereinstimmung kombiniert wird, wennmax_resultskleiner als1ist oder wennmetadata_filterweder ein Dictionary nochNoneist.
Hinweise
Ausgelassene Geltungsbereichsfelder übernehmen den Standardsuchgeltungsbereich dieses Threads: exakter Benutzer- und Agent-Abgleich plus aktuellem user_id, agent_id und thread_id dieses Threads. Bei der Standardthreadsuche wird exact_thread_match=False absichtlich beibehalten, sodass relevante Datensätze aus anderen Threads für denselben Benutzer/Agent zurückgegeben werden können. Übergeben Sie exact_thread_match=True, um die Ergebnisse auf den aktuellen Thread zu beschränken. 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 gespeicherten None-Werten entspricht.
Explizite max_results-Werte müssen mindestens 1 sein. Wenn das Argument weggelassen wird, wird der Standardwert 10 verwendet. Dies ist ein oberer Grenzwert: Der Aufruf gibt möglicherweise weniger als max_results-Ergebnisse zurück, wenn Filter zu restriktiv sind, wenn weniger übereinstimmende Datensätze vorhanden sind oder das implementierungsspezifische Suchverhalten vorliegt.
Methode update_image
Aktualisieren Sie ein Image, das diesem Thread gehört.
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. Der Ablauf für ein Bild, das an eine Nachricht angehängt ist, muss über update_message() geändert werden.
- 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.
- Parameter:
- image_id
str - Image
bytes - Beschreibung
str | None - mime_type
ImageMimeType - Metadaten
dict[str, Any] | None - Zeitstempel
str | None - ttl_days
int | None - ttl_anchor
TimeToLiveAnchor - kwargs
Any
- image_id
Methode update_image_async (asynchron)
Aktualisieren Sie ein Image dieses Threads asynchron.
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. Der Ablauf für ein Bild, das an eine Nachricht angehängt ist, muss über update_message_async() geändert werden.
- 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.
- Parameter:
- image_id
str - Image
bytes - Beschreibung
str | None - mime_type
ImageMimeType - Metadaten
dict[str, Any] | None - Zeitstempel
str | None - ttl_days
int | None - ttl_anchor
TimeToLiveAnchor - kwargs
Any
- image_id
Methode update_memory
Aktualisieren Sie einen speicherähnlichen Datensatz, der diesem Thread gehört.
- Parameter:
- memory_id
str: Speicher-ID. Nur speicherähnliche Datensätze (memory,guideline,fact,preference), deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden aktualisiert. - 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, müssen Ersatzzeitstempel ISO-8601-Zeichenfolgen sein. ISO-8601-Zeitstempel ohne Zeitzone werden 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 Thread-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 ThreadTimeToLiveAnchor.CREATED_AT. Aktualisierungen mit Zeitstempel erfordern entweder einen Ersatz-ISO-8601-Zeitstempel in demselben Aufruf oder einen vorhandenen gespeicherten Ereigniszeitstempel in diesem Format. 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
Methode update_memory_async (asynchron)
Aktualisieren Sie einen speicherähnlichen Datensatz, der diesem Thread gehört, asynchron.
- Parameter:
- memory_id
str: Speicher-ID. Nur speicherähnliche Datensätze (memory,guideline,fact,preference), deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden aktualisiert. - 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, müssen Ersatzzeitstempel ISO-8601-Zeichenfolgen sein. ISO-8601-Zeitstempel ohne Zeitzone werden 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 Thread-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 ThreadTimeToLiveAnchor.CREATED_AT. Aktualisierungen mit Zeitstempel erfordern entweder einen Ersatz-ISO-8601-Zeitstempel in demselben Aufruf oder einen vorhandenen gespeicherten Ereigniszeitstempel in diesem Format. 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
Beispiele
import asyncio
memory_id = asyncio.run(thread.add_memory_async("Original memory"))
(
asyncio.run(thread.update_memory_async(
memory_id, content="Updated memory"
))
== memory_id
)
True
Methode update_message
Aktualisieren Sie einen Raw-Nachrichtendatensatz, der diesem Thread gehört.
- Parameter:
- message_id
str: Nachrichten-ID. Nur Nachrichten, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden aktualisiert. - content
str | list[Mapping[str, Any]]: Optionaler Nachrichteninhalt für Ersatznachrichten. Geben Sie eine Zeichenfolge an, um den gespeicherten Inhalt zu ersetzen, oder eine geordnete Folge von Text- und Bildinhaltsteilen. Wird der Inhalt ausgelassen, wird der gespeicherte Inhalt beibehalten. Verwenden Sie eine leere Zeichenfolge, um sie durch leeren Textinhalt zu ersetzen. - 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. - 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 Nachrichten sind für diese Thread-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_ATals Erstellungszeit der Nachricht oderTimeToLiveAnchor.TIMESTAMPals Zeitstempel des gespeicherten Ereignisses. Wenn Siettl_anchorohnettl_daysangeben, wird die Standarddauer für die Gültigkeitsdauer des Schemas verwendet. Wennttl_anchorwährend einer Aktualisierung ausgelassen wird, verwendet der ThreadTimeToLiveAnchor.CREATED_AT. Aktualisierungen mit Zeitstempel erfordern einen vorhandenen gespeicherten ISO-8601-Nachrichtenzeitstempel. ISO-8601-Zeitstempel ohne Zeitzone werden als UTC behandelt. - **kwargs (Any) – Unerwartete Schlüsselwortargumente werden abgelehnt.
- message_id
- Rücksendungen: ID des aktualisierten Meldungsdatensatzes.
- Rückgabetyp: str
Hinweise
Ausgelassene Felder werden aus dem gespeicherten Datensatz beibehalten. Gespeicherte Rolle und Zeitstempel bleiben unverändert. Wenn Sie Inhalte bearbeiten, wird die Rohnachrichtenhistorie aktualisiert. Wenn die automatische Extraktion aktiviert ist, kann das SDK dazu führen, dass Speicher aus der bearbeiteten Nachricht und der früheren Historie neu extrahiert werden. Im Modus INLINE wird diese Extraktion abgeschlossen, bevor diese Methode zurückgegeben wird. Im Modus BACKGROUND gibt diese Methode zurück, nachdem die Aktualisierung der Raw-Nachricht erfolgreich war und die Hintergrundextraktion versucht wurde. Diese Nachsorgearbeiten wirken sich nicht auf die normale Extraktionshäufigkeit aus, die von späteren add_messages()-Aufrufen verwendet wird. Vorhandene extrahierte Speicher bleiben vorhanden, während neu extrahierte Speicher aus dem bearbeiteten Inhalt hinzugefügt werden können. Da die Aktualisierung der Raw-Nachricht und spätere Schreibvorgänge im extrahierten Speicher nicht atomar erfolgen, können extrahierte Speicher weiterhin den früheren Nachrichteninhalt widerspiegeln, wenn die Hintergrundarbeit nicht in eine Warteschlange gestellt wird, wenn eine konfigurierte Warteschlangenkapazität ihren Timeout erreicht oder die spätere Extraktion fehlschlägt. Beachten Sie außerdem, dass vorhandene extrahierte Speicher ihren ursprünglichen Ablauf beibehalten, wenn sich die TTL einer Quellnachricht ändert.
Beispiele
message_id = thread.add_messages([{"role": "user", "content": "Draft message"}])[0]
thread.update_message(message_id, content="Edited message") == message_id
True
Methode update_message_async (asynchron)
Aktualisieren Sie einen Raw-Nachrichtendatensatz, der diesem Thread gehört, asynchron.
- Parameter:
- message_id
str: Nachrichten-ID. Nur Nachrichten, deren gespeichertethread_idgenau mit diesem Thread übereinstimmt, werden aktualisiert. - content
str | list[Mapping[str, Any]]: Optionaler Nachrichteninhalt für Ersatznachrichten. Geben Sie eine Zeichenfolge an, um den gespeicherten Inhalt zu ersetzen, oder eine geordnete Folge von Text- und Bildinhaltsteilen. Wird der Inhalt ausgelassen, wird der gespeicherte Inhalt beibehalten. Verwenden Sie eine leere Zeichenfolge, um sie durch leeren Textinhalt zu ersetzen. - 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. - 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 Nachrichten sind für diese Thread-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_ATals Erstellungszeit der Nachricht oderTimeToLiveAnchor.TIMESTAMPals Zeitstempel des gespeicherten Ereignisses. Wenn Siettl_anchorohnettl_daysangeben, wird die Standarddauer für die Gültigkeitsdauer des Schemas verwendet. Aktualisierungen mit Zeitstempel erfordern einen vorhandenen gespeicherten ISO-8601-Nachrichtenzeitstempel. ISO-8601-Zeitstempel ohne Zeitzone werden als UTC behandelt. - **kwargs (Any) – Unerwartete Schlüsselwortargumente werden abgelehnt.
- message_id
- Rücksendungen: ID des aktualisierten Meldungsdatensatzes.
- Rückgabetyp: str
Hinweise
Ausgelassene Felder werden aus dem gespeicherten Datensatz beibehalten. Gespeicherte Rolle und Zeitstempel bleiben unverändert. Wenn Sie Inhalte bearbeiten, wird die Rohnachrichtenhistorie aktualisiert. Wenn die automatische Extraktion aktiviert ist, kann das SDK dazu führen, dass Speicher aus der bearbeiteten Nachricht und der früheren Historie neu extrahiert werden. Im Modus INLINE wird diese Extraktion abgeschlossen, bevor diese Methode zurückgegeben wird. Im Modus BACKGROUND gibt diese Methode zurück, nachdem die Aktualisierung der Raw-Nachricht erfolgreich war und die Hintergrundextraktion versucht wurde. Diese Nachsorgearbeiten wirken sich nicht auf die normale Extraktionshäufigkeit aus, die von späteren add_messages()-Aufrufen verwendet wird. Vorhandene extrahierte Speicher bleiben vorhanden, während neu extrahierte Speicher aus dem bearbeiteten Inhalt hinzugefügt werden können. Da die Aktualisierung der Raw-Nachricht und spätere Schreibvorgänge im extrahierten Speicher nicht atomar erfolgen, können extrahierte Speicher weiterhin den früheren Nachrichteninhalt widerspiegeln, wenn die Hintergrundarbeit nicht in eine Warteschlange gestellt wird, wenn eine konfigurierte Warteschlangenkapazität ihren Timeout erreicht oder die spätere Extraktion fehlschlägt. Beachten Sie außerdem, dass vorhandene extrahierte Speicher ihren ursprünglichen Ablauf beibehalten, wenn sich die TTL einer Quellnachricht ändert.
Beispiele
import asyncio
message_ids = asyncio.run(thread.add_messages_async(
[{"role": "user", "content": "Draft message"}]
))
(
asyncio.run(thread.update_message_async(
message_ids[0], content="Edited message"
))
== message_ids[0]
)
True
Methode update_record_link
Aktualisieren Sie eine Beziehung, deren Endpunkte diesem Thread gehören.
Ausgelassene Werte werden beibehalten. Wenn relation_type zu einem integrierten Speicherbeziehungstyp wechselt, ersetzt das feste Reverse Label opposite_relation_type.
- Parameter:
- relation_id
str: ID der Threadbeziehung. - 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
thread.update_record_link("relation-id", relation_type="supports")
1
Methode update_record_link_async (asynchron)
Aktualisieren Sie asynchron eine Beziehung, deren Endpunkte zu diesem Thread gehören.
- 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 wait_for_memory_extraction
Warten Sie auf eine frühere Hintergrundspeicherextraktion für diesen Thread.
Diese Methode wartet auf Hintergrundextraktion, die von früheren add_messages()-, add_messages_async()-, update_message()- oder update_message_async()-Aufrufen in diesem Thread über dieselbe Agent-Speicherkomponente gestartet wurde. Wenn einer dieser Aufrufe bereits abgeschlossen ist, enthält diese Methode die Extraktion, die vor dem Warten beginnt.
Die Methode 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 die ausstehende Extraktion für diesen Thread abgeschlossen ist. - Gelöst: TimeoutError – Wird ausgelöst, wenn der Timeout abläuft, bevor die frühere Hintergrundextraktion abgeschlossen ist.
- Rückgabetyp: Keine
Beispiele
thread.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(thread.wait_for_memory_extraction_async(timeout=10))
Hinweis: delete_message() löscht nur die Zeile mit Raw-Nachrichten. Abgeleitete Speicher können weiterhin durchsucht werden oder in Kontextkarten angezeigt werden. Verwenden Sie OracleAgentMemory.delete_thread(), um den Thread zusammen mit den zugehörigen Nachrichten und Speichern zu löschen. Das Löschen von Nachrichten und Speicher durch ein Thread-Handle wartet auf eine frühere Hintergrundextraktion, die bereits vom angehängten Client für diesen Thread akzeptiert wurde. Dies ist kein globales Hindernis für den gleichzeitigen Zugriff auf andere Clientinstanzen, Prozesse oder Arbeiten, die nach Beginn des Wartens akzeptiert werden.
Nachrichten und Nachrichteninhalte
Klasse oracleagentmemory.apis.message.Message
Basis: object
Die In-Memory-Nachricht, die von Threads und LLM-Adaptern gemeinsam verwendet wird.
- Parameter:
- role
str: Die Nachrichtenrolle. Benutzerdefinierte Rollennamen sind für Threadnachrichten zulässig. - Inhalt
str | collections.abc.Sequence[oracleagentmemory.apis.message.MessageContent]– Der Nachrichtentext oder eine geordnete Folge von TextContent- und ImageContent-Teilen. Eine Inhaltssequenz darf nicht leer sein und wird als unveränderbares Tupel gespeichert. - timestamp
str | None– Optionaler Zeitstempel, der mit der Nachricht verknüpft ist. - metadata
dict[str, Any] | None– Optionale JSON-kompatible Metadaten, die mit der Nachricht verknüpft sind. - id
str | None– Optionale stabile Nachrichten-ID. Speicher generieren eine Nachricht, wenn sie ohne Kennung hinzugefügt wird.
- role
Klasse oracleagentmemory.apis.message.MessageContent
Basen: ABC
Basisklasse für strukturierten Nachrichteninhalt.
- Parameter:
- id
str: Stabile ID für diesen Inhaltsteil. Wird automatisch generiert, wenn er ausgelassen wird. - timestamp
str | None: Optionaler Zeitstempel, der mit diesem Inhaltsteil verknüpft ist.
- id
Klasse oracleagentmemory.apis.message.TextContent
Basis: MessageContent
Ein Textteil in einer multimodalen Nachricht.
- Parameter:
- text
str: Text, der von diesem Inhaltsteil übernommen wird. - id
str: Stabile ID, die von MessageContent geerbt wird. Wird automatisch generiert, wenn er ausgelassen wird. - timestamp
str | None: Optionaler Zeitstempel, der von MessageContent geerbt wird.
- text
Klasse oracleagentmemory.apis.message.ImageContent
Basis: MessageContent
Ein Bildteil in einer multimodalen Nachricht.
- Parameter:
- Byte
bytes | None: Die Imagedaten, sofern verfügbar.Noneist zulässig, wenn eine Nachricht Bildmetadaten enthält, ohne die Bildbyte zu laden. - mime_type
oracleagentmemory.apis.message.ImageMimeType– Der MIME-Typ des Images. - Beschreibung
str | None– Optionaler Text, der das Bild beschreibt. BeiNonekönnen allgemeine Image- und Nachrichten-APIs mit ihrem konfigurierten LLM eine Beschreibung generieren. - id
str: Stabile ID, die von MessageContent geerbt wird. Wird automatisch generiert, wenn er ausgelassen wird. - timestamp
str | None: Optionaler Zeitstempel, der von MessageContent geerbt wird.
- Byte
Klasse oracleagentmemory.apis.message.ImageMimeType
Basis: str, Enum
Für Bildinhalt unterstützte MIME-Typen.
Animiertes PNG und WebP werden nicht unterstützt.
JPEG = 'image/JPEG'
PNG = 'image/PNG'
WEBP = 'image/WEBP'
Kontextkarten
Klasse oracleagentmemory.apis.contextcard.ContextCard
Basen: ABC
Abstraktes Kontextkartenobjekt, das von Thread-APIs zurückgegeben wird.
Eigenschaft content (Übung)
- Rückgabetyp: str
- Beschreibung: Gibt den gerenderten Kontextkartentext zurück.
Klasse oracleagentmemory.core.contextcard.OracleContextCard
Basis: ContextCard
Von einem Oracle-Thread zurückgegebene Kontextkarte.
- Parameter:
- Zusammenfassung
str: Zusammenfassungstext, der in die Karte eingebettet ist. - Themen
Sequence[str] | None– Optionale Abrufthemen, die mit dem Thread verknüpft sind. - relevant_results
Sequence[SearchResult] | None– Optionale abgerufene dauerhafte Datensätze in der Karte. - recent_messages
Sequence[Message] | None: Optionale letzte Raw-Nachrichten, die in der Karte gerendert werden. - message_format
str: Interne Vorlage, die beim Rendern vonrecent_messagesverwendet wird.
- Zusammenfassung
Eigenschaft content
- Rückgabetyp: str
-
Beschreibung: Gibt den gerenderten Kontextkartentext zurück.
- Rückgaben: XML-ähnlicher gerenderter Kontextkartentext, der für die Prompt-Assemblierung geeignet ist.
- Rückgabetyp: str
Beispiele
card = OracleContextCard(summary="ctx")
"<summary>" in card.content and "ctx" in card.content
True
Eigenschaft formatted_content
- Rückgabetyp: str
-
Beschreibung: Gibt den gerenderten Kontextkartentext zurück, der in Prompt-Building-Abläufen verwendet wird.
- Rückgaben: XML-ähnlicher gerenderter Kontextkartentext.
- Rückgabetyp: str
Beispiele
OracleContextCard(summary="").formatted_content
''
card = OracleContextCard(summary="ctx", topics=["travel"])
"<topics>" in card.formatted_content
True
Übersichten
Klasse oracleagentmemory.apis.summary.Summary
Basen: ABC
Von Thread-APIs zurückgegebenes abstraktes Thread-Zusammenfassungsobjekt.
Eigenschaft content (Übung)
- Rückgabetyp: str
- Beschreibung: Gibt den synthetischen Zusammenfassungstext zurück.
Klasse oracleagentmemory.core.summary.OracleSummary
Basis: Summary
Von einem Oracle-Thread zurückgegebene Übersicht.
- Parameter: content
str– Zusammenfassungstext, der aus dem Threadtranskript synthetisiert wird.
Beispiele
summary = OracleSummary(content="Plan the Rome itinerary.")
summary.content
'Plan the Rome itinerary.'
str(summary)
'Plan the Rome itinerary.'
Eigenschaft content
- Rückgabetyp: str
-
Beschreibung: Gibt den synthetischen Zusammenfassungstext zurück.
- Rückgaben: Zusammenfassungstext für den Thread.
- Rückgabetyp: str
Beispiele
OracleSummary(content="Keep the tea preference in mind.").content
'Keep the tea preference in mind.'
Eigenschaft formatted_content
- Rückgabetyp: str
-
Beschreibung: Gibt den gerenderten Übersichtstext zurück, der in Flüssen zur Prompt-Erstellung verwendet wird.
- Rückgaben: Gerenderter Übersichtstext.
- Rückgabetyp: str
Beispiele
OracleSummary(content="Thread recap").formatted_content
'Thread recap'