Introducción a la memoria del agente
Este artículo le guiará a través de la instalación de la memoria del agente y la realización de operaciones básicas de memoria, incluido el almacenamiento y la recuperación del contexto del usuario.
Requisitos
Asegúrese de que tiene:
- Acceso a Oracle AI Database 26ai o posterior. Consulte Run Oracle AI Database Locally.
- Python 3.10 a 3.13.
Instalación del SDK
Para instalar la memoria del agente, ejecute:
pip install "oracleagentmemory==26.6.0"
La instalación con pip extrae ruedas binarias predefinidas en plataformas soportadas.
Registro y diagnóstico
La memoria del agente de Oracle AI emite mensajes de diagnóstico mediante el registro de Python estándar en los nombres del registrador que comienzan con oracleagentmemory. El SDK no configura manejadores ni niveles de log; las aplicaciones pueden enrutar estos logs a su pipeline de observabilidad, archivo o consola existente. Algunos registros de log utilizan los campos extra del registro de Python para realizar diagnósticos estructurados seguros, que pueden capturar los manejadores de registro estructurados.
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger("oracleagentmemory").setLevel(logging.INFO)
Para la resolución de problemas en entornos controlados, active los logs DEBUG:
logging.getLogger("oracleagentmemory").setLevel(logging.DEBUG)
Mantener los despliegues de producción en un nivel que no sea DEBUG. Los logs DEBUG están diseñados para el desarrollo y el diagnóstico de soporte, y el texto del mensaje de log no se debe tratar como una API pública estable.
Inicialización de la Instancia de Memoria
Cree una instancia de OracleAgentMemory configurando la conexión al embebido, el LLM y la base de datos.
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="YOUR DB CONNECT STRING",
)
memory = OracleAgentMemory(connection=db_pool, embedder=embedder, llm=llm)
Nota: Por defecto, los esquemas de Oracle Database gestionados no definen un período de retención para mensajes y memorias. Configure los valores de tiempo de vida por registro o MemoryRetentionConfig para utilizar un período de retención diferente. Para obtener más información, consulte Uso del tiempo de actividad para mensajes y recuerdos.
Almacenar entradas de memoria
Comience por crear un thread, agregar mensajes y almacenar una entrada de memoria para el usuario.
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.")
Recuperar entradas de memoria
Buscar memorias mediante una consulta de ámbito de 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}")
Salida:
- [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 es ilustrativa. Las versiones futuras pueden devolver tipos de resultados, campos o indicaciones adicionales.
Compatibilidad de modelo
A partir de abril de 2026, los siguientes modelos de lenguaje grande (LLM) y modelos de inserción son compatibles con oracleagentmemory.
LLM
Se ha confirmado que los siguientes modelos de lenguaje grandes (LLM) son compatibles.
Modelos alojados en OCI
oci/google.gemini-2.5-flashoci/google.gemini-2.5-flash-liteoci/google.gemini-2.5-prooci/xai.grok-3oci/xai.grok-3-fastoci/xai.grok-3-minioci/xai.grok-3-mini-fastoci/xai.grok-4oci/xai.grok-4-1-fast-non-reasoningoci/xai.grok-4-1-fast-reasoningoci/xai.grok-4-fast-non-reasoningoci/xai.grok-4-fast-reasoningoci/xai.grok-4.20-non-reasoningoci/xai.grok-4.20-reasoningoci/xai.grok-code-fast-1oci/cohere.command-latestoci/cohere.command-a-03-2025oci/cohere.command-a-reasoning-08-2025oci/cohere.command-a-vision-07-2025oci/cohere.command-a-translate-08-2025oci/cohere.command-plus-latestoci/cohere.cohere.command-r-08-2024oci/cohere.command-r-plus-08-2024
OpenAI
openai/gpt-4.1openai/gpt-4.1-miniopenai/gpt-4oopenai/gpt-5openai/gpt-5-miniopenai/gpt-5.1openai/gpt-5.2openai/gpt-5.4openai/gpt-5.4-mini
LLM autoalojados
openai/google/gemma-4-26B-A4B-itopenai/openai/gpt-oss-120b
Antropología
anthropic/claude-opus-4-7anthropic/claude-opus-4-6anthropic/claude-sonnet-4-6anthropic/claude-haiku-4-5
Gemini
gemini/gemini-3.1-flash-lite-previewgemini/gemini-3-flash-previewgemini/gemini-3.1-pro-preview
Incrustaciones
Se ha confirmado que los siguientes modelos de incrustación son compatibles.
Modelos alojados en OCI
oci/cohere.embed-english-v3.0oci/cohere.embed-english-light-v3.0oci/cohere.embed-multilingual-v3.0oci/cohere.embed-v4.0
OpenAI
openai/text-embedding-3-largeopenai/text-embedding-3-small
Gemini
gemini/gemini-embedding-001gemini/gemini-embedding-2-preview