Speicher speichern und suchen
In diesem Artikel erstellen Sie eine Agent-Speicherkomponente, speichern sowohl Thread-Nachrichten als auch dauerhafte Speicher, und durchsuchen sie anschließend zurück.
Tipp: Informationen zum Packagesetup finden Sie unter Erste Schritte mit Agent-Speicher. Wenn Sie für dieses Beispiel eine lokale Oracle AI Database benötigen, lesen Sie Oracle AI Database lokal ausführen.
Nachrichten und Erinnerungen speichern
Erstellen Sie die Agent-Speicherkomponente mit einer Oracle DB-Verbindung oder einem Oracle DB-Pool, fügen Sie einen kurzen Thread hinzu, und persistieren Sie einen dauerhaften Benutzerspeicher neben den Nachrichten.
Hinweis: Standardmäßig erwartet OracleAgentMemory ein LLM, sodass OracleThread regelmäßig dauerhafte Speicher aus aktuellen Threadnachrichten extrahieren kann, die über add_messages() hinzugefügt wurden. Wenn Sie keine automatische Speicherextraktion wünschen, legen Sie extract_memories=False beim Erstellen des Clients oder beim Aufrufen von create_thread() fest.
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)
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.")
Agent-Speicher suchen
Suchen Sie die gespeicherten Speicher und Nachrichten, die für diesen Benutzer bestimmt sind.
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 zuvor gezeigte Ausgabe ist illustrativ. Zukünftige Versionen können zusätzliche Ergebnistypen, Felder oder Anforderungsmuster zurückgeben.
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man einen Agent-Speicher-Client für einen einzelnen Benutzer erstellt, Thread-Nachrichten neben dauerhaften Speichern speichert und diese Datensätze mit einem benutzerbezogenen Abruf zurück durchsucht.
Tipp: Nachdem Sie den Kernworkflow für Einzelbenutzerspeicher kennengelernt haben, sind Sie möglicherweise auch an Agent-Speicher-Kurzzeit-APIs mit LangGraph verwenden interessiert.
Vollständiger Code
#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.
#Agent Memory Code Example - Quickstart
#---------------------------------------
##Add memories
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)
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")
thread.add_messages(messages)
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.