Erste Schritte mit Agent Memory
Dieser Artikel führt Sie durch die Installation von Agent Memory und die Ausführung grundlegender Speichervorgänge, einschließlich Speichern und Abrufen von Benutzerkontext.
Voraussetzungen
Stellen Sie sicher, dass Sie:
- Zugriff auf Oracle AI Database 26ai oder höher. Siehe Oracle AI Database lokal ausführen.
- Python 3.10 bis 3.13.
SDK installieren
Um Agent Memory zu installieren, führen Sie folgenden Befehl aus:
pip install "oracleagentmemory==26.6.0"
Bei der Installation mit pip werden vordefinierte Binärräder auf unterstützten Plattformen abgerufen.
Logging und Diagnostik
Oracle AI Agent Memory gibt Diagnosemeldungen über das standardmäßige Python-Logging unter Loggernamen ab oracleagentmemory aus. Das SDK konfiguriert keine Handler oder Logebenen. Anwendungen können diese Logs an die vorhandene Konsole, Datei oder Beobachtbarkeitspipeline weiterleiten. Einige Logdatensätze verwenden die extra-Felder des Python-Loggings für sichere strukturierte Diagnosen, die von strukturierten Logging-Handlern erfasst werden können.
import logging
logging.basicConfig(level=logging.INFO)
logging.getLogger("oracleagentmemory").setLevel(logging.INFO)
Um Fehler in kontrollierten Umgebungen zu beheben, aktivieren Sie DEBUG-Logs:
logging.getLogger("oracleagentmemory").setLevel(logging.DEBUG)
Behalten Sie Produktions-Deployments auf einer Nicht-DEBUG-Ebene bei. DEBUG-Logs sind für die Entwicklung und Unterstützung von Diagnosen vorgesehen. Logmeldungstext sollte nicht als stabile öffentliche API behandelt werden.
Speicherinstanz initialisieren
Erstellen Sie eine OracleAgentMemory-Instanz, indem Sie die Einbettung, das LLM und die Datenbankverbindung konfigurieren.
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)
Hinweis: In verwalteten Oracle Database-Schemas wird standardmäßig kein Aufbewahrungszeitraum für Nachrichten und Speicher festgelegt. Konfigurieren Sie die Time-to-Live-Einstellungen für MemoryRetentionConfig oder pro Datensatz, um einen anderen Aufbewahrungszeitraum zu verwenden. Weitere Informationen finden Sie unter Live-Zeit für Nachrichten und Erinnerungen verwenden.
Speichereinträge speichern
Erstellen Sie zunächst einen Thread, fügen Sie Nachrichten hinzu, und speichern Sie einen Speichereintrag für den Benutzer.
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.")
Speichereinträge abrufen
Speicher mit einer Abfrage mit Benutzergeltungsbereich suchen
results = memory.search(query="orange juice", scope=SearchScope(user_id="user_123"))
for result in results:
print(f"- [{result.record.record_type}] {result.content}")
Ausgabe:
- [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.
Hinweis: Die angezeigte Ausgabe ist illustrativ. Zukünftige Versionen können zusätzliche Ergebnistypen, Felder oder Anforderungen zurückgeben.
Modellkompatibilität
Ab April 2026 sind die folgenden Large Language Models (LLMs) und Embedding Models mit oracleagentmemory kompatibel.
LLMs
Die folgenden Large Language Models (LLMs) wurden als kompatibel bestätigt.
Von OCI gehostete Modelle
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
Selbst gehostete LLMs
openai/google/gemma-4-26B-A4B-itopenai/openai/gpt-oss-120b
Anthrop
anthropic/claude-opus-4-7anthropic/claude-opus-4-6anthropic/claude-sonnet-4-6anthropic/claude-haiku-4-5
Zwilling
gemini/gemini-3.1-flash-lite-previewgemini/gemini-3-flash-previewgemini/gemini-3.1-pro-preview
Einbettungen
Die folgenden Einbettungsmodelle wurden als kompatibel bestätigt.
Von OCI gehostete Modelle
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
Zwilling
gemini/gemini-embedding-001gemini/gemini-embedding-2-preview