Mémoire d'agent
Cette page présente l'implémentation concrète d'Oracle AI Agent Memory.
Mémoire de l'agent Oracle
Remarque : OracleAgentMemory.delete_thread() est le chemin pris en charge pour le nettoyage en cascade de niveau thread. Il supprime le thread avec les messages associés, les mémoires durables et les données d'extraction gérées. Elle est plus large que OracleThread.delete_message(), ce qui supprime uniquement la ligne de message brut. La suppression au niveau du client attend l'extraction en arrière-plan précédente appropriée : la suppression du thread attend ce thread, la suppression de la mémoire attend le thread de la cible stockée lorsqu'elle est présente, et la suppression de l'utilisateur ou de l'agent attend les threads connus, que le nettoyage en cascade soit activé ou non. Ces attentes ne couvrent que le travail accepté par le même client avant le début de l'attente.
classe oracleagentmemory.core.OracleAgentMemory
Bases : IAgentMemory
Client de mémoire d'agent soutenu par Oracle DB ou un emplacement de stockage fourni par l'appelant.
Créez un client de mémoire.
- Paramètres:
- store
OracleMemoryStore: instance de stockage préconfigurée facultative. Lorsqu'il est fourni, le client utilise ce magasin directement au lieu d'instancier son propre magasin. Cela est utile lorsque les appelants ont besoin d'une configuration de stockage supérieure aux options de constructeur exposées parOracleAgentMemory. - connection
object: connexion/pool Oracle DB facultatif. Lorsqu'elle est fournie, la banque de données est utilisée. La transmission d'une connexion brute active le mode de session unique pour cette instance client. Par conséquent, les demandes simultanées doivent utiliser un pool de connexions à la place. Lorsqu'ils sont omis, les appelants doivent transmettre un élémentstoreexplicite. - embedder
IEmbedder | str: instance d'implémentation Embedder ou identificateur de modèle d'intégration LiteLLM. Lorsqu'il est omis, aucun intégrateur n'est joint. La recherche de base de données vectorielle uniquement nécessite ensuite des vecteurs précalculés via des API de stockage de niveau inférieur, tandis que la recherche de base de données par mot-clé peut être exécutée directement à partir du texte de requête. La recherche de base de données hybride requiert une instanceOracleDBEmbedderafin que l'index hybride géré et l'intégrateur principal utilisent le même modèle dans la base de données. - LLM
ILlm: adaptateur LLM facultatif utilisé par les threads pour l'extraction de mémoire et/ou l'agrégation de contexte. Par défaut, les threads créés ou chargés à partir de ce client nécessitent un LLM afin que les messages récents puissent être extraits pour des mémoires durables. Transmettez un élémentllmici, indiquez-en un ultérieurement danscreate_threadou désactivez l'extraction automatique avecmemory_extraction_config=MemoryExtractionConfig(extract_memories=False). - memory_extraction_config
MemoryExtractionConfig: configuration facultative de l'extraction de mémoire au niveau du client. Utilisez-le pour contrôler les paramètres d'extraction automatique de mémoire tels que le mode d'extraction, le comportement récapitulatif et les limites d'extraction. Les champs omis utilisent les valeurs par défaut du kit SDK. En particulier, un contexte d'image omis estDISABLED. - image_input_limit_config
ImageInputLimitConfig: limites facultatives de demande d'image brute et de LLM au niveau du client. Les champs omis utilisent les valeurs par défaut du kit SDK et sont hérités par les threads, sauf si un thread fournit un remplacement. La validation ne peut pas être désactivée. - schema_policy
SchemaPolicy | str: stratégie de configuration de schéma de base de données utilisée uniquement lors de la construction d'une banque de base de données à partir deconnection. La valeur par défaut estSchemaPolicy.REQUIRE_EXISTING. UtilisezSchemaPolicy.CREATE_IF_NECESSARYlors de la première activation de la recherche par mot-clé ou hybride sur un schéma existant, ou lors de l'ouverture d'un ancien schéma géré publié pris en charge, afin que le kit SDK puisse appliquer des mises à niveau de schéma non destructives et ajouter les objets de recherche de texte requis. Les schémas de développement ou partiellement mis à jour qui revendiquent déjà la forme de version actuelle doivent être recréés à la place. Lorsqueschema_ownerest défini, seulSchemaPolicy.REQUIRE_EXISTINGest autorisé. Cela empêche les instructions LDD de schéma gérées, notamment la création de schéma, les mises à niveau, la recréation et la création de premier index hybride. Effectuez ces actions lorsque vous êtes connecté en tant qu'utilisateur de base de données propriétaire sansschema_owner. Elle ne rend pas le client en lecture seule : les lectures et écritures de mémoire normales utilisent les privilèges de base de données accordés à l'utilisateur de connexion. - memory_store_id
str: ID stable de la banque de mémoire de base de données gérée utilisé uniquement lors de la construction d'une banque de base de données à partir deconnection. Réutilisez le même ID pour rouvrir le même magasin géré. L'ID est joint aux noms d'objet de base de données gérée avec un trait de soulignement. Il doit donc commencer par une lettre, ne contenir que des lettres, des chiffres et des traits de soulignement et ne pas dépasser 16 caractères. La banque de données la normalise en majuscules, de sorte que la casse ne crée pas d'identité de banque différente. Transmettez ceci outable_name_prefix, pas les deux. Si elle est omise, la banque de base de données utilisetable_name_prefixou la valeur par défaut sans préfixe lorsquetable_name_prefixest également omis. -
table_name_prefix
str–Préfixe de table/d'index de base de données facultatif utilisé uniquement lors de la construction d'une banque de base de données à partir de
connection. Transmettez ceci oumemory_store_id, pas les deux.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_store_id. - schema_owner
str: propriétaire de schéma facultatif pour une banque de mémoire gérée existante. Omettez cette option pour utiliser le schéma de l'utilisateur de connexion. Utilisez-le lorsqueconnection, une connexion de base de données brute ou un pool de connexions, appartient à un utilisateur de base de données d'application disposant d'autorisations sur les tables appartenant à un autre utilisateur. Cette option est uniquement destinée à l'accès d'exécution à une banque de mémoire gérée déjà créée et requiertSchemaPolicy.REQUIRE_EXISTING. Créez, mettez à niveau ou recréez la banque de mémoire gérée lorsque vous êtes connecté en tant que propriétaire du schéma et omettez cette option. Transmettez un identificateur sans guillemets ; les entrées en minuscules sont normalisées en majuscules et les propriétaires de schéma entre guillemets ne sont pas pris en charge. Si vous transmettez un fichierstorepréconfiguré, configurezschema_ownersur ce magasin à la place. AccordezCREATE SESSIONet les privilèges objet requis à l'utilisateur de base de données d'application. Reportez-vous à la sectionDatabase Users and Privilegesdu guide de dépannage pour connaître les autorisations exactes. Vous pouvez également afficher les vues d'objet géré portant le même nom dans le schéma d'exécution et omettreschema_owner. Cette option est prise en charge uniquement pourSchemaPolicy.REQUIRE_EXISTING. - search_strategy
SearchStrategy– ValeurSearchStrategyqui sélectionne le back-end de recherche de base de données lors de la construction d'une banque de données à partir deconnection. UtilisezSearchStrategy.VECTOR(valeur par défaut) pour l'extraction vectorielle uniquement,SearchStrategy.HYBRIDpour interroger l'index vectoriel hybride Oracle géré sur le texte de recherche stocké ouSearchStrategy.KEYWORDpour effectuer un classement par correspondance mot-clé/texte sur le texte de recherche stocké sans fusion vectorielle.KEYWORDne nécessite pas d'intégrateur.HYBRIDexige queembeddersoit un élémentOracleDBEmbedder. Le démarrage du client échoue lorsqu'une stratégie incompatible est utilisée avec un schéma existant car ce schéma peut ne pas contenir l'état de recherche stocké dont la stratégie a besoin. Lorsqueschema_policy=SchemaPolicy.REQUIRE_EXISTINGet cet argument sont omis, le magasin de base de données au mieux détecte le mode de recherche stocké du schéma dans les métadonnées gérées et utilise ce mode lorsqu'il est disponible. - search_index_sync
SearchIndexSyncMode– ValeurSearchIndexSyncModequi sélectionne le comportement d'actualisation de l'index de recherche géré pourSearchStrategy.HYBRIDetSearchStrategy.KEYWORD.SearchIndexSyncMode.ON_COMMITest la valeur par défaut et permet de rechercher des enregistrements dès que la transaction d'écriture est validée.SearchIndexSyncMode.MANUALlaisse l'actualisation à une opération de synchronisation explicite côté base de données.SearchIndexSyncMode.AUTOpermet à Oracle d'actualiser l'index hybride géré de manière asynchrone et n'est pris en charge qu'avecSearchStrategy.HYBRID; la recherche par mot-clé rejetteAUTO. -
extract_memories
bool–Lorsque
True, les threads créés ou chargés par ce client nécessitent un LLM et l'extraction automatique de mémoire reste activée. Définissez la valeur surFalsepour désactiver l'extraction automatique de la mémoire et permettre à ces threads de fonctionner sans LLM. La valeur par défaut estTrue. Les LLM d'extraction manquants échouent donc rapidement.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str–Instructions personnalisées facultatives ajoutées à l'invite du système d'extraction automatique de mémoire pour les threads créés ou chargés par ce client. Les valeurs par thread transmises à
create_thread,get_threadouupdate_threadsont prioritaires.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - memory_retention_config
MemoryRetentionConfig: configuration facultative de la conservation de la mémoire utilisée uniquement lors de la construction d'une banque de données à partir deconnection.MemoryRetentionConfig.default_ttl_daysest appliqué aux nouveaux messages et mémoires dont l'appel d'écriture ometttl_days.MemoryRetentionConfig.max_ttl_daysapplique des durées explicites par enregistrement au-dessus de la valeur maximale configurée avec un avertissement et, lorsqu'il est défini,ttl_days=Noneutilise cette valeur maximale au lieu de créer des enregistrements qui n'expirent pas. AvecSchemaPolicy.CREATE_IF_NECESSARY, une configuration explicite actualise les métadonnées stockées sur un schéma géré à jour existant, mais elle ne met pas à jour les dates d'expiration existantes. Si vous omettez cette opération, le paramètre existant est conservé. Si une configuration explicite laissedefault_ttl_daysoumax_ttl_daysdansNOT_SET_MARKER, le kit SDK résout cet attribut à sa valeur par défaut (None) avant de comparer ou de stocker les métadonnées de schéma. Choisissez cette configuration en fonction des informations attendues stockées dans les enregistrements, des raisons pour lesquelles l'application la conserve et des engagements de conservation des applications ou des réglementations. - search_config
MemorySearchConfig: configuration facultative de la recherche au niveau du client héritée par les threads nouveaux et chargés. Lorsqu'elles sont omises, les recherches utilisent une configuration de recherche top-k fixe. - pruner_llm
ILlm: LLM facultatif utilisé pour activer l'élagage des résultats à l'échelle du client. Lorsqu'elles sont définies, les recherches directes de clients et les recherches de threads héritées utilisent l'élagage avec le mode d'évaluationFASTpar défaut. Les threads existants avec une configuration de recherche stockée conservent cette configuration lorsqu'ils sont rouverts. Utilisezsearch_config=PruningMemorySearchConfig(...)pour personnaliser le comportement d'élagage.pruner_llmne peut pas être combiné avecsearch_config.
- store
Avertissement : SchemaPolicy.CREATE_IF_NECESSARY peut être plus coûteux que le démarrage normal du client car il peut appliquer des instructions LDD de schéma géré et réécrire les données au mieux avant la réussite de l'initialisation. Planifiez la première ouverture d'un ancien schéma géré en tant qu'opération de migration ou de maintenance lorsque ce schéma peut contenir de nombreuses lignes.
Si la configuration du schéma doit créer le travail de purge géré des enregistrements expirés mais que l'utilisateur de base de données ne dispose pas du privilège Scheduler-job, l'initialisation avertit et continue. Les messages et les mémoires expirés restent masqués lors des lectures et des recherches, mais ils ne sont pas purgés physiquement tant que le travail n'est pas créé par un utilisateur disposant du privilège CREATE JOB ou d'un planificateur équivalent.
Lorsque SchemaPolicy.CREATE_IF_NECESSARY crée pour la première fois un index hybride géré sur un schéma existant, Oracle analyse le texte de recherche stocké et crée l'état de l'index hybride géré à partir du modèle dans la base de données configuré. Le démarrage du client attend la fin de ce script LDD. Planifiez donc la première mise à niveau hybride en tant qu'opération de migration ou de maintenance pour les schémas volumineux. SearchIndexSyncMode contrôle la maintenance en cours après l'existence de l'index. Il ne rend pas le premier build d'index asynchrone.
- Elèves : ValueError – Si une configuration d'emplacement de stockage en conflit est fournie, par exemple en transmettant
storeetconnection, des options propres à la base de données sans connexion à la base de données ou en omettantstoreetconnection. - Paramètres:
- store
OracleMemoryStore - connexion
object - embedder
IEmbedder | str - llm
ILlm - memory_extraction_config
MemoryExtractionConfig - image_input_limit_config
ImageInputLimitConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - préfixe_nom_table
str - propriétaire du schéma
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
- store
Exemples
Pour accéder à un schéma créé par un autre utilisateur de base de données, configurez memory_rw_pool pour l'utilisateur de base de données d'application et définissez memory_schema_owner sur le nom de base de données non borné de l'utilisateur propriétaire.
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,
)
Utilisez un modèle d'intégration dans la base de données pour exploiter la recherche d'index hybride Oracle :
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,
)
méthode add_agent
Ajoutez un enregistrement de profil d'agent au magasin.
- Paramètres:
- agent_id
str: identificateur d'agent. - information
str: informations de forme libre sur l'agent. - metadata
dict[str, Any] | None– Mapping de métadonnées facultatif stocké sur la ligne de profil d'agent.
- agent_id
- Renvoie : identificateur du profil d'agent stocké.
- Type de retour : str
Notes
Les enregistrements de profil d'agent sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme agent_id.
Exemples
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
'a1'
method add_agent_async (async)
Ajoutez un enregistrement de profil d'agent au magasin de manière asynchrone.
- Paramètres:
- agent_id
str: identificateur d'agent. - information
str: informations de forme libre sur l'agent. - metadata
dict[str, Any] | None– Mapping de métadonnées facultatif stocké sur la ligne de profil d'agent.
- agent_id
- Renvoie : identificateur du profil d'agent stocké.
- Type de retour : str
Notes
Les enregistrements de profil d'agent sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme agent_id.
Exemples
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'
méthode add_image
Ajoutez un enregistrement d'image au client.
- Paramètres:
- image
bytes: octets d'image à stocker en tant qu'image. - description
str | None– Description facultative associée à l'image. Omettez-le ou transmettezNonepour en générer un avec le LLM configuré. - mime_type
ImageMimeType– Type MIME de l'image. Les valeurs prises en charge sont fournies parImageMimeType. Lorsqu'il est omis, le kit SDK détecte et valide le type à partir des octets d'image. Les types détectés pris en charge sont PNG, JPEG et WEBP. - image_id
str: identificateur stable fourni par l'appelant (facultatif). Lorsqu'elle est omise, une est générée. - user_id
str | None: propriétaire utilisateur facultatif. Fournissez au moins l'un des éléments suivants :user_id,agent_idouthread_id; ces trois éléments ne peuvent pas êtreNone. - agent_id
str | None: identificateur d'agent facultatif à associer à l'image. - thread_id
str: identificateur de thread facultatif à associer à l'image. - metadata
dict[str, Any] | None: métadonnées facultatives à conserver avec la ligne d'image. - timestamp
str | None: horodatage d'événement facultatif à enregistrer pour cette image. Omettez cet argument ou transmettezNonepour stocker un horodatage d'événementNULL. Lorsque l'image est lue, son heure de création est renvoyée en tant qu'horodatage effectif. - ttl_days
int | None: durée de vie facultative en jours. Omettez cet argument pour utiliser la durée de vie par défaut du schéma. TransmettezNonepour stocker une image qui n'expire pas. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative. UtilisezTimeToLiveAnchor.CREATED_ATpour l'heure de création de base de données ouTimeToLiveAnchor.TIMESTAMPpour l'horodatage de l'image. - **store_kwargs (N'importe lequel) – Options d'écriture propres à l'implémentation transmises à la banque de sauvegarde.
- image
- Retours : Identificateur de l'enregistrement d'image inséré.
- Type de retour : str
Exemples
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'
method add_image_async (async)
Conserver une image autonome via le magasin configuré.
Lorsque description est omis ou None, le LLM configuré génère une légende.
- Paramètres:
- image
bytes: octets d'image bruts à conserver. - description
str | None– Description ou légende facultative. Omettez-le pour générer une légende. - mime_type
ImageMimeType: type MIME facultatif utilisé pour la persistance d'image et la génération de légendes. Lorsqu'il est omis, le kit SDK détecte et valide le type à partir des octets d'image. Les types détectés pris en charge sont PNG, JPEG et WEBP. - image_id
str: identificateur facultatif. Un est généré lorsqu'il est omis. - user_id
str | None– Identificateurs de portée du propriétaire. Au moins un doit être différent deNone. Lorsquethread_idest fourni, sa propriété d'utilisateur et d'agent stockée fait autorité ; les valeurs d'utilisateur et d'agent omises sont héritées. - agent_id
str | None: identificateurs de portée du propriétaire. Au moins un doit être différent deNone. Lorsquethread_idest fourni, sa propriété d'utilisateur et d'agent stockée fait autorité ; les valeurs d'utilisateur et d'agent omises sont héritées. - thread_id
str: identificateurs de portée du propriétaire. Au moins un doit être différent deNone. Lorsquethread_idest fourni, sa propriété d'utilisateur et d'agent stockée fait autorité ; les valeurs d'utilisateur et d'agent omises sont héritées. - metadata
dict[str, Any] | None: métadonnées facultatives stockées avec l'image. - timestamp
str | None: horodatage d'événement facultatif à enregistrer pour cette image. Omettez cet argument ou transmettezNonepour stocker un horodatage d'événementNULL. Lorsque l'image est lue, son heure de création est renvoyée en tant qu'horodatage effectif. - ttl_days
int | None: paramètres d'expiration facultatifs. - ttl_anchor
TimeToLiveAnchor: paramètres d'expiration facultatifs. - store_kwargs
Any: options supplémentaires propres à l'emplacement de stockage.
- image
- Renvoie : identificateur d'image persistante.
- Type de retour : str
méthode add_memory
Ajoutez une mémoire dans le système de mémoire, attribuée à l'utilisateur, à l'agent et au thread indiqués.
- Paramètres:
- content
str: contenu de mémoire à conserver. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– Catégorie de mémoire à stocker. Les valeurs prises en charge sont"memory","fact","guideline"et"preference". Lorsqu'il est omis, le contenu est stocké en tant que"memory"général. - user_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - agent_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - thread_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - memory_id
str: identificateur stable fourni par l'appelant facultatif pour cette ligne de mémoire. - metadata
dict[str, Any] | None: métadonnées facultatives pour la persistance avec la mémoire stockée. - timestamp
str | None: horodatage d'événement facultatif à enregistrer pour cette mémoire. Omettez cet argument ou transmettezNonepour stocker un horodatage d'événementNULL. Lorsque l'enregistrement est lu, son heure de création est renvoyée en tant qu'horodatage effectif. Lorsquettl_anchorest défini surTimeToLiveAnchor.TIMESTAMP, les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - ttl_days
int | None: durée de vie facultative en jours. Omettez cet argument pour utiliser la durée de vie par défaut du schéma. TransmettezNonepour utiliserMemoryRetentionConfig.max_ttl_dayslorsque la configuration de conservation en définit une ou pour stocker une mémoire qui n'expire pas lorsqu'elle ne l'est pas. Les valeurs au-dessus deMemoryRetentionConfig.max_ttl_dayssont bloquées à ce maximum avec un avertissement. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative. UtilisezTimeToLiveAnchor.CREATED_ATpour l'heure de création de la base de données ouTimeToLiveAnchor.TIMESTAMPpour l'horodatage de mémoire. Les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - status
RecordStatus– Statut initial du cycle de vie. Omettez-le pour stockerRecordStatus.VALID. - autonomous_linking
bool: permet de déterminer si des liens doivent être créés à partir de cette nouvelle mémoire vers des mémoires stockées pertinentes à l'aide du LLM du client. Omis l'active lorsqu'un LLM existe. TransmettezFalsepour ignorer. L'échec laisse la mémoire stockée. - memory_id_to_link
str: ensemble, créez un lien dirigé de la nouvelle mémoire vers cette mémoire existante, y compris l'une dans une autre étendue. Les portées utilisateur, agent et thread omises héritent de cette cible. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: ensemble, créez un lien dirigé de la nouvelle mémoire vers cette mémoire existante, y compris l'une dans une autre portée. Les portées utilisateur, agent et thread omises héritent de cette cible. - link_id
str: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - link_timestamp
str | None: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - link_metadata
dict[str, Any] | None: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - **store_kwargs (N'importe lequel) – Options d'écriture propres à l'emplacement de stockage transférées vers l'emplacement de stockage secondaire.
- content
- Retours : Identificateur de l'enregistrement de mémoire inséré.
- Type de retour : str
Exemples
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'
method add_memory_async (async)
Ajoutez une mémoire dans le système de mémoire de manière asynchrone.
- Paramètres:
- content
str: contenu de mémoire à conserver. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– Catégorie de mémoire à stocker. Les valeurs prises en charge sont"memory","fact","guideline"et"preference". Lorsqu'il est omis, le contenu est stocké en tant que"memory"général. - user_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - agent_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - thread_id
str: identificateurs de portée facultatifs associés à la mémoire stockée. Lorsqueuser_idest omis et que la connexion de base de données comporte un contexte de sécurité pour l'utilisateur final, le magasin utilise le nom utilisateur de ce contexte. - memory_id
str: identificateur stable fourni par l'appelant facultatif pour cette ligne de mémoire. - metadata
dict[str, Any] | None: métadonnées facultatives pour la persistance avec la mémoire stockée. - timestamp
str | None: horodatage d'événement facultatif à enregistrer pour cette mémoire. Omettez cet argument ou transmettezNonepour stocker un horodatage d'événementNULL. Lorsque l'enregistrement est lu, son heure de création est renvoyée en tant qu'horodatage effectif. Lorsquettl_anchorest défini surTimeToLiveAnchor.TIMESTAMP, les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - ttl_days
int | None: durée de vie facultative en jours. Omettez cet argument pour utiliser la durée de vie par défaut du schéma. TransmettezNonepour utiliserMemoryRetentionConfig.max_ttl_dayslorsque la configuration de conservation en définit une ou pour stocker une mémoire qui n'expire pas lorsqu'elle ne l'est pas. Les valeurs au-dessus deMemoryRetentionConfig.max_ttl_dayssont bloquées à ce maximum avec un avertissement. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative. UtilisezTimeToLiveAnchor.CREATED_ATpour l'heure de création de la base de données ouTimeToLiveAnchor.TIMESTAMPpour l'horodatage de mémoire. Les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - status
RecordStatus– Statut initial du cycle de vie. Omettez-le pour stockerRecordStatus.VALID. - autonomous_linking
bool: permet de déterminer si des liens doivent être créés à partir de cette nouvelle mémoire vers des mémoires stockées pertinentes à l'aide du LLM du client. Omis l'active lorsqu'un LLM existe. TransmettezFalsepour ignorer. L'échec laisse la mémoire stockée. - memory_id_to_link
str: ensemble, créez un lien dirigé de la nouvelle mémoire vers cette mémoire existante, y compris l'une dans une autre étendue. Les portées utilisateur, agent et thread omises héritent de cette cible. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: ensemble, créez un lien dirigé de la nouvelle mémoire vers cette mémoire existante, y compris l'une dans une autre portée. Les portées utilisateur, agent et thread omises héritent de cette cible. - link_id
str: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - link_timestamp
str | None: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - link_metadata
dict[str, Any] | None: identificateur, horodatage et métadonnées facultatifs pour le lien explicite. - **store_kwargs (N'importe lequel) – Options d'écriture propres à l'emplacement de stockage transférées vers l'emplacement de stockage secondaire.
- content
- Retours : Identificateur de l'enregistrement de mémoire inséré.
- Type de retour : str
Exemples
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'
méthode add_user
Ajoutez un enregistrement de profil utilisateur au magasin.
- Paramètres:
- user_id
str: identificateur utilisateur. - information
str: informations de forme libre sur l'utilisateur. - metadata
dict[str, Any] | None– Mapping de métadonnées facultatif stocké sur la ligne du profil utilisateur.
- user_id
- Retours : Identifiant du profil utilisateur stocké.
- Type de retour : str
Notes
Les enregistrements de profil utilisateur sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme user_id.
Exemples
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'
method add_user_async (async)
Ajouter un enregistrement de profil utilisateur au magasin de manière asynchrone.
- Paramètres:
- user_id
str: identificateur utilisateur. - information
str: informations de forme libre sur l'utilisateur. - metadata
dict[str, Any] | None– Mapping de métadonnées facultatif stocké sur la ligne du profil utilisateur.
- user_id
- Retours : Identifiant du profil utilisateur stocké.
- Type de retour : str
Notes
Les enregistrements de profil utilisateur sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme user_id.
Exemples
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'
méthode close
Fermez le composant de mémoire de l'agent.
La fermeture arrête d'accepter le nouveau travail en arrière-plan, y compris l'extraction de mémoire et la génération de description d'image, et attend que le travail en attente se termine jusqu'au délai d'attente configuré. Si ce délai expire, close() renvoie même si certains travaux sont encore inachevés. La méthode est idempotente.
- Paramètres : délai d'attente
float | None: nombre maximal de secondes d'attente facultatif pour la fin du travail en arrière-plan accepté. La valeur par défaut est300. TransmettezNonepour attendre indéfiniment. - Type de retour : Aucun
Exemples
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
method close_async (async)
Fermez de manière asynchrone le composant de mémoire de l'agent.
Cette méthode suit le même comportement d'arrêt que close(). Si le délai expire, il peut être renvoyé alors que le travail en arrière-plan est toujours en cours d'exécution.
- Paramètres : délai d'attente
float | None: nombre maximal de secondes d'attente facultatif pour la fin du travail en arrière-plan accepté. La valeur par défaut est300. TransmettezNonepour attendre indéfiniment. - Type de retour : Aucun
Exemples
import asyncio
asyncio.run(client.close_async())
méthode create_thread
Créez et inscrivez un thread.
- Paramètres:
- thread_id
str: identificateur de thread. Si elle est omise, une nouvelle est générée. - user_id
str– Identifiant utilisateur attaché à cet enregistrement de thread. S'il est omis et que la connexion de base de données comporte un contexte de sécurité de l'utilisateur final, le nom utilisateur de ce contexte est utilisé. Sinon, un nouvel identificateur est généré. - agent_id
str: identificateur d'agent attaché à cet enregistrement de thread. Si elle est omise, une nouvelle est générée. - metadata
dict[str, Any] | None– Métadonnées de type JSON facultatives conservées avec le fil de conversation. - LLM
ILlm– Remplacement facultatif du LLM pour ce thread. Si elle est omise, le LLM de niveau client configuré au moment de la construction est utilisé. Par défaut, le client ou le thread doit fournir un LLM afin que l'extraction automatique de la mémoire puisse s'exécuter. Définissezmemory_extraction_config=MemoryExtractionConfig(extract_memories=False)ici ou sur le client pour refuser cette exigence. - max_message_token_length
int– Taille maximale des messages d'invite avant troncation ou agrégation lors de l'extraction de la mémoire et des mises à jour de résumé contextuel. Le contenu du message stocké reste inchangé. Lorsqu'elle est omise, la valeur par défaut est15_000tokens. - message_shortening_input_token_limit
int– Taille maximale, en jetons, de l'extrait de message envoyé au LLM lors du raccourcissement des copies de message d'invite surdimensionnées. Lorsqu'elle est omise, la valeur par défaut est30_000tokens. - memory_extraction_config
MemoryExtractionConfig: configuration facultative de l'extraction de mémoire par thread. Les champs fournis remplacent la configuration du client. Le contexte d'image omis utilise la valeur client, puisDISABLED. La configuration résolue est stockée avec le thread afin que les chargements ultérieurs préservent le comportement de création. - image_input_limit_config
ImageInputLimitConfig: limites de demande d'image LLM et d'image brute par thread facultatives. Les champs omis héritent de la configuration client. Les limites résolues sont stockées avec le thread. - search_config
MemorySearchConfig– Configuration de recherche facultative pour le thread. Lorsqu'elle est omise, la configuration au niveau du client est utilisée. - context_card_token_limit
int– Budget maximal de jetons d'entrée pour l'invite LLM utilisée pour créer la liste récapitulative et thématique incluse dans la carte de contexte. Lorsqu'elle est omise, la valeur par défaut est100_000. - context_card_type_search_concurrency
int– Nombre maximal de recherches d'enregistrements de type mémoire à exécuter simultanément lors de la création d'une carte de contexte avecmin_relevant_results_by_type. Lorsqu'elle est omise, la valeur par défaut est5. -
extract_memories
bool–Remplacement par thread facultatif pour l'extraction automatique de la mémoire. Lorsque
True, ce thread requiert un LLM afin que l'extraction automatique puisse être exécutée. Définissez la valeur surFalsepour désactiver l'extraction automatique pour ce thread et autoriser l'opération sans LLM. Lorsqu'il est omis, le paramètreextract_memoriesde niveau client est utilisé.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_window
int:Nombre de messages récents à inclure lors de l'extraction de mémoire. Définissez la valeur sur
-1pour effectuer une extraction par appeladd_messagesà l'aide du lot complet de messages nouvellement ajoutés. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
context_summary_update_frequency
int–Nombre de messages après le dernier récapitulatif valide avant son actualisation automatique. Lorsque l'extraction de mémoire est activée, la vérification est effectuée après chaque extraction due, de sorte que l'actualisation peut avoir lieu ultérieurement. Les valeurs inférieures ou égales à
0sont actualisées à chaque vérification. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_frequency
int:Fréquence des mises à jour d'extraction de mémoire. Définissez la valeur sur
-1pour effectuer une extraction par appeladd_messagesà l'aide du lot complet de messages nouvellement ajoutés. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_token_limit
int–Taille maximale, en jetons, des invites LLM utilisées pour l'extraction de mémoire et l'exécution des mises à jour récapitulatives. Lorsqu'elle est omise, la valeur par défaut est
100_000.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str–Instructions personnalisées facultatives ajoutées à l'invite du système d'extraction de mémoire pour ce thread. Lorsqu'elle est fournie, la valeur résolue est conservée avec la configuration d'exécution de thread.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Remplacement facultatif par thread pour les métadonnées copiées à partir de messages source dans des mémoires extraites automatiquement.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
enable_context_summary
bool–Indique si un récapitulatif de contexte en cours d'exécution doit être conservé pour ce thread.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - **kwargs (Tout) : options de thread supplémentaires propres à l'implémentation.
- thread_id
- Renvoie : instance
OracleThread. - Type de retour : OracleThread
- Elèves : ValueError – Si aucun LLM n'est disponible pour l'extraction automatique de la mémoire et que le thread et le client n'ont pas été configurés avec
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Exemples
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'
method create_thread_async (async)
Créez et enregistrez un thread de manière asynchrone.
- Paramètres:
- thread_id
str: identificateur de thread. Si elle est omise, une nouvelle est générée. - user_id
str– Identifiant utilisateur attaché à cet enregistrement de thread. S'il est omis et que la connexion de base de données comporte un contexte de sécurité de l'utilisateur final, le nom utilisateur de ce contexte est utilisé. Sinon, un nouvel identificateur est généré. - agent_id
str: identificateur d'agent attaché à cet enregistrement de thread. Si elle est omise, une nouvelle est générée. - metadata
dict[str, Any] | None– Métadonnées de type JSON facultatives conservées avec le fil de conversation. - LLM
ILlm– Remplacement facultatif du LLM pour ce thread. Si elle est omise, le LLM de niveau client configuré au moment de la construction est utilisé. Par défaut, le client ou le thread doit fournir un LLM afin que l'extraction automatique de la mémoire puisse s'exécuter. Définissezmemory_extraction_config=MemoryExtractionConfig(extract_memories=False)ici ou sur le client pour refuser cette exigence. - max_message_token_length
int– Taille maximale des messages d'invite avant troncation ou agrégation lors de l'extraction de la mémoire et des mises à jour de résumé contextuel. Le contenu du message stocké reste inchangé. Lorsqu'elle est omise, la valeur par défaut est15_000tokens. - message_shortening_input_token_limit
int– Taille maximale, en jetons, de l'extrait de message envoyé au LLM lors du raccourcissement des copies de message d'invite surdimensionnées. Lorsqu'elle est omise, la valeur par défaut est30_000tokens. - memory_extraction_config
MemoryExtractionConfig: configuration facultative de l'extraction de mémoire par thread. Les champs fournis remplacent la configuration du client. Le contexte d'image omis utilise la valeur client, puisDISABLED. La configuration résolue est stockée avec le thread afin que les chargements ultérieurs préservent le comportement de création. - image_input_limit_config
ImageInputLimitConfig: limites de demande d'image LLM et d'image brute par thread facultatives. Les champs omis héritent de la configuration client. Les limites résolues sont stockées avec le thread. - search_config
MemorySearchConfig– Configuration de recherche facultative pour le thread. Lorsqu'elle est omise, la configuration au niveau du client est utilisée. - context_card_token_limit
int– Budget maximal de jetons d'entrée pour l'invite LLM utilisée pour créer la liste récapitulative et thématique incluse dans la carte de contexte. Lorsqu'elle est omise, la valeur par défaut est100_000. - context_card_type_search_concurrency
int– Nombre maximal de recherches d'enregistrements de type mémoire à exécuter simultanément lors de la création d'une carte de contexte avecmin_relevant_results_by_type. Lorsqu'elle est omise, la valeur par défaut est5. -
extract_memories
bool–Remplacement par thread facultatif pour l'extraction automatique de la mémoire. Lorsque
True, ce thread requiert un LLM afin que l'extraction automatique puisse être exécutée. Définissez la valeur surFalsepour désactiver l'extraction automatique pour ce thread et autoriser l'opération sans LLM. Lorsqu'il est omis, le paramètreextract_memoriesde niveau client est utilisé.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_window
int:Nombre de messages récents à inclure lors de l'extraction de mémoire. Définissez la valeur sur
-1pour effectuer une extraction par appeladd_messagesà l'aide du lot complet de messages nouvellement ajoutés. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
context_summary_update_frequency
int–Nombre de messages après le dernier récapitulatif valide avant son actualisation automatique. Lorsque l'extraction de mémoire est activée, la vérification est effectuée après chaque extraction due, de sorte que l'actualisation peut avoir lieu ultérieurement. Les valeurs inférieures ou égales à
0sont actualisées à chaque vérification. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_frequency
int:Fréquence des mises à jour d'extraction de mémoire. Définissez la valeur sur
-1pour effectuer une extraction par appeladd_messagesà l'aide du lot complet de messages nouvellement ajoutés. Lorsqu'elle est omise, la valeur par défaut est-1.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_token_limit
int–Taille maximale, en jetons, des invites LLM utilisées pour l'extraction de mémoire et l'exécution des mises à jour récapitulatives. Lorsqu'elle est omise, la valeur par défaut est
100_000.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str–Instructions personnalisées facultatives ajoutées à l'invite du système d'extraction de mémoire pour ce thread. Lorsqu'elle est fournie, la valeur résolue est conservée avec la configuration d'exécution de thread.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Remplacement facultatif par thread pour les métadonnées copiées à partir de messages source dans des mémoires extraites automatiquement.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
enable_context_summary
bool–Indique si un récapitulatif de contexte en cours d'exécution doit être conservé pour ce thread.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - **kwargs (Tout) : options de thread supplémentaires propres à l'implémentation.
- thread_id
- Renvoie : instance
OracleThread. - Type de retour : OracleThread
- Elèves : ValueError – Si aucun LLM n'est disponible pour l'extraction automatique de la mémoire et que le thread et le client n'ont pas été configurés avec
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Exemples
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'
méthode delete_agent
Supprimer un enregistrement de profil d'agent par identifiant.
- Paramètres:
- agent_id
str: identificateur d'agent dont le profil doit être enlevé. - cascade
bool: lorsqueTrue(par défaut), supprimez également les enregistrements ciblés sur cet agent. Cela inclut la suppression des threads propriétaires eux-mêmes, les messages et les enregistrements de type mémoire supprimés avec ces threads, ainsi que tous les enregistrements de portée agent directs restants tels que les messages, les mémoires, les directives, les faits ou les préférences. Ce nettoyage ciblé s'exécute quand la ligne agent-profile correspondante est déjà absente. Définissez la valeur surFalsepour enlever uniquement l'enregistrement de profil.
- agent_id
- Retours : nombre de lignes de profil d'agent supprimées (
0ou1). Il peut toujours s'agir de0lorsque des lignes de portée ont été enlevées lors du nettoyage en cascade. - Type de retour : int
- Elèves : TimeoutError – Signalé lorsque l'extraction en arrière-plan acceptée précédemment pour des threads propriétaires déjà connus ne se termine pas avant le délai d'attente de suppression interne.
Notes
Avant de supprimer le profil, cette méthode attend jusqu'à 300 secondes pour une extraction en arrière-plan antérieure déjà acceptée pour les threads propriétaires connus via ce composant de mémoire d'agent. Cette attente s'applique que le nettoyage en cascade soit activé ou non. Le nettoyage en cascade est planifié et exécuté dans le magasin de sauvegarde en une seule opération. La méthode n'attend pas que le travail soit accepté après le début de l'attente ou que le travail soit démarré par un autre composant ou processus de mémoire d'agent. L'utilisation simultanée de portée acteur pendant la suppression n'est pas prise en charge.
Exemples
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
method delete_agent_async (async)
Supprimer un enregistrement de profil d'agent par identifiant de manière asynchrone.
- Paramètres:
- agent_id
str: identificateur d'agent dont le profil doit être enlevé. - cascade
bool: lorsqueTrue(par défaut), supprimez également les enregistrements ciblés sur cet agent. Cela inclut la suppression des threads propriétaires eux-mêmes, les messages et les enregistrements de type mémoire supprimés avec ces threads, ainsi que tous les enregistrements de portée agent directs restants tels que les messages, les mémoires, les directives, les faits ou les préférences. Ce nettoyage ciblé s'exécute quand la ligne agent-profile correspondante est déjà absente. Définissez la valeur surFalsepour enlever uniquement l'enregistrement de profil.
- agent_id
- Retours : nombre de lignes de profil d'agent supprimées (
0ou1). Il peut toujours s'agir de0lorsque des lignes de portée ont été enlevées lors du nettoyage en cascade. - Type de retour : int
- Elèves : TimeoutError – Soulevé sans supprimer le profil lorsque l'extraction en arrière-plan acceptée précédemment pour les threads détenus connus ne se termine pas dans les 300 secondes.
Notes
Cette méthode suit le comportement d'attente et de simultanéité d'extraction en arrière-plan documenté par delete_agent().
Exemples
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
méthode delete_image
Supprimer un enregistrement d'image par identifiant.
- Paramètres : image_id
str– Identificateur de l'enregistrement d'image à enlever. - Retours : Nombre d'enregistrements d'image supprimés.
- Type de retour : int
- Elèves : ValueError – Si l'image est jointe à un message. Supprimez ou mettez à jour le message parent.
method delete_image_async (async)
Supprimez une image autonome via le magasin configuré.
- Paramètres : image_id
str– Identificateur de l'image à supprimer. - Renvoie :
1lorsqu'il est supprimé, sinon0lorsqu'aucune image correspondante n'existe. - Type de retour : int
- Elèves : ValueError – Si l'image est jointe à un message. Supprimez ou mettez à jour le message parent.
méthode delete_memory
Supprimer un enregistrement de type mémoire (par exemple, une mémoire, un fait, une préférence ou une consigne) par identifiant.
- Paramètres : memory_id
str– Identificateur de mémoire. L'identificateur peut faire référence à un enregistrementmemory,guideline,factoupreferencestocké. - Renvoie : nombre de lignes de type mémoire supprimées (
0ou1). - Type de retour : int
- Elèves : TimeoutError – Soulevé sans supprimer l'enregistrement lorsque l'extraction en arrière-plan acceptée précédemment pour son thread stocké ne se termine pas dans les 300 secondes.
Notes
Avant de supprimer un enregistrement de portée thread, cette méthode résout son thread stocké et attend une extraction en arrière-plan antérieure acceptée via ce composant de mémoire d'agent. Il n'attend pas les threads non liés, le travail accepté après le début de l'attente ou le travail démarré par un autre composant ou processus de mémoire d'agent. Les enregistrements sans portée de thread et sans identificateurs inconnus ne provoquent pas d'attente d'extraction.
Exemples
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
method delete_memory_async (async)
Supprimer un enregistrement de type mémoire de manière asynchrone.
- Paramètres : memory_id
str– Identificateur de mémoire. L'identificateur peut faire référence à un enregistrementmemory,guideline,factoupreferencestocké. - Renvoie : nombre de lignes de type mémoire supprimées (
0ou1). - Type de retour : int
- Elèves : TimeoutError – Soulevé sans supprimer l'enregistrement lorsque l'extraction en arrière-plan acceptée précédemment pour son thread stocké ne se termine pas dans les 300 secondes.
Notes
Cette méthode suit le comportement ciblé d'attente et de simultanéité d'extraction en arrière-plan documenté par delete_memory().
Exemples
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
méthode delete_record_link
Supprimez une relation par identificateur ou complétez le tuple d'adresse.
Lorsqu'aucun élément relation_id n'est fourni, indiquez tous les arguments source, cible, type et relation-label dans l'orientation source-cible stockée.
- Paramètres:
- source_record_id
str: identificateur source lors de la sélection par tuple d'adresse. - source_record_type
str: type d'enregistrement source logique lors de la sélection par tuple d'adresse. - target_record_id
str– Identificateur de cible lors de la sélection par tuple d'adresse. - target_record_type
str– Type d'enregistrement cible logique lors de la sélection par tuple d'adresse. - relation_type
str: libellé source-cible lors de la sélection par tuple d'adresse. - relation_id
str: identificateur de relation à sélectionner directement. Fournissez-le seul.
- source_record_id
- Retours : nombre de relations supprimées, soit
0, soit1. - Type de retour : int
Exemples
client.delete_record_link(relation_id="relation-id")
1
method delete_record_link_async (async)
Supprimez de manière asynchrone une relation par ID ou complétez le tuple d'adresse.
- Paramètres:
- source_record_id
str - type_enregistrement_source
str - target_record_id
str - type_enregistrement_cible
str - type_relation
str - relation_id
str
- source_record_id
- Type de retour : int
méthode delete_thread
Supprimer tous les enregistrements associés à un identificateur de thread.
- Paramètres : thread_id
str– Identificateur de thread à supprimer. - Renvoie : nombre de threads de conversation supprimés (
0ou1). - Type de retour : int
- Elèves : TimeoutError – Signalé lorsque l'extraction en arrière-plan acceptée précédemment pour ce thread ne se termine pas avant le délai d'attente de suppression interne.
Notes
Utilisez cette opération lorsque vous avez besoin d'une suppression complète de la conservation d'un thread. Le magasin de sauvegarde supprime le thread ainsi que les messages associés de portée thread, les mémoires durables et les données d'extraction gérées. Cela diffère de OracleThread.delete_message(), qui supprime uniquement l'enregistrement de message brut et ne se répercute pas sur les mémoires dérivées créées à partir de ce message. Avant de supprimer le thread, cette méthode attend une extraction en arrière-plan antérieure déjà acceptée pour ce thread via ce composant de mémoire d'agent. Il n'attend pas le travail en arrière-plan accepté après ce début d'attente ou le travail démarré par un autre composant ou processus de mémoire d'agent. L'utilisation simultanée du même thread pendant la suppression n'est pas prise en charge.
Exemples
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
method delete_thread_async (async)
Supprimer tous les enregistrements associés à un identificateur de thread de manière asynchrone.
- Paramètres : thread_id
str– Identificateur de thread à supprimer. - Renvoie : nombre de threads de conversation supprimés (
0ou1). - Type de retour : int
- Elèves : TimeoutError – Signalé lorsque l'extraction en arrière-plan acceptée précédemment pour ce thread ne se termine pas avant le délai d'attente de suppression interne.
Notes
Utilisez cette opération lorsque vous avez besoin d'une suppression complète de la conservation d'un thread. Le magasin de sauvegarde supprime le thread ainsi que les messages associés de portée thread, les mémoires durables et les données d'extraction gérées. Cela diffère de OracleThread.delete_message(), qui supprime uniquement l'enregistrement de message brut et ne se répercute pas sur les mémoires dérivées créées à partir de ce message. Avant de supprimer le thread, cette méthode attend une extraction en arrière-plan antérieure déjà acceptée pour ce thread via ce composant de mémoire d'agent. Il n'attend pas le travail en arrière-plan accepté après ce début d'attente ou le travail démarré par un autre composant ou processus de mémoire d'agent. L'utilisation simultanée du même thread pendant la suppression n'est pas prise en charge.
Exemples
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
méthode delete_user
Supprimer un enregistrement de profil utilisateur par identifiant.
- Paramètres:
- user_id
str: identificateur utilisateur dont le profil doit être supprimé. - cascade
bool– LorsqueTrue(par défaut), supprimez également les enregistrements ciblés pour cet utilisateur. Cela inclut la suppression des threads propriétaires eux-mêmes, les messages et les enregistrements de type mémoire supprimés avec ces threads, ainsi que tous les enregistrements de portée utilisateur directs restants tels que les messages, les mémoires, les directives, les faits ou les préférences. Ce nettoyage ciblé s'exécute toujours lorsque la ligne de profil utilisateur correspondante est déjà absente. Définissez la valeur surFalsepour enlever uniquement l'enregistrement de profil.
- user_id
- Retours : nombre de lignes de profil utilisateur supprimées (
0ou1). Il peut toujours s'agir de0lorsque des lignes de portée ont été enlevées lors du nettoyage en cascade. - Type de retour : int
- Elèves : TimeoutError – Signalé lorsque l'extraction en arrière-plan acceptée précédemment pour des threads propriétaires déjà connus ne se termine pas avant le délai d'attente de suppression interne.
Notes
Avant de supprimer le profil, cette méthode attend jusqu'à 300 secondes pour une extraction en arrière-plan antérieure déjà acceptée pour les threads propriétaires connus via ce composant de mémoire d'agent. Cette attente s'applique que le nettoyage en cascade soit activé ou non. Le nettoyage en cascade est planifié et exécuté dans le magasin de sauvegarde en une seule opération. La méthode n'attend pas que le travail soit accepté après le début de l'attente ou que le travail soit démarré par un autre composant ou processus de mémoire d'agent. L'utilisation simultanée de portée acteur pendant la suppression n'est pas prise en charge.
Exemples
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
method delete_user_async (async)
Supprimer un enregistrement de profil utilisateur par identifiant de manière asynchrone.
- Paramètres:
- user_id
str: identificateur utilisateur dont le profil doit être supprimé. - cascade
bool– LorsqueTrue(par défaut), supprimez également les enregistrements ciblés pour cet utilisateur. Cela inclut la suppression des threads propriétaires eux-mêmes, les messages et les enregistrements de type mémoire supprimés avec ces threads, ainsi que tous les enregistrements de portée utilisateur directs restants tels que les messages, les mémoires, les directives, les faits ou les préférences. Ce nettoyage ciblé s'exécute toujours lorsque la ligne de profil utilisateur correspondante est déjà absente. Définissez la valeur surFalsepour enlever uniquement l'enregistrement de profil.
- user_id
- Retours : nombre de lignes de profil utilisateur supprimées (
0ou1). Il peut toujours s'agir de0lorsque des lignes de portée ont été enlevées lors du nettoyage en cascade. - Type de retour : int
- Elèves : TimeoutError – Soulevé sans supprimer le profil lorsque l'extraction en arrière-plan acceptée précédemment pour les threads détenus connus ne se termine pas dans les 300 secondes.
Notes
Cette méthode suit le comportement d'attente et de simultanéité d'extraction en arrière-plan documenté par delete_user().
Exemples
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
méthode get_thread
Récupérer un thread précédemment créé.
- Paramètres:
- thread_id
str– Identificateur utilisé lors de la création du thread. - LLM
ILlm– Remplacement facultatif du LLM pour le thread rouvert. Lorsqu'il est omis, le LLM de niveau client configuré au moment de la construction est utilisé. - max_message_token_length
int: remplacement facultatif de la taille maximale des messages d'invite avant troncation ou agrégation lors de l'extraction de la mémoire et des mises à jour de résumé contextuel. Le contenu du message stocké reste inchangé. - message_shortening_input_token_limit
int: remplacement facultatif de la taille maximale, en jetons, de l'extrait de message envoyé au LLM lors du raccourcissement des copies de message d'invite surdimensionnées. - memory_extraction_config
MemoryExtractionConfig: configuration d'extraction groupée facultative pour l'instanceOracleThreadrenvoyée. Les champs fournis remplacent les valeurs de thread enregistrées. Un contexte d'image omis utilise la valeur de thread enregistrée, puis la valeur client, puisDISABLED. Le remplacement s'applique uniquement à l'instanceOracleThreadrenvoyée et n'est pas réécrit dans la configuration de thread de conversation stockée. - image_input_limit_config
ImageInputLimitConfig: remplacement facultatif de la limite d'image brute et de demande d'image LLM. Les champs omis héritent des limites de thread stockées. Ce remplacement s'applique uniquement au thread renvoyé et n'est pas conservé. - search_config
MemorySearchConfig– Configuration de recherche facultative pour le fichierOracleThreadrenvoyé. Lorsqu'elle est omise, la configuration stockée ou au niveau du client est utilisée. Ce remplacement s'applique uniquement au thread renvoyé. - context_card_token_limit
int: remplacement facultatif pour l'instanceOracleThreadrenvoyée. Il définit le budget de jeton d'entrée de l'invite LLM utilisée pour créer la liste récapitulative et thématique incluse dans la carte de contexte. - context_card_type_search_concurrency
int: remplacement facultatif pour l'instanceOracleThreadrenvoyée. Il définit le nombre de recherches d'enregistrements de type mémoire à exécuter simultanément lors de la création d'une carte de contexte avecmin_relevant_results_by_type. -
extract_memories
bool–Remplacement facultatif pour l'extraction automatique de la mémoire sur le thread rouvert. Lorsqu'il est omis, le paramètre
extract_memoriesde niveau client est utilisé.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_window
int:Remplacement facultatif du nombre de messages récents utilisés lors de l'extraction de mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
context_summary_update_frequency
int–Remplacement facultatif pour les messages après la dernière synthèse valide avant actualisation automatique.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_frequency
int:Remplacement facultatif de la fréquence des mises à jour d'extraction de mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_token_limit
int–Remplacement facultatif de la taille maximale, dans les jetons, des invites LLM utilisées pour l'extraction de mémoire et l'exécution des mises à jour récapitulatives.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Remplacement facultatif pour les instructions d'extraction de mémoire personnalisées. La transmission de
Noneefface les instructions personnalisées de niveau thread pour l'instanceOracleThreadrenvoyée sans mettre à jour la configuration de thread de conversation stockée ; une valeur par défaut de niveau client s'applique toujours lorsqu'elle est configurée.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Remplacement facultatif des métadonnées copiées à partir de messages source dans des mémoires extraites automatiquement. Le remplacement s'applique uniquement à l'instance
OracleThreadrenvoyée.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
enable_context_summary
bool–Remplacement facultatif pour indiquer si le thread rouvert doit conserver un récapitulatif du contexte en cours d'exécution.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config.
- thread_id
- Renvoie : instance
OracleThreadreconstruite à partir des métadonnées de stockage. - Type de retour : OracleThread
- Elèves :
- KeyError – Si l'ID de thread est inconnu de cette instance client.
- ValueError – Si aucun LLM n'est disponible pour l'extraction automatique de la mémoire et que le client n'a pas été configuré avec
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Notes
Les remplacements explicites par appel sont prioritaires. Lorsque des remplacements d'exécution sont omis, les threads rouverts utilisent la configuration d'exécution persistante lorsqu'elle est disponible avant de revenir aux valeurs par défaut du kit SDK.
Exemples
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'
method get_thread_async (async)
Récupérez un thread précédemment créé de manière asynchrone.
- Paramètres:
- thread_id
str– Identificateur utilisé lors de la création du thread. - LLM
ILlm– Remplacement facultatif du LLM pour le thread rouvert. Lorsqu'il est omis, le LLM de niveau client configuré au moment de la construction est utilisé. - max_message_token_length
int: remplacement facultatif de la taille maximale des messages d'invite avant troncation ou agrégation lors de l'extraction de la mémoire et des mises à jour de résumé contextuel. Le contenu du message stocké reste inchangé. - message_shortening_input_token_limit
int: remplacement facultatif de la taille maximale, en jetons, de l'extrait de message envoyé au LLM lors du raccourcissement des copies de message d'invite surdimensionnées. - memory_extraction_config
MemoryExtractionConfig: configuration d'extraction groupée facultative pour l'instanceOracleThreadrenvoyée. Les champs fournis remplacent les valeurs de thread enregistrées. Un contexte d'image omis utilise la valeur de thread enregistrée, puis la valeur client, puisDISABLED. Le remplacement s'applique uniquement à l'instanceOracleThreadrenvoyée et n'est pas réécrit dans la configuration de thread de conversation stockée. - image_input_limit_config
ImageInputLimitConfig: remplacement facultatif de la limite d'image brute et de demande d'image LLM. Les champs omis héritent des limites de thread stockées. Ce remplacement s'applique uniquement au thread renvoyé et n'est pas conservé. - search_config
MemorySearchConfig– Configuration de recherche facultative pour le fichierOracleThreadrenvoyé. Lorsqu'elle est omise, la configuration stockée ou au niveau du client est utilisée. Ce remplacement s'applique uniquement au thread renvoyé. - context_card_token_limit
int: remplacement facultatif pour l'instanceOracleThreadrenvoyée. Il définit le budget de jeton d'entrée de l'invite LLM utilisée pour créer la liste récapitulative et thématique incluse dans la carte de contexte. - context_card_type_search_concurrency
int: remplacement facultatif pour l'instanceOracleThreadrenvoyée. Il définit le nombre de recherches d'enregistrements de type mémoire à exécuter simultanément lors de la création d'une carte de contexte avecmin_relevant_results_by_type. -
extract_memories
bool–Remplacement facultatif pour l'extraction automatique de la mémoire sur le thread rouvert. Lorsqu'il est omis, le paramètre
extract_memoriesde niveau client est utilisé.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_window
int:Remplacement facultatif du nombre de messages récents utilisés lors de l'extraction de mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
context_summary_update_frequency
int–Remplacement facultatif pour les messages après la dernière synthèse valide avant actualisation automatique.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_frequency
int:Remplacement facultatif de la fréquence des mises à jour d'extraction de mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_token_limit
int–Remplacement facultatif de la taille maximale, dans les jetons, des invites LLM utilisées pour l'extraction de mémoire et l'exécution des mises à jour récapitulatives.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Remplacement facultatif pour les instructions d'extraction de mémoire personnalisées. La transmission de
Noneefface les instructions personnalisées de niveau thread pour l'instanceOracleThreadrenvoyée sans mettre à jour la configuration de thread de conversation stockée ; une valeur par défaut de niveau client s'applique toujours lorsqu'elle est configurée.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Remplacement facultatif des métadonnées copiées à partir de messages source dans des mémoires extraites automatiquement. Le remplacement s'applique uniquement à l'instance
OracleThreadrenvoyée.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
enable_context_summary
bool–Remplacement facultatif pour indiquer si le thread rouvert doit conserver un récapitulatif du contexte en cours d'exécution.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config.
- thread_id
- Renvoie : instance
OracleThreadreconstruite à partir des métadonnées de stockage. - Type de retour : OracleThread
- Elèves :
- KeyError – Si l'ID de thread est inconnu de cette instance client.
- ValueError – Si aucun LLM n'est disponible pour l'extraction automatique de la mémoire et que le client n'a pas été configuré avec
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Notes
Les remplacements explicites par appel sont prioritaires. Lorsque des remplacements d'exécution sont omis, les threads rouverts utilisent la configuration d'exécution persistante lorsqu'elle est disponible avant de revenir aux valeurs par défaut du kit SDK.
Exemples
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'
méthode link_records
Créez une relation dirigée entre deux enregistrements stockés.
Actuellement, les deux adresses doivent être des enregistrements de type mémoire : "memory", "fact", "guideline" ou "preference". Les types de relation intégrés sont "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") et "duplicates". "contradicts" et "duplicates" utilisent le même libellé à l'envers.
Une seule orientation peut être stockée pour une paire d'adresses. opposite_relation_type nomme la relation lors de l'acheminement de la cible vers la source. Par exemple, si new "supersedes" old, le parcours inverse est old "is_superseded_by" new.
- Paramètres:
- source_record_id
str– Identificateur de l'enregistrement source. - source_record_type
str– Type logique de l'enregistrement source. - target_record_id
str– Identificateur de l'enregistrement cible. - target_record_type
str– Type logique de l'enregistrement cible. - relation_type
str– Libellé dans la direction source-cible. - opposite_relation_type
str: libellé facultatif à utiliser lors de la traversée de cette relation en sens inverse. Pour les types de relation de mémoire intégrés, ignorez-les pour stocker le libellé inverse prédéfini (par exemple,"supports"devient"is_supported_by"). Pour les types de relation personnalisés, l'omission utilise le même libellé dans les deux sens. - relation_id
str: identificateur de relation stable facultatif. Omettez-le pour en générer un. - timestamp
str | None: horodatage facultatif associé à la relation. - metadata
dict[str, Any] | None: métadonnées facultatives stockées sur la relation.
- source_record_id
- Retours : Identificateur de la relation créée.
- Type de retour : str
Exemples
client.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
method link_records_async (async)
Créez de manière asynchrone une relation typée entre les enregistrements stockés.
Actuellement, les deux adresses doivent être des enregistrements de type mémoire : "memory", "fact", "guideline" ou "preference". Les types de relation intégrés sont "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") et "duplicates". "contradicts" et "duplicates" utilisent le même libellé à l'envers.
- Paramètres:
- source_record_id
str - type_enregistrement_source
str - target_record_id
str - type_enregistrement_cible
str - type_relation
str - opposite_relation_type
str - relation_id
str - horodatage
str | None - métadonnées
dict[str, Any] | None
- source_record_id
- Type de retour : str
méthode list_agents
Répertorier les enregistrements de profil d'agent persistants.
- Paramètres:
- metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de profil d'agent. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les profils sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- metadata_filter
- Retours : enregistrements de profil d'agent renvoyés par la banque de sauvegarde.
- Type de retour : list[AgentProfileRecord]
Exemples
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']
method list_agents_async (async)
Répertorier les enregistrements de profil d'agent persistants de manière asynchrone.
- Paramètres:
- metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de profil d'agent. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les profils sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- metadata_filter
- Retours : enregistrements de profil d'agent renvoyés par la banque de sauvegarde.
- Type de retour : list[AgentProfileRecord]
Exemples
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']
méthode list_images
Répertorier les enregistrements d'image autonome persistants.
- Paramètres:
- image_id
str: identificateur d'image facultatif utilisé pour restreindre les enregistrements renvoyés par la banque de sauvegarde. Lorsqu'il est omis, aucun filtre d'identifiant n'est appliqué. Le filtre d'identificateur est appliqué avantlimit. - user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'elles sont omises, les images de tout utilisateur sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée utilisateur. Au moins une portée d'utilisateur, d'agent ou de thread nonNoneest requise. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'elles sont omises, les images d'un agent sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'elles sont omises, les images de n'importe quel thread sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées d'image. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les images sans métadonnées stockées. - include_bytes
bool– Indique si les octets d'image doivent être chargés dans chaque enregistrement renvoyé. Lorsqu'il est omis ouFalse, les octets d'image ne sont pas chargés. Définissez-la surTrueuniquement avec un élémentimage_idet au moins un filtre d'utilisateur, d'agent ou de portée de thread exact. - limit
int | None: nombre maximum facultatif d'enregistrements demandés à la banque de sauvegarde. Lorsqu'il est omis, le magasin peut appliquer sa limite d'inscription par défaut. TransmettezNonepour désactiver ce plafond.
- image_id
- Renvoie : les enregistrements d'image correspondants sont triés par magasin de sauvegarde.
- Type de retour : list[ImageRecord]
Exemples
images = client.list_images(user_id="u1", limit=10)
[image.id for image in images]
['img-1']
method list_images_async (async)
Répertorier les enregistrements d'image autonome persistants de manière asynchrone.
- Paramètres:
- image_id
str: identificateur d'image facultatif utilisé pour restreindre les enregistrements renvoyés par la banque de sauvegarde. Lorsqu'il est omis, aucun filtre d'identifiant n'est appliqué. Le filtre d'identificateur est appliqué avantlimit. - user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'elles sont omises, les images de tout utilisateur sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée utilisateur. Au moins une portée d'utilisateur, d'agent ou de thread nonNoneest requise. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'elles sont omises, les images d'un agent sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'elles sont omises, les images de n'importe quel thread sont renvoyées. TransmettezNonepour répertorier uniquement les images sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées d'image. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les images sans métadonnées stockées. - include_bytes
bool– Indique si les octets d'image doivent être chargés dans chaque enregistrement renvoyé. Lorsqu'il est omis ouFalse, les octets d'image ne sont pas chargés. Définissez-la surTrueuniquement avec un élémentimage_idet au moins un filtre d'utilisateur, d'agent ou de portée de thread exact. - limit
int | None: nombre maximum facultatif d'enregistrements demandés à la banque de sauvegarde. Lorsqu'il est omis, le magasin peut appliquer sa limite d'inscription par défaut. TransmettezNonepour désactiver ce plafond.
- image_id
- Renvoie : les enregistrements d'image correspondants sont triés par magasin de sauvegarde.
- Type de retour : list[ImageRecord]
Exemples
images = await client.list_images_async(
user_id="u1",
limit=10,
)
[image.id for image in images]
['img-1']
méthode list_memories
Répertorier les enregistrements de type mémoire persistants.
- Paramètres:
- user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'il est omis, les mémoires de tout utilisateur sont renvoyées. TransmettezNonepour n'afficher que les mémoires sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les souvenirs d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les mémoires sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'il est omis, les mémoires de n'importe quel thread sont renvoyées. TransmettezNonepour répertorier uniquement les mémoires sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de mémoire. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour n'afficher que les mémoires sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- user_id
- Retours : enregistrements de type mémoire renvoyés par la banque de sauvegarde, notamment les enregistrements
"memory","guideline","fact"et"preference". - Type de retour : list[MemoryRecord]
Exemples
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']
method list_memories_async (async)
Répertoriez de manière asynchrone les enregistrements de type mémoire persistants.
- Paramètres:
- user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'il est omis, les mémoires de tout utilisateur sont renvoyées. TransmettezNonepour n'afficher que les mémoires sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les souvenirs d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les mémoires sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'il est omis, les mémoires de n'importe quel thread sont renvoyées. TransmettezNonepour répertorier uniquement les mémoires sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de mémoire. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour n'afficher que les mémoires sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- user_id
- Retours : enregistrements de type mémoire renvoyés par la banque de sauvegarde, notamment les enregistrements
"memory","guideline","fact"et"preference". - Type de retour : list[MemoryRecord]
Exemples
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']
méthode list_messages
Répertorier les enregistrements de message de discussion persistants.
- Paramètres:
- user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'il est omis, les messages de tout utilisateur sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les messages d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'il est omis, les messages de n'importe quel thread sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de message. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les messages sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond. - include_image_bytes
bool: indique si les parties d'image attachées aux messages renvoyés incluent leurs octets stockés. Lorsqu'elles sont omises ouFalse, les métadonnées d'image attachées sont renvoyées sans charger les octets. Définissez la valeur surTruepour charger les octets.
- user_id
- Retours : enregistrements de message renvoyés par la banque de sauvegarde.
- Type de retour : list[MessageRecord]
Exemples
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
method list_messages_async (async)
Répertorier les enregistrements de messages de discussion persistants de manière asynchrone.
- Paramètres:
- user_id
str | None: filtre utilisateur exact facultatif. Lorsqu'il est omis, les messages de tout utilisateur sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les messages d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée d'agent. - thread_id
str | None: filtre de thread exact facultatif. Lorsqu'il est omis, les messages de n'importe quel thread sont renvoyés. TransmettezNonepour répertorier uniquement les messages sans portée de thread. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de message. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les messages sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond. - include_image_bytes
bool: indique si les parties d'image attachées aux messages renvoyés incluent leurs octets stockés. Lorsqu'elles sont omises ouFalse, les métadonnées d'image attachées sont renvoyées sans charger les octets. Définissez la valeur surTruepour charger les octets.
- user_id
- Retours : enregistrements de message renvoyés par la banque de sauvegarde.
- Type de retour : list[MessageRecord]
Exemples
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
méthode list_threads
Répertorier les threads de conversation persistants.
- Paramètres:
- user_id
str | None: filtre utilisateur exact requis. TransmettezNonepour répertorier uniquement les threads sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les threads d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les threads sans portée d'agent. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de thread. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les threads sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- user_id
- Retours : enregistrements de thread renvoyés par la banque de sauvegarde.
- Type de retour : list[ThreadRecord]
Exemples
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']
method list_threads_async (async)
Répertoriez les threads de conversation persistants de manière asynchrone.
- Paramètres:
- user_id
str | None: filtre utilisateur exact requis. TransmettezNonepour répertorier uniquement les threads sans portée utilisateur. - agent_id
str | None: filtre d'agent exact facultatif. Lorsqu'il est omis, les threads d'un agent sont renvoyés. TransmettezNonepour répertorier uniquement les threads sans portée d'agent. - metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de thread. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les threads sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- user_id
- Retours : enregistrements de thread renvoyés par la banque de sauvegarde.
- Type de retour : list[ThreadRecord]
Exemples
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']
méthode list_users
Répertorier les enregistrements de profil utilisateur persistants.
- Paramètres:
- metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de profil utilisateur. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les profils sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- metadata_filter
- Retours : enregistrements de profil utilisateur renvoyés par le magasin de sauvegarde.
- Type de retour : list[UserProfileRecord]
Exemples
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']
method list_users_async (async)
Répertorier les enregistrements de profil utilisateur persistants de manière asynchrone.
- Paramètres:
- metadata_filter
dict[str, Any] | None– Filtre de métadonnées appliqué aux métadonnées de profil utilisateur. Lorsqu'il est omis, aucun filtrage de métadonnées n'est appliqué. TransmettezNonepour répertorier uniquement les profils sans métadonnées stockées. - limit
int | None– Nombre maximum d'enregistrements à renvoyer (facultatif). Lorsqu'il est omis, le magasin de sauvegarde peut appliquer son plafond de liste par défaut. TransmettezNonepour désactiver ce plafond.
- metadata_filter
- Retours : enregistrements de profil utilisateur renvoyés par le magasin de sauvegarde.
- Type de retour : list[UserProfileRecord]
Exemples
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']
méthode search
Rechercher de manière synchrone les enregistrements pertinents pour une requête.
- Paramètres:
- query
str: chaîne de requête en langage naturel. - user_id
str | None– Filtre d'identificateur utilisateur. Les recherches de client OracleAgentMemory nécessitent une portée utilisateur explicite, sauf siscopeen fournit une. Transmettez un élémentuser_idconcret pour cibler cet utilisateur, ou transmettezNonepour cibler uniquement les enregistrements utilisateur non ciblés. - agent_id
str | None: filtre d'identificateur d'agent facultatif. Ignoré lorsquescopeest fourni. - thread_id
str | None: filtre d'identificateur de thread facultatif. Ignoré lorsquescopeest fourni. - exact_user_match
bool– Indique si la correspondance d'utilisateurs doit être stricte. Les recherches de client OracleAgentMemory nécessitent une correspondance d'utilisateur exacte et rejettentFalse. Ignoré lorsquescopeest fourni. - exact_agent_match
bool: indique si la correspondance d'agent doit être stricte. Ignoré lorsquescopeest fourni. - exact_thread_match
bool: indique si la mise en correspondance des threads doit être stricte. Ignoré lorsquescopeest fourni. - max_results
int: nombre maximal de résultats à renvoyer facultatif. Lorsqu'elle est fournie, elle doit être au moins égale à1. L'omission de cet argument utilise la valeur par défaut10. Limite supérieure : l'appel peut renvoyer moins de résultatsmax_resultslorsque les filtres sont trop restrictifs, lorsqu'il existe moins d'enregistrements correspondants non expirés ou en raison d'un comportement de recherche propre à l'implémentation. - token_budget
int: limite stricte facultative pour le nombre estimé de jetons des résultats formatés finaux. Lorsqu'elle est omise, la configuration de la recherche résolue est utilisée. Les valeurs positives conservent les résultats complets dans l'ordre de classement tandis que leur estimation cumulée correspond au budget. Si le premier résultat ne convient pas, aucun résultat n'est renvoyé. Les valeurs non positives désactivent cette limite de sortie. - soft_token_budget
int: cible facultative pour le nombre estimé de jetons des résultats formatés finaux. Lorsqu'elle est omise, la configuration de la recherche résolue est utilisée. Le résultat complet qui atteint ou dépasse cette cible est conservé. Les valeurs non positives désactivent cette cible. Définisseztoken_budgetsur une valeur supérieure lorsque la sortie doit également avoir une limite absolue. - record_types
list[str]– Liste facultative des types d'enregistrement à inclure, tels que"memory","message"ou"image". -
metadata_filter
dict[str, Any] | None–Mappage de filtre de métadonnées facultatif utilisé comme filtre supplémentaire après le filtrage de portée et de type d'enregistrement. Les entrées dans
metadata_filtersont combinées avec la sémantique AND. Les entrées dont la valeur n'est pas un dictionnaire opérateur de niveau champ utilisent une sémantique de correspondance exacte : la clé demandée doit exister dans les métadonnées d'enregistrement stockées. Les dictionnaires imbriqués correspondent de manière récursive aux objets de métadonnées imbriqués. Les valeurs scalaires et de liste doivent correspondre exactement ; l'ordre et la longueur de la liste doivent également correspondre. Omettez cet argument ou transmettezNonepour effectuer une recherche sans filtrage des métadonnées. Par exemple,metadata_filter={"source": "profile_import"}pour un champ scalaire,metadata_filter={"prefs": {"category": "travel"}}pour un champ imbriqué etmetadata_filter={"tags": ["survey", "travel"]}pour une correspondance de liste exacte. Combinez les conditions pour les exiger toutes :metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Pour tester l'appartenance à un tableau, utilisez un dictionnaire d'opérateurs de niveau champ.
"$array_contains"correspond à une valeur ou à toutes les valeurs d'une liste."$array_contains_any"correspond à au moins une valeur d'une liste."$not"annule une autre expression de niveau champ au même champ, y compris un dictionnaire d'opérateurs ou une valeur de correspondance exacte brute. Les expressions négatives correspondent lorsque l'expression positive échoue, y compris les champs manquants ; l'appartenance au tableau négatif correspond également aux champs non-tableau :metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indique si les résultats incluent des enregistrements dont le statut n'est pas valide. Omettez cet argument ou transmettezTruepour l'inclure. TransmettezFalsepour les exclure. - num_hops
int– Nombre d'arêtes de liaison mémoire à suivre à partir de chaque résultat de mémoire directe. Les valeurs de0à5sont prises en charge ; omettez uniquement pour obtenir des résultats directs. L'extension suit les liens dans les deux sens. - max_linked_results
int: nombre maximal de mémoires liées sur tous les sauts attachés à chaque résultat direct. Omettre pour la valeur par défaut de100; transmettre0pour ne renvoyer aucun contexte lié. - scope
SearchScope: portée de recherche prédéfinie facultative. Indiquezscopeou l'identificateur explicite et les arguments de correspondance exacte, et non les deux. Les recherches de client OracleAgentMemory nécessitent que la portée résolue inclue un élémentuser_idexplicite avecexact_user_match=True. Utilisezuser_id=Nonepour cibler uniquement les enregistrements utilisateur non ciblés.
- query
- Retours : résultats de recherche classés par ordre décroissant de pertinence. La liste peut contenir moins de
max_resultsentrées. - Type de retour : list[SearchResult]
- Elèves : ValueError – Si
scopeest associé à des arguments d'identificateur explicite ou de correspondance exacte, simax_resultsest inférieur à1, simetadata_filtern'est ni un dictionnaire niNone, ou si l'implémentation rejette la portée de recherche du client résolu. Les recherches de client OracleAgentMemory rejettent la portée utilisateur omise et rejettentexact_user_match=False.
Notes
Les valeurs de portée None explicites suivent toujours les règles de correspondance exacte résolues : exact_*_match=False laisse cette dimension sans contrainte, tandis que exact_*_match=True correspond uniquement aux enregistrements sans portée sur cette dimension.
method search_async (async)
Rechercher de manière asynchrone les enregistrements pertinents pour une requête.
- Paramètres:
- query
str: chaîne de requête en langage naturel. - user_id
str | None– Filtre d'identificateur utilisateur. Les recherches de client OracleAgentMemory nécessitent une portée utilisateur explicite, sauf siscopeen fournit une. Transmettez un élémentuser_idconcret pour cibler cet utilisateur, ou transmettezNonepour cibler uniquement les enregistrements utilisateur non ciblés. - agent_id
str | None: filtre d'identificateur d'agent facultatif. Ignoré lorsquescopeest fourni. - thread_id
str | None: filtre d'identificateur de thread facultatif. Ignoré lorsquescopeest fourni. - exact_user_match
bool– Indique si la correspondance d'utilisateurs doit être stricte. Les recherches de client OracleAgentMemory nécessitent une correspondance d'utilisateur exacte et rejettentFalse. Ignoré lorsquescopeest fourni. - exact_agent_match
bool: indique si la correspondance d'agent doit être stricte. Ignoré lorsquescopeest fourni. - exact_thread_match
bool: indique si la mise en correspondance des threads doit être stricte. Ignoré lorsquescopeest fourni. - max_results
int: nombre maximal de résultats à renvoyer facultatif. Lorsqu'elle est fournie, elle doit être au moins égale à1. L'omission de cet argument utilise la valeur par défaut10. - token_budget
int: limite stricte facultative pour le nombre estimé de jetons des résultats formatés finaux. Lorsqu'elle est omise, la configuration de la recherche résolue est utilisée. Les valeurs positives conservent les résultats complets dans l'ordre de classement tandis que leur estimation cumulée correspond au budget. Si le premier résultat ne convient pas, aucun résultat n'est renvoyé. Les valeurs non positives désactivent cette limite de sortie. - soft_token_budget
int: cible facultative pour le nombre estimé de jetons des résultats formatés finaux. Lorsqu'elle est omise, la configuration de la recherche résolue est utilisée. Le résultat complet qui atteint ou dépasse cette cible est conservé. Les valeurs non positives désactivent cette cible. Définisseztoken_budgetsur une valeur supérieure lorsque la sortie doit également avoir une limite absolue. - record_types
list[str]– Liste facultative des types d'enregistrement à inclure, tels que"memory","message"ou"image". -
metadata_filter
dict[str, Any] | None–Mappage de filtre de métadonnées facultatif utilisé comme filtre supplémentaire après le filtrage de portée et de type d'enregistrement. Les entrées dans
metadata_filtersont combinées avec la sémantique AND. Les entrées dont la valeur n'est pas un dictionnaire opérateur de niveau champ utilisent une sémantique de correspondance exacte : la clé demandée doit exister dans les métadonnées d'enregistrement stockées. Les dictionnaires imbriqués correspondent de manière récursive aux objets de métadonnées imbriqués. Les valeurs scalaires et de liste doivent correspondre exactement ; l'ordre et la longueur de la liste doivent également correspondre. Omettez cet argument ou transmettezNonepour effectuer une recherche sans filtrage des métadonnées. Par exemple,metadata_filter={"source": "profile_import"}pour un champ scalaire,metadata_filter={"prefs": {"category": "travel"}}pour un champ imbriqué etmetadata_filter={"tags": ["survey", "travel"]}pour une correspondance de liste exacte. Combinez les conditions pour les exiger toutes :metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Pour tester l'appartenance à un tableau, utilisez un dictionnaire d'opérateurs de niveau champ.
"$array_contains"correspond à une valeur ou à toutes les valeurs d'une liste."$array_contains_any"correspond à au moins une valeur d'une liste."$not"annule une autre expression de niveau champ au même champ, y compris un dictionnaire d'opérateurs ou une valeur de correspondance exacte brute. Les expressions négatives correspondent lorsque l'expression positive échoue, y compris les champs manquants ; l'appartenance au tableau négatif correspond également aux champs non-tableau :metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indique si les résultats incluent des enregistrements dont le statut n'est pas valide. Omettez cet argument ou transmettezTruepour l'inclure. TransmettezFalsepour les exclure. - num_hops
int– Nombre d'arêtes de liaison mémoire à suivre à partir de chaque résultat de mémoire directe. Les valeurs de0à5sont prises en charge ; omettez uniquement pour obtenir des résultats directs. L'extension suit les liens dans les deux sens. - max_linked_results
int: nombre maximal de mémoires liées sur tous les sauts attachés à chaque résultat direct. Omettre pour la valeur par défaut de100; transmettre0pour ne renvoyer aucun contexte lié. - scope
SearchScope: portée de recherche prédéfinie facultative. Indiquezscopeou l'identificateur explicite et les arguments de correspondance exacte, et non les deux. Les recherches de client OracleAgentMemory nécessitent que la portée résolue inclue un élémentuser_idexplicite avecexact_user_match=True. Utilisezuser_id=Nonepour cibler uniquement les enregistrements utilisateur non ciblés.
- query
- Retours : résultats de recherche classés par ordre décroissant de pertinence.
- Type de retour : list[SearchResult]
- Elèves : ValueError – Si
scopeest associé à des arguments d'identificateur explicite ou de correspondance exacte, simax_resultsest inférieur à1, simetadata_filtern'est ni un dictionnaire niNone, ou si l'implémentation rejette la portée de recherche du client résolu. Les recherches de client OracleAgentMemory rejettent la portée utilisateur omise et rejettentexact_user_match=False.
Notes
Les valeurs de portée None explicites suivent toujours les règles de correspondance exacte résolues : exact_*_match=False laisse cette dimension sans contrainte, tandis que exact_*_match=True correspond uniquement aux enregistrements sans portée sur cette dimension.
méthode update_image
Mettre à jour un enregistrement d'image stocké par identifiant.
- Paramètres:
- image_id
str– Identificateur de l'enregistrement d'image à mettre à jour. - image
bytes: octets d'image de remplacement facultatifs. Indiquez des octets pour remplacer l'image stockée. Lorsqu'elle est omise, l'image stockée est conservée. - description
str | None– Description de remplacement facultative. Lorsqu'elle est omise, la description stockée est conservée. La transmission deNonegénère une nouvelle description avec le LLM configuré. Une chaîne non NULL remplace directement la description stockée et le texte recherchable. - mime_type
ImageMimeType– Type MIME des octets d'image de remplacement.imageetmime_typedoivent être fournis ensemble. Omettez les deux pour conserver l'image stockée et le type MIME. - metadata
dict[str, Any] | None– Mappage de métadonnées de remplacement facultatif. Lorsqu'elles sont omises, les métadonnées stockées sont conservées. Lorsqu'elle est fournie, elle remplace l'objet de métadonnées stocké ; cette API ne fusionne pas les métadonnées en profondeur. - timestamp
str | None: nouvel horodatage facultatif pour cette image. Lorsqu'il est omis, l'horodatage stocké est conservé. TransmettezNonepour effacer le contenu. - ttl_days
int | None: actualisation facultative de l'expiration en jours. Omettez cet argument avecttl_anchorpour laisser l'expiration en cours inchangée. TransmettezNonepour effacer l'expiration. L'expiration d'une image jointe à un message doit être modifiée par le biais du message parent. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative pour une actualisation d'expiration. Si vous indiquezttl_anchorsansttl_days, la durée de vie par défaut du schéma est utilisée. Lorsqu'il est omis lors d'une actualisation, les magasins utilisentTimeToLiveAnchor.CREATED_AT. - **kwargs (Any) : les arguments de mot-clé inattendus sont rejetés par les implémentations.
- image_id
- Retours : Identifiant de l'enregistrement d'image mis à jour.
- Type de retour : str
- Elèves : ValueError – Si des paramètres d'expiration sont fournis pour une image jointe à un message.
Notes
Les champs omis restent inchangés. Ces mises à jour de portée ne sont pas prises en charge par cette API. Le remplacement de métadonnées est un remplacement d'objet entier, et non une fusion JSON récursive.
method update_image_async (async)
Mettez à jour une image autonome via le magasin configuré.
Omettez image pour conserver les octets existants. Si image est fourni, mime_type doit l'être. Omettez description pour conserver la description existante. Transmettez None pour générer une nouvelle description avec le LLM configuré ; une description non NULL la remplace directement. Les paramètres de métadonnées, d'horodatage et d'expiration sont mis à jour lorsqu'ils sont fournis.
- Paramètres:
- image_id
str– Identificateur de l'image à mettre à jour. - image
bytes: octets d'image brute de remplacement facultatifs. - description
str | None– Description de remplacement facultative. Omettez-la pour conserver la description actuelle. TransmettezNonepour générer une nouvelle description avec le LLM configuré. - mime_type
ImageMimeType– Type MIME requis lorsque des octets d'image de remplacement sont fournis. - metadata
dict[str, Any] | None: métadonnées de remplacement facultatives. - timestamp
str | None: horodatage facultatif de l'événement de remplacement. - ttl_days
int | None: paramètres d'expiration facultatifs. Elles ne peuvent pas être modifiées par cette méthode lorsque l'image est jointe à un message. - ttl_anchor
TimeToLiveAnchor: paramètres d'expiration facultatifs. Elles ne peuvent pas être modifiées par cette méthode lorsque l'image est jointe à un message. - kwargs
Any
- image_id
- Renvoie : identificateur d'image mis à jour.
- Type de retour : str
- Elèves : ValueError – Si des paramètres d'expiration sont fournis pour une image jointe à un message.
méthode update_memory
Mettre à jour un enregistrement stocké de type mémoire par identifiant.
- Paramètres:
- memory_id
str– Identificateur de l'enregistrement de type mémoire à mettre à jour. - content
str– Contenu de remplacement facultatif. Indiquez une chaîne pour remplacer le contenu stocké. Lorsqu'il est omis, le contenu stocké est conservé. Omettezcontentpour conserver la valeur en cours ou utilisezdelete_memory()pour enlever l'enregistrement. - metadata
dict[str, Any] | None– Mappage de métadonnées de remplacement facultatif. Lorsqu'elles sont omises, les métadonnées stockées sont conservées. Lorsqu'elle est fournie, elle remplace l'objet de métadonnées stocké ; cette API ne fusionne pas les métadonnées en profondeur. - timestamp
str | None: nouvel horodatage facultatif pour cette mémoire. Il représente le moment où la mémoire a été créée. Lorsqu'il est omis, l'horodatage stocké est conservé. TransmettezNonepour effacer l'horodatage enregistré et utiliser l'heure de création de l'enregistrement dans le magasin. Lorsquettl_anchorest défini surTimeToLiveAnchor.TIMESTAMP, les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - ttl_days
int | None: actualisation facultative de l'expiration en jours. Omettez cet argument pour laisser l'expiration en cours inchangée, sauf sittl_anchorest fourni. TransmettezNonepour utiliserMemoryRetentionConfig.max_ttl_dayslorsque la configuration de conservation en définit une ou pour effacer l'expiration lorsqu'elle ne le fait pas. Les valeurs au-dessus deMemoryRetentionConfig.max_ttl_dayssont bloquées à ce maximum avec un avertissement. Les mémoires expirées ne sont pas disponibles pour cette API client et ne peuvent pas être actualisées. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative pour une actualisation d'expiration. UtilisezTimeToLiveAnchor.CREATED_ATpour l'heure de création de la mémoire ouTimeToLiveAnchor.TIMESTAMPpour le remplacementtimestampfourni dans la même mise à jour, ou l'horodatage d'événement stocké lorsquetimestampest omis. Si vous indiquezttl_anchorsansttl_days, la durée de vie par défaut du schéma est utilisée. Lorsquettl_anchorest omis lors d'une actualisation, le client utiliseTimeToLiveAnchor.CREATED_AT. Les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - status
RecordStatus: statut de cycle de vie de remplacement facultatif pour cet enregistrement de type mémoire. Omettez-le pour conserver le statut actuel. - **kwargs (Any) : les arguments de mot-clé inattendus sont rejetés.
- memory_id
- Retours : Identificateur de l'enregistrement de type mémoire mis à jour.
- Type de retour : str
Notes
Les champs omis sont préservés de l'enregistrement stocké. La portée stockée reste inchangée. Le remplacement de métadonnées est un remplacement d'objet entier, et non une fusion JSON récursive.
method update_memory_async (async)
Mettre à jour un enregistrement stocké de type mémoire par identifiant de manière asynchrone.
- Paramètres:
- memory_id
str– Identificateur de l'enregistrement de type mémoire à mettre à jour. - content
str– Contenu de remplacement facultatif. Indiquez une chaîne pour remplacer le contenu stocké. Lorsqu'il est omis, le contenu stocké est conservé. Omettezcontentpour conserver la valeur en cours ou utilisezdelete_memory()pour enlever l'enregistrement. - metadata
dict[str, Any] | None– Mappage de métadonnées de remplacement facultatif. Lorsqu'elles sont omises, les métadonnées stockées sont conservées. Lorsqu'elle est fournie, elle remplace l'objet de métadonnées stocké ; cette API ne fusionne pas les métadonnées en profondeur. - timestamp
str | None: nouvel horodatage facultatif pour cette mémoire. Il représente le moment où la mémoire a été créée. Lorsqu'il est omis, l'horodatage stocké est conservé. TransmettezNonepour effacer l'horodatage enregistré et utiliser l'heure de création de l'enregistrement dans le magasin. Lorsquettl_anchorest défini surTimeToLiveAnchor.TIMESTAMP, les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - ttl_days
int | None: actualisation facultative de l'expiration en jours. Omettez cet argument pour laisser l'expiration en cours inchangée, sauf sittl_anchorest fourni. TransmettezNonepour utiliserMemoryRetentionConfig.max_ttl_dayslorsque la configuration de conservation en définit une ou pour effacer l'expiration lorsqu'elle ne le fait pas. Les valeurs au-dessus deMemoryRetentionConfig.max_ttl_dayssont bloquées à ce maximum avec un avertissement. Les mémoires expirées ne sont pas disponibles pour cette API client et ne peuvent pas être actualisées. - ttl_anchor
TimeToLiveAnchor: ancre de durée de vie facultative pour une actualisation d'expiration. UtilisezTimeToLiveAnchor.CREATED_ATpour l'heure de création de la mémoire ouTimeToLiveAnchor.TIMESTAMPpour le remplacementtimestampfourni dans la même mise à jour, ou l'horodatage d'événement stocké lorsquetimestampest omis. Si vous indiquezttl_anchorsansttl_days, la durée de vie par défaut du schéma est utilisée. Lorsquettl_anchorest omis lors d'une actualisation, le client utiliseTimeToLiveAnchor.CREATED_AT. Les horodatages ISO-8601 sans fuseau horaire sont traités comme UTC. - status
RecordStatus: statut de cycle de vie de remplacement facultatif pour cet enregistrement de type mémoire. Omettez-le pour conserver le statut actuel. - **kwargs (Any) : les arguments de mot-clé inattendus sont rejetés.
- memory_id
- Retours : Identificateur de l'enregistrement de type mémoire mis à jour.
- Type de retour : str
Notes
Les champs omis sont préservés de l'enregistrement stocké. La portée stockée reste inchangée. Le remplacement de métadonnées est un remplacement d'objet entier, et non une fusion JSON récursive.
Exemples
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
méthode update_record_link
Mettez à jour les champs mutables d'une relation stockée.
Les valeurs omises sont conservées. Lorsque relation_type passe à un type de relation de mémoire intégré, son libellé inverse fixe remplace opposite_relation_type. Transmettez None pour timestamp ou metadata pour effacer cette valeur.
- Paramètres:
- relation_id
str– Identificateur de la relation à mettre à jour. - relation_type
str: étiquette de remplacement facultative source-cible. - opposite_relation_type
str: étiquette de contrepassation de remplacement facultative. Omettez-le pour conserver l'étiquette stockée. - timestamp
str | None: horodatage de remplacement facultatif. TransmettezNonepour effacer le contenu. - metadata
dict[str, Any] | None: métadonnées de remplacement facultatives. Il remplace l'objet stocké.
- relation_id
- Retours : Nombre de relations mises à jour,
0ou1. - Type de retour : int
Exemples
client.update_record_link("relation-id", relation_type="supports")
1
method update_record_link_async (async)
Mettez à jour une relation stockée de manière asynchrone.
- Paramètres:
- relation_id
str - type_relation
str - opposite_relation_type
str - horodatage
str | None - métadonnées
dict[str, Any] | None
- relation_id
- Type de retour : int
méthode update_thread
Conserver les métadonnées de thread et les mises à jour de la configuration d'exécution durable.
- Paramètres:
- thread_id
str– Identificateur du thread à mettre à jour. - metadata
dict[str, Any] | None: mise à jour facultative des métadonnées pour le thread de conversation. Lorsqu'elles sont omises, les métadonnées stockées restent inchangées. La transmission deNoneefface explicitement les métadonnées stockées. Lorsqu'un mapping est fourni, il remplace l'objet de métadonnées stocké. - LLM
ILlm: remplacement facultatif de LLM pour l'instanceOracleThreadrenvoyée. Cette opération n'est pas persistante, mais elle participe aux mêmes règles de validation queget_threadetcreate_thread. -
extract_memories
bool–Remplacement durable facultatif pour l'extraction automatique de la mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - max_message_token_length
int: remplacement durable facultatif pour la taille maximale de message d'invite utilisée lors de l'extraction et de l'agrégation. - message_shortening_input_token_limit
int: remplacement durable facultatif pour la taille d'extrait maximale envoyée au LLM lors du raccourcissement des messages surdimensionnés. -
memory_extraction_window
int:Remplacement durable facultatif pour la taille de la fenêtre d'extraction.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
context_summary_update_frequency
int–Remplacement durable facultatif pour les messages après le dernier récapitulatif valide avant actualisation automatique.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_frequency
int:Remplacement durable facultatif pour le nombre de messages ajoutés déclenchant l'extraction automatique de la mémoire.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_token_limit
int–Remplacement durable facultatif pour les budgets d'invite d'extraction et de synthèse.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - context_card_token_limit
int: remplacement durable facultatif pour le budget de jeton d'entrée de l'invite LLM utilisée pour créer la liste récapitulative et thématique incluse dans la carte de contexte. -
enable_context_summary
bool–Remplacement durable facultatif pour savoir si l'exécution des récapitulatifs de contexte reste activée.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Instructions personnalisées durables facultatives ajoutées à l'invite du système d'extraction de mémoire. La transmission de
Noneefface toutes les instructions personnalisées stockées au niveau du thread ; une valeur par défaut au niveau du client s'applique toujours lorsqu'elle est configurée.Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Remplacement durable facultatif pour les métadonnées copiées à partir de messages source dans des mémoires extraites automatiquement.
Obsolète
Obsolète depuis la version 26.6.0 : Ce paramètre est obsolète depuis la version 26.6.0 et sera supprimé depuis la version 27.1. Utilisez plutôt
memory_extraction_config. - memory_extraction_config
MemoryExtractionConfig: mise à jour facultative de la configuration d'extraction durable groupée. Les champs fournis sont écrits dans la configuration de thread stockée et utilisés par les instancesOracleThreadchargées ultérieurement et les travaux d'extraction en arrière-plan ultérieurs. Les champs omis conservent leurs valeurs enregistrées lorsqu'ils sont présents. Les threads créés avant la persistance des paramètres de contexte d'image reprennent la valeur du client, puisDISABLED, lorsqu'aucun contexte d'image enregistré n'existe. - image_input_limit_config
ImageInputLimitConfig: mise à jour facultative de la limite d'image brute durable et de demande d'image LLM. Les champs omis conservent les valeurs stockées ; les champs fournis sont utilisés par les instances de thread chargées ultérieurement. - search_config
MemorySearchConfig– Configuration de recherche facultative à stocker pour le thread. La configuration fournie est utilisée par les instances de thread chargées suivantes. - **kwargs (N'importe lequel) : options supplémentaires propres à l'implémentation.
OracleAgentMemoryrejette actuellement les arguments de mot-clé inconnus.
- thread_id
- Renvoie : instance
OracleThreadmise à jour reflétant les métadonnées persistantes et la configuration d'exécution. - Type de retour : OracleThread
- Elèves :
- KeyError – Si l'ID de thread est inconnu de cette instance client.
- ValueError – Si aucun LLM n'est disponible pour l'extraction automatique de la mémoire après la résolution de la configuration d'exécution effective.
Notes
La configuration d'exécution est résolue à partir du thread de conversation stocké plus les remplacements explicites transmis à cet appel, correspondant à la sémantique get_thread avant de conserver le résultat. Les mises à jour de métadonnées et de configuration d'exécution omises sont résolues à partir des données stockées, et non à partir d'une instance OracleThread précédemment chargée. Seules les mises à jour de métadonnées fournies explicitement ou les remplacements de configuration d'exécution durable sont réécrits. Le remplacement de métadonnées est un remplacement d'objet entier, et non une fusion JSON récursive. La propriété des threads n'est pas mutable via cette API. Par conséquent, user_id et agent_id restent inchangés. L'état d'exécution mutable, tel que les compteurs d'extraction, n'est pas modifié.
Exemples
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
method update_thread_async (async)
Conserver de manière asynchrone les métadonnées de thread mises à jour et la configuration d'exécution durable.
- Paramètres:
- thread_id
str– Identificateur du thread à mettre à jour. - metadata
dict[str, Any] | None: mise à jour facultative des métadonnées pour le thread de conversation. Lorsqu'elles sont omises, les métadonnées stockées restent inchangées. La transmission deNoneefface explicitement les métadonnées stockées. Lorsqu'un mapping est fourni, il remplace l'objet de métadonnées stocké. - **kwargs (N'importe lequel) : mises à jour de configuration d'exécution durables supplémentaires et remplacements par appel acceptés par
update_thread().
- thread_id
- Renvoie : instance
OracleThreadmise à jour reflétant les métadonnées persistantes et la configuration d'exécution. - Type de retour : OracleThread
méthode wait_for_memory_extraction
Attendez que l'extraction de mémoire en arrière-plan démarre plus tôt par ce client.
Cette méthode attend que l'extraction en arrière-plan ait déjà démarré via cette instance OracleAgentMemory, sur tous les threads appartenant à ce composant de mémoire d'agent. Il n'attend pas que l'extraction démarre après ce début d'attente, que l'extraction démarre par un autre composant de mémoire d'agent ou que l'extraction s'exécute dans un autre processus. Les échecs d'extraction sont comptabilisés comme terminés pour cette attente.
- Paramètres : délai d'attente
float | None: nombre maximal facultatif de secondes à attendre. La valeur par défaut est300. TransmettezNonepour attendre que le composant de mémoire de cet agent n'ait pas d'extraction en attente. - Elèves : TimeoutError – Levée lorsque le délai expire avant la fin de l'extraction en arrière-plan précédente.
- Type de retour : Aucun
Exemples
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
method wait_for_memory_extraction_async (async)
Attendez asynchrone l'extraction de mémoire en arrière-plan précédente.
Cette méthode suit le même comportement que wait_for_memory_extraction().
- Paramètres : délai d'attente
float | None: nombre maximal facultatif de secondes à attendre. La valeur par défaut est300. TransmettezNonepour attendre indéfiniment. - Elèves : TimeoutError – Levée lorsque le délai expire avant la fin de l'extraction en arrière-plan précédente.
- Type de retour : Aucun
Exemples
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
Limites d'entrée d'image
classe oracleagentmemory.core.ImageInputLimitConfig
Bases : object
Configurer les limites de demande d'image brute et de LLM.
Les champs omis héritent de la portée de configuration plus large suivante. Les champs client héritent des valeurs par défaut du kit SDK, tandis que les champs par thread héritent de la configuration client. La validation ne peut pas être désactivée et les valeurs résolues ne peuvent pas dépasser les maxima absolus du kit SDK.
- Paramètres:
- max_raw_image_bytes
int: longueur d'octet brut maximale d'une image. La valeur par défaut du kit SDK est de 10 Mio et la valeur maximale absolue est de 32 Mio. - max_images_per_llm_request
int: nombre maximal d'images dans une demande LLM. La valeur par défaut du kit SDK est 100 et la valeur maximale absolue est 512. - max_total_raw_image_bytes_per_llm_request
int: longueur maximale combinée d'octets d'images dans une demande LLM. Le texte, les métadonnées, l'encadrement JSON et l'extension base64 sont exclus. La valeur par défaut du kit SDK est de 100 Mio et la valeur maximale absolue est de 256 Mio.
- max_raw_image_bytes
Exemples
from oracleagentmemory.core import ImageInputLimitConfig
config = ImageInputLimitConfig(
max_raw_image_bytes=16 * 1024 * 1024,
max_images_per_llm_request=200,
)
Extraction de mémoire
classe oracleagentmemory.core.MemoryExtractionImageContext
Bases : str, Enum
Sélectionnez la façon dont les images participent à l'extraction automatique de mémoire.
DISABLED omet les images et les descriptions d'image des invites d'extraction. IMAGE envoie les parties originales de l'image. CAPTION envoie des descriptions d'image sous forme de texte et exige que chaque image sélectionnée ait une description non vide.
CAPTION = 'CAPTION'
Inclure les descriptions sous forme de texte et en exiger une pour chaque image sélectionnée.
DÉSACTIVÉ = 'DISABLED'
N'incluez pas d'images ou de descriptions d'images dans les invites d'extraction.
IMAGE = 'IMAGE'
Inclure les parties d'image d'origine dans les invites d'extraction.
MEMORY = 'MEMORY'
L'extraction de mémoire propre à l'image n'est pas prise en charge actuellement.
classe oracleagentmemory.core.MemoryExtractionConfig
Bases : object
Paramètres groupés pour l'extraction automatique de la mémoire.
Transmettez cet objet à OracleAgentMemory, create_thread, get_thread ou update_thread pour configurer l'extraction automatique. extraction_mode et les paramètres de file d'attente en arrière-plan contrôlent également la génération automatique de description d'image. Chaque champ est résolu indépendamment. Une valeur fournie pour une opération est prioritaire, suivie d'une valeur de thread enregistrée, de la valeur client et de la valeur par défaut du kit SDK. Les threads nouveaux et autonomes n'ont pas de valeur de thread enregistrée.
- Paramètres:
- memory_extraction_window
int– Fenêtre de message récent utilisée pour les invites d'extraction.-1signifie que l'invite d'extraction utilise uniquement les messages nouvellement ajoutés. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - context_summary_update_frequency
int– Nombre de messages après le dernier récapitulatif valide avant son actualisation automatique. Lorsque l'extraction de mémoire est activée, la vérification a lieu après chaque extraction due, de sorte que l'actualisation peut avoir lieu ultérieurement. Les valeurs inférieures ou égales à0sont actualisées à chaque vérification. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - memory_extraction_frequency
int: nombre de messages ajoutés entre les exécutions d'extraction de mémoire. Les valeurs sous l'extraction0après chaque ajout. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - memory_extraction_token_limit
int– Budget de jeton d'entrée pour les invites d'extraction et de résumé. Les valeurs inférieures à1désactivent la limite de budget d'invite. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - extract_memories
bool– Indique si l'extraction automatique de la mémoire est activée. Définissez la valeur surFalsepour désactiver l'extraction automatique et autoriser l'opération sans LLM d'extraction. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - enable_context_summary
bool: indique si les invites d'extraction gèrent et utilisent un récapitulatif de contexte en cours d'exécution. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - memory_extraction_custom_instructions
str | None– Instructions facultatives de l'appelant ajoutées à l'invite du système d'extraction. TransmettezNonesurupdate_threadpour effacer les instructions de niveau thread stockées. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - memory_link_extraction_custom_instructions
str | None: instructions facultatives de l'appelant ajoutées à l'invite système de résolution de liens automatique. TransmettezNonesurupdate_threadpour effacer les instructions de niveau thread stockées. En cas d'omission, utilisez l'ordre de résolution ci-dessus. Ce paramètre est ignoré lorsquememory_link_extraction_modeestMemoryLinkExtractionMode.DISABLED. - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext– Sélectionnez la représentation d'image utilisée lors de l'extraction.DISABLEDomet les images et les descriptions d'image des invites,IMAGEenvoie les parties brutes de l'image etCAPTIONenvoie les descriptions d'image sous forme de texte et exige que chaque image sélectionnée ait une description non vide.MEMORYn'est actuellement pas pris en charge. En cas d'omission, utilisez la valeur de thread enregistrée, puis la valeur client, puisDISABLED. L'omission de ce champ n'active jamais le traitement d'image. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]: contrôle les métadonnées copiées à partir des messages source vers les mémoires extraites.Truecopie toutes les métadonnées de message source,Falsen'en copie aucune et une séquence copie uniquement les clés de métadonnées de niveau supérieur correspondantes. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode: contrôle l'exécution de l'extraction automatique de la mémoire et de la génération de description d'image.MemoryExtractionMode.INLINEles termine avant que la méthode d'écriture ne soit renvoyée.MemoryExtractionMode.BACKGROUNDrenvoie une fois que l'écriture brute a réussi et tente de mettre le travail dérivé en file d'attente. En mode arrière-plan, les descriptions générées et les mémoires dérivées peuvent apparaître plus tard ou ne jamais être écrites si le travail ne peut pas se terminer. Par exemple,update_message()peut être renvoyé avant qu'une lecture ultérieure de la mémoire reflète le contenu du message mis à jour. En cas d'omission, utilisez l'ordre de résolution ci-dessus. Le kit SDK par défaut estBACKGROUND. La définition deextract_memories=Falsedésactive l'extraction de mémoire mais ne désactive pas la génération de description d'image. - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode: méthode de résolution des liens vers des mémoires existantes pour les mémoires nouvellement extraites.DURING_EXTRACTIONinclut les candidats limités dans la demande d'extraction.POST_EXTRACTIONutilise une demande de résolution de lien supplémentaire pour le lot d'extraction.DISABLEDne crée aucun lien automatique. En cas d'omission, utilisez l'ordre de résolution ci-dessus. Le kit SDK par défaut estPOST_EXTRACTION. - memory_link_extraction_token_limit
int– Budget total des jetons d'entrée pour toutes les demandes de résolution de lien post-extraction en une seule passe d'extraction. Les valeurs inférieures à1désactivent son budget d'invite. Ce paramètre est ignoré lorsquememory_link_extraction_modeestDURING_EXTRACTIONouDISABLED. Les appels àadd_memory(autonomous_linking=True)utilisent le même résolveur post-magasin et le même budget indépendamment du mode d'extraction. En cas d'omission, utilisez l'ordre de résolution ci-dessus. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior: en mode arrière-plan, contrôle ce qui se passe lorsque l'extraction automatique ou la génération de description d'image ne peut pas mettre immédiatement en file d'attente.DROPconsigne un avertissement et continue sans attendre.WAIT_THEN_DROPattend la capacité de la file d'attente jusqu'au délai d'expiration configuré, puis consigne un avertissement et continue.WAIT_THEN_RAISEattend la capacité de la file d'attente jusqu'au délai d'attente configuré, puis génèreTimeoutErrorune fois l'écriture brute réussie. En cas d'omission, utilisez l'ordre de résolution ci-dessus. Le kit SDK par défaut estDROP. - background_extraction_queue_put_timeout_seconds
float: en mode arrière-plan, le nombre maximal de secondes d'extraction automatique ou de génération de description d'image attend la capacité de la file d'attente lorsquebackground_extraction_queue_full_behaviorestWAIT_THEN_DROPouWAIT_THEN_RAISE. En cas d'omission, utilisez l'ordre de résolution ci-dessus. La valeur par défaut du kit SDK est de300.0secondes.
- memory_extraction_window
Exemples
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,
)
Que faire lorsque l'extraction ou les descriptions d'image ne peuvent pas mettre immédiatement en file d'attente.
Les valeurs omises sont résolues en DROP.
Nombre maximal de secondes pendant lesquelles le travail en arrière-plan attend la capacité de la file d'attente en modes d'attente.
Les valeurs omises sont résolues en 300.0 secondes.
Messages après le dernier récapitulatif valide avant actualisation automatique.
Les valeurs inférieures ou égales à 0 sont actualisées à chaque vérification.
Indique si OAM gère les récapitulatifs de contexte pour les lectures de thread et les invites d'extraction.
Si l'extraction et les descriptions d'image s'exécutent en ligne ou en arrière-plan.
Les valeurs omises sont résolues en BACKGROUND.
Messages entre les exécutions d'extraction. Les valeurs inférieures à 0 sont extraites après chaque ajout.
Représentation d'image ; l'omission se résout en thread, client, puis DISABLED.
Métadonnées de message source copiées dans les mémoires extraites.
Budget de jeton d'entrée pour les invites ; les valeurs inférieures à 1 désactivent la limite.
Fenêtre de message récent utilisée pour les invites d'extraction ; -1 n'utilise que les nouveaux messages.
Instructions facultatives de l'appelant ajoutées aux invites de résolution automatique des liens.
Comment les liens automatiques sont résolus pour les mémoires extraites.
Les valeurs omises sont résolues en POST_EXTRACTION.
Budget total du jeton d'entrée pour la résolution de lien POST_EXTRACTION.
Les valeurs inférieures à 1 désactivent la limite.
classe oracleagentmemory.core.MemoryExtractionMode
Bases : str, Enum
Contrôle l'exécution de l'extraction automatique et des descriptions d'image.
INLINE termine le travail dérivé avant le retour de la méthode d'écriture. BACKGROUND renvoie une fois que l'écriture brute a réussi et tente de mettre ce travail en file d'attente. Le travail en arrière-plan est le meilleur effort : les descriptions générées et les mémoires dérivées peuvent apparaître plus tard ou ne jamais être écrites si elles ne peuvent pas se terminer.
ARRIÈRE-PLAN = 'ARRIÈRE-PLAN'
Retour après l'écriture brute et exécution du travail dérivé en arrière-plan.
EN LIGNE = 'INLINE'
Complétez l'extraction et les descriptions d'image avant le retour de l'écriture.
classe oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Bases : str, Enum
Contrôle ce qui se passe lorsque le travail en arrière-plan configuré ne peut pas être mis en file d'attente dans le temps.
Malgré le nom spécifique à l'extraction, ce paramètre s'applique également à la génération automatique de description d'image en mode arrière-plan.
SUPPRIMER = 'DROP'
Enregistrez un avertissement et continuez immédiatement lorsque la capacité de la file d'attente n'est pas disponible.
ATTENDRE_THEN_DROP = 'ATTENDRE_THEN_DROP'
Attendez la capacité de la file d'attente jusqu'au délai d'attente configuré, puis consignez un avertissement et continuez.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
Attendez la capacité de la file d'attente jusqu'au délai d'attente configuré, puis soulevez TimeoutError.