Stocker et rechercher de la mémoire
Dans ce guide, vous allez créer un composant de mémoire d'agent Oracle, stocker les messages de thread et les mémoires durables, puis les rechercher.
Conseil : pour la configuration des packages, reportez-vous à Introduction à la mémoire de l'agent. Si vous avez besoin d'une base de données Oracle AI Database locale pour cet exemple, suivez Exécuter Oracle AI Database localement.
Stocker les messages et les mémoires
Créez le composant Mémoire de l'agent Oracle avec un pool ou une connexion Oracle DB, ajoutez un thread court et conservez une mémoire utilisateur durable en même temps que les messages.
Remarque : par défaut, OracleAgentMemory attend un LLM afin qu'OracleThread puisse extraire régulièrement des mémoires durables à partir des messages de thread récents ajoutés via add_messages(). Si vous ne voulez pas d'extraction automatique de mémoire, définissez memory_extraction_config=MemoryExtractionConfig(extract_memories=False) lors de la construction du client ou lors de l'appel de create_thread().
from oracleagentmemory.core import SchemaPolicy
import oracledb
from oracleagentmemory.core.oracleagentmemory import OracleAgentMemory
from oracleagentmemory.apis.searchscope import SearchScope
from oracleagentmemory.core.embedders.embedder import Embedder
from oracleagentmemory.core.llms.llm import Llm
embedder = Embedder(model="YOUR_EMBEDDING_MODEL")
llm = Llm(model="YOUR_LLM")
db_pool = oracledb.SessionPool(
user="YOUR DB USER",
password="YOUR DB PASSWORD",
dsn="localhost:1521/...",
)
memory_store_id = "T_QUICKSTART"
memory = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_store_id=memory_store_id,
)
messages = [
{
"role": "user",
"content": (
"Orange juice has become my favorite breakfast drink lately, "
"what can I pair it with?"
),
},
{
"role": "assistant",
"content": (
"Nice! Orange juice goes great with something savory. "
"Try eggs and toast, avocado toast, or a breakfast sandwich."
),
},
]
thread = memory.create_thread(user_id="user_123")
#add_messages will add messages to the DB and extract memories automatically
thread.add_messages(messages)
#add_memory adds memory to the DB
thread.add_memory("The user likes orange juice with breakfast.")
| Référence d'API : OracleAgentMemory | OracleThread |
Les messages et les mémoires longs sont découpés automatiquement pour l'indexation de récupération si nécessaire. Le découpage ne modifie pas le message stocké ou le texte de mémoire. La recherche utilise les blocs en interne, puis renvoie les enregistrements logiques d'origine.
Remarque : remplacez "YOUR DB USER", "YOUR DB PASSWORD" et "YOUR DB CONNECT STRING" par les informations d'identification et la chaîne de connexion pour votre instance Oracle AI Database. Si vous avez besoin d'une base de données locale pour cet exemple, suivez Exécuter Oracle AI Database localement.
Rechercher la mémoire de l'agent
Recherchez les mémoires et messages stockés, ciblés sur cet utilisateur.
results = memory.search(query="orange juice", scope=SearchScope(user_id="user_123"))
for result in results:
print(f"- [{result.record.record_type}] {result.content}")
#- [memory] The user likes orange juice with breakfast.
#- [message] Orange juice has become my favorite breakfast drink lately, what can I pair it with?
#- [message] Nice! Orange juice goes great with something savory. Try eggs and toast,
#avocado toast, or a breakfast sandwich.
Remarque : La sortie affichée précédemment est illustrative. Les versions futures peuvent renvoyer des types de résultats, des champs ou un comportement de tri supplémentaires.
| Référence d'API : SearchScope | OracleSearchResult |
Pour connaître les limites de résultats directs configurables, les budgets de reclassement, d'élagage et de jetons, reportez-vous à Amélioration de la pertinence des résultats de recherche.
Conclusion
Dans ce guide, nous avons appris à créer un client de mémoire d'agent Oracle, à stocker des messages de thread avec des mémoires durables et à rechercher ces enregistrements à l'aide d'une extraction de niveau utilisateur.
→ Après avoir appris le workflow de base de mémoire à utilisateur unique, vous pouvez maintenant passer à Utiliser les API à court terme de mémoire d'agent Oracle avec LangGraph.
Code complet
Copiez le code complet qui suit.
#Copyright © 2026 Oracle and/or its affiliates.
#This software is under the Apache License 2.0
#(LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) or Universal Permissive License
#(UPL) 1.0 (LICENSE-UPL or https://oss.oracle.com/licenses/upl), at your option.
#Oracle Agent Memory Code Example - Quickstart
#---------------------------------------------
##Add memories
from oracleagentmemory.core import SchemaPolicy
import oracledb
from oracleagentmemory.core.oracleagentmemory import OracleAgentMemory
from oracleagentmemory.apis.searchscope import SearchScope
from oracleagentmemory.core.embedders.embedder import Embedder
from oracleagentmemory.core.llms.llm import Llm
embedder = Embedder(model="YOUR_EMBEDDING_MODEL")
llm = Llm(model="YOUR_LLM")
db_pool = oracledb.SessionPool(
user="YOUR DB USER",
password="YOUR DB PASSWORD",
dsn="localhost:1521/...",
)
memory_store_id = "T_QUICKSTART"
memory = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_store_id=memory_store_id,
)
messages = [
{
"role": "user",
"content": (
"Orange juice has become my favorite breakfast drink lately, "
"what can I pair it with?"
),
},
{
"role": "assistant",
"content": (
"Nice! Orange juice goes great with something savory. "
"Try eggs and toast, avocado toast, or a breakfast sandwich."
),
},
]
thread = memory.create_thread(user_id="user_123")
#add_messages will add messages to the DB and extract memories automatically
thread.add_messages(messages)
#add_memory adds memory to the DB
thread.add_memory("The user likes orange juice with breakfast.")
##Search memories
results = memory.search(query="orange juice", scope=SearchScope(user_id="user_123"))
for result in results:
print(f"- [{result.record.record_type}] {result.content}")
#- [memory] The user likes orange juice with breakfast.
#- [message] Orange juice has become my favorite breakfast drink lately, what can I pair it with?
#- [message] Nice! Orange juice goes great with something savory. Try eggs and toast,
#avocado toast, or a breakfast sandwich.