Introduction à la mémoire de l'agent
Cet article vous guide tout au long de l'installation de la mémoire d'agent et de l'exécution d'opérations de mémoire de base, notamment le stockage et l'extraction du contexte utilisateur.
Prérequis
Vérifiez que vous disposez des éléments suivants :
- Accès à Oracle AI Database 26ai ou version ultérieure. Reportez-vous à Exécution locale d'Oracle AI Database.
- Python 3.10 à 3.13.
Installation du kit SDK
Pour installer la mémoire de l'agent, exécutez :
pip install "oracleagentmemory==26.6.0"
L'installation avec pip tire des roues binaires prédéfinies sur les plates-formes prises en charge.
Journalisation et diagnostics
La mémoire de l'agent Oracle AI émet des messages de diagnostic via la journalisation Python standard sous les noms de journaliseur commençant par oracleagentmemory. Le kit SDK ne configure pas de gestionnaires ou de niveaux de journalisation. Les applications peuvent acheminer ces journaux vers leur console, fichier ou pipeline d'observabilité existant. Certains enregistrements de journal utilisent les champs extra de la journalisation Python pour des diagnostics structurés sécurisés, qui peuvent être capturés par des gestionnaires de journalisation structurés.
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger("oracleagentmemory").setLevel(logging.INFO)
Pour le dépannage dans les environnements contrôlés, activez les journaux DEBUG :
logging.getLogger("oracleagentmemory").setLevel(logging.DEBUG)
Conservez les déploiements de production à un niveau autre que DEBUG. Les journaux DEBUG sont destinés au développement et à la prise en charge des diagnostics, et le texte des messages de journal ne doit pas être traité comme une API publique stable.
Initialiser l'instance de mémoire
Créez une instance OracleAgentMemory en configurant l'intégrateur, le LLM et la connexion de base de données.
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)
Remarque : par défaut, les schémas Oracle Database gérés ne définissent pas de période de conservation pour les messages et les mémoires. Configurez les paramètres de durée de vie MemoryRetentionConfig ou par enregistrement pour utiliser une période de conservation différente. Pour plus d'informations, reportez-vous à Utilisation du délai de vie pour les messages et les mémoires.
Stocker les entrées de mémoire
Commencez par créer un thread, ajouter des messages et stocker une entrée de mémoire pour l'utilisateur.
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écupérer les entrées de mémoire
Rechercher des mémoires à l'aide d'une requête de portée 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}")
Sortie :
- [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 est illustrative. Les versions futures peuvent renvoyer des types de résultats, des champs ou des prescriptions supplémentaires.
Compatibilité des modèles
Depuis avril 2026, les grands modèles de langage (LLM) et les modèles d'intégration suivants sont compatibles avec oracleagentmemory.
LLM
Les grands modèles de langage (LLM) suivants ont été confirmés comme compatibles.
Modèles hébergés par 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 auto-hébergés
openai/google/gemma-4-26B-A4B-itopenai/openai/gpt-oss-120b
Anthropique
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
Intégrations
Les modèles d'intégration suivants ont été confirmés comme compatibles.
Modèles hébergés par 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