Rechercher

Cette page présente les aides à la définition de la portée destinées aux développeurs ainsi que le type de résultat de recherche Oracle concret.

Résolution de la portée

Pour chaque champ de portée, vous pouvez effectuer l'une des trois opérations suivantes :

Chaque enregistrement stocké comporte trois champs de portée indépendants : user_id, agent_id et thread_id. Chaque champ peut contenir un ID concret ou None.

Exemples :

Les mêmes règles d'étendue s'appliquent aux API de recherche synchrone et asynchrone.

Dans le tableau ci-dessous, ID désigne l'un des éléments user_id, agent_id ou thread_id, ainsi que l'indicateur de correspondance exacte correspondant.

Résolution de portée de recherche par couche d'API

Dossier thread.search() OracleAgentMemory.search() store.search()
ID omis Utilise les valeurs par défaut de thread : user_id et agent_id exacts, plus thread_id en cours avec exact_thread_match=False. Utilise les valeurs par défaut du client. user_id omis est rejeté. Omis agent_id et thread_id restent larges. Utilise les valeurs par défaut de l'emplacement de stockage : ID=None et exact_*_match=False, de sorte que la dimension ne soit pas filtrée.
Valeur explicite, y compris None + exact_*_match=False Cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements. Pour user_id, rejeté car les recherches client nécessitent une portée utilisateur précise explicite. Pour agent_id et thread_id, cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements. Cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements.
ID explicite + exact_*_match=True Correspond exactement à cet ID. Correspond exactement à cet ID. Correspond exactement à cet ID.
None et exact_*_match=True explicites Correspond uniquement aux enregistrements non ciblés sur cette dimension. Correspond uniquement aux enregistrements non ciblés sur cette dimension. Correspond uniquement aux enregistrements non ciblés sur cette dimension.

Utilisez None explicite avec exact_*_match=True lorsque vous voulez que seuls les enregistrements ne soient pas inclus dans cette dimension et que l'API le permette. Omettez le champ lorsque vous voulez que l'opération soit définie par défaut.

Filtrage du statut du cycle de vie

Tous les enregistrements persistants ont un statut de cycle de vie. La recherche accepte include_invalid_results sur les API de stockage, de client et de thread. Sur les API client et de thread, la valeur par défaut est NOT_SET_MARKER, ce qui permet d'inclure les enregistrements valides et non valides dans les résultats de recherche. L'API de stockage de niveau inférieur résout sa valeur booléenne par défaut avec le même comportement. Transmettez False pour omettre les enregistrements dont le statut est RecordStatus.INVALID.

Extension de graphique

Transmettez num_hops de 0 à 5 à l'API de recherche de stockage, de client ou de thread pour attacher le contexte de mémoire lié à chaque résultat de mémoire directe. La traversée suit les relations dans les deux sens, conserve l'orientation de la relation stockée et renvoie une arborescence à chemin le plus court dans la séquence linked_results de chaque enregistrement. Les correspondances de message direct, de document et de profil d'acteur restent dans l'ensemble de résultats classé, mais ne sont pas développées dans le graphique. En particulier, les descriptions d'image pouvant faire l'objet d'une recherche peuvent renvoyer des enregistrements d'image sans faire de DOCUMENT un sommet de liaison mémoire. Les filtres de portée, de métadonnées, de type d'enregistrement et d'expiration s'appliquent à chaque mémoire liée. include_invalid_results continue de contrôler uniquement les correspondances de recherche de niveau supérieur ; il ne modifie pas les mémoires liées incluses. max_linked_results limite le nombre total de mémoires liées attachées à chaque résultat direct sur tous les sauts. La valeur par défaut est 100. Transmettez 0 pour omettre le contexte lié.

Portées

classe oracleagentmemory.apis.scope.Scope

Bases : object

Représente une portée pour l'insertion ou la recherche d'informations.

user_id

ID d'utilisateur final. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger que la portée utilisateur soit explicite. Dans ces API, None peut être utilisé pour cibler uniquement les enregistrements non ciblés.

agent_id

ID d'agent. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération.

id_thread

ID de thread. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération.

classe oracleagentmemory.apis.searchscope.SearchScope

Bases : Scope

Représente la portée d'une requête de recherche et limite donc ce qui peut être renvoyé.

user_id

ID d'utilisateur final. Lorsque la valeur exact_user_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension utilisateur n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut propre à l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger que la portée utilisateur soit explicite. Dans ces API, None cible uniquement les enregistrements non ciblés lorsque exact_user_match est résolu en True.

agent_id

ID d'agent. Lorsque la valeur exact_agent_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension d'agent n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération utilisant la portée.

id_thread

ID de thread. Lorsque la valeur exact_thread_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension de thread n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération utilisant la portée.

exact_user_match

Indique si la correspondance doit être exacte avec le fichier user_id résolu. True correspond exactement, y compris None. False laisse la dimension utilisateur sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger qu'elles restent True.

exact_agent_match

Indique si la correspondance doit être exacte avec le fichier agent_id résolu. True correspond exactement, y compris None. False laisse la dimension d'agent sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération.

correspondance_thread_exact

Indique si la correspondance doit être exacte avec le fichier thread_id résolu. True correspond exactement, y compris None. False laisse la dimension de thread sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération.

Configuration de la recherche

classe oracleagentmemory.core.MemorySearchConfig

Bases : ISearchConfig

Configuration de base pour le comportement après la recherche de mémoire.

Taille cible facultative pour la sortie de recherche formatée.

Les résultats complets sont classés par ordre chronologique jusqu'au premier résultat qui atteint ou dépasse ce budget. Le premier résultat est donc conservé lorsqu'aucun élément token_budget fixe ne l'empêche d'être renvoyé.

Limite fixe facultative pour la taille estimée de la sortie de recherche formatée.

Les résultats complets sont classés dans l'ordre tandis que leur estimation cumulée correspond au budget. Si le premier résultat ne convient pas, aucun résultat n'est renvoyé.

classe oracleagentmemory.core.TopKMemorySearchConfig

Bases : _RerankingMemorySearchConfig

Configuration de recherche avec un maximum fixe de résultats directs.

Nombre maximum de résultats directs récupérés avant le reclassement.

classe oracleagentmemory.core.PruningEvaluationMode

Bases : str, Enum

Contrôle l'évaluation approfondie des résultats de recherche lors de l'élagage.

EXHAUSTIVE = 'exhaustif'

Evaluez chaque résultat candidat individuellement. Cela fournit l'évaluation la plus complète, mais présente la latence et l'utilisation de LLM les plus élevées.

EXTENDED = 'EXTENDED'

Evaluez une plus grande partie des résultats avant de décider lesquels conserver, au prix d'une latence supplémentaire et d'une utilisation de LLM.

RAPIDE = 'rapide'

Donnez la priorité à la faible latence en arrêtant l'évaluation plus tôt lorsque d'autres vérifications sont peu susceptibles de modifier les résultats retenus.

classe oracleagentmemory.core.PruningMemorySearchConfig

Bases : _RerankingMemorySearchConfig

Configuration de recherche qui supprime les résultats directs moins pertinents.

Des limites de résultats directs sont fournies sur chaque appel de recherche ou de carte de contexte et appliquées avant le reclassement et l'élagage.

Nombre de résultats de recherche évalués lors de l'élagage.

Lorsqu'elle est omise, PruningEvaluationMode.FAST est utilisé.

Nombre de régions classées évaluées en mode FAST ou EXTENDED.

Ce paramètre ne peut pas être défini lorsque evaluation_mode est PruningEvaluationMode.EXHAUSTIVE.

Fraction des résultats directs les plus élevés protégés de l'élagage.

Par exemple, 0.1 protège les 10 % principaux des résultats directs.

Le modèle de langage (LLM) déterminait les résultats directs à supprimer.

Résultats

classe oracleagentmemory.core.SearchResultFormatConfig

Bases : object

Contrôlez les options de rendu portables des résultats de recherche.

Les implémentations peuvent fournir une sous-classe avec des options d'affichage supplémentaires.

classe oracleagentmemory.core.OracleSearchResultFormatConfig

Bases : SearchResultFormatConfig

Contrôler les options d'affichage des résultats de recherche Oracle.

classe oracleagentmemory.core.OracleSearchResult

Bases : SearchResult

Résultat de la recherche renvoyé par un thread Oracle.

propriété content

méthode format_content

Affichez ce résultat et son contexte graphique en tant que texte d'invite sécurisé au format XML.

propriété formatted_content

propriété id

propriété linked_results

propriété metadata

propriété record

La valeur renvoyée peut être une sous-classe Record ou ScopedRecord simple. Utilisez isinstance(result.record, ScopedRecord) avant de lire les identificateurs de portée publique.

propriété status

propriété timestamp