Memoria del agente
Esta página presenta la implantación concreta de memoria del agente de Oracle AI.
Memoria del Agente de Oracle
Nota: OracleAgentMemory.delete_thread() es la ruta de acceso soportada para la limpieza en cascada de ámbito de thread. Elimina el thread junto con los mensajes asociados, las memorias duraderas y los datos de recuperación gestionados. Es más amplio que OracleThread.delete_message(), que suprime solo la fila de mensaje sin formato. Antes de suprimir el thread, espera la extracción en segundo plano aceptada anteriormente que este cliente ya conoce para ese thread. No serializa todas las operaciones simultáneas para el mismo thread mientras la supresión está en curso.
clase oracleagentmemory.core.OracleAgentMemory
Bases: IAgentMemory
Cliente de memoria de agente respaldado por Oracle DB o un almacén proporcionado por el emisor de llamada.
Cree un cliente de memoria.
- Parámetros:
- store
OracleMemoryStore– Instancia de almacén preconfigurada opcional. Cuando se proporciona, el cliente utiliza este almacén directamente en lugar de instanciar su propio almacén. Esto resulta útil cuando los emisores de llamadas necesitan una configuración de almacén más allá de las opciones del constructor expuestas porOracleAgentMemory. - connection
object: conexión/agrupación Oracle DB opcional. Cuando se proporciona, se utiliza el almacén de base de datos. La transferencia de una conexión raw activa el modo de sesión única para esta instancia de cliente, por lo que las solicitudes simultáneas deben utilizar un pool de conexiones en su lugar. Cuando se omite, los emisores de llamadas deben transferir unstoreexplícito. - embedder
IEmbedder | str: instancia de implementación de embebido o un identificador de modelo de embebido de LiteLLM. Cuando se omite, no se adjunta ningún incrustador. A continuación, la búsqueda de base de datos solo para vectores requiere vectores calculados previamente a través de API de almacén de nivel inferior, mientras que la búsqueda de base de datos de palabras clave se puede ejecutar directamente desde el texto de la consulta. La búsqueda de base de datos híbrida necesita una instanciaOracleDBEmbedderpara que el índice híbrido gestionado y el embebido principal utilicen el mismo modelo en la base de datos. - LLM
ILlm: adaptador LLM opcional que utilizan los threads para la extracción de memoria o el resumen de contexto. Por defecto, los threads creados o cargados desde este cliente requieren un LLM para que los mensajes recientes se puedan extraer para memorias duraderas. Transfiera unllmaquí, proporcione uno más adelante encreate_threado desactive la extracción automática conmemory_extraction_config=MemoryExtractionConfig(extract_memories=False). - memory_extraction_config
MemoryExtractionConfig: configuración opcional de extracción de memoria a nivel de cliente. Utilícelo para controlar la configuración de extracción automática de memoria, como el modo de extracción, el comportamiento de resumen y los límites de extracción. Los campos omitidos utilizan los valores por defecto del SDK. - schema_policy:
SchemaPolicy | strpolítica de configuración del esquema de base de datos que se utiliza solo al crear un almacén de base de datos a partir deconnection. El valor por defecto esSchemaPolicy.REQUIRE_EXISTING. UtiliceSchemaPolicy.CREATE_IF_NECESSARYal activar por primera vez la palabra clave o la búsqueda híbrida en un esquema existente, o al abrir un esquema gestionado antiguo soportado, para que el SDK pueda aplicar actualizaciones de esquema no destructivas y agregar los objetos de búsqueda de texto necesarios. En su lugar, se deben volver a crear los esquemas de desarrollo o parcialmente actualizados que ya reclaman la unidad de versión actual. - memory_store_id
str: ID estable del almacén de memoria de base de datos gestionado que se utiliza solo al crear un almacén de base de datos a partir deconnection. Vuelva a utilizar el mismo ID para volver a abrir la misma tienda gestionada. El ID se une a los nombres de objetos de base de datos gestionados con un guion bajo, por lo que debe empezar por una letra, contener solo letras, números y guiones bajos y tener como máximo 16 caracteres. Pase esto otable_name_prefix, no ambos. Si se omite, el almacén de base de datos utilizatable_name_prefixo el valor por defecto sin fijar cuando también se omitetable_name_prefix. -
table_name_prefix
str:Prefijo de índice/tabla de base de datos opcional que se utiliza solo al crear un almacén de base de datos a partir de
connection. Pase esto omemory_store_id, no ambos.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_store_iden su lugar. - search_strategy
SearchStrategy: valorSearchStrategyque selecciona el backend de búsqueda de base de datos al crear un almacén de base de datos desdeconnection. UtiliceSearchStrategy.VECTOR(valor por defecto) para la recuperación sólo de vectores,SearchStrategy.HYBRIDpara consultar el índice de vectores híbridos de Oracle gestionado en el texto de búsqueda almacenado, oSearchStrategy.KEYWORDpara clasificar por palabra clave/texto que coincida en el texto de búsqueda almacenado sin fusión de vectores.KEYWORDno necesita un embebido.HYBRIDnecesita queembedderseaOracleDBEmbedder. El inicio del cliente falla cuando se utiliza una estrategia incompatible con un esquema existente porque es posible que ese esquema no contenga el estado de búsqueda almacenado que necesita la estrategia. - search_index_sync
SearchIndexSyncMode: valorSearchIndexSyncModeque selecciona el comportamiento de refrescamiento del índice de búsqueda gestionado paraSearchStrategy.HYBRIDySearchStrategy.KEYWORD.SearchIndexSyncMode.ON_COMMITes el valor por defecto y permite la búsqueda de registros tan pronto como se confirma la transacción de escritura.SearchIndexSyncMode.MANUALdeja el refrescamiento en una operación de sincronización explícita del lado de la base de datos.SearchIndexSyncMode.AUTOpermite a Oracle refrescar el índice híbrido gestionado de forma asíncrona y solo está soportado conSearchStrategy.HYBRID; la búsqueda por palabra clave rechazaAUTO. -
extract_memories
bool:Cuando
True, los threads creados o cargados por este cliente requieren un LLM y la extracción automática de memoria permanece activada. Establézcalo enFalsepara desactivar la extracción automática de memoria y permitir que esos threads funcionen sin un LLM. El valor predeterminado esTrue, por lo que los LLM de extracción que faltan fallan rápidamente.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_custom_instructions
str:Instrucciones personalizadas opcionales agregadas a la petición de datos del sistema de extracción automática de memoria para threads creados o cargados por este cliente. Los valores por thread transferidos a
create_thread,get_threadoupdate_threadtienen prioridad.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. - memory_retention_config
MemoryRetentionConfig: configuración de retención de memoria opcional que se utiliza solo al crear un almacén de base de datos a partir deconnection.MemoryRetentionConfig.default_ttl_daysse aplica a nuevos mensajes y memorias cuya llamada de escritura omitettl_days.MemoryRetentionConfig.max_ttl_dayssujeta duraciones explícitas por registro por encima del máximo configurado con una advertencia y, cuando se define, hace quettl_days=Noneutilice ese máximo en lugar de crear registros que no caducan. ConSchemaPolicy.CREATE_IF_NECESSARY, una configuración explícita refresca los metadatos almacenados en un esquema gestionado actualizado existente, pero no actualiza las fechas de caducidad existentes; omitiendo la configuración existente. Si una configuración explícita dejadefault_ttl_daysomax_ttl_daysenNOT_SET_MARKER, el SDK resuelve ese atributo en su valor por defecto (None) antes de comparar o almacenar metadatos de esquema. Elija esta configuración en función de la información esperada que se almacena en los registros, el motivo por el que la aplicación la retiene y cualquier compromiso de conservación de aplicaciones o normativas.
- store
Advertencia: SchemaPolicy.CREATE_IF_NECESSARY puede ser más caro que el inicio normal del cliente porque puede aplicar DDL de esquema gestionado y reescrituras de datos de mejor esfuerzo antes de que la inicialización se realice correctamente. Planifique la primera apertura de un esquema gestionado anterior como una operación de migración o mantenimiento cuando ese esquema pueda contener muchas filas.
Si la configuración del esquema debe crear el trabajo de depuración de registro caducado gestionado, pero el usuario de la base de datos carece del privilegio Scheduler-job, la inicialización advierte y continúa. Los mensajes y las memorias caducados permanecen ocultos para las lecturas y la búsqueda, pero no se depuran físicamente hasta que un usuario con CREATE JOB o un privilegio de programador equivalente crea el trabajo.
Cuando SchemaPolicy.CREATE_IF_NECESSARY crea por primera vez un índice híbrido gestionado a través de un esquema existente, Oracle explora el texto de búsqueda almacenado y crea el estado de índice híbrido gestionado a partir del modelo de base de datos configurado. El inicio del cliente espera a que termine ese DDL, de modo que planifique la primera actualización híbrida como una operación de migración o mantenimiento para esquemas grandes. SearchIndexSyncMode controla el mantenimiento continuo después de que exista el índice; no hace que la primera creación de índice sea asíncrona.
- Incidencias: ValueError: si se proporciona una configuración de almacén en conflicto, como transferir
storeyconnection, opciones específicas de base de datos sin una conexión de base de datos u omitirstoreyconnection. - Parámetros:
- tienda
OracleMemoryStore - conexión
object - embedder
IEmbedder | str - llm
ILlm - memory_extraction_config
MemoryExtractionConfig - política_esquema
SchemaPolicy | str - memory_store_id
str - nombre_tabla_prefijo
str - estrategia_búsqueda
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - instrucciones_personalizadas_de_extracción_memoria
str - memory_retention_config
MemoryRetentionConfig
- tienda
Ejemplos
from oracleagentmemory.core import (
MemoryExtractionConfig,
SearchIndexSyncMode,
OracleAgentMemory,
SchemaPolicy,
SearchStrategy,
)
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
read_only_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
Utilice un modelo de embebido en la base de datos para aprovechar la búsqueda de índices híbridos de Oracle:
from oracleagentmemory.core.embedders import OracleDBEmbedder
db_embedder = OracleDBEmbedder(
connection=db_pool,
model="DOC_MODEL",
embedding_dimension=768,
)
hybrid_client = OracleAgentMemory(
connection=db_pool,
embedder=db_embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
search_strategy=SearchStrategy.HYBRID,
search_index_sync=SearchIndexSyncMode.ON_COMMIT,
)
método add_agent
Agregue un registro de perfil de agente a la tienda.
- Parámetros:
- agent_id
str: identificador de agente. - information
str: información de formato libre sobre el agente. - metadata
dict[str, Any] | None: asignación de metadatos opcional almacenada en la fila del perfil de agente.
- agent_id
- Devoluciones: identificador del perfil de agente almacenado.
- Tipo de devolución: str
Notas
Los registros de perfil de agente se almacenan en el almacén de nivel de cliente y se anula el ámbito intencionalmente. El identificador de registro devuelto es el mismo identificador público que la aplicación utiliza como agent_id.
Ejemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
'a1'
método add_memory
Agregue una memoria en el sistema de memoria, atribuida al usuario, agente y thread indicados.
- Parámetros:
- content
str: contenido de memoria que se debe mantener. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoría de memoria para almacenar. Los valores soportados son"memory","fact","guideline"y"preference". Cuando se omite, el contenido se almacena como un"memory"general. - user_id
str: identificadores de ámbito opcionales asociados con la memoria almacenada. - agent_id
str: identificadores de ámbito opcionales asociados con la memoria almacenada. - thread_id
str: identificadores de ámbito opcionales asociados con la memoria almacenada. - memory_id
str: identificador estable proporcionado por el emisor de llamada opcional para esta fila de memoria. - metadata
dict[str, Any] | None: metadatos opcionales que se mantienen con la memoria almacenada. - timestamp
str | None: registro de hora opcional que se guarda para esta memoria. Representa cuándo se creó la memoria. Cuando se omite oNone, el almacén utiliza la hora actual. Cuandottl_anchoresTimeToLiveAnchor.TIMESTAMP, los registros de hora ISO-8601 sin zona horaria se tratan como UTC. - ttl_days
int | None: duración opcional del tiempo de vida en días. Omita este argumento para utilizar la duración de tiempo de actividad por defecto del esquema. TransfieraNonepara utilizarMemoryRetentionConfig.max_ttl_dayscuando la configuración de retención defina uno o para almacenar una memoria que no caduque cuando no lo haga. Los valores por encima deMemoryRetentionConfig.max_ttl_daysse sujetan a ese máximo con una advertencia. - ttl_anchor
TimeToLiveAnchor: anclaje de tiempo de vida opcional. UtiliceTimeToLiveAnchor.CREATED_ATpara la hora de creación de la base de datos oTimeToLiveAnchor.TIMESTAMPpara el registro de hora de la memoria. Los registros de hora ISO-8601 sin zona horaria se tratan como UTC. - **store_kwargs (Cualquiera): opciones de escritura específicas del almacén reenviadas al almacén de copia de seguridad.
- content
- Devoluciones: identificador del registro de memoria insertado.
- Tipo de devolución: str
Ejemplos
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'
method add_memory_async (async)
Agregue un registro de memoria al cliente de forma asíncrona.
- Parámetros:
- content
str: contenido de texto que se va a almacenar como memoria. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoría de memoria para almacenar. Los valores soportados son"memory","fact","guideline"y"preference". Cuando se omite, el contenido se almacena como un"memory"general. - user_id
str: identificador de usuario opcional que se asocia con la memoria. - agent_id
str: identificador de agente opcional que se asocia con la memoria. - thread_id
str: identificador de thread opcional para asociarlo con la memoria. - memory_id
str: identificador estable proporcionado por el emisor de llamada opcional. Cuando se omite, las tiendas generan uno. - metadata
dict[str, Any] | None: metadatos opcionales que se conservan con la fila de memoria. - timestamp
str | None: registro de hora opcional que se guarda para esta memoria. Representa cuándo se creó la memoria. Cuando se omite oNone, el almacén utiliza la hora actual. - ttl_days
int | None: duración opcional del tiempo de vida en días. Omita este argumento para utilizar la duración de tiempo de actividad por defecto del esquema. TransfieraNonepara almacenar una memoria que no caduque. - ttl_anchor
TimeToLiveAnchor: anclaje de tiempo de vida opcional. UtiliceTimeToLiveAnchor.CREATED_ATpara la hora de creación de la base de datos oTimeToLiveAnchor.TIMESTAMPpara el registro de hora de la memoria. - **store_kwargs (Cualquiera): opciones de escritura específicas de implantación reenviadas al almacén de copia de seguridad.
- content
- Devoluciones: identificador del registro de memoria insertado.
- Tipo de devolución: str
método add_user
Agregue un registro de perfil de usuario a la tienda.
- Parámetros:
- user_id
str: identificador de usuario. - information
str: información de formato libre sobre el usuario. - metadata
dict[str, Any] | None: asignación de metadatos opcional almacenada en la fila del perfil de usuario.
- user_id
- Devoluciones: identificador del perfil de usuario almacenado.
- Tipo de devolución: str
Notas
Los registros de perfil de usuario se almacenan en el almacén de nivel de cliente y se anula el ámbito intencionalmente. El identificador de registro devuelto es el mismo identificador público que la aplicación utiliza como user_id.
Ejemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_user(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
'u1'
método close
Cierre el componente de memoria del agente.
El cierre deja de aceptar el nuevo trabajo de extracción en segundo plano y espera a que la extracción de memoria en segundo plano pendiente termine hasta el timeout configurado. Si ese timeout caduca, close() devuelve incluso si algún trabajo de extracción en segundo plano aún no se ha finalizado. El método es idempotente.
- Parámetros: timeout
float | None: número máximo opcional de segundos para esperar a que finalice el trabajo de extracción en segundo plano aceptado. El valor por defecto es300. TransfieraNonepara esperar indefinidamente. - Tipo de devolución: ninguno
Ejemplos
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
method close_async (async)
Cierre de forma asíncrona el componente de memoria del agente.
Este método sigue el mismo comportamiento de cierre que close(). Si el timeout caduca, puede volver mientras el trabajo de extracción en segundo plano aún se está ejecutando.
- Parámetros: timeout
float | None: número máximo opcional de segundos para esperar a que finalice el trabajo de extracción en segundo plano aceptado. El valor por defecto es300. TransfieraNonepara esperar indefinidamente. - Tipo de devolución: ninguno
Ejemplos
await client.close_async()
método create_thread
Cree y registre un thread.
- Parámetros:
- thread_id
str: identificador de thread. Si se omite, se genera uno nuevo. - user_id
str: identificador de usuario adjunto a este registro de thread. Si se omite, se genera uno nuevo. - agent_id
str: identificador de agente asociado a este registro de thread. Si se omite, se genera uno nuevo. - metadata
dict[str, Any] | None: los metadatos opcionales similares a JSON se mantienen con el thread de conversación. - LLM
ILlm: sustitución de LLM opcional para este thread. Si se omite, se utiliza el LLM de nivel de cliente configurado en el momento de la construcción. Por defecto, el cliente o el thread deben proporcionar un LLM para que se pueda ejecutar la extracción automática de memoria. Configurememory_extraction_config=MemoryExtractionConfig(extract_memories=False)aquí o en el cliente para excluirse de ese requisito. - max_message_token_length
int: tamaño máximo de mensaje de tiempo de petición de datos antes del truncamiento o el resumen durante la extracción de memoria y las actualizaciones de resumen de contexto. El contenido del mensaje almacenado permanece sin cambios. Cuando se omite, el valor por defecto es15_000tokens. - message_shortening_input_token_limit
int: tamaño máximo, en tokens, del extracto de mensaje enviado al LLM al acortar las copias de mensajes de tiempo de petición de datos de gran tamaño. Cuando se omite, el valor por defecto es30_000tokens. - memory_extraction_config
MemoryExtractionConfig: configuración opcional de extracción de memoria por thread. Los campos omitidos heredan del componente de memoria del agente. La configuración resuelta se almacena con el thread para que las cargas posteriores conserven el comportamiento del tiempo de creación. - context_card_token_limit
int: presupuesto máximo de token de entrada para la petición de datos del LLM que se utiliza para crear el resumen y la lista de temas incluidos en la tarjeta de contexto. Cuando se omite, el valor por defecto es100_000. - context_card_type_search_concurrency
int: número máximo de búsquedas de registros similares a la memoria que se deben ejecutar simultáneamente al crear una tarjeta contextual conmin_relevant_results_by_type. Cuando se omite, el valor por defecto es5. -
extract_memories
bool:Sustitución opcional por subproceso para la extracción automática de memoria. Cuando
True, este thread necesita un LLM para que se pueda ejecutar la extracción automática. Defina esta opción enFalsepara desactivar la extracción automática para este thread y permitir la operación sin un LLM. Cuando se omite, se utiliza el valorextract_memoriesde nivel de cliente.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_window
int:Número de mensajes recientes que se van a incluir durante la extracción de memoria. Defina esta opción en
-1para realizar una extracción por llamadaadd_messagesmediante el lote completo de mensajes recién agregados. Cuando se omite, el valor por defecto es-1.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
context_summary_update_frequency:
intFrecuencia de refrescamientos de resumen de contexto. Defina esta opción en
-1para realizar una actualización de resumen por llamadaadd_messagesmediante el lote completo de mensajes recién agregados. Cuando se omite, el valor por defecto es-1.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_frequency:
int.Frecuencia de actualizaciones de extracción de memoria. Defina esta opción en
-1para realizar una extracción por llamadaadd_messagesmediante el lote completo de mensajes recién agregados. Cuando se omite, el valor por defecto es-1.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_token_limit
int:Tamaño máximo, en tokens, de las peticiones de datos del LLM utilizadas para la extracción de memoria y la ejecución de actualizaciones de resumen. Cuando se omite, el valor por defecto es
100_000.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_custom_instructions
str:Instrucciones personalizadas opcionales agregadas a la petición de datos del sistema de extracción de memoria para este thread. Cuando se proporciona, el valor resuelto se mantiene con la configuración de tiempo de ejecución de thread.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]:Sustitución opcional por subproceso para metadatos copiados de mensajes de origen en memorias extraídas automáticamente.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
enable_context_summary
bool:Si se debe mantener un resumen de contexto en ejecución para este thread.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. - **kwargs (cualquiera): opciones de subprocesos adicionales específicas de la implementación.
- thread_id
- Devuelve: una instancia
OracleThread. - Tipo de retorno: OracleThread
- Incidencias: ValueError: si no hay ningún LLM disponible para la extracción automática de memoria y el thread y el cliente no se han configurado con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Ejemplos
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étodo delete_agent
Suprimir un registro de perfil de agente por identificador.
- Parámetros:
- agent_id
str: identificador de agente cuyo perfil se debe eliminar. - cascade
bool: cuandoTrue(valor por defecto), también se suprimen registros con ámbito para este agente. Esto incluye la eliminación de los propios hilos, los mensajes y los registros similares a la memoria eliminados con esos hilos, y cualquier resto de registros directamente de ámbito de agente, como mensajes, recuerdos, directrices, hechos o preferencias. Esta limpieza en el ámbito se sigue ejecutando cuando la fila de perfil de agente coincidente ya está ausente. Establézcalo enFalsepara eliminar solo el registro de perfil.
- agent_id
- Devoluciones: número de filas de perfil de agente suprimidas (
0o1). Esto puede seguir siendo0cuando se eliminaron filas de ámbito durante la limpieza en cascada. - Tipo de devolución: int
- Problemas: TimeoutError: se genera cuando la extracción en segundo plano aceptada anteriormente para threads ya conocidos en propiedad no finaliza antes del timeout de espera de supresión interna.
Notas
Las supresiones en cascada se planifican y ejecutan dentro del almacén de copia de seguridad para que la supresión del perfil y todas las supresiones secundarias de ámbito se realicen en una sola operación de almacén. Antes de que se ejecute la supresión en cascada, este método espera la extracción en segundo plano anterior ya aceptada para los threads en propiedad conocidos en ese momento a través de este componente de memoria de agente. No espera a que se acepte el trabajo después de que comience esa espera o al trabajo iniciado por otro componente o proceso de memoria de agente. El uso simultáneo de ámbito de actor mientras la supresión está en curso no está soportado.
Ejemplos
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étodo delete_memory
Eliminar un registro similar a la memoria (por ejemplo, una memoria, un hecho, una preferencia o una directriz) por identificador.
- Parámetros: memory_id
str: identificador de memoria. El identificador puede hacer referencia a un registromemory,guideline,factopreferencealmacenado. - Devoluciones: número de filas similares a la memoria suprimidas (
0o1). - Tipo de devolución: int
Ejemplos
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
method delete_memory_async (async)
Eliminar de forma asíncrona un registro similar a la memoria (por ejemplo, una memoria, un hecho, una preferencia o una directriz) por identificador.
- Parámetros: memory_id
str: identificador del registro similar a la memoria que se va a eliminar. - Devoluciones: número de registros similares a la memoria suprimidos.
- Tipo de devolución: int
método delete_thread
Suprimir todos los registros asociados a un identificador de thread.
- Parámetros: thread_id
str: identificador de thread para suprimir. - Devoluciones: número de threads de conversación suprimidos (
0o1). - Tipo de devolución: int
- Problemas: TimeoutError: se genera cuando la extracción en segundo plano aceptada anteriormente para este thread no finaliza antes del timeout de espera de supresión interna.
Notas
Utilice esta operación cuando necesite la eliminación completa de retención de un thread. El almacén de copia de seguridad suprime el thread junto con los mensajes de ámbito de thread asociados, las memorias duraderas y los datos de recuperación gestionados. Esto difiere de OracleThread.delete_message(), que elimina solo el registro de mensaje sin formato y no se aplica en cascada a las memorias derivadas creadas a partir de ese mensaje. Antes de suprimir el thread, este método espera la extracción en segundo plano anterior ya aceptada para ese thread a través de este componente de memoria de agente. No espera a que se acepte el trabajo en segundo plano después de que comience esa espera o al trabajo iniciado por otro componente o proceso de memoria de agente. No se soporta el uso simultáneo del mismo thread mientras la supresión está en curso.
Ejemplos
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étodo delete_user
Suprimir un registro de perfil de usuario por identificador.
- Parámetros:
- user_id
str: identificador de usuario cuyo perfil se debe eliminar. - cascade
bool: cuandoTrue(predeterminado), también se suprimen registros con ámbito para este usuario. Esto incluye la eliminación de los propios hilos, los mensajes y los registros similares a la memoria eliminados con esos hilos, y cualquier registro de ámbito de usuario que quede directamente, como mensajes, recuerdos, directrices, hechos o preferencias. Esta limpieza de ámbito se sigue ejecutando cuando la fila de perfil de usuario coincidente ya está ausente. Establézcalo enFalsepara eliminar solo el registro de perfil.
- user_id
- Devoluciones: número de filas de perfil de usuario suprimidas (
0o1). Esto puede seguir siendo0cuando se eliminaron filas de ámbito durante la limpieza en cascada. - Tipo de devolución: int
- Problemas: TimeoutError: se genera cuando la extracción en segundo plano aceptada anteriormente para threads ya conocidos en propiedad no finaliza antes del timeout de espera de supresión interna.
Notas
Las supresiones en cascada se planifican y ejecutan dentro del almacén de copia de seguridad para que la supresión del perfil y todas las supresiones secundarias de ámbito se realicen en una sola operación de almacén. Antes de que se ejecute la supresión en cascada, este método espera la extracción en segundo plano anterior ya aceptada para los threads en propiedad conocidos en ese momento a través de este componente de memoria de agente. No espera a que se acepte el trabajo después de que comience esa espera o al trabajo iniciado por otro componente o proceso de memoria de agente. El uso simultáneo de ámbito de actor mientras la supresión está en curso no está soportado.
Ejemplos
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étodo get_thread
Recuperar un subproceso creado anteriormente.
- Parámetros:
- thread_id
str: identificador que se utiliza al crear el thread. - LLM
ILlm: sustitución de LLM opcional para el subproceso reabierto. Cuando se omite, se utiliza el LLM de nivel de cliente configurado en el momento de la construcción. - max_message_token_length
int: sustitución opcional para el tamaño máximo de mensaje de tiempo de petición de datos antes del truncamiento o el resumen durante la extracción de memoria y las actualizaciones de resumen de contexto. El contenido del mensaje almacenado permanece sin cambios. - message_shortening_input_token_limit
int: sustitución opcional para el tamaño máximo, en tokens, del extracto de mensaje enviado al LLM al acortar las copias de mensajes de tiempo de petición de datos de gran tamaño. - memory_extraction_config
MemoryExtractionConfig: configuración de extracción agrupada opcional para la instanciaOracleThreaddevuelta. Los campos omitidos heredan de la configuración de thread almacenada y del componente de memoria del agente. La sustitución solo se aplica a la instanciaOracleThreaddevuelta y no se vuelve a escribir en la configuración del thread de conversación almacenada. - context_card_token_limit
int: sustitución opcional para la instanciaOracleThreaddevuelta. Define el presupuesto de token de entrada de la petición de datos del LLM utilizada para crear el resumen y la lista de temas incluidos en la tarjeta de contexto. - context_card_type_search_concurrency
int: sustitución opcional para la instanciaOracleThreaddevuelta. Define el número de búsquedas de registros similares a la memoria para que se ejecuten simultáneamente al crear una tarjeta contextual conmin_relevant_results_by_type. -
extract_memories
bool:Sustitución opcional para la extracción automática de memoria en el thread reabierto. Cuando se omite, se utiliza el valor
extract_memoriesde nivel de cliente.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_window
int:Sustitución opcional para el número de mensajes recientes utilizados durante la extracción de memoria.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
context_summary_update_frequency:
intSustitución opcional para la frecuencia de refrescamientos de resumen de contexto.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_frequency:
int.Sustitución opcional para la frecuencia de las actualizaciones de extracción de memoria.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_token_limit
int:Sustitución opcional para el tamaño máximo, en tokens, de las peticiones de datos de LLM utilizadas para la extracción de memoria y la ejecución de actualizaciones de resumen.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_custom_instructions
str | None:Sustitución opcional para instrucciones de extracción de memoria personalizadas. Si se transfiere
None, se borran las instrucciones personalizadas de nivel de thread para la instanciaOracleThreaddevuelta sin actualizar la configuración del thread de conversación almacenada; se sigue aplicando un valor por defecto de nivel de cliente cuando se configura.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]:Sustitución opcional para metadatos copiados de mensajes de origen en memorias extraídas automáticamente. La sustitución solo se aplica a la instancia
OracleThreaddevuelta.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
enable_context_summary
bool:Sustitución opcional para determinar si el thread reabierto debe mantener un resumen de contexto en ejecución.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar.
- thread_id
- Devoluciones: instancia
OracleThreadreconstruida a partir de los metadatos del almacén. - Tipo de retorno: OracleThread
- Incrementos:
- KeyError: si el ID de subproceso es desconocido para esta instancia de cliente.
- ValueError: si no hay ningún LLM disponible para la extracción automática de memoria y el cliente no se configuró con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Notas
Las sustituciones explícitas por llamada tienen prioridad. Cuando se omiten las sustituciones de tiempo de ejecución, los threads reabiertos utilizan la configuración de tiempo de ejecución persistente cuando está disponible antes de volver a los valores por defecto del SDK.
Ejemplos
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'
método search
Búsqueda sincrónica de registros relevantes para una consulta.
- Parámetros:
- query
str: cadena de consulta en lenguaje natural. - user_id
str | None: filtro de identificador de usuario. Las búsquedas de cliente OracleAgentMemory necesitan un ámbito de usuario explícito, a menos que se proporcionescopecon uno. Transfiera unuser_idconcreto al destino de ese usuario o transfieraNonesolo a los registros de usuario sin ámbito de destino. - agent_id
str | None: filtro de identificador de agente opcional. Se ignora cuando se proporcionascope. - thread_id
str | None: filtro de identificador de subprocesos opcional. Se ignora cuando se proporcionascope. - exact_user_match
bool: indica si la coincidencia de usuarios debe ser estricta. Las búsquedas del cliente OracleAgentMemory necesitan una coincidencia de usuario exacta y rechazanFalse. Se ignora cuando se proporcionascope. - exact_agent_match
bool: indica si la coincidencia de agentes debe ser estricta. Se ignora cuando se proporcionascope. - exact_thread_match
bool: si la coincidencia de subprocesos debe ser estricta. Se ignora cuando se proporcionascope. - max_results
int: número máximo opcional de resultados para devolver. Cuando se proporciona, debe ser al menos1. La omisión de este argumento utiliza el valor por defecto de10. Este es un límite superior: la llamada puede devolver menos demax_resultsresultados cuando los filtros son demasiado restrictivos, cuando existen menos registros coincidentes no vencidos o debido al comportamiento de búsqueda específico de la implementación. - record_types
list[str]: lista opcional de tipos de registro que se deben incluir, como"memory"o"message". -
metadata_filter
dict[str, Any] | None:Asignación de filtro de metadatos opcional utilizada como filtro adicional después del filtrado de ámbito y tipo de registro. Las entradas en
metadata_filterse combinan con la semántica AND. Las entradas cuyo valor no es un diccionario de operador de nivel de campo utilizan semántica de coincidencia exacta: la clave solicitada debe existir en los metadatos de registro almacenados. Los diccionarios anidados coinciden recursivamente con los objetos de metadatos anidados. Los valores escalares y de lista deben coincidir exactamente; el orden y la longitud de la lista también deben coincidir. Omita este argumento o transfieraNonepara buscar sin filtrado de metadatos. Entre los ejemplos se incluyenmetadata_filter={"source": "profile_import"}para un campo escalar,metadata_filter={"prefs": {"category": "travel"}}para un campo anidado ymetadata_filter={"tags": ["survey", "travel"]}para una coincidencia de lista exacta. Combinar condiciones para requerir todas ellas:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Para probar la pertenencia a una matriz, utilice un diccionario de operador de nivel de campo.
"$array_contains"coincide con un valor o con todos los valores de una lista."$array_contains_any"coincide con al menos un valor de una lista."$not"niega otra expresión de nivel de campo en el mismo campo, incluido un diccionario de operador o un valor de coincidencia exacta sin formato. Las expresiones negativas coinciden cuando la expresión positiva falla, incluidos los campos que faltan; la pertenencia a la matriz negada también coincide con los campos que no son de matriz:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope: ámbito de búsqueda predefinido opcional. Proporcionescopeo el identificador explícito y los argumentos de coincidencia exacta, no ambos. Las búsquedas de cliente OracleAgentMemory necesitan que el ámbito resuelto incluya unuser_idexplícito conexact_user_match=True. Utiliceuser_id=Nonepara dirigir sólo los registros de usuario sin ámbito.
- query
- Devoluciones: los resultados de búsqueda ordenados por relevancia decreciente. La lista puede contener menos de
max_resultsentradas. - Tipo de devolución: list[SearchResult]
- Problemas: ValueError: si
scopese combina con argumentos de identificador explícito o coincidencia exacta, simax_resultses menor que1, simetadata_filterno es un diccionario niNone, o si la implementación rechaza el ámbito de búsqueda de cliente resuelto. Las búsquedas del cliente OracleAgentMemory rechazan el ámbito de usuario omitido y rechazanexact_user_match=False.
Notas
Los valores de ámbito None explícitos siguen las reglas de coincidencia exacta resueltas: exact_*_match=False deja esa dimensión sin restricciones, mientras que exact_*_match=True solo coincide con los registros sin ámbito en esa dimensión.
method search_async (async)
Busque de forma asíncrona registros relevantes para una consulta.
- Parámetros:
- query
str: cadena de consulta en lenguaje natural. - user_id
str | None: filtro de identificador de usuario. Las búsquedas de cliente OracleAgentMemory necesitan un ámbito de usuario explícito, a menos que se proporcionescopecon uno. Transfiera unuser_idconcreto al destino de ese usuario o transfieraNonesolo a los registros de usuario sin ámbito de destino. - agent_id
str | None: filtro de identificador de agente opcional. Se ignora cuando se proporcionascope. - thread_id
str | None: filtro de identificador de subprocesos opcional. Se ignora cuando se proporcionascope. - exact_user_match
bool: indica si la coincidencia de usuarios debe ser estricta. Las búsquedas del cliente OracleAgentMemory necesitan una coincidencia de usuario exacta y rechazanFalse. Se ignora cuando se proporcionascope. - exact_agent_match
bool: indica si la coincidencia de agentes debe ser estricta. Se ignora cuando se proporcionascope. - exact_thread_match
bool: si la coincidencia de subprocesos debe ser estricta. Se ignora cuando se proporcionascope. - max_results
int: número máximo opcional de resultados para devolver. Cuando se proporciona, debe ser al menos1. La omisión de este argumento utiliza el valor por defecto de10. - record_types
list[str]: lista opcional de tipos de registro que se deben incluir, como"memory"o"message". -
metadata_filter
dict[str, Any] | None:Asignación de filtro de metadatos opcional utilizada como filtro adicional después del filtrado de ámbito y tipo de registro. Las entradas en
metadata_filterse combinan con la semántica AND. Las entradas cuyo valor no es un diccionario de operador de nivel de campo utilizan semántica de coincidencia exacta: la clave solicitada debe existir en los metadatos de registro almacenados. Los diccionarios anidados coinciden recursivamente con los objetos de metadatos anidados. Los valores escalares y de lista deben coincidir exactamente; el orden y la longitud de la lista también deben coincidir. Omita este argumento o transfieraNonepara buscar sin filtrado de metadatos. Entre los ejemplos se incluyenmetadata_filter={"source": "profile_import"}para un campo escalar,metadata_filter={"prefs": {"category": "travel"}}para un campo anidado ymetadata_filter={"tags": ["survey", "travel"]}para una coincidencia de lista exacta. Combinar condiciones para requerir todas ellas:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Para probar la pertenencia a una matriz, utilice un diccionario de operador de nivel de campo.
"$array_contains"coincide con un valor o con todos los valores de una lista."$array_contains_any"coincide con al menos un valor de una lista."$not"niega otra expresión de nivel de campo en el mismo campo, incluido un diccionario de operador o un valor de coincidencia exacta sin formato. Las expresiones negativas coinciden cuando la expresión positiva falla, incluidos los campos que faltan; la pertenencia a la matriz negada también coincide con los campos que no son de matriz:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - scope
SearchScope: ámbito de búsqueda predefinido opcional. Proporcionescopeo el identificador explícito y los argumentos de coincidencia exacta, no ambos. Las búsquedas de cliente OracleAgentMemory necesitan que el ámbito resuelto incluya unuser_idexplícito conexact_user_match=True. Utiliceuser_id=Nonepara dirigir sólo los registros de usuario sin ámbito.
- query
- Devoluciones: los resultados de búsqueda ordenados por relevancia decreciente.
- Tipo de devolución: list[SearchResult]
- Problemas: ValueError: si
scopese combina con argumentos de identificador explícito o coincidencia exacta, simax_resultses menor que1, simetadata_filterno es un diccionario niNone, o si la implementación rechaza el ámbito de búsqueda de cliente resuelto. Las búsquedas del cliente OracleAgentMemory rechazan el ámbito de usuario omitido y rechazanexact_user_match=False.
Notas
Los valores de ámbito None explícitos siguen las reglas de coincidencia exacta resueltas: exact_*_match=False deja esa dimensión sin restricciones, mientras que exact_*_match=True solo coincide con los registros sin ámbito en esa dimensión.
método update_memory
Actualizar un registro similar a la memoria almacenada por identificador.
- Parámetros:
- memory_id
str: identificador del registro similar a la memoria que se actualizará. - content
str– Contenido de reemplazo opcional. Proporcione una cadena para sustituir el contenido almacenado. Cuando se omite, el contenido almacenado se conserva. No se admite la transferencia deNone; omitacontentpara mantener el valor actual o utilicedelete_memory()para eliminar el registro. - metadata
dict[str, Any] | None: asignación de metadatos de sustitución opcional. Cuando se omite, los metadatos almacenados se conservan. Cuando se proporciona, sustituye el objeto de metadatos almacenado; esta API no fusiona en profundidad los metadatos. - timestamp
str | None: nuevo registro de hora opcional para esta memoria. Representa cuándo se creó la memoria. Cuando se omite, el registro de hora almacenado se conserva. TransfieraNonepara borrar el registro de hora guardado y utilice el tiempo que el registro se ha creado en la tienda. Cuandottl_anchoresTimeToLiveAnchor.TIMESTAMP, los registros de hora ISO-8601 sin zona horaria se tratan como UTC. - ttl_days
int | None: refrescamiento de caducidad opcional en días. Omita este argumento para dejar la caducidad actual sin cambios a menos que se proporcionettl_anchor. TransfieraNonepara utilizarMemoryRetentionConfig.max_ttl_dayscuando la configuración de retención defina uno o para borrar la caducidad cuando no lo haga. Los valores por encima deMemoryRetentionConfig.max_ttl_daysse sujetan a ese máximo con una advertencia. Las memorias caducadas no están disponibles para esta API de cliente y no se pueden refrescar. - ttl_anchor
TimeToLiveAnchor: anclaje de tiempo de vida opcional para un refrescamiento de caducidad. UtiliceTimeToLiveAnchor.CREATED_ATpara la hora de creación de memoria oTimeToLiveAnchor.TIMESTAMPpara la sustitucióntimestampproporcionada en la misma actualización, o el registro de hora del evento almacenado cuando se omitetimestamp. Al proporcionarttl_anchorsinttl_daysse utiliza la duración de tiempo de actividad por defecto del esquema. Cuando se omitettl_anchordurante un refrescamiento, el cliente utilizaTimeToLiveAnchor.CREATED_AT. Los registros de hora ISO-8601 sin zona horaria se tratan como UTC. - **kwargs (Cualquiera): se rechazan los argumentos de palabras clave inesperados.
- memory_id
- Devoluciones: identificador del registro similar a la memoria actualizado.
- Tipo de devolución: str
Notas
Los campos omitidos se conservan del registro almacenado. El ámbito almacenado permanece sin cambios. La sustitución de metadatos es una sustitución de objeto completo, no una fusión JSON recursiva.
method update_memory_async (async)
Actualizar de forma asíncrona un registro similar a la memoria almacenada por identificador.
- Parámetros:
- memory_id
str: identificador del registro similar a la memoria que se actualizará. - content
str– Contenido de reemplazo opcional. Proporcione una cadena para sustituir el contenido almacenado. Cuando se omite, el contenido almacenado se conserva. No se admite la transferencia deNone; omitacontentpara mantener el valor actual o utilicedelete_memory()para eliminar el registro. - metadata
dict[str, Any] | None: asignación de metadatos de sustitución opcional. Cuando se omite, los metadatos almacenados se conservan. Cuando se proporciona, sustituye el objeto de metadatos almacenado; esta API no fusiona en profundidad los metadatos. - timestamp
str | None: nuevo registro de hora opcional para esta memoria. Representa cuándo se creó la memoria. Cuando se omite, el registro de hora almacenado se conserva. TransfieraNonepara borrar el registro de hora guardado y utilice el tiempo que el registro se ha creado en la tienda. - ttl_days
int | None: refrescamiento de caducidad opcional en días. Omita este argumento junto conttl_anchorpara dejar la caducidad actual sin cambios. TransfieraNonepara borrar la caducidad. - ttl_anchor
TimeToLiveAnchor: anclaje de tiempo de vida opcional para un refrescamiento de caducidad. UtiliceTimeToLiveAnchor.CREATED_ATpara la hora de creación de memoria oTimeToLiveAnchor.TIMESTAMPpara la sustitucióntimestampproporcionada en la misma actualización, o el registro de hora del evento almacenado cuando se omitetimestamp. Al proporcionarttl_anchorsinttl_daysse utiliza la duración de tiempo de actividad por defecto del esquema. Cuando se omitettl_anchordurante un refrescamiento, los almacenes utilizanTimeToLiveAnchor.CREATED_AT. - **kwargs (Cualquiera): se rechazan los argumentos de palabras clave inesperados.
- memory_id
- Devoluciones: identificador del registro similar a la memoria actualizado.
- Tipo de devolución: str
Notas
Los campos omitidos permanecen sin cambios. Esta API no soporta las actualizaciones de ámbito. La sustitución de metadatos es una sustitución de objeto completo, no una fusión JSON recursiva.
método update_thread
Conservar metadatos de thread y actualizaciones duraderas de configuración en tiempo de ejecución.
- Parámetros:
- thread_id
str: identificador del thread que se va a actualizar. - metadata
dict[str, Any] | None: actualización de metadatos opcional para el subproceso de conversación. Cuando se omite, los metadatos almacenados no se modifican. Al transferirNone, se borran explícitamente los metadatos almacenados. Cuando se proporciona una asignación, sustituye el objeto de metadatos almacenado. - LLM
ILlm: sustitución de LLM opcional para la instanciaOracleThreaddevuelta. Esto no se mantiene, pero participa en las mismas reglas de validación queget_threadycreate_thread. -
extract_memories
bool:Sustitución duradera opcional para la extracción automática de memoria.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. - max_message_token_length
int: sustitución duradera opcional para el tamaño máximo de mensaje de tiempo de petición de datos utilizado durante la extracción y el resumen. - message_shortening_input_token_limit
int: sustitución duradera opcional para el tamaño máximo de extracto enviado al LLM al acortar mensajes de gran tamaño. -
memory_extraction_window
int:Sustitución duradera opcional para el tamaño de la ventana de extracción.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
context_summary_update_frequency:
intSustitución duradera opcional del número de mensajes agregados que disparan un refrescamiento de resumen de contexto.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_frequency:
int.Sustitución duradera opcional para el número de mensajes agregados que disparan la extracción automática de memoria.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_token_limit
int:Sustitución duradera opcional para presupuestos de petición de datos de extracción y resumen en ejecución.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. - context_card_token_limit
int: sustitución duradera opcional para el presupuesto de token de entrada de la petición de datos del LLM utilizada para crear el resumen y la lista de temas incluidos en la tarjeta de contexto. -
enable_context_summary
bool:Sustitución duradera opcional para determinar si los resúmenes de contexto en ejecución permanecen activados.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_custom_instructions
str | None:Instrucciones personalizadas duraderas opcionales agregadas a la petición de datos del sistema de extracción de memoria. Al transferir
None, se borran todas las instrucciones personalizadas de nivel de thread almacenadas; se sigue aplicando un valor por defecto de nivel de cliente cuando se configura.Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]:Sustitución duradera opcional para metadatos copiados de mensajes de origen en memorias extraídas automáticamente.
Información: En desuso desde la versión 26.6.0: este parámetro estaba en desuso en la versión 26.6.0 y se eliminará en la versión 27.1. Utilice
memory_extraction_configen su lugar. - memory_extraction_config
MemoryExtractionConfig: actualización de configuración de extracción duradera agrupada opcional. Los campos proporcionados se escriben en la configuración de thread almacenada y los utilizan las instanciasOracleThreadcargadas posteriormente y los trabajos de extracción en segundo plano posteriores. - **kwargs (cualquiera): opciones adicionales específicas de la implementación.
OracleAgentMemoryrechaza actualmente argumentos de palabra clave desconocidos.
- thread_id
- Devoluciones: instancia
OracleThreadactualizada que refleja los metadatos persistentes y la configuración de tiempo de ejecución. - Tipo de retorno: OracleThread
- Incrementos:
- KeyError: si el ID de subproceso es desconocido para esta instancia de cliente.
- ValueError: si no hay ningún LLM disponible para la extracción automática de memoria después de resolver la configuración de tiempo de ejecución efectiva.
Notas
La configuración de tiempo de ejecución se resuelve a partir del thread de conversación almacenado más las sustituciones explícitas transferidas a esta llamada, que coinciden con la semántica get_thread antes de mantener el resultado. Los metadatos omitidos y las actualizaciones de configuración de tiempo de ejecución se resuelven a partir de datos almacenados, no de ninguna instancia OracleThread cargada previamente, y solo se reescriben las actualizaciones de metadatos proporcionadas explícitamente o las sustituciones duraderas de configuración de tiempo de ejecución. La sustitución de metadatos es una sustitución de objeto completo, no una fusión JSON recursiva. La propiedad de los threads no se puede modificar mediante esta API, por lo que user_id y agent_id permanecen sin cambios. El estado de tiempo de ejecución mutable, como los contadores de extracción, se deja sin tocar.
Ejemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
updated = client.update_thread(
"c1",
metadata={"flags": {"vip": True}},
message_shortening_input_token_limit=12_000,
)
updated.message_shortening_input_token_limit
12000
método wait_for_memory_extraction
Espere a que este cliente inicie una extracción de memoria en segundo plano anterior.
Este método espera a que la extracción en segundo plano ya se haya iniciado a través de esta instancia OracleAgentMemory en todos los threads propiedad de este componente de memoria de agente. No espera a que se inicie la extracción después de que comience esta espera, a que se inicie la extracción por otro componente de memoria de agente o a que se ejecute la extracción en otro proceso. Los fallos de extracción cuentan como finalizados para esta espera.
- Parámetros: timeout
float | None: número máximo opcional de segundos para esperar. El valor por defecto es300. TransfieraNonepara esperar hasta que este componente de memoria de agente no tenga ninguna extracción pendiente. - Subidas: TimeoutError: se genera cuando el timeout caduca antes de que finalice la extracción en segundo plano anterior.
- Tipo de devolución: ninguno
Ejemplos
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
method wait_for_memory_extraction_async (async)
Espere de forma asíncrona la extracción de memoria en segundo plano anterior.
Este método sigue el mismo comportamiento que wait_for_memory_extraction().
- Parámetros: timeout
float | None: número máximo opcional de segundos para esperar. El valor por defecto es300. TransfieraNonepara esperar indefinidamente. - Subidas: TimeoutError: se genera cuando el timeout caduca antes de que finalice la extracción en segundo plano anterior.
- Tipo de devolución: ninguno
Ejemplos
await client.wait_for_memory_extraction_async(timeout=10)
Extracción de memoria
clase oracleagentmemory.core.MemoryExtractionConfig
Bases: object
Configuración agrupada para la extracción automática de memoria.
Transfiera este objeto a OracleAgentMemory, create_thread, get_thread o update_thread para configurar la extracción automática. Los campos omitidos se heredan de la siguiente configuración más amplia. Por ejemplo, un thread creado sin memory_extraction_frequency utiliza el valor por defecto del componente de memoria del agente y el valor por defecto del componente vuelve al valor por defecto del SDK.
- Parámetros:
- memory_extraction_window
int: ventana de mensajes recientes utilizada para peticiones de datos de extracción.-1significa que la petición de datos de extracción solo utiliza los mensajes recién agregados. Omita este campo para heredar el valor. - context_summary_update_frequency
int: número de mensajes agregados entre las actualizaciones de resumen de contexto en ejecución. Los valores por debajo de0se refrescan después de cada adición. Omita este campo para heredar el valor. - memory_extraction_frequency en
int: número de mensajes agregados entre ejecuciones de extracción de memoria. Valores por debajo de la extracción0después de cada adición. Omita este campo para heredar el valor. - memory_extraction_token_limit
int: presupuesto de token de entrada para peticiones de datos de extracción y resumen. Los valores por debajo de1desactivan el límite de presupuesto de petición de datos. Omita este campo para heredar el valor. - extract_memories
bool: indica si la extracción automática de memoria está activada. Defina esta opción enFalsepara desactivar la extracción automática y permitir la operación sin un LLM de extracción. Omita este campo para heredar el valor. - enable_context_summary
bool: indica si las peticiones de datos de extracción mantienen y utilizan un resumen de contexto en ejecución. Omita este campo para heredar el valor. - memory_extraction_custom_instructions
str | None: instrucciones opcionales del emisor de llamada agregadas al indicador del sistema de extracción. TransfieraNoneenupdate_threadpara borrar las instrucciones de nivel de thread almacenadas. Omita este campo para heredar el valor. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]: controla los metadatos copiados de los mensajes de origen en las memorias extraídas.Truecopia todos los metadatos del mensaje de origen,Falseno copia ninguno y una secuencia copia solo las claves de metadatos de nivel superior coincidentes. Omita este campo para heredar el valor. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode:MemoryExtractionMode.INLINEejecuta la extracción automática antes de que se devuelva el método de escritura.MemoryExtractionMode.BACKGROUNDse devuelve después de que la escritura raw se realiza correctamente y el trabajo de extracción debido se intenta en segundo plano. En el modo de fondo, los recuerdos derivados pueden aparecer más tarde, pueden estar temporalmente desactualizados o nunca se pueden escribir si el trabajo de fondo no se puede completar. Por ejemplo,update_message()puede volver antes de que una lectura de memoria posterior refleje el contenido del mensaje actualizado. Omita este campo para heredar el valor. Cuando no se configura ningún valor más amplio, el modo efectivo esINLINE. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior: en el modo en segundo plano, controla lo que sucede cuando la extracción automática no puede ponerse en cola inmediatamente.DROPregistra una advertencia y continúa sin esperar.WAIT_THEN_DROPespera la capacidad de cola hasta el timeout configurado y, a continuación, registra una advertencia y continúa.WAIT_THEN_RAISEespera la capacidad de la cola hasta el timeout configurado y, a continuación, emiteTimeoutErrordespués de que la escritura raw se realice correctamente. Omita este campo para heredar el valor. Cuando no se configura ningún valor más amplio, el valor por defecto efectivo esDROP. - background_extraction_queue_put_timeout_seconds
float: en el modo en segundo plano, el número máximo de segundos de espera de extracción automática para la capacidad de la cola cuandobackground_extraction_queue_full_behavioresWAIT_THEN_DROPoWAIT_THEN_RAISE. Omita este campo para heredar el valor. Cuando no se configura ningún valor más amplio, el valor por defecto efectivo es300.0segundos.
- memory_extraction_window
Ejemplos
from oracleagentmemory.core import MemoryExtractionConfig, MemoryExtractionMode
config = MemoryExtractionConfig(
extract_memories=True,
extraction_mode=MemoryExtractionMode.BACKGROUND,
)
clase oracleagentmemory.core.MemoryExtractionMode
Bases: str, Enum
Controla cuándo se ejecuta el trabajo de extracción automática de memoria.
INLINE ejecuta la extracción automática antes de que se devuelva el método de escritura. BACKGROUND se devuelve después de que la escritura raw se realiza correctamente y el trabajo de extracción debido se intenta en segundo plano. La extracción de fondo es el mejor esfuerzo: los recuerdos derivados pueden aparecer más tarde o nunca se pueden escribir si el trabajo de fondo no se puede completar.
FONDO = 'ANTECEDENTES'
Vuelva después de la persistencia de mensajes raw y ejecute la extracción de mejor esfuerzo en el trabajo en segundo plano.
EN LÍNEA = 'EN LÍNEA'
Ejecute la extracción antes de que se devuelva el método de escritura.
clase oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Bases: str, Enum
Controla lo que sucede cuando la extracción en segundo plano no se puede poner en cola a tiempo.
BORRAR = 'BORRAR'
Registre una advertencia y continúe inmediatamente cuando la capacidad de la cola no esté disponible.
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
Espere la capacidad de la cola hasta el timeout configurado y, a continuación, registre una advertencia y continúe.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
Espere la capacidad de la cola hasta el timeout configurado y, a continuación, emita TimeoutError.