Memória do Agente
Esta página apresenta a implementação concreta do Oracle AI Agent Memory.
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. A exclusão no nível do cliente aguarda a extração em segundo plano anterior relevante: a exclusão do thread aguarda esse thread, a exclusão da memória aguarda o thread do destino armazenado quando presente e a exclusão do usuário ou agente aguarda os threads de propriedade conhecidos, quer a limpeza em cascata esteja ativada ou não. Essas esperas abrangem apenas o trabalho aceito pelo mesmo cliente antes do início da espera.
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. Em particular, um contexto de imagem omitido éDISABLED. - image_input_limit_config
ImageInputLimitConfig– Limites de solicitação de imagem raw-image e LLM no nível do cliente opcional. Os campos omitidos usam padrões SDK e são herdados por threads, a menos que um thread forneça uma substituição. A validação não pode ser desativada. - 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. Quandoschema_owneré definido, somenteSchemaPolicy.REQUIRE_EXISTINGé permitido. Isso impede a DDL do esquema gerenciado, incluindo criação de esquema, upgrades, recriação e primeira criação de índice híbrido; execute essas ações enquanto estiver conectado como o usuário do banco de dados proprietário semschema_owner. Ele não torna o cliente somente leitura: leituras e gravações normais de memória usam os privilégios de banco de dados concedidos pelo usuário da conexão. - 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. O armazenamento do BD o normaliza para letras maiúsculas, portanto, o uso de maiúsculas não cria uma identidade de armazenamento diferente. 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido na versão 26.6.0 e será removido na versão 27.1. Em vez disso, use
memory_store_id. - schema_owner
str– Proprietário do esquema opcional para um armazenamento de memória gerenciado existente. Omita esta opção para usar o esquema do usuário de conexão. Use-o quandoconnection— uma conexão de banco de dados bruta ou um pool de conexões — pertencer a um usuário de banco de dados de aplicativo que tenha concessões em tabelas pertencentes a outro usuário. Essa opção é apenas para acesso de runtime a um armazenamento de memória gerenciado já criado e requerSchemaPolicy.REQUIRE_EXISTING. Crie, faça upgrade ou recrie o armazenamento de memória gerenciado enquanto estiver conectado como proprietário do esquema e omita essa opção. Informe um identificador sem aspas; a entrada em minúsculas é normalizada para maiúsculas e os proprietários de esquema com distinção entre aspas não são suportados. Se você especificar umstorepré-configurado, configureschema_ownernesse armazenamento. ConcedaCREATE SESSIONe os privilégios de objeto necessários ao usuário do BD do aplicativo; consulte a seçãoDatabase Users and Privilegesdo guia de diagnóstico e solução de problemas para obter as concessões exatas. Como alternativa, exponha views de objeto gerenciado com o mesmo nome no esquema de runtime e omitaschema_owner; isso só é suportado paraSchemaPolicy.REQUIRE_EXISTING. - 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. Quandoschema_policy=SchemaPolicy.REQUIRE_EXISTINGe esse argumento são omitidos, o melhor esforço de armazenamento do banco de dados detecta o modo de pesquisa armazenado do esquema a partir de metadados gerenciados e usa esse modo quando disponível. - 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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. - search_config
MemorySearchConfig– Configuração de pesquisa no nível do cliente opcional herdada por threads novos e carregados. Quando omitido, as pesquisas usam uma configuração de pesquisa top-k fixa. - pruner_llm
ILlm– LLM opcional usado para ativar a remoção de resultados no nível do cliente. Quando definido, pesquisas diretas de clientes e pesquisas de thread herdadas usam a remoção com o modo de avaliaçãoFASTpor padrão. Os threads existentes com uma configuração de pesquisa armazenada mantêm essa configuração quando reaberta. Usesearch_config=PruningMemorySearchConfig(...)para personalizar o comportamento de remoção.pruner_llmnão pode ser combinado comsearch_config.
- 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 - image_input_limit_config
ImageInputLimitConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - table_name_prefix
str - schema_owner
str - estratégia_de_pesquisa
SearchStrategy - search_index_sync
SearchIndexSyncMode - extract_memories
bool - memory_extraction_custom_instructions
str - memory_retention_config
MemoryRetentionConfig - search_config
MemorySearchConfig - pruner_llm
ILlm
- loja
Exemplos
Para acessar um esquema criado por outro usuário do banco de dados, configure memory_rw_pool para o usuário do banco de dados do aplicativo e defina memory_schema_owner como o nome do banco de dados sem aspas do usuário proprietário.
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),
)
pruned_search_client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
pruner_llm=llm,
)
shared_client = OracleAgentMemory(
connection=memory_rw_pool,
embedder=embedder,
llm=llm,
schema_owner=memory_schema_owner,
)
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,
memory_store_id=memory_store_id,
)
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
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_agent_async (assíncrono)
Adicionar um registro de perfil de agente à loja de forma assíncrona.
- 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
))
'a1'
método add_image
Adicione um registro de imagem ao cliente.
- Parâmetros:
- image
bytes– Bytes de imagem para armazenar como uma imagem. - description
str | None– (Descrição opcional associada à imagem). Omita ou passeNonepara gerar um com o LLM configurado. - mime_type
ImageMimeType– tipo MIME da imagem. Os valores suportados são fornecidos peloImageMimeType. Quando omitido, o SDK detecta e valida o tipo dos bytes de imagem. Os tipos detectados suportados são PNG, JPEG e WEBP. - image_id
str– Identificador estável fornecido pelo chamador opcional. Quando omitido, um é gerado. - user_id
str | None– Proprietário do usuário opcional. Forneça pelo menos um dos itensuser_id,agent_idouthread_id; os três não podem serNone. - agent_id
str | None– Identificador de agente opcional a ser associado à imagem. - thread_id
str– Identificador de thread opcional a ser associado à imagem. - metadados
dict[str, Any] | None– Metadados opcionais para persistir com a linha da imagem. - timestamp
str | None– Timestamp de evento opcional para salvar essa imagem. Omita esse argumento ou informeNonepara armazenar um timestamp de eventoNULL. Quando a imagem é lida, seu horário de criação é retornado como o carimbo de data/hora efetivo. - 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 imagem 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 imagem. - **store_kwargs (Qualquer) – Opções de gravação específicas de implementação encaminhadas para o armazenamento de apoio.
- image
- Retorna: Identificador do registro de imagem inserido.
- Tipo de retorno: str
Exemplos
image_id = client.add_image(
b"image-bytes",
description="Image description",
mime_type=ImageMimeType.PNG,
image_id="img-1",
user_id="user-1",
)
image_id
'img-1'
método add_image_async (assíncrono)
Persistir uma imagem independente por meio do armazenamento configurado.
Quando o description é omitido ou o None, o LLM configurado gera uma legenda.
- Parâmetros:
- image
bytes– Bytes de imagem brutos para persistir. - description
str | None– Descrição ou legenda opcional. Omita-o para gerar uma legenda. - mime_type
ImageMimeType– Tipo MIME opcional usado para persistência de imagem e geração de legenda. Quando omitido, o SDK detecta e valida o tipo dos bytes de imagem. Os tipos detectados suportados são PNG, JPEG e WEBP. - image_id
str– Identificador opcional. Um é gerado quando omitido. - user_id
str | None– Identificadores de escopo do proprietário. Pelo menos um deve ser nãoNone. Quandothread_idé fornecido, sua propriedade de usuário e agente armazenada é autorizada; os valores de usuário e agente omitidos são herdados. - agent_id
str | None– Identificadores de escopo do proprietário. Pelo menos um deve ser nãoNone. Quandothread_idé fornecido, sua propriedade de usuário e agente armazenada é autorizada; os valores de usuário e agente omitidos são herdados. - thread_id
str– Identificadores de escopo do proprietário. Pelo menos um deve ser nãoNone. Quandothread_idé fornecido, sua propriedade de usuário e agente armazenada é autorizada; os valores de usuário e agente omitidos são herdados. - metadados
dict[str, Any] | None– Metadados opcionais armazenados com a imagem. - timestamp
str | None– Timestamp de evento opcional para salvar essa imagem. Omita esse argumento ou informeNonepara armazenar um timestamp de eventoNULL. Quando a imagem é lida, seu horário de criação é retornado como o carimbo de data/hora efetivo. - ttl_days
int | None– Configurações de expiração opcionais. - ttl_anchor
TimeToLiveAnchor– Configurações de expiração opcionais. - store_kwargs
Any– Opções adicionais específicas do armazenamento.
- image
- Retorna: O identificador de imagem persistente.
- Tipo de retorno: str
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. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - agent_id
str– Identificadores de escopo opcionais associados à memória armazenada. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - thread_id
str– Identificadores de escopo opcionais associados à memória armazenada. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - 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 de evento opcional para salvar essa memória. Omita esse argumento ou informeNonepara armazenar um timestamp de eventoNULL. Quando o registro é lido, seu horário de criação é retornado como o marcador de data/hora efetivo. 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. - status
RecordStatus– status do ciclo de vida inicial. Omita-o para armazenarRecordStatus.VALID. - autonomous_linking
bool– Se deve criar links dessa nova memória para memórias armazenadas relevantes usando o LLM do cliente. Omitido o ativa quando existe um LLM; passeFalsepara ignorar. A falha deixa a memória armazenada. - memory_id_to_link
str– Juntos, criar um link direcionado da nova memória para essa memória existente, incluindo um em outro escopo. Os escopos de usuário, agente e thread omitidos herdam desse destino. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker– Juntos, criam um link direcionado da nova memória para essa memória existente, incluindo uma em outro escopo. Os escopos de usuário, agente e thread omitidos herdam desse destino. - link_id
str– Identificador, timestamp e metadados opcionais para o link explícito. - link_timestamp
str | None– Identificador, timestamp e metadados opcionais para o link explícito. - link_metadata
dict[str, Any] | None– Identificador, timestamp e metadados opcionais para o link explícito. - **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
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 uma memória no sistema de memória de forma assíncrona.
- 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. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - agent_id
str– Identificadores de escopo opcionais associados à memória armazenada. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - thread_id
str– Identificadores de escopo opcionais associados à memória armazenada. Quandouser_idé omitido e a conexão do banco de dados transporta um contexto de segurança do usuário final, o armazenamento usa o nome de usuário desse contexto. - 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 de evento opcional para salvar essa memória. Omita esse argumento ou informeNonepara armazenar um timestamp de eventoNULL. Quando o registro é lido, seu horário de criação é retornado como o marcador de data/hora efetivo. 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. - status
RecordStatus– status do ciclo de vida inicial. Omita-o para armazenarRecordStatus.VALID. - autonomous_linking
bool– Se deve criar links dessa nova memória para memórias armazenadas relevantes usando o LLM do cliente. Omitido o ativa quando existe um LLM; passeFalsepara ignorar. A falha deixa a memória armazenada. - memory_id_to_link
str– Juntos, criar um link direcionado da nova memória para essa memória existente, incluindo um em outro escopo. Os escopos de usuário, agente e thread omitidos herdam desse destino. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker– Juntos, criam um link direcionado da nova memória para essa memória existente, incluindo uma em outro escopo. Os escopos de usuário, agente e thread omitidos herdam desse destino. - link_id
str– Identificador, timestamp e metadados opcionais para o link explícito. - link_timestamp
str | None– Identificador, timestamp e metadados opcionais para o link explícito. - link_metadata
dict[str, Any] | None– Identificador, timestamp e metadados opcionais para o link explícito. - **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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"User likes pizza", memory_id="mem-1"
))
memory_id
'mem-1'
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
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 add_user_async (assíncrono)
Adicionar um registro de perfil de usuário à loja de forma assíncrona.
- 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_user_async(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
))
'u1'
método close
Feche o componente de memória do agente.
O fechamento para de aceitar novos trabalhos em segundo plano, incluindo extração de memória e geração de descrição de imagem, e aguarda que o trabalho pendente seja concluído até o tempo limite configurado. Se esse timeout expirar, close() retornará mesmo que algum trabalho 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 em segundo plano aceito. Assume300como padrão. InformeNonepara aguardar indefinidamente. - Tipo de retorno: Nenhum
Exemplos
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 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 em segundo plano aceito. Assume300como padrão. InformeNonepara aguardar indefinidamente. - Tipo de retorno: Nenhum
Exemplos
import asyncio
asyncio.run(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 for omitido e a conexão do BD transportar um contexto de segurança do usuário final, o nome de usuário desse contexto será usado. Caso contrário, um novo identificador será 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 fornecidos substituem a configuração do cliente. O contexto de imagem omitido usa o valor do cliente e, em seguida,DISABLED. A configuração resolvida é armazenada com o thread para que carregamentos posteriores preservem o comportamento de tempo de criação. - image_input_limit_config
ImageInputLimitConfig– Limites de solicitação de imagem raw-image e LLM opcionais por thread. Os campos omitidos herdam da configuração do cliente. Os limites resolvidos são armazenados com o thread. - search_config
MemorySearchConfig– Configuração de pesquisa opcional para o thread. Quando omitida, a configuração no nível do cliente é usada. - 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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–Número de mensagens após o último resumo válido antes de atualizá-lo automaticamente. Quando a extração de memória está ativada, a verificação é posterior a cada extração devida, para que a atualização possa ocorrer posteriormente. Valores menores ou iguais à atualização
0em cada verificação. Quando omitido, o padrão é-1.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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
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 create_thread_async (assíncrono)
Crie e registre um thread de forma assíncrona.
- 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 for omitido e a conexão do BD transportar um contexto de segurança do usuário final, o nome de usuário desse contexto será usado. Caso contrário, um novo identificador será 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 fornecidos substituem a configuração do cliente. O contexto de imagem omitido usa o valor do cliente e, em seguida,DISABLED. A configuração resolvida é armazenada com o thread para que carregamentos posteriores preservem o comportamento de tempo de criação. - image_input_limit_config
ImageInputLimitConfig– Limites de solicitação de imagem raw-image e LLM opcionais por thread. Os campos omitidos herdam da configuração do cliente. Os limites resolvidos são armazenados com o thread. - search_config
MemorySearchConfig– Configuração de pesquisa opcional para o thread. Quando omitida, a configuração no nível do cliente é usada. - 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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–Número de mensagens após o último resumo válido antes de atualizá-lo automaticamente. Quando a extração de memória está ativada, a verificação é posterior a cada extração devida, para que a atualização possa ocorrer posteriormente. Valores menores ou iguais à atualização
0em cada verificação. Quando omitido, o padrão é-1.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
thread = asyncio.run(client.create_thread_async(
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
Antes de excluir o perfil, esse método aguarda até 300 segundos para a extração em segundo plano anterior já aceita para threads próprios conhecidos por meio desse componente de memória do agente. Esta espera se aplica se a limpeza em cascata está ou não ativada. A limpeza em cascata é planejada e executada dentro do armazenamento de apoio como uma operação. O método 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
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_agent_async (assíncrono)
Excluir um registro de perfil do agente por identificador de forma assíncrona.
- 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 sem excluir o perfil quando a extração em segundo plano aceita anteriormente para threads próprios conhecidos não termina em 300 segundos.
Observações
Este método segue o comportamento de espera e simultaneidade de extração em segundo plano documentado por delete_agent().
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_agent_async("a-delete", "Support assistant"))
'a-delete'
asyncio.run(client.delete_agent_async("a-delete"))
1
método delete_image
Excluir um registro de imagem por identificador.
- Parâmetros: image_id
str– O identificador do registro de imagem a ser removido - Retorna: Número de registros de imagem excluídos.
- Tipo de retorno: int
- Eleva: ValueError – Se a imagem estiver anexada a uma mensagem. Exclua ou atualize a mensagem pai.
método delete_image_async (assíncrono)
Exclua uma imagem independente por meio do armazenamento configurado.
- Parâmetros: image_id
str– O identificador da imagem a ser excluída. - Retorna:
1quando excluído; caso contrário,0quando não houver imagem correspondente. - Tipo de retorno: int
- Eleva: ValueError – Se a imagem estiver anexada a uma mensagem. Exclua ou atualize a mensagem pai.
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
- Gera: TimeoutError – Gerado sem excluir o registro quando a extração em segundo plano aceita anteriormente para seu thread armazenado não termina em 300 segundos.
Observações
Antes de excluir um registro com escopo de thread, esse método resolve seu thread armazenado e aguarda a extração em segundo plano anterior aceita por meio desse componente de memória do agente. Ele não aguarda threads não relacionados, trabalho aceito após o início da espera ou trabalho iniciado por outro componente ou processo de memória do agente. Registros sem um escopo de thread e identificadores desconhecidos não causam uma espera de extração.
Exemplos
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)
Excluir um registro semelhante a memória de forma assíncrona.
- 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
- Gera: TimeoutError – Gerado sem excluir o registro quando a extração em segundo plano aceita anteriormente para seu thread armazenado não termina em 300 segundos.
Observações
Este método segue a espera de extração em segundo plano e o comportamento de simultaneidade documentados pelo delete_memory().
Exemplos
import asyncio
memory_id = asyncio.run(client.add_memory_async(
"Temporary memory", memory_id="mem-delete"
))
asyncio.run(client.delete_memory_async(memory_id))
1
método delete_record_link
Exclua uma relação por identificador ou complete a tupla do ponto final.
Quando nenhum relation_id for fornecido, forneça todos os argumentos de origem, destino, tipo e rótulo de relação na orientação de origem para destino armazenada.
- Parâmetros:
- source_record_id
str– Identificador de origem ao selecionar por tupla de ponto final. - source_record_type
str– Tipo de registro de origem lógico ao selecionar por tupla de ponto final. - target_record_id
str– Identificador de destino ao selecionar por tupla de ponto final. - target_record_type
str– Tipo de registro de destino lógico ao selecionar por tupla de ponto final. - relation_type
str– Label da origem ao destino ao selecionar por tupla de ponto final. - relation_id
str– Identificador de relação a ser selecionado diretamente. Forneça isso sozinho.
- source_record_id
- Retorna: Número de relações excluídas,
0ou1. - Tipo de retorno: int
Exemplos
client.delete_record_link(relation_id="relation-id")
1
método delete_record_link_async (assíncrono)
Exclua de forma assíncrona uma relação por ID ou complete a tupla do ponto final.
- Parâmetros:
- source_record_id
str, - source_record_type
str - target_record_id
str - tipo_registro_alvo
str - tipo_relação
str - id_relação
str
- source_record_id
- 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
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_thread_async (assíncrono)
Exclua todos os registros associados a um identificador de thread de forma assíncrona.
- 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
thread = asyncio.run(client.create_thread_async(thread_id="c-delete"))
asyncio.run(client.delete_thread_async(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
Antes de excluir o perfil, esse método aguarda até 300 segundos para a extração em segundo plano anterior já aceita para threads próprios conhecidos por meio desse componente de memória do agente. Esta espera se aplica se a limpeza em cascata está ou não ativada. A limpeza em cascata é planejada e executada dentro do armazenamento de apoio como uma operação. O método 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
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 delete_user_async (assíncrono)
Excluir um registro de perfil de usuário por identificador de forma assíncrona.
- 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 sem excluir o perfil quando a extração em segundo plano aceita anteriormente para threads próprios conhecidos não termina em 300 segundos.
Observações
Este método segue o comportamento de espera e simultaneidade de extração em segundo plano documentado por delete_user().
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
asyncio.run(client.add_user_async("u-delete", "Prefers concise answers."))
'u-delete'
asyncio.run(client.delete_user_async("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 fornecidos substituem os valores de thread salvos. Um contexto de imagem omitido usa o valor do thread salvo, o valor do cliente e, em seguida,DISABLED. A substituição só se aplica à instânciaOracleThreadretornada e não é gravada de volta na configuração do thread de conversa armazenado. - image_input_limit_config
ImageInputLimitConfig– Substituição do limite de solicitação de imagem raw-image e LLM opcional. Os campos omitidos herdam limites de thread armazenados. Esta substituição se aplica somente ao thread retornado e não é persistida. - search_config
MemorySearchConfig– Configuração de pesquisa opcional para oOracleThreadretornado. Quando omitida, a configuração armazenada ou no nível do cliente é usada. Esta substituição se aplica somente ao thread retornado. - 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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 mensagens após o último resumo válido antes da atualização automática.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
created = client.create_thread(thread_id="c2", user_id="u1")
loaded = client.get_thread("c2")
loaded.user_id
'u1'
método get_thread_async (assíncrono)
Recupera um thread criado anteriormente de forma assíncrona.
- 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 fornecidos substituem os valores de thread salvos. Um contexto de imagem omitido usa o valor do thread salvo, o valor do cliente e, em seguida,DISABLED. A substituição só se aplica à instânciaOracleThreadretornada e não é gravada de volta na configuração do thread de conversa armazenado. - image_input_limit_config
ImageInputLimitConfig– Substituição do limite de solicitação de imagem raw-image e LLM opcional. Os campos omitidos herdam limites de thread armazenados. Esta substituição se aplica somente ao thread retornado e não é persistida. - search_config
MemorySearchConfig– Configuração de pesquisa opcional para oOracleThreadretornado. Quando omitida, a configuração armazenada ou no nível do cliente é usada. Esta substituição se aplica somente ao thread retornado. - 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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 mensagens após o último resumo válido antes da atualização automática.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
import asyncio
created = asyncio.run(client.create_thread_async(
thread_id="c2", user_id="u1"
))
loaded = asyncio.run(client.get_thread_async("c2"))
loaded.user_id
'u1'
método link_records
Criar uma relação direcionada entre dois registros armazenados.
No momento, os dois pontos finais devem ser registros semelhantes à memória: "memory", "fact", "guideline" ou "preference". Os tipos de relação incorporados são "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" usam o mesmo label invertido.
Somente uma orientação pode ser armazenada para um par de pontos finais. opposite_relation_type nomeia a relação ao percorrer do destino para a origem. Por exemplo, se new "supersedes" old, a reversão será old "is_superseded_by" new.
- Parâmetros:
- source_record_id
str– Identificador do registro de origem. - source_record_type
str– Tipo lógico do registro de origem. - target_record_id
str– Identificador do registro de destino. - target_record_type
str– Tipo lógico do registro de destino. - relation_type
str– Rótulo na direção de origem para destino. - opposite_relation_type
str– Rótulo opcional a ser usado ao percorrer essa relação ao contrário. Para tipos de relação de memória incorporados, omita isso para armazenar o label reverso predefinido (por exemplo,"supports"se torna"is_supported_by"). Para tipos de relação personalizados, a omissão usa o mesmo rótulo em ambas as direções. - relation_id
str– Identificador de relação estável opcional. Omita-o para gerar um. - timestamp
str | None– Timestamp opcional associado à relação. - metadados
dict[str, Any] | None– Metadados opcionais armazenados na relação.
- source_record_id
- Retorna: Identificador da relação criada.
- Tipo de retorno: str
Exemplos
client.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
método link_records_async (assíncrono)
Crie de forma assíncrona uma relação digitada entre os registros armazenados.
No momento, os dois pontos finais devem ser registros semelhantes à memória: "memory", "fact", "guideline" ou "preference". Os tipos de relação incorporados são "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" usam o mesmo label invertido.
- Parâmetros:
- source_record_id
str, - source_record_type
str - target_record_id
str - tipo_registro_alvo
str - tipo_relação
str - opposite_relation_type
str - id_relação
str - marcador de data/hora
str | None - metadados
dict[str, Any] | None
- source_record_id
- Tipo de retorno: str
método list_agents
Listar registros de perfil de agente persistidos.
- Parâmetros:
- metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de perfil do agente. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente perfis sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- metadata_filter
- Devoluções: Registros de perfil do agente retornados pelo armazenamento de apoio.
- Tipo de retorno: list[AgentProfileRecord]
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent("a1", "Support assistant", metadata={"source": "catalog"})
'a1'
[record.id for record in client.list_agents(metadata_filter={"source": "catalog"})]
['a1']
método list_agents_async (assíncrono)
Liste registros de perfil de agente persistidos de forma assíncrona.
- Parâmetros:
- metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de perfil do agente. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente perfis sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- metadata_filter
- Devoluções: Registros de perfil do agente retornados pelo armazenamento de apoio.
- Tipo de retorno: list[AgentProfileRecord]
Exemplos
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_agent_async(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
records = await client.list_agents_async(metadata_filter={"source": "catalog"})
return [record.id for record in records]
anyio.run(main)
['a1']
método list_images
Liste registros de imagem stand-alone persistidos.
- Parâmetros:
- image_id
str– Identificador de imagem opcional usado para restringir os registros retornados pelo armazenamento de apoio. Quando omitido, nenhum filtro de identificador é aplicado. O filtro de identificador é aplicado antes delimit. - user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as imagens de qualquer usuário são retornadas. InformeNonepara listar somente imagens sem escopo do usuário. Pelo menos um usuário, agente ou escopo de thread nãoNoneé obrigatório. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as imagens de qualquer agente são retornadas. InformeNonepara listar somente imagens sem escopo de agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as imagens de qualquer thread são retornadas. InformeNonepara listar somente imagens sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de imagem. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente imagens sem metadados armazenados. - include_bytes
bool– Se deseja carregar bytes de imagem em cada registro retornado. Quando omitido ouFalse, os bytes de imagem não são carregados. Defina isso comoTruesomente com um filtro de escopoimage_ide pelo menos um usuário, agente ou thread exato. - limit
int | None– Número máximo opcional de registros solicitados do armazenamento de apoio. Quando omitido, o armazenamento pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- image_id
- Retorna: registros de imagem correspondentes ordenados pelo armazenamento de apoio.
- Tipo de retorno: list[ImageRecord]
Exemplos
images = client.list_images(user_id="u1", limit=10)
[image.id for image in images]
['img-1']
método list_images_async (assíncrono)
Liste registros de imagem standalone persistidos de forma assíncrona.
- Parâmetros:
- image_id
str– Identificador de imagem opcional usado para restringir os registros retornados pelo armazenamento de apoio. Quando omitido, nenhum filtro de identificador é aplicado. O filtro de identificador é aplicado antes delimit. - user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as imagens de qualquer usuário são retornadas. InformeNonepara listar somente imagens sem escopo do usuário. Pelo menos um usuário, agente ou escopo de thread nãoNoneé obrigatório. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as imagens de qualquer agente são retornadas. InformeNonepara listar somente imagens sem escopo de agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as imagens de qualquer thread são retornadas. InformeNonepara listar somente imagens sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de imagem. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente imagens sem metadados armazenados. - include_bytes
bool– Se deseja carregar bytes de imagem em cada registro retornado. Quando omitido ouFalse, os bytes de imagem não são carregados. Defina isso comoTruesomente com um filtro de escopoimage_ide pelo menos um usuário, agente ou thread exato. - limit
int | None– Número máximo opcional de registros solicitados do armazenamento de apoio. Quando omitido, o armazenamento pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- image_id
- Retorna: registros de imagem correspondentes ordenados pelo armazenamento de apoio.
- Tipo de retorno: list[ImageRecord]
Exemplos
images = await client.list_images_async(
user_id="u1",
limit=10,
)
[image.id for image in images]
['img-1']
método list_memories
Listar registros semelhantes à memória persistente.
- Parâmetros:
- user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as memórias de qualquer usuário são retornadas. PasseNonepara listar somente memórias sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as memórias de qualquer agente são retornadas. InformeNonepara listar somente memórias sem escopo do agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as memórias de qualquer thread são retornadas. PasseNonepara listar somente memórias sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de memória. Quando omitido, nenhuma filtragem de metadados é aplicada. PasseNonepara listar somente memórias sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- user_id
- Retorna: Registros semelhantes à memória retornados pelo armazenamento de backup, incluindo registros
"memory","guideline","fact"e"preference". - Tipo de retorno: list[MemoryRecord]
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_memory("User likes pizza.", user_id="u1", memory_id="mem-1")
'mem-1'
[record.id for record in client.list_memories(user_id="u1", limit=10)]
['mem-1']
método list_memories_async (assíncrono)
Liste registros semelhantes à memória persistida de forma assíncrona.
- Parâmetros:
- user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as memórias de qualquer usuário são retornadas. PasseNonepara listar somente memórias sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as memórias de qualquer agente são retornadas. InformeNonepara listar somente memórias sem escopo do agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as memórias de qualquer thread são retornadas. PasseNonepara listar somente memórias sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados de memória. Quando omitido, nenhuma filtragem de metadados é aplicada. PasseNonepara listar somente memórias sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- user_id
- Retorna: Registros semelhantes à memória retornados pelo armazenamento de backup, incluindo registros
"memory","guideline","fact"e"preference". - Tipo de retorno: list[MemoryRecord]
Exemplos
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_memory_async("User likes pizza.", user_id="u1", memory_id="mem-1")
records = await client.list_memories_async(user_id="u1", limit=10)
return [record.id for record in records]
anyio.run(main)
['mem-1']
método list_messages
Listar registros de mensagens de chat persistidas.
- Parâmetros:
- user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as mensagens de qualquer usuário são retornadas. InformeNonepara listar somente mensagens sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as mensagens de qualquer agente são retornadas. InformeNonepara listar somente mensagens sem escopo de agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as mensagens de qualquer thread são retornadas. InformeNonepara listar somente mensagens sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados da mensagem. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente mensagens sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite. - include_image_bytes
bool– Se as partes de imagens anexadas às mensagens retornadas incluem bytes armazenados. Quando omitidos ouFalse, os metadados de imagem anexados são retornados sem carregar os bytes. Defina comoTruepara carregar os bytes.
- user_id
- Retorna: Registros de mensagem retornados pelo armazenamento de apoio.
- Tipo de retorno: list[MessageRecord]
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
thread = client.create_thread(thread_id="c1", user_id="u1")
message_id = thread.add_messages([{"role": "user", "content": "Hello"}])[0]
[record.id for record in client.list_messages(thread_id="c1", limit=10)] == [message_id]
True
método list_messages_async (assíncrono)
Listar registros de mensagem de chat persistidos de forma assíncrona.
- Parâmetros:
- user_id
str | None– Filtro de usuário exato opcional. Quando omitidas, as mensagens de qualquer usuário são retornadas. InformeNonepara listar somente mensagens sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidas, as mensagens de qualquer agente são retornadas. InformeNonepara listar somente mensagens sem escopo de agente. - thread_id
str | None– Filtro de thread exato opcional. Quando omitidas, as mensagens de qualquer thread são retornadas. InformeNonepara listar somente mensagens sem escopo de thread. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados da mensagem. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente mensagens sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite. - include_image_bytes
bool– Se as partes de imagens anexadas às mensagens retornadas incluem bytes armazenados. Quando omitidos ouFalse, os metadados de imagem anexados são retornados sem carregar os bytes. Defina comoTruepara carregar os bytes.
- user_id
- Retorna: Registros de mensagem retornados pelo armazenamento de apoio.
- Tipo de retorno: list[MessageRecord]
Exemplos
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
thread = await client.create_thread_async(thread_id="c1", user_id="u1")
message_ids = await thread.add_messages_async(
[{"role": "user", "content": "Hello"}]
)
records = await client.list_messages_async(thread_id="c1", limit=10)
return [record.id for record in records] == message_ids
anyio.run(main)
True
método list_threads
Listar tópicos de conversas persistidas.
- Parâmetros:
- user_id
str | None– Filtro exato do usuário necessário. InformeNonepara listar somente threads sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidos, os threads de qualquer agente são retornados. InformeNonepara listar somente threads sem escopo de agente. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado a metadados de thread. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente threads sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- user_id
- Retorna: Registros de thread retornados pelo armazenamento de apoio.
- Tipo de retorno: list[ThreadRecord]
Exemplos
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.create_thread(thread_id="c1", user_id="u1").thread_id
'c1'
[record.thread_id for record in client.list_threads(user_id="u1", limit=10)]
['c1']
método list_threads_async (assíncrono)
Listar tópicos de conversas persistidas de forma assíncrona.
- Parâmetros:
- user_id
str | None– Filtro exato do usuário necessário. InformeNonepara listar somente threads sem escopo do usuário. - agent_id
str | None– Filtro de agente exato opcional. Quando omitidos, os threads de qualquer agente são retornados. InformeNonepara listar somente threads sem escopo de agente. - metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado a metadados de thread. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente threads sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- user_id
- Retorna: Registros de thread retornados pelo armazenamento de apoio.
- Tipo de retorno: list[ThreadRecord]
Exemplos
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.create_thread_async(thread_id="c1", user_id="u1")
records = await client.list_threads_async(user_id="u1", limit=10)
return [record.thread_id for record in records]
anyio.run(main)
['c1']
método list_users
Listar registros de perfil de usuário persistidos.
- Parâmetros:
- metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados do perfil do usuário. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente perfis sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- metadata_filter
- Devoluções: registros de perfil de usuário retornados pelo armazenamento de apoio.
- Tipo de retorno: list[UserProfileRecord]
Exemplos
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'
[record.id for record in client.list_users(metadata_filter={"source": "crm"})]
['u1']
método list_users_async (assíncrono)
Liste registros de perfil de usuário persistidos de forma assíncrona.
- Parâmetros:
- metadata_filter
dict[str, Any] | None– Filtro de metadados aplicado aos metadados do perfil do usuário. Quando omitido, nenhuma filtragem de metadados é aplicada. InformeNonepara listar somente perfis sem metadados armazenados. - limit
int | None– Número máximo opcional de registros a serem retornados. Quando omitido, o armazenamento de apoio pode aplicar seu limite de listagem padrão. InformeNonepara desativar esse limite.
- metadata_filter
- Devoluções: registros de perfil de usuário retornados pelo armazenamento de apoio.
- Tipo de retorno: list[UserProfileRecord]
Exemplos
import anyio
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
async def main():
await client.add_user_async(
"u1",
"Prefers concise answers.",
metadata={"source": "crm"},
)
records = await client.list_users_async(metadata_filter={"source": "crm"})
return [record.id for record in records]
anyio.run(main)
['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. - token_budget
int– Limite rígido opcional para a contagem de tokens estimada dos resultados formatados finais. Quando omitida, a configuração de pesquisa resolvida é usada. Os valores positivos mantêm os resultados completos na ordem de classificação, enquanto sua estimativa cumulativa se ajusta ao orçamento. Se o primeiro resultado não for adequado, nenhum resultado será retornado. Valores não positivos desativam esse limite de saída. - soft_token_budget
int– Destino opcional para a contagem de tokens estimada dos resultados formatados finais. Quando omitida, a configuração de pesquisa resolvida é usada. O resultado completo que atinge ou excede este alvo é mantido. Valores não positivos desativam esse destino. Definatoken_budgetcomo um valor maior quando a saída também tiver um limite absoluto. - record_types
list[str]– Lista opcional de tipos de registro a incluir, como"memory","message"ou"image". -
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"}, }, } - include_invalid_results
bool– Se os resultados incluem registros no status inválido. Omita esse argumento ou passeTruepara incluí-los. InformeFalsepara excluí-los. - num_hops
int– Número de bordas de link de memória a serem seguidas de cada resultado direto de memória. Os valores de0a5são suportados; omita apenas para resultados diretos. A expansão segue os links em qualquer direção. - max_linked_results
int– Máximo de memórias vinculadas em todos os saltos anexados a cada resultado direto. Omita o padrão de100; passe0para não retornar contexto vinculado. - 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. - token_budget
int– Limite rígido opcional para a contagem de tokens estimada dos resultados formatados finais. Quando omitida, a configuração de pesquisa resolvida é usada. Os valores positivos mantêm os resultados completos na ordem de classificação, enquanto sua estimativa cumulativa se ajusta ao orçamento. Se o primeiro resultado não for adequado, nenhum resultado será retornado. Valores não positivos desativam esse limite de saída. - soft_token_budget
int– Destino opcional para a contagem de tokens estimada dos resultados formatados finais. Quando omitida, a configuração de pesquisa resolvida é usada. O resultado completo que atinge ou excede este alvo é mantido. Valores não positivos desativam esse destino. Definatoken_budgetcomo um valor maior quando a saída também tiver um limite absoluto. - record_types
list[str]– Lista opcional de tipos de registro a incluir, como"memory","message"ou"image". -
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"}, }, } - include_invalid_results
bool– Se os resultados incluem registros no status inválido. Omita esse argumento ou passeTruepara incluí-los. InformeFalsepara excluí-los. - num_hops
int– Número de bordas de link de memória a serem seguidas de cada resultado direto de memória. Os valores de0a5são suportados; omita apenas para resultados diretos. A expansão segue os links em qualquer direção. - max_linked_results
int– Máximo de memórias vinculadas em todos os saltos anexados a cada resultado direto. Omita o padrão de100; passe0para não retornar contexto vinculado. - 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_image
Atualizar um registro de imagem armazenado por identificador.
- Parâmetros:
- image_id
str– Identificador do registro da imagem a ser atualizado. - image
bytes– Bytes de imagem de substituição opcionais. Forneça bytes para substituir a imagem armazenada. Quando omitida, a imagem armazenada é preservada. - description
str | None– Descrição opcional da substituição. Quando omitida, a descrição armazenada é preservada. A transmissão deNonegera uma nova descrição com o LLM configurado. Uma string não nula substitui a descrição armazenada e o texto pesquisável diretamente. - mime_type
ImageMimeType– tipo MIME dos bytes de imagem substituta.imageemime_typedevem ser fornecidos juntos. Omita ambos para preservar a imagem armazenada e o tipo MIME. - 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 imagem. Quando omitido, o timestamp armazenado é preservado. InformeNonepara limpá-lo. - 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. A expiração de uma imagem anexada a uma mensagem deve ser alterada por meio da mensagem pai. - ttl_anchor
TimeToLiveAnchor– Âncora opcional de tempo de vida útil para uma atualização de expiração. O fornecimento dettl_anchorsemttl_daysusa a duração de tempo de vida padrão do esquema. Quando omitidas durante uma atualização, as lojas usamTimeToLiveAnchor.CREATED_AT. - **kwargs (Qualquer) – Argumentos de palavra-chave inesperados são rejeitados por implementações.
- image_id
- Retorna: Identificador do registro de imagem atualizado.
- Tipo de retorno: str
- Raises: ValueError – Se as definições de expiração forem fornecidas para uma imagem anexada a uma mensagem.
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_image_async (assíncrono)
Atualize uma imagem independente por meio do armazenamento configurado.
Omita image para preservar os bytes existentes. Se image for fornecido, mime_type deverá ser fornecido com ele. Omita description para preservar a descrição existente. Informe None para gerar uma nova descrição com o LLM configurado; uma descrição não nula a substitui diretamente. As definições de metadados, timestamp e expiração são atualizadas quando fornecidas.
- Parâmetros:
- image_id
str– Identificador da imagem a ser atualizada. - image
bytes– Bytes de imagem brutos de substituição opcionais. - description
str | None– Descrição opcional da substituição. Omita-o para preservar a descrição atual. InformeNonepara gerar uma nova descrição com o LLM configurado. - mime_type
ImageMimeType– tipo MIME necessário quando bytes de imagem de substituição são fornecidos. - metadata
dict[str, Any] | None– Metadados de substituição opcionais. - timestamp
str | None– Timestamp de evento de substituição opcional. - ttl_days
int | None– Configurações de expiração opcionais. Estes não podem ser alterados através deste método quando a imagem está anexada a uma mensagem. - ttl_anchor
TimeToLiveAnchor– Configurações de expiração opcionais. Estes não podem ser alterados através deste método quando a imagem está anexada a uma mensagem. - kwargs
Any
- image_id
- Retorna: O identificador de imagem atualizado.
- Tipo de retorno: str
- Raises: ValueError – Se as definições de expiração forem fornecidas para uma imagem anexada a uma mensagem.
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. 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. - status
RecordStatus– Status do ciclo de vida de substituição opcional para este registro semelhante a memória. Omita-o para preservar o status atual. - **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 um registro semelhante à memória armazenada por identificador de forma assíncrona.
- 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. 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. - status
RecordStatus– Status do ciclo de vida de substituição opcional para este registro semelhante a memória. Omita-o para preservar o status atual. - **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.
Exemplos
import asyncio
memory_id = asyncio.run(client.add_memory_async("Original memory"))
(
asyncio.run(client.update_memory_async(
memory_id, content="Updated memory"
))
== memory_id
)
True
método update_record_link
Atualizar campos mutáveis de uma relação armazenada.
Os valores omitidos são preservados. Quando relation_type muda para um tipo de relação de memória incorporado, seu label reverso fixo substitui opposite_relation_type. Informe None para timestamp ou metadata para limpar esse valor.
- Parâmetros:
- relation_id
str– Identificador da relação a ser atualizada. - relation_type
str– Rótulo de origem para destino de substituição opcional. - opposite_relation_type
str– Rótulo de inversão de substituição opcional. Omita-o para preservar o rótulo armazenado. - timestamp
str | None– Timestamp de substituição opcional. InformeNonepara limpá-lo. - metadata
dict[str, Any] | None– Metadados de substituição opcionais. Ele substitui o objeto armazenado.
- relation_id
- Retorna: Número de relações atualizadas,
0ou1. - Tipo de retorno: int
Exemplos
client.update_record_link("relation-id", relation_type="supports")
1
método update_record_link_async (assíncrono)
Atualizar assincronamente uma relação armazenada.
- Parâmetros:
- id_relação
str - tipo_relação
str - opposite_relation_type
str - marcador de data/hora
str | None - metadados
dict[str, Any] | None
- id_relação
- Tipo de retorno: int
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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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 mensagens após o resumo válido mais recente antes da atualização automática.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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.
Obsoleto
Obsoleto desde a versão 26.6.0: Este parâmetro foi preterido 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. Os campos omitidos mantêm seus valores salvos quando presentes. Os threads criados antes que as definições de contexto de imagem fossem persistidas retornam ao valor do cliente e, em seguida,DISABLED, quando não houver contexto de imagem salvo. - image_input_limit_config
ImageInputLimitConfig– Atualização do limite de solicitação de imagem bruta durável opcional e LLM. Os campos omitidos mantêm os valores armazenados; os campos fornecidos são usados por instâncias de thread carregadas subsequentemente. - search_config
MemorySearchConfig– Configuração de pesquisa opcional a ser armazenada para o thread. A configuração fornecida é usada por instâncias de thread carregadas subsequentes. - **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
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 update_thread_async (assíncrono)
Persistir metadados de thread atualizados e configuração de runtime durável de forma assíncrona.
- 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. - **kwargs (Qualquer) – Atualizações de configuração de tempo de execução duráveis adicionais e substituições por chamada aceitas por
update_thread().
- thread_id
- Retorna: Instância
OracleThreadatualizada que reflete os metadados persistidos e a configuração de runtime. - Tipo da devolução: OracleThread
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
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
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
Limites de Entrada de Imagem
classe oracleagentmemory.core.ImageInputLimitConfig
Bases: object
Configurar limites de solicitação de imagem bruta e LLM.
Os campos omitidos herdam do próximo escopo de configuração mais amplo. Os campos do cliente herdam os padrões do SDK, enquanto os campos por thread herdam a configuração do cliente. A validação não pode ser desativada e os valores resolvidos não podem exceder o máximo absoluto do SDK.
- Parâmetros:
- max_raw_image_bytes
int– Comprimento máximo de byte bruto de uma imagem. O padrão do SDK é 10 MiB e o máximo absoluto é 32 MiB. - max_images_per_llm_request
int– Número máximo de imagens em uma solicitação LLM. O padrão do SDK é 100 e o máximo absoluto é 512. - max_total_raw_image_bytes_per_llm_request
int– Tamanho máximo combinado bruto de bytes de imagens em uma solicitação LLM. Texto, metadados, enquadramento JSON e expansão base64 são excluídos. O padrão do SDK é 100 MiB e o máximo absoluto é 256 MiB.
- max_raw_image_bytes
Exemplos
from oracleagentmemory.core import ImageInputLimitConfig
config = ImageInputLimitConfig(
max_raw_image_bytes=16 * 1024 * 1024,
max_images_per_llm_request=200,
)
Extração de memória
classe oracleagentmemory.core.MemoryExtractionImageContext
Bases: str, Enum
Selecione como as imagens participam da extração automática de memória.
DISABLED omite imagens e descrições de imagens dos prompts de extração. IMAGE envia partes da imagem original. CAPTION envia descrições de imagem como texto e requer que cada imagem selecionada tenha uma descrição em branco.
CAPTION = 'legenda'
Inclua descrições como texto e exija uma para cada imagem selecionada.
DISABLED = 'desativado'
Não inclua imagens ou descrições de imagens em prompts de extração.
IMAGEM = 'imagem'
Incluir partes da imagem original em prompts de extração.
MEMÓRIA = 'memória'
A extração de memória específica da imagem não é suportada no momento.
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. extraction_mode e as definições da fila de segundo plano também controlam a geração automática de descrição de imagem. Cada campo é calculado de forma independente. Um valor fornecido para uma operação tem precedência, seguido por um valor de thread salvo, o valor do cliente e o padrão do SDK. Threads novos e stand-alone não têm valor de thread salvo.
- 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. Quando omitido, use a ordem de resolução acima. - context_summary_update_frequency
int– Número de mensagens após o resumo válido mais recente antes de ser atualizado automaticamente. Quando a extração de memória está ativada, a verificação acontece após cada extração devida, para que a atualização possa ocorrer posteriormente. Valores menores ou iguais à atualização0em cada verificação. Quando omitido, use a ordem de resolução acima. - 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. Quando omitido, use a ordem de resolução acima. - 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. Quando omitido, use a ordem de resolução acima. - 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. Quando omitido, use a ordem de resolução acima. - enable_context_summary
bool– Se os prompts de extração mantêm e usam um resumo de contexto em execução. Quando omitido, use a ordem de resolução acima. - 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. Quando omitido, use a ordem de resolução acima. - memory_link_extraction_custom_instructions
str | None– Instruções do chamador opcionais anexadas ao prompt do sistema de resolução de link automático. InformeNoneemupdate_threadpara limpar instruções armazenadas no nível do thread. Quando omitido, use a ordem de resolução acima. Essa definição é ignorada quandomemory_link_extraction_modeéMemoryLinkExtractionMode.DISABLED. - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext– Selecione a representação de imagem usada durante a extração.DISABLEDomite imagens e descrições de imagem de prompts,IMAGEenvia partes de imagem bruta eCAPTIONenvia descrições de imagem como texto e requer que cada imagem selecionada tenha uma descrição não em branco.MEMORYnão é suportado no momento. Quando omitido, use o valor do thread salvo, o valor do cliente e, em seguida,DISABLED. A omissão deste campo nunca permite o processamento de imagens. - 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. Quando omitido, use a ordem de resolução acima. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode– Controla quando a extração automática de memória e a geração de imagem-description são executadas.MemoryExtractionMode.INLINEas conclui antes de o método de gravação retornar.MemoryExtractionMode.BACKGROUNDretorna depois que a gravação bruta é bem-sucedida e tenta enfileirar o trabalho derivado. No modo de fundo, descrições geradas e memórias derivadas podem aparecer mais tarde ou nunca podem ser escritas se o trabalho 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. Quando omitido, use a ordem de resolução acima. O padrão do SDK éBACKGROUND. A definição deextract_memories=Falsedesativa a extração de memória, mas não desativa a geração de descrição de imagem. - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode– Como os links para memórias existentes são resolvidos para memórias recém-extraídas.DURING_EXTRACTIONinclui candidatos vinculados na solicitação de extração. OPOST_EXTRACTIONusa uma solicitação de resolução de link adicional para o batch de extração.DISABLEDnão cria links automáticos. Quando omitido, use a ordem de resolução acima. O padrão do SDK éPOST_EXTRACTION. - memory_link_extraction_token_limit
int– Orçamento total do token de entrada para todas as solicitações de resolução de link pós-extração em uma passagem de extração. Os valores abaixo de1desativam seu orçamento de prompt. Essa definição é ignorada quandomemory_link_extraction_modeéDURING_EXTRACTIONouDISABLED. As chamadas paraadd_memory(autonomous_linking=True)usam o mesmo resolvedor de pós-armazenamento e orçamento independentemente do modo de extração. Quando omitido, use a ordem de resolução acima. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior– No modo de plano de fundo, controla o que acontece quando a geração automática de extração ou descrição de imagem 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. Quando omitido, use a ordem de resolução acima. O padrão do SDK é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 ou geração de descrição de imagem aguarda a capacidade da fila quandobackground_extraction_queue_full_behavioréWAIT_THEN_DROPouWAIT_THEN_RAISE. Quando omitido, use a ordem de resolução acima. O padrão do SDK é300.0segundos.
- memory_extraction_window
Exemplos
from oracleagentmemory.core import (
MemoryExtractionImageContext,
MemoryExtractionConfig,
MemoryExtractionMode,
MemoryLinkExtractionMode,
)
config = MemoryExtractionConfig(
extract_memories=True,
memory_extraction_image_context=MemoryExtractionImageContext.CAPTION,
extraction_mode=MemoryExtractionMode.BACKGROUND,
memory_link_extraction_mode=MemoryLinkExtractionMode.POST_EXTRACTION,
memory_link_extraction_token_limit=8_000,
)
O que fazer quando as descrições de extração ou imagem não podem ser enfileiradas imediatamente.
Os valores omitidos são resolvidos para DROP.
O trabalho em segundo plano de segundos máximo aguarda a capacidade da fila nos modos de espera.
Os valores omitidos são resolvidos para 300.0 segundos.
Mensagens após o último resumo válido antes da atualização automática.
Valores menores ou iguais à atualização 0 em cada verificação.
Se o OAM mantém resumos de contexto para leituras de thread e prompts de extração.
Se as descrições de extração e imagem são executadas em linha ou em segundo plano.
Os valores omitidos são resolvidos para BACKGROUND.
Mensagens entre execuções de extração; valores abaixo da extração 0 após cada apêndice.
Representação de imagem; a omissão é resolvida como thread, cliente e depois como DISABLED.
Metadados de mensagem de origem copiados em memórias extraídas.
Orçamento de token de entrada para prompts; valores abaixo de 1 desativam o limite.
Janela de mensagens recentes usada para prompts de extração; -1 usa somente novas mensagens.
Instruções opcionais do chamador anexadas a prompts automáticos de resolução de vínculo.
Como os links automáticos são resolvidos para memórias extraídas.
Os valores omitidos são resolvidos para POST_EXTRACTION.
Orçamento total do token de entrada para resolução do link POST_EXTRACTION.
Os valores abaixo de 1 desativam o limite.
classe oracleagentmemory.core.MemoryExtractionMode
Bases: str, Enum
Controla quando a extração automática e as descrições de imagem são executadas.
INLINE conclui o trabalho derivado antes do retorno do método de gravação. BACKGROUND retorna depois que a gravação bruta é bem-sucedida e tenta enfileirar esse trabalho. O trabalho de fundo é o melhor esforço: descrições geradas e memórias derivadas podem aparecer mais tarde ou nunca podem ser escritas se não puderem ser concluídas.
PLANO DE FUNDO = 'CONTEXTO'
Retorne após a gravação bruta e execute o trabalho derivado em segundo plano.
EM LINHA = 'EM LINHA'
Conclua as descrições de extração e imagem antes que a gravação seja retornada.
classe oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Bases: str, Enum
Controla o que acontece quando o trabalho em segundo plano configurado não pode ser enfileirado no tempo.
Apesar do nome específico da extração, essa configuração também se aplica à geração automática de descrição de imagem no modo de fundo.
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.