Mémoire d'agent

Cette page présente l'implémentation concrète de la mémoire de l'agent Oracle AI.

Mémoire de l'agent Oracle

Remarque : OracleAgentMemory.delete_thread() est le chemin pris en charge pour le nettoyage en cascade de niveau thread. Il supprime le thread avec les messages associés, les mémoires durables et les données vectorielles ou de bloc gérées. Elle est plus large que OracleThread.delete_message(), ce qui supprime uniquement la ligne de message brut.

classe oracleagentmemory.core.OracleAgentMemory

Bases : IAgentMemory

Client de mémoire d'agent soutenu par Oracle DB ou un emplacement de stockage fourni par l'appelant.

Créez un client de mémoire.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
read_only_client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    extract_memories=False,
)

méthode add_agent

Ajoutez un enregistrement de profil d'agent au magasin.

Remarques

Les enregistrements de profil d'agent sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme agent_id.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
client.add_agent("a1", "Support assistant")
'a1'

méthode add_memory

Ajoutez une mémoire dans le système de mémoire, attribuée à l'utilisateur, à l'agent et au thread indiqués.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
memory_id = client.add_memory("User likes pizza", memory_id="mem-1")
memory_id
'mem-1'

méthode add_user

Ajoutez un enregistrement de profil utilisateur au magasin.

Remarques

Les enregistrements de profil utilisateur sont stockés dans le magasin de niveau client et sont intentionnellement annulés. L'identificateur d'enregistrement renvoyé est le même que l'identificateur public que l'application utilise comme user_id.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
client.add_user("u1", "Prefers concise answers.")
'u1'

méthode create_thread

Créez et inscrivez un thread.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
thread = client.create_thread(thread_id="c1", user_id="u1")
thread.thread_id
'c1'

méthode delete_agent

Supprimer un enregistrement de profil d'agent par identifiant.

Remarques

Les suppressions en cascade sont planifiées et exécutées à l'intérieur de la banque de sauvegarde, de sorte que la suppression de profil et toutes les suppressions enfant ciblées se produisent en une seule opération.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
client.add_agent("a-delete", "Support assistant")
'a-delete'
client.delete_agent("a-delete")
1

méthode delete_memory

Supprimer un enregistrement de type mémoire (par exemple, une mémoire, un fait, une préférence ou une consigne) par identifiant.

Exemples 

client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
memory_id = client.add_memory("Temporary memory", memory_id="mem-delete")
client.delete_memory(memory_id)
1

méthode delete_thread

Supprimer tous les enregistrements associés à un identificateur de thread.

Remarques

Utilisez cette opération lorsque vous avez besoin d'une suppression complète de la conservation d'un thread. Le magasin de sauvegarde supprime le thread avec les messages de portée thread associés, les mémoires durables et les lignes de vecteur ou de bloc gérées. Cela diffère de OracleThread.delete_message(), qui supprime uniquement l'enregistrement de message brut et ne se répercute pas sur les mémoires dérivées créées à partir de ce message.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
thread = client.create_thread(thread_id="c-delete")
client.delete_thread(thread.thread_id)
1

méthode delete_user

Supprimer un enregistrement de profil utilisateur par identifiant.

Remarques

Les suppressions en cascade sont planifiées et exécutées à l'intérieur de la banque de sauvegarde, de sorte que la suppression de profil et toutes les suppressions enfant ciblées se produisent en une seule opération.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
client.add_user("u-delete", "Prefers concise answers.")
'u-delete'
client.delete_user("u-delete")
1

méthode get_thread

Récupérer un thread précédemment créé.

Remarques

Les remplacements explicites par appel sont prioritaires. Lorsque des remplacements d'exécution sont omis, les threads rouverts utilisent la configuration d'exécution persistante lorsqu'elle est disponible avant de revenir aux valeurs par défaut du kit SDK.

Exemples 

from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
    connection=db_pool,
    embedder=embedder,
    llm=llm,
)
created = client.create_thread(thread_id="c1", user_id="u1")
loaded = client.get_thread("c1")
loaded.user_id
'u1'