Speicher speichern und suchen
In dieser Dokumentation erstellen Sie eine Oracle Agent-Speicherkomponente, speichern sowohl Thread-Nachrichten als auch dauerhafte Speicher, und durchsuchen sie anschließend zurück.
Hinweis: Informationen zum Packagesetup finden Sie unter Erste Schritte mit Agent-Speicher. Wenn Sie für dieses Beispiel eine lokale Oracle AI Database benötigen, folgen Sie Oracle AI Database lokal ausführen.
Nachrichten und Erinnerungen speichern
Erstellen Sie die Oracle 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 memory_extraction_config=MemoryExtractionConfig(extract_memories=False) beim Erstellen des Clients oder beim Aufrufen von create_thread() fest.
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.")
| API-Referenz: OracleAgentMemory | OracleThread |
Lange Nachrichten und Speicher werden bei Bedarf automatisch für die Abrufindizierung gemischt. Durch Chunking wird die gespeicherte Nachricht oder der gespeicherte Speichertext nicht geändert. Die Suche verwendet die Blöcke intern und gibt dann die ursprünglichen logischen Datensätze zurück.
Hinweis: Ersetzen Sie "YOUR DB USER", "YOUR DB PASSWORD" und "YOUR DB CONNECT STRING" durch die Zugangsdaten und die Verbindungszeichenfolge für Oracle AI Database. Wenn Sie für dieses Beispiel eine lokale Datenbank benötigen, folgen Sie Oracle AI Database lokal ausführen.
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}")
#- [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 das Anforderungsverhalten zurückgeben.
| API-Referenz: SearchScope | OracleSearchResult |
Informationen zu konfigurierbaren Limits für direkte Ergebnisse, Rangfolge, Pruning und Tokenbudgets finden Sie unter Relevanz der Suchergebnisse verbessern.
Abschluss
In diesem Handbuch haben wir gelernt, wie Sie einen Oracle Agent Memory-Client erstellen, Thread-Nachrichten neben dauerhaften Speichern speichern und diese Datensätze mit einem benutzerbezogenen Abruf zurücksuchen.
→ Nachdem Sie den Kernworkflow für Einzelbenutzerspeicher kennengelernt haben, können Sie jetzt mit Oracle Agent Memory Short-Term APIs mit LangGraph verwenden fortfahren.
Vollständiger Code
Kopieren Sie den folgenden vollständigen 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.
#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.