Memória do Agente
Esta página apresenta a implementação concreta da Memória do Agente do Oracle AI.
Memória do Agente Oracle
Observação: OracleAgentMemory.delete_thread() é o caminho suportado para limpeza em cascata com escopo de thread. Ele remove o thread junto com mensagens associadas, memórias duráveis e dados de recuperação gerenciados. Isso é mais amplo que OracleThread.delete_message(), que exclui somente a linha de mensagem bruta. Antes de excluir o thread, ele aguarda a extração em segundo plano aceita anteriormente já conhecida por este cliente para esse thread. Ele não serializa todas as operações simultâneas para o mesmo thread enquanto a exclusão está em andamento.
classe oracleagentmemory.core.OracleAgentMemory
Bases: IAgentMemory
Cliente de memória do agente com suporte do Oracle DB ou de um armazenamento fornecido pelo chamador.
Criar um cliente de memória.
- Parâmetros:
- store
OracleMemoryStore– Instância de armazenamento pré-configurada opcional. Quando fornecido, o cliente usa essa loja diretamente em vez de instanciar sua própria loja. Isso é útil quando os chamadores precisam de configuração de armazenamento além das opções do construtor expostas porOracleAgentMemory. - connection
object– Conexão/pool opcional do Oracle DB. Quando fornecido, o armazenamento do BD é usado. A transmissão de uma conexão bruta ativa o modo de sessão única para esta instância do cliente, portanto, as solicitações simultâneas devem usar um pool de conexões. Quando omitidos, os chamadores devem especificar umstoreexplícito. - embedder
IEmbedder | str– Instância de implementação do incorporador ou um identificador de modelo de incorporação LiteLLM. Quando omitido, nenhum embedder é anexado. A pesquisa de banco de dados somente vetor exige vetores pré-calculados por meio de APIs de armazenamento de nível inferior, enquanto a pesquisa de banco de dados de palavra-chave pode ser executada diretamente do texto da consulta. A pesquisa de BD híbrido requer uma instânciaOracleDBEmbedderpara que o índice híbrido gerenciado e o principal incorporador usem o mesmo modelo no banco de dados. - LLM
ILlm– Adaptador LLM opcional usado por threads para extração de memória e/ou resumo de contexto. Por padrão, os threads criados ou carregados desse cliente exigem um LLM para que mensagens recentes possam ser extraídas para memórias duráveis. Passe umllmaqui, forneça um mais tarde emcreate_threadou desative a extração automática commemory_extraction_config=MemoryExtractionConfig(extract_memories=False). - memory_extraction_config
MemoryExtractionConfig– Configuração de extração de memória no nível do cliente opcional. Use-o para controlar configurações de extração automática de memória, como modo de extração, comportamento de resumo e limites de extração. Os campos omitidos usam padrões SDK. - schema_policy
SchemaPolicy | str– Política de configuração do esquema do BD usada somente ao construir um armazenamento do BD com base emconnection. O padrão éSchemaPolicy.REQUIRE_EXISTING. UseSchemaPolicy.CREATE_IF_NECESSARYao ativar primeiro a palavra-chave ou a pesquisa híbrida em um esquema existente ou ao abrir um esquema gerenciado liberado mais antigo com suporte, para que o SDK possa aplicar upgrades de esquema não destrutivos e adicionar os objetos de pesquisa de texto necessários. Esquemas de desenvolvimento ou parcialmente atualizados que já reivindicam a forma da release atual devem ser recriados. - memory_store_id
str– ID estável para o armazenamento de memória do BD gerenciado usado somente ao construir um armazenamento de BD com base emconnection. Reutilize o mesmo ID para reabrir o mesmo armazenamento gerenciado. O ID é unido aos nomes de objeto do BD gerenciado com um sublinhado, portanto, ele deve começar com uma letra, conter apenas letras, números e sublinhados e ter no máximo 16 caracteres. Informe este outable_name_prefix, não ambos. Se for omitido, o armazenamento do BD usarátable_name_prefixou o padrão não fixo quandotable_name_prefixtambém for omitido. -
table_name_prefix
str–Prefixo de tabela/índice do BD opcional usado somente ao construir um armazenamento de BD com base em
connection. Informe este oumemory_store_id, não ambos.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_store_id. - search_strategy
SearchStrategy– ValorSearchStrategyque seleciona o backend de pesquisa de BD ao construir um armazenamento de BD com base emconnection. UseSearchStrategy.VECTOR(padrão) para recuperação somente de vetor,SearchStrategy.HYBRIDpara consultar o índice de vetor híbrido Oracle gerenciado sobre o texto de pesquisa armazenado, ouSearchStrategy.KEYWORDpara classificar por correspondência de palavra-chave/texto sobre o texto de pesquisa armazenado sem fusão de vetor.KEYWORDnão requer um incorporador.HYBRIDrequer queembedderseja umOracleDBEmbedder. A inicialização do cliente falha quando uma estratégia incompatível é usada com um esquema existente porque esse esquema pode não conter o estado de pesquisa armazenado de que a estratégia precisa. - search_index_sync
SearchIndexSyncMode– ValorSearchIndexSyncModeque seleciona o comportamento de atualização de índice de pesquisa gerenciado paraSearchStrategy.HYBRIDeSearchStrategy.KEYWORD.SearchIndexSyncMode.ON_COMMITé o padrão e torna os registros pesquisáveis assim que a transação de gravação é confirmada.SearchIndexSyncMode.MANUALdeixa a atualização para uma operação de sincronização explícita no banco de dados. OSearchIndexSyncMode.AUTOpermite que o sistema Oracle atualize o índice híbrido gerenciado de forma assíncrona e só é suportado comSearchStrategy.HYBRID; a pesquisa por palavra-chave rejeitaAUTO. -
extract_memories
bool–Quando
True, os threads criados ou carregados por este cliente exigem um LLM e a extração automática de memória permanece ativada. Defina comoFalsepara desativar a extração automática de memória e permitir que esses threads operem sem um LLM. O padrão éTrue, portanto, os LLMs de extração ausentes falham rapidamente.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_custom_instructions
str–Instruções personalizadas opcionais anexadas ao prompt do sistema de extração automática de memória para threads criados ou carregados por este cliente. Os valores por thread passados para
create_thread,get_threadouupdate_threadtêm precedência.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. - memory_retention_config
MemoryRetentionConfig– Configuração de retenção de memória opcional usada somente ao construir um armazenamento de BD com base emconnection.MemoryRetentionConfig.default_ttl_daysé aplicado a novas mensagens e memórias cuja chamada de gravação omitettl_days.MemoryRetentionConfig.max_ttl_daysgrampeia durações explícitas por registro acima do máximo configurado com uma advertência e, quando definido, faz com quettl_days=Noneuse esse máximo em vez de criar registros sem expiração. ComSchemaPolicy.CREATE_IF_NECESSARY, uma configuração explícita atualiza os metadados armazenados em um esquema gerenciado atualizado existente, mas não atualiza as datas de expiração existentes; a omissão mantém a definição existente. Se uma configuração explícita deixardefault_ttl_daysoumax_ttl_daysemNOT_SET_MARKER, o SDK resolverá esse atributo com seu valor padrão (None) antes de comparar ou armazenar metadados de esquema. Escolha essa configuração com base nas informações esperadas armazenadas em registros, por que o aplicativo a retém e quaisquer compromissos de retenção de aplicativos ou regulatórios.
- store
Aviso: SchemaPolicy.CREATE_IF_NECESSARY pode ser mais caro do que a inicialização normal do cliente porque pode aplicar DDL de esquema gerenciado e regravações de dados de melhor esforço antes que a inicialização seja bem-sucedida. Planeje a primeira abertura de um esquema gerenciado mais antigo como uma operação de migração ou manutenção quando esse esquema pode conter muitas linhas.
Se a configuração do esquema precisar criar o job de expurgação de registro expirado gerenciado, mas o usuário do banco de dados não tiver o privilégio scheduler-job, a inicialização avisará e continuará. As mensagens e memórias expiradas permanecem ocultas de leituras e pesquisas, mas elas não são expurgadas fisicamente até que o job seja criado por um usuário com o privilégio CREATE JOB ou um scheduler equivalente.
Quando o SchemaPolicy.CREATE_IF_NECESSARY cria pela primeira vez um índice híbrido gerenciado em um esquema existente, o sistema Oracle verifica o texto de pesquisa armazenado e cria o estado de índice híbrido gerenciado com base no modelo configurado no banco de dados. A inicialização do cliente aguarda a conclusão desse DDL, portanto, planeje o primeiro upgrade híbrido como uma operação de migração ou manutenção para grandes esquemas. SearchIndexSyncMode controla a manutenção contínua após a existência do índice; ele não torna a primeira criação de índice assíncrona.
- Eleva: ValueError – Se for fornecida uma configuração de armazenamento em conflito, como especificar
storeeconnection, opções específicas do BD sem uma conexão de BD ou omitirstoreeconnection. - Parâmetros:
- loja
OracleMemoryStore - conexão
object - embedder
IEmbedder | str - llm
ILlm - memory_extraction_config
MemoryExtractionConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - estratégia_de_pesquisa
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig
- loja
Exemplos de
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),
)
Use um modelo de incorporação no BD para explorar a pesquisa de índice híbrido da 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
Adicionar um registro de perfil de agente à loja.
- Parâmetros:
- agent_id
str– Identificador do agente. - informações
str– Informações de formato livre sobre o agente. - metadados
dict[str, Any] | None– Mapeamento de metadados opcional armazenado na linha de perfil do agente.
- agent_id
- Retorna: Identificador do perfil do agente armazenado.
- Tipo de retorno: str
Observações
Os registros de perfil do agente são armazenados no armazenamento no nível do cliente e não têm escopo intencional. O identificador de registro retornado é o mesmo identificador público que o aplicativo usa como agent_id.
Exemplos de
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
Adicione uma memória no sistema de memória, atribuída ao usuário, agente e thread indicados.
- Parâmetros:
- content
str– Conteúdo da memória a ser persistido. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– Categoria de memória a ser armazenada. Os valores suportados são"memory","fact","guideline"e"preference". Quando omitido, o conteúdo é armazenado como um"memory"geral. - user_id
str– Identificadores de escopo opcionais associados à memória armazenada. - agent_id
str– Identificadores de escopo opcionais associados à memória armazenada. - thread_id
str– Identificadores de escopo opcionais associados à memória armazenada. - memory_id
str– Identificador estável fornecido pelo chamador opcional para esta linha de memória. - metadados
dict[str, Any] | None– Metadados opcionais para persistir com a memória armazenada. - timestamp
str | None– Timestamp opcional para salvar essa memória. Representa quando a memória foi criada. Quando omitido ouNone, o armazenamento usa a hora atual. Quandottl_anchoréTimeToLiveAnchor.TIMESTAMP, os timestamps ISO-8601 sem um fuso horário são tratados como UTC. - ttl_days
int | None– Duração opcional do tempo de vida útil em dias. Omita esse argumento para usar a duração de tempo de vida padrão do esquema. InformeNonepara usarMemoryRetentionConfig.max_ttl_daysquando a configuração de retenção definir uma, ou para armazenar uma memória que não está expirando quando não estiver. Os valores acima deMemoryRetentionConfig.max_ttl_dayssão limitados a esse máximo com uma advertência. - ttl_anchor
TimeToLiveAnchor– Âncora de tempo de vida opcional. UseTimeToLiveAnchor.CREATED_ATpara o horário de criação do banco de dados ouTimeToLiveAnchor.TIMESTAMPpara o timestamp da memória. Os timestamps ISO-8601 sem fuso horário são tratados como UTC. - **store_kwargs (Qualquer) – Opções de gravação específicas da loja encaminhadas para o armazenamento de apoio.
- content
- Retorna: Identificador do registro de memória inserido.
- Tipo de retorno: str
Exemplos de
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étodo add_memory_async (assíncrono)
Adicione assincronamente um registro de memória ao cliente.
- Parâmetros:
- content
str– Conteúdo de texto a ser armazenado como memória. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker– Categoria de memória a ser armazenada. Os valores suportados são"memory","fact","guideline"e"preference". Quando omitido, o conteúdo é armazenado como um"memory"geral. - user_id
str– Identificador de usuário opcional a ser associado à memória. - agent_id
str– Identificador de agente opcional a ser associado à memória. - thread_id
str– Identificador de thread opcional a ser associado à memória. - memory_id
str– Identificador estável fornecido pelo chamador opcional. Quando omitidas, as lojas geram uma. - metadados
dict[str, Any] | None– Metadados opcionais para persistir com a linha da memória. - timestamp
str | None– Timestamp opcional para salvar essa memória. Representa quando a memória foi criada. Quando omitido ouNone, o armazenamento usa a hora atual. - ttl_days
int | None– Duração opcional do tempo de vida útil em dias. Omita esse argumento para usar a duração de tempo de vida padrão do esquema. InformeNonepara armazenar uma memória que não expira. - ttl_anchor
TimeToLiveAnchor– Âncora de tempo de vida opcional. UseTimeToLiveAnchor.CREATED_ATpara o horário de criação do banco de dados ouTimeToLiveAnchor.TIMESTAMPpara o timestamp da memória. - **store_kwargs (Qualquer) – Opções de gravação específicas de implementação encaminhadas para o armazenamento de apoio.
- content
- Retorna: Identificador do registro de memória inserido.
- Tipo de retorno: str
método add_user
Adicionar um registro de perfil de usuário à loja.
- Parâmetros:
- user_id
str– Identificador do usuário. - informações
str– Informações de formato livre sobre o usuário. - metadados
dict[str, Any] | None– Mapeamento de metadados opcional armazenado na linha do perfil do usuário.
- user_id
- Retorna: Identificador do perfil do usuário armazenado.
- Tipo de retorno: str
Observações
Os registros de perfil do usuário são armazenados no armazenamento no nível do cliente e não têm escopo intencional. O identificador de registro retornado é o mesmo identificador público que o aplicativo usa como user_id.
Exemplos de
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
Feche o componente de memória do agente.
O fechamento para de aceitar novo trabalho de extração em segundo plano e aguarda a extração de memória em segundo plano pendente para concluir até o timeout configurado. Se esse timeout expirar, o close() retornará mesmo que algum trabalho de extração em segundo plano ainda esteja inacabado. O método é idempotente.
- Parâmetros: timeout
float | None– Número máximo opcional de segundos para aguardar a conclusão do trabalho de extração em segundo plano aceito. Assume300como padrão. InformeNonepara aguardar indefinidamente. - Tipo de retorno: Nenhum
Exemplos de
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
método close_async (assíncrono)
Feche assincronamente o componente de memória do agente.
Este método segue o mesmo comportamento de shutdown que close(). Se o tempo limite expirar, ele poderá retornar enquanto o trabalho de extração em segundo plano ainda estiver em execução.
- Parâmetros: timeout
float | None– Número máximo opcional de segundos para aguardar a conclusão do trabalho de extração em segundo plano aceito. Assume300como padrão. InformeNonepara aguardar indefinidamente. - Tipo de retorno: Nenhum
Exemplos de
await client.close_async()
método create_thread
Crie e registre um thread.
- Parâmetros:
- thread_id
str– Identificador de thread. Se omitido, um novo é gerado. - user_id
str– Identificador do usuário anexado a este registro de thread. Se omitido, um novo é gerado. - agent_id
str– Identificador do agente anexado a este registro de thread. Se omitido, um novo é gerado. - metadata
dict[str, Any] | None– Metadados opcionais semelhantes a JSON persistidos com o thread de conversa. - LLM
ILlm– Substituição de LLM opcional para este thread. Se for omitido, o LLM no nível do cliente configurado no momento da construção será usado. Por padrão, o cliente ou o thread deve fornecer um LLM para que a extração automática de memória possa ser executada. Definamemory_extraction_config=MemoryExtractionConfig(extract_memories=False)aqui ou no cliente para não aceitar esse requisito. - max_message_token_length
int– tamanho máximo da mensagem de tempo de resposta antes do truncamento ou do resumo durante a extração da memória e atualizações de resumo do contexto. O conteúdo da mensagem armazenada permanece inalterado. Quando omitido, o padrão é tokens15_000. - message_shortening_input_token_limit
int– Tamanho máximo, em tokens, do trecho de mensagem enviado ao LLM ao encurtar cópias de mensagens de tempo imediato de grande porte. Quando omitido, o padrão é tokens30_000. - memory_extraction_config
MemoryExtractionConfig– Configuração de extração de memória por thread opcional. Os campos omitidos herdam do componente de memória do agente. A configuração resolvida é armazenada com o thread para que carregamentos posteriores preservem o comportamento de tempo de criação. - context_card_token_limit
int– Orçamento máximo de token de entrada para o prompt LLM usado para criar a lista de tópicos e resumos incluídos no cartão de contexto. Quando omitido, o padrão é100_000. - context_card_type_search_concurrency
int– Número máximo de pesquisas de registro semelhantes à memória a serem executadas simultaneamente ao criar um cartão de contexto commin_relevant_results_by_type. Quando omitido, o padrão é5. -
extract_memories
bool–Substituição opcional por thread para extração automática de memória. Quando
True, esse thread requer um LLM para que a extração automática possa ser executada. Defina comoFalsepara desativar a extração automática deste thread e permitir a operação sem um LLM. Quando omitida, a definiçãoextract_memoriesno nível do cliente é usada.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_window
int–Número de mensagens recentes a serem incluídas durante a extração de memória. Defina como
-1para executar uma extração por chamadaadd_messagesusando o batch completo de mensagens recém-adicionadas. Quando omitido, o padrão é-1.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
context_summary_update_frequency
int–Frequência de atualizações de resumo do contexto. Defina como
-1para executar uma atualização de resumo por chamadaadd_messagesusando o batch completo de mensagens recém-adicionadas. Quando omitido, o padrão é-1.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_frequency
int–Frequência de atualizações de extração de memória. Defina como
-1para executar uma extração por chamadaadd_messagesusando o batch completo de mensagens recém-adicionadas. Quando omitido, o padrão é-1.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_token_limit
int–Tamanho máximo, em tokens, dos prompts do LLM usados para extração de memória e execução de atualizações resumidas. Quando omitido, o padrão é
100_000.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_custom_instructions
str–Instruções personalizadas opcionais anexadas ao prompt do sistema de extração de memória para este thread. Quando fornecido, o valor resolvido é persistido com a configuração de runtime do thread.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Substituição opcional por thread para metadados copiados de mensagens de origem em memórias extraídas automaticamente.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
enable_context_summary
bool–Se deve manter um resumo de contexto em execução para este thread.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. - **kwargs (Qualquer um) – Opções de threads adicionais específicas da implementação.
- thread_id
- Retorna: Uma instância
OracleThread. - Tipo da devolução: OracleThread
- Gera: ValueError – Se nenhum LLM estiver disponível para extração automática de memória e o thread e o cliente não tiverem sido configurados com
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Exemplos de
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
Excluir um registro de perfil do agente por identificador.
- Parâmetros:
- agent_id
str– Identificador do agente cujo perfil deve ser removido. - cascade
bool– QuandoTrue(padrão), também exclua registros com escopo para esse agente. Isso inclui a exclusão de threads próprios, as mensagens e registros semelhantes à memória removidos com esses threads e quaisquer registros diretamente no escopo do agente, como mensagens, memórias, diretrizes, fatos ou preferências. Essa limpeza com escopo ainda é executada quando a linha agente-perfil correspondente já está ausente. Defina comoFalsepara remover somente o registro do perfil.
- agent_id
- Retorna: Número de linhas de perfil do agente excluídas (
0ou1). Ainda pode ser0quando linhas com escopo foram removidas durante a limpeza em cascata. - Tipo de retorno: int
- Gera: TimeoutError – Gerado quando a extração em segundo plano aceita anteriormente para threads de propriedade já conhecidos não é concluída antes do tempo limite de espera de exclusão interna.
Observações
As exclusões em cascata são planejadas e executadas dentro do armazenamento de apoio para que a exclusão do perfil e todas as exclusões filho com escopo ocorram em uma operação de armazenamento. Antes das execuções de exclusão em cascata, esse método aguarda a extração em segundo plano anterior já aceita para os threads próprios conhecidos nesse momento por meio desse componente de memória do agente. Ele não aguarda o trabalho aceito após o início da espera ou o trabalho iniciado por outro componente ou processo de memória do agente. Não há suporte para o uso simultâneo no escopo do ator enquanto a exclusão está em andamento.
Exemplos de
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
Excluir um registro semelhante à memória (por exemplo, uma memória, um fato, uma preferência ou uma diretriz) por identificador.
- Parâmetros: memory_id
str– Identificador de memória. O identificador pode se referir a um registromemory,guideline,factoupreferencearmazenado. - Retorna: Número de linhas semelhantes à memória excluídas (
0ou1). - Tipo de retorno: int
Exemplos de
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étodo delete_memory_async (assíncrono)
Exclua de forma assíncrona um registro semelhante à memória (por exemplo, uma memória, um fato, uma preferência ou uma diretriz) por identificador.
- Parâmetros: memory_id
str– Identificador do registro semelhante à memória a ser removido. - Retorna: Número de registros semelhantes à memória excluídos.
- Tipo de retorno: int
método delete_thread
Exclua todos os registros associados a um identificador de thread.
- Parâmetros: thread_id
str– Identificador de thread a ser excluído. - Retorna: Número de threads de conversa excluídos (
0ou1). - Tipo de retorno: int
- Gera: TimeoutError – Gerado quando a extração em segundo plano aceita anteriormente para este thread não é concluída antes do tempo de espera de exclusão interna.
Observações
Use esta operação quando precisar de remoção completa de retenção de um thread. O armazenamento de suporte exclui o thread junto com mensagens com escopo de thread associadas, memórias duráveis e dados de recuperação gerenciados. Isso difere de OracleThread.delete_message(), que remove apenas o registro de mensagem bruta e não faz cascata para memórias derivadas criadas a partir dessa mensagem. Antes de excluir o thread, este método aguarda a extração em segundo plano anterior já aceita para esse thread por meio deste componente de memória do agente. Ele não aguarda o trabalho em segundo plano aceito após o início da espera ou o trabalho iniciado por outro componente ou processo de memória do agente. O uso simultâneo do mesmo thread enquanto a exclusão está em andamento não é suportado.
Exemplos de
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
Excluir um registro de perfil de usuário por identificador.
- Parâmetros:
- user_id
str– Identificador do usuário cujo perfil deve ser removido. - cascade
bool– QuandoTrue(padrão), também exclui registros com escopo para esse usuário. Isso inclui a exclusão de threads próprios, as mensagens e registros semelhantes à memória removidos com esses threads e quaisquer registros diretamente no escopo do usuário restantes, como mensagens, memórias, diretrizes, fatos ou preferências. Essa limpeza com escopo ainda é executada quando a linha de perfil do usuário correspondente já está ausente. Defina comoFalsepara remover somente o registro do perfil.
- user_id
- Retorna: Número de linhas de perfil do usuário excluídas (
0ou1). Ainda pode ser0quando linhas com escopo foram removidas durante a limpeza em cascata. - Tipo de retorno: int
- Gera: TimeoutError – Gerado quando a extração em segundo plano aceita anteriormente para threads de propriedade já conhecidos não é concluída antes do tempo limite de espera de exclusão interna.
Observações
As exclusões em cascata são planejadas e executadas dentro do armazenamento de apoio para que a exclusão do perfil e todas as exclusões filho com escopo ocorram em uma operação de armazenamento. Antes das execuções de exclusão em cascata, esse método aguarda a extração em segundo plano anterior já aceita para os threads próprios conhecidos nesse momento por meio desse componente de memória do agente. Ele não aguarda o trabalho aceito após o início da espera ou o trabalho iniciado por outro componente ou processo de memória do agente. Não há suporte para o uso simultâneo no escopo do ator enquanto a exclusão está em andamento.
Exemplos de
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
Recupera um thread criado anteriormente.
- Parâmetros:
- thread_id
str– Identificador usado ao criar o thread. - LLM
ILlm– Substituição de LLM opcional para o thread reaberto. Quando omitido, o LLM no nível do cliente configurado no momento da construção é usado. - max_message_token_length
int– Substituição opcional para o tamanho máximo da mensagem de tempo de resposta antes do truncamento ou resumo durante a extração de memória e atualizações de resumo de contexto. O conteúdo da mensagem armazenada permanece inalterado. - message_shortening_input_token_limit
int– Substituição opcional para o tamanho máximo, em tokens, do trecho de mensagem enviado ao LLM ao encurtar cópias de mensagens de tempo imediato de grande porte. - memory_extraction_config
MemoryExtractionConfig– Configuração de extração agrupada opcional para a instânciaOracleThreadretornada. Os campos omitidos herdam da configuração do thread armazenado e do componente de memória do agente. A substituição só se aplica à instânciaOracleThreadretornada e não é gravada de volta na configuração do thread de conversa armazenado. - context_card_token_limit
int– Substituição opcional da instânciaOracleThreadretornada. Ela define o orçamento do token de entrada do prompt do LLM usado para criar a lista de resumo e tópico incluída no cartão de contexto. - context_card_type_search_concurrency
int– Substituição opcional da instânciaOracleThreadretornada. Ele define o número de pesquisas de registro semelhantes à memória a serem executadas simultaneamente ao criar um cartão de contexto commin_relevant_results_by_type. -
extract_memories
bool–Substituição opcional para extração automática de memória no thread reaberto. Quando omitida, a definição
extract_memoriesno nível do cliente é usada.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_window
int–Substituição opcional para o número de mensagens recentes usadas durante a extração de memória.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
context_summary_update_frequency
int–Substituição opcional para a frequência de atualizações de resumo de contexto.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_frequency
int–Substituição opcional para a frequência de atualizações de extração de memória.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_token_limit
int–Substituição opcional para o tamanho máximo, em tokens, dos prompts do LLM usados para extração de memória e execução de atualizações resumidas.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Substituição opcional para instruções de extração de memória personalizada. Ao especificar
None, você limpa instruções personalizadas no nível do thread para a instânciaOracleThreadretornada sem atualizar a configuração do thread de conversa armazenado; um padrão no nível do cliente ainda se aplica quando configurado.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Substituição opcional de metadados copiados de mensagens de origem para memórias extraídas automaticamente. A substituição só se aplica à instância
OracleThreadretornada.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
enable_context_summary
bool–Substituição opcional para saber se o thread reaberto deve manter um resumo de contexto em execução.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config.
- thread_id
- Retorna: Uma instância
OracleThreadreconstruída a partir de metadados de armazenamento. - Tipo da devolução: OracleThread
- Aumenta:
- KeyError – Se o id do thread for desconhecido para esta instância do cliente.
- ValueError – Se nenhum LLM estiver disponível para extração automática de memória e o cliente não tiver sido configurado com
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Observações
As substituições explícitas por chamada têm precedência. Quando as substituições de runtime são omitidas, os threads reabertos usam a configuração de runtime persistente quando disponível antes de voltar aos padrões do SDK.
Exemplos de
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
Pesquise de forma síncrona registros relevantes para uma consulta.
- Parâmetros:
- query
str– String de consulta em linguagem natural. - user_id
str | None– Filtro de identificador de usuário. As pesquisas do cliente OracleAgentMemory exigem um escopo de usuário explícito, a menos quescopeseja fornecido com um. Informe umuser_idconcreto para direcionar esse usuário ou informeNonepara direcionar somente registros de usuário sem escopo. - agent_id
str | None– Filtro de identificador de agente opcional. Ignorado quandoscopeé fornecido. - thread_id
str | None– Filtro de identificador de thread opcional. Ignorado quandoscopeé fornecido. - exact_user_match
bool– Se a correspondência do usuário deve ser rigorosa. As pesquisas do cliente OracleAgentMemory exigem correspondência exata do usuário e rejeitamFalse. Ignorado quandoscopeé fornecido. - exact_agent_match
bool– Se a correspondência de agente deve ser rigorosa. Ignorado quandoscopeé fornecido. - exact_thread_match
bool– Se a correspondência de threads deve ser rigorosa. Ignorado quandoscopeé fornecido. - max_results
int– Número máxima opcional de resultados a retornar. Quando fornecido, deve ser pelo menos1. A omissão desse argumento usa o valor padrão de10. Este é um limite superior: a chamada pode retornar menos demax_resultsresultados quando os filtros são muito restritivos, quando há menos registros correspondentes não expirados ou por causa do comportamento de pesquisa específico da implementação. - record_types
list[str]– Lista opcional de tipos de registro a incluir, como"memory"ou"message". -
metadata_filter
dict[str, Any] | None–Mapeamento de filtro de metadados opcional usado como um filtro adicional após a filtragem de escopo e tipo de registro. As entradas no
metadata_filtersão combinadas com a semântica AND. As entradas cujo valor não é um dicionário de operador de nível de campo usam semântica de correspondência exata: a chave solicitada deve existir nos metadados de registro armazenados. Os dicionários aninhados correspondem recursivamente a objetos de metadados aninhados. Os valores escalares e de lista devem corresponder exatamente; a ordem e o tamanho da lista também devem corresponder. Omita esse argumento ou passeNonepara pesquisar sem filtragem de metadados. Os exemplos incluemmetadata_filter={"source": "profile_import"}para um campo escalar,metadata_filter={"prefs": {"category": "travel"}}para um campo aninhado emetadata_filter={"tags": ["survey", "travel"]}para uma correspondência de lista exata. Combine condições para exigir todas elas:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Para testar a associação de array, use um dicionário do operador no nível do campo.
"$array_contains"corresponde a um valor ou a todos os valores em uma lista."$array_contains_any"corresponde a pelo menos um valor de uma lista."$not"nega outra expressão no nível do campo no mesmo campo, incluindo um dicionário do operador ou um valor bruto de correspondência exata. As expressões negativas correspondem quando a expressão positiva falharia, incluindo campos ausentes; a associação de matriz negada também corresponde a campos que não são de matriz:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - escopo
SearchScope– Escopo de pesquisa pré-criado opcional. Forneçascopeou o identificador explícito e os argumentos de correspondência exata, não ambos. As pesquisas do cliente OracleAgentMemory exigem que o escopo resolvido inclua umuser_idexplícito comexact_user_match=True. Useuser_id=Nonepara direcionar somente registros de usuário sem escopo.
- query
- Devoluções: resultados da pesquisa ordenados por relevância decrescente. A lista pode conter menos de
max_resultsentradas. - Tipo de retorno: list[SearchResult]
- Gera: ValueError – Se
scopefor combinado com identificador explícito ou argumentos de correspondência exata, semax_resultsfor menor que1, semetadata_filternão for um dicionário nemNone, ou se a implementação rejeitar o escopo de pesquisa do cliente resolvido. As pesquisas do cliente OracleAgentMemory rejeitam o escopo omitido do usuário e rejeitamexact_user_match=False.
Observações
Os valores explícitos do escopo None ainda seguem as regras de correspondência exata resolvidas: exact_*_match=False deixa essa dimensão sem restrições, enquanto exact_*_match=True corresponde apenas a registros sem escopo nessa dimensão.
método search_async (assíncrono)
Pesquise registros relevantes para uma consulta de forma assíncrona.
- Parâmetros:
- query
str– String de consulta em linguagem natural. - user_id
str | None– Filtro de identificador de usuário. As pesquisas do cliente OracleAgentMemory exigem um escopo de usuário explícito, a menos quescopeseja fornecido com um. Informe umuser_idconcreto para direcionar esse usuário ou informeNonepara direcionar somente registros de usuário sem escopo. - agent_id
str | None– Filtro de identificador de agente opcional. Ignorado quandoscopeé fornecido. - thread_id
str | None– Filtro de identificador de thread opcional. Ignorado quandoscopeé fornecido. - exact_user_match
bool– Se a correspondência do usuário deve ser rigorosa. As pesquisas do cliente OracleAgentMemory exigem correspondência exata do usuário e rejeitamFalse. Ignorado quandoscopeé fornecido. - exact_agent_match
bool– Se a correspondência de agente deve ser rigorosa. Ignorado quandoscopeé fornecido. - exact_thread_match
bool– Se a correspondência de threads deve ser rigorosa. Ignorado quandoscopeé fornecido. - max_results
int– Número máxima opcional de resultados a retornar. Quando fornecido, deve ser pelo menos1. A omissão desse argumento usa o valor padrão de10. - record_types
list[str]– Lista opcional de tipos de registro a incluir, como"memory"ou"message". -
metadata_filter
dict[str, Any] | None–Mapeamento de filtro de metadados opcional usado como um filtro adicional após a filtragem de escopo e tipo de registro. As entradas no
metadata_filtersão combinadas com a semântica AND. As entradas cujo valor não é um dicionário de operador de nível de campo usam semântica de correspondência exata: a chave solicitada deve existir nos metadados de registro armazenados. Os dicionários aninhados correspondem recursivamente a objetos de metadados aninhados. Os valores escalares e de lista devem corresponder exatamente; a ordem e o tamanho da lista também devem corresponder. Omita esse argumento ou passeNonepara pesquisar sem filtragem de metadados. Os exemplos incluemmetadata_filter={"source": "profile_import"}para um campo escalar,metadata_filter={"prefs": {"category": "travel"}}para um campo aninhado emetadata_filter={"tags": ["survey", "travel"]}para uma correspondência de lista exata. Combine condições para exigir todas elas:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Para testar a associação de array, use um dicionário do operador no nível do campo.
"$array_contains"corresponde a um valor ou a todos os valores em uma lista."$array_contains_any"corresponde a pelo menos um valor de uma lista."$not"nega outra expressão no nível do campo no mesmo campo, incluindo um dicionário do operador ou um valor bruto de correspondência exata. As expressões negativas correspondem quando a expressão positiva falharia, incluindo campos ausentes; a associação de matriz negada também corresponde a campos que não são de matriz:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - escopo
SearchScope– Escopo de pesquisa pré-criado opcional. Forneçascopeou o identificador explícito e os argumentos de correspondência exata, não ambos. As pesquisas do cliente OracleAgentMemory exigem que o escopo resolvido inclua umuser_idexplícito comexact_user_match=True. Useuser_id=Nonepara direcionar somente registros de usuário sem escopo.
- query
- Devoluções: resultados da pesquisa ordenados por relevância decrescente.
- Tipo de retorno: list[SearchResult]
- Gera: ValueError – Se
scopefor combinado com identificador explícito ou argumentos de correspondência exata, semax_resultsfor menor que1, semetadata_filternão for um dicionário nemNone, ou se a implementação rejeitar o escopo de pesquisa do cliente resolvido. As pesquisas do cliente OracleAgentMemory rejeitam o escopo omitido do usuário e rejeitamexact_user_match=False.
Observações
Os valores explícitos do escopo None ainda seguem as regras de correspondência exata resolvidas: exact_*_match=False deixa essa dimensão sem restrições, enquanto exact_*_match=True corresponde apenas a registros sem escopo nessa dimensão.
método update_memory
Atualizar um registro de memória armazenada por identificador.
- Parâmetros:
- memory_id
str– Identificador do registro semelhante à memória a ser atualizado. - content
str– Conteúdo de substituição opcional. Forneça uma string para substituir o conteúdo armazenado. Quando omitido, o conteúdo armazenado é preservado. Não há suporte para informarNone; omitacontentpara manter o valor atual ou usedelete_memory()para remover o registro. - metadata
dict[str, Any] | None– Mapeamento de metadados de substituição opcional. Quando omitidos, os metadados armazenados são preservados. Quando fornecido, ele substitui o objeto de metadados armazenado; essa API não mescla metadados profundamente. - timestamp
str | None– Novo timestamp opcional para essa memória. Representa quando a memória foi criada. Quando omitido, o timestamp armazenado é preservado. InformeNonepara limpar o timestamp salvo e usar o horário em que o registro foi criado no armazenamento. Quandottl_anchoréTimeToLiveAnchor.TIMESTAMP, os timestamps ISO-8601 sem um fuso horário são tratados como UTC. - ttl_days
int | None– Atualização de expiração opcional em dias. Omita este argumento para deixar a expiração atual inalterada, a menos quettl_anchorseja fornecido. InformeNonepara usarMemoryRetentionConfig.max_ttl_daysquando a configuração de retenção definir uma, ou para limpar a expiração quando não o fizer. Os valores acima deMemoryRetentionConfig.max_ttl_dayssão limitados a esse máximo com uma advertência. As memórias expiradas estão indisponíveis para esta API do cliente e não podem ser atualizadas. - ttl_anchor
TimeToLiveAnchor– Âncora opcional de tempo de vida útil para uma atualização de expiração. UseTimeToLiveAnchor.CREATED_ATpara o horário de criação da memória ouTimeToLiveAnchor.TIMESTAMPpara otimestampde substituição fornecido na mesma atualização ou o timestamp de evento armazenado quandotimestampfor omitido. O fornecimento dettl_anchorsemttl_daysusa a duração de tempo de vida padrão do esquema. Quando ottl_anchoré omitido durante uma atualização, o cliente usaTimeToLiveAnchor.CREATED_AT. Os timestamps ISO-8601 sem fuso horário são tratados como UTC. - **kwargs (Qualquer) – Argumentos de palavra-chave inesperados são rejeitados.
- memory_id
- Retorna: Identificador do registro semelhante à memória atualizado.
- Tipo de retorno: str
Observações
Os campos omitidos são preservados do registro armazenado. O escopo armazenado permanece inalterado. A substituição de metadados é uma substituição de objeto inteiro, não uma mesclagem JSON recursiva.
método update_memory_async (assíncrono)
Atualizar de forma assíncrona um registro semelhante a memória armazenada por identificador.
- Parâmetros:
- memory_id
str– Identificador do registro semelhante à memória a ser atualizado. - content
str– Conteúdo de substituição opcional. Forneça uma string para substituir o conteúdo armazenado. Quando omitido, o conteúdo armazenado é preservado. Não há suporte para informarNone; omitacontentpara manter o valor atual ou usedelete_memory()para remover o registro. - metadata
dict[str, Any] | None– Mapeamento de metadados de substituição opcional. Quando omitidos, os metadados armazenados são preservados. Quando fornecido, ele substitui o objeto de metadados armazenado; essa API não mescla metadados profundamente. - timestamp
str | None– Novo timestamp opcional para essa memória. Representa quando a memória foi criada. Quando omitido, o timestamp armazenado é preservado. InformeNonepara limpar o timestamp salvo e usar o horário em que o registro foi criado no armazenamento. - ttl_days
int | None– Atualização de expiração opcional em dias. Omita esse argumento junto comttl_anchorpara deixar a expiração atual inalterada. InformeNonepara limpar a expiração. - ttl_anchor
TimeToLiveAnchor– Âncora opcional de tempo de vida útil para uma atualização de expiração. UseTimeToLiveAnchor.CREATED_ATpara o horário de criação da memória ouTimeToLiveAnchor.TIMESTAMPpara otimestampde substituição fornecido na mesma atualização ou o timestamp de evento armazenado quandotimestampfor omitido. O fornecimento dettl_anchorsemttl_daysusa a duração de tempo de vida padrão do esquema. Quandottl_anchoré omitido durante uma atualização, os armazenamentos usamTimeToLiveAnchor.CREATED_AT. - **kwargs (Qualquer) – Argumentos de palavra-chave inesperados são rejeitados.
- memory_id
- Retorna: Identificador do registro semelhante à memória atualizado.
- Tipo de retorno: str
Observações
Os campos omitidos permanecem inalterados. As atualizações de escopo não são suportadas por esta API. A substituição de metadados é uma substituição de objeto inteiro, não uma mesclagem JSON recursiva.
método update_thread
Persistir metadados de thread e atualizações duráveis de configuração de runtime.
- Parâmetros:
- thread_id
str– Identificador do thread a ser atualizado. - metadados
dict[str, Any] | None– Atualização de metadados opcional para o thread de conversa. Quando omitidos, os metadados armazenados permanecem inalterados. A transmissão deNonelimpa explicitamente os metadados armazenados. Quando um mapeamento é fornecido, ele substitui o objeto de metadados armazenado. - LLM
ILlm– Substituição de LLM opcional para a instânciaOracleThreadretornada. Isso não é persistente, mas participa das mesmas regras de validação queget_threadecreate_thread. -
extract_memories
bool–Substituição durável opcional para extração automática de memória.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. - max_message_token_length
int– Substituição durável opcional para o tamanho máximo de mensagem de tempo de resposta usado durante a extração e o resumo. - message_shortening_input_token_limit
int– Substituição durável opcional para o tamanho máximo de trecho enviado ao LLM ao encurtar mensagens de grande porte. -
memory_extraction_window
int–Substituição durável opcional para o tamanho da janela de extração.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
context_summary_update_frequency
int–Substituição durável opcional para quantas mensagens anexadas acionam uma atualização de resumo de contexto.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_frequency
int–Substituição durável opcional para quantas mensagens anexadas acionam a extração automática de memória.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_token_limit
int–Substituição durável opcional para orçamentos de prompt de resumo de execução e extração.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. - context_card_token_limit
int– Substituição durável opcional para o orçamento de token de entrada do prompt do LLM usado para criar a lista de resumo e tópico incluída no cartão de contexto. -
enable_context_summary
bool–Substituição durável opcional para saber se os resumos de contexto em execução permanecem ativados.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Instruções personalizadas duráveis opcionais anexadas ao prompt do sistema de extração de memória. A aprovação de
Nonelimpa todas as instruções personalizadas no nível do thread armazenado; um padrão no nível do cliente ainda se aplica quando configurado.Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Substituição durável opcional para metadados copiados de mensagens de origem em memórias extraídas automaticamente.
Info: Obsoleto desde a versão 26.6.0: Este parâmetro estava obsoleto na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_extraction_config. - memory_extraction_config
MemoryExtractionConfig– Atualização de configuração de extração durável agrupada opcional. Os campos fornecidos são gravados na configuração do thread armazenado e usados por instânciasOracleThreadcarregadas posteriormente e jobs de extração em segundo plano posteriores. - **kwargs (Qualquer um) – Opções adicionais específicas de implementação.
OracleAgentMemoryatualmente rejeita argumentos de palavra-chave desconhecidos.
- thread_id
- Retorna: Instância
OracleThreadatualizada que reflete os metadados persistidos e a configuração de runtime. - Tipo da devolução: OracleThread
- Aumenta:
- KeyError – Se o id do thread for desconhecido para esta instância do cliente.
- ValueError – Se nenhum LLM estiver disponível para extração automática de memória após resolver a configuração de runtime efetiva.
Observações
A configuração de runtime é resolvida do thread de conversa armazenado mais as substituições explícitas especificadas para esta chamada, correspondendo à semântica get_thread antes de persistir o resultado. Os metadados omitidos e as atualizações de configuração de runtime são resolvidos com base em dados armazenados, não de qualquer instância OracleThread carregada anteriormente, e somente as atualizações de metadados fornecidas explicitamente ou as substituições duráveis de configuração de runtime são gravadas de volta. A substituição de metadados é uma substituição de objeto inteiro, não uma mesclagem JSON recursiva. A propriedade do thread não pode ser alterada por meio dessa API; portanto, user_id e agent_id permanecem inalterados. O estado de tempo de execução mutável, como contadores de extração, é deixado intocado.
Exemplos de
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
Aguarde a extração anterior da memória em segundo plano iniciada por este cliente.
Este método aguarda a extração em segundo plano já iniciada por meio desta instância do OracleAgentMemory, em todos os threads pertencentes a este componente de memória do agente. Ele não aguarda o início da extração após o início dessa espera, a extração iniciada por outro componente de memória do agente ou a extração em execução em outro processo. As falhas de extração contam como concluídas para esta espera.
- Parâmetros: timeout
float | None– Número máximo opcional de segundos para aguardar. Assume300como padrão. InformeNonepara aguardar até que este componente de memória do agente não tenha extração pendente. - Gera: TimeoutError – Gerado quando o timeout expira antes da conclusão da extração em segundo plano anterior.
- Tipo de retorno: Nenhum
Exemplos de
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
método wait_for_memory_extraction_async (assíncrono)
Aguarde assincronamente a extração de memória em segundo plano anterior.
Este método segue o mesmo comportamento de wait_for_memory_extraction().
- Parâmetros: timeout
float | None– Número máximo opcional de segundos para aguardar. Assume300como padrão. InformeNonepara aguardar indefinidamente. - Gera: TimeoutError – Gerado quando o timeout expira antes da conclusão da extração em segundo plano anterior.
- Tipo de retorno: Nenhum
Exemplos de
await client.wait_for_memory_extraction_async(timeout=10)
Extração de memória
classe oracleagentmemory.core.MemoryExtractionConfig
Bases: object
Configurações agrupadas para extração automática de memória.
Informe este objeto para OracleAgentMemory, create_thread, get_thread ou update_thread para configurar a extração automática. Os campos omitidos herdam da próxima configuração mais ampla. Por exemplo, um thread criado sem memory_extraction_frequency usa o padrão do componente de memória do agente, e o padrão do componente retorna ao padrão do SDK.
- Parâmetros:
- memory_extraction_window
int- Janela de mensagem recente usada para prompts de extração.-1significa que o prompt de extração usa somente as mensagens recém-adicionadas. Omita este campo para herdar o valor. - context_summary_update_frequency
int– Número de mensagens anexadas entre as atualizações de resumo de contexto em execução. Valores abaixo de0são atualizados após cada acréscimo. Omita este campo para herdar o valor. - memory_extraction_frequency
int– Número de mensagens anexadas entre as execuções de extração de memória. Valores abaixo da extração0após cada acréscimo. Omita este campo para herdar o valor. - memory_extraction_token_limit
int– Orçamento de token de entrada para prompts de extração e resumo. Os valores abaixo de1desativam o limite de orçamento do prompt. Omita este campo para herdar o valor. - extract_memories
bool– Se a extração automática de memória está ativada. Defina comoFalsepara desativar a extração automática e permitir a operação sem um LLM de extração. Omita este campo para herdar o valor. - enable_context_summary
bool– Se os prompts de extração mantêm e usam um resumo de contexto em execução. Omita este campo para herdar o valor. - memory_extraction_custom_instructions
str | None– Instruções do chamador opcionais anexadas ao prompt do sistema de extração. InformeNoneemupdate_threadpara limpar instruções armazenadas no nível do thread. Omita este campo para herdar o valor. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]– Controla metadados copiados de mensagens de origem em memórias extraídas.Truecopia todos os metadados de mensagem de origem,Falsenão copia nenhum e uma sequência copia apenas chaves de metadados de nível superior correspondentes. Omita este campo para herdar o valor. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode–MemoryExtractionMode.INLINEexecuta a extração automática antes de o método de gravação retornar.MemoryExtractionMode.BACKGROUNDretorna depois que a gravação bruta é bem-sucedida e o trabalho de extração devido é tentado em segundo plano. No modo de fundo, as memórias derivadas podem aparecer mais tarde, podem estar temporariamente obsoletas ou nunca podem ser escritas se o trabalho de fundo não puder ser concluído. Por exemplo,update_message()pode retornar antes que uma leitura posterior da memória reflita o conteúdo da mensagem atualizada. Omita este campo para herdar o valor. Quando nenhum valor mais amplo é configurado, o modo efetivo éINLINE. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– No modo de segundo plano, controla o que acontece quando a extração automática não pode ser enfileirada imediatamente. ODROPregistra uma advertência e continua sem aguardar.WAIT_THEN_DROPaguarda a capacidade da fila até o timeout configurado, em seguida, registra uma advertência e continua.WAIT_THEN_RAISEaguarda a capacidade da fila até o timeout configurado e, em seguida, geraTimeoutErrorapós a gravação bruta ser bem-sucedida. Omita este campo para herdar o valor. Quando nenhum valor mais amplo é configurado, o padrão efetivo éDROP. - background_extraction_queue_put_timeout_seconds
float– No modo de segundo plano, o número máximo de segundos de extração automática aguarda a capacidade da fila quandobackground_extraction_queue_full_behavioréWAIT_THEN_DROPouWAIT_THEN_RAISE. Omita este campo para herdar o valor. Quando nenhum valor mais amplo é configurado, o padrão efetivo é300.0segundos.
- memory_extraction_window
Exemplos de
from oracleagentmemory.core import MemoryExtractionConfig, MemoryExtractionMode
config = MemoryExtractionConfig(
extract_memories=True,
extraction_mode=MemoryExtractionMode.BACKGROUND,
)
classe oracleagentmemory.core.MemoryExtractionMode
Bases: str, Enum
Controla quando o trabalho de extração automática de memória é executado.
INLINE executa a extração automática antes que o método de gravação seja retornado. BACKGROUND retorna depois que a gravação bruta é bem-sucedida e o trabalho de extração devido é tentado em segundo plano. A extração em segundo plano é o melhor esforço: as memórias derivadas podem aparecer mais tarde ou podem nunca ser escritas se o trabalho em segundo plano não puder ser concluído.
PLANO DE FUNDO = 'CONTEXTO'
Retorne após a persistência de mensagem bruta e execute a extração de melhor esforço no trabalho em segundo plano.
EM LINHA = 'EM LINHA'
Execute a extração antes de o método de gravação retornar.
classe oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Bases: str, Enum
Controla o que acontece quando a extração em segundo plano não pode ser enfileirada no tempo.
ELIMINAR = 'ELIMINAR'
Registre um aviso e continue imediatamente quando a capacidade da fila estiver indisponível.
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
Aguarde a capacidade da fila até o timeout configurado, registre um aviso e continue.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
Aguarde a capacidade da fila até o timeout configurado e, em seguida, gere TimeoutError.