Almacenar y buscar memoria
En esta guía, creará un componente de memoria del agente de Oracle, almacenará mensajes de thread y memorias duraderas y, a continuación, los buscará.
Indicación: Para la configuración del paquete, consulte Get Started with Agent Memory. Si necesita una instancia local de Oracle AI Database para este ejemplo, siga Ejecución local de Oracle AI Database.
Mensajes y memorias de tienda
Cree el componente Memoria de Agente de Oracle con una conexión o pool de Oracle DB, agregue un thread corto y mantenga una memoria de usuario duradera junto con los mensajes.
Nota: Por defecto, OracleAgentMemory espera un LLM para que OracleThread pueda extraer periódicamente memorias duraderas de los mensajes de thread recientes agregados mediante add_messages(). Si no desea la extracción automática de memoria, defina memory_extraction_config=MemoryExtractionConfig(extract_memories=False) al crear el cliente o al llamar a 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.")
| Referencia de API: OracleAgentMemory | OracleThread |
Los mensajes largos y las memorias se fragmentan automáticamente para la indexación de recuperación cuando es necesario. La fragmentación no cambia el mensaje almacenado ni el texto de la memoria. La búsqueda utiliza los fragmentos internamente y, a continuación, devuelve los registros lógicos originales.
Nota: Sustituya "YOUR DB USER", "YOUR DB PASSWORD" y "YOUR DB CONNECT STRING" por las credenciales y la cadena de conexión para Oracle AI Database. Si necesita una base de datos local para este ejemplo, siga Ejecución local de Oracle AI Database.
Buscar la memoria del agente
Busque los mensajes y las memorias almacenados en el ámbito de ese usuario.
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.
Nota: La salida mostrada anteriormente es ilustrativa. Las versiones futuras pueden devolver tipos de resultados, campos o comportamiento de indicación adicionales.
| Referencia de API: SearchScope | Resultado de búsqueda de Oracle |
Para conocer los límites configurables de resultados directos, el cambio de orden, la depuración y los presupuestos de token, consulte Mejora de la relevancia de los resultados de la búsqueda.
Conclusión
En esta guía hemos aprendido a crear un cliente de memoria de Oracle Agent, a almacenar mensajes de thread junto con memorias duraderas y a buscar esos registros con recuperación de ámbito de usuario.
→ Después de haber aprendido el flujo de trabajo principal de memoria de un solo usuario, ahora puede continuar con Uso de las API de corto plazo de memoria de Oracle Agent con LangGraph.
Código Completo
Copie el código completo que aparece a continuación.
#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.