Memoria agente
Questa pagina presenta l'implementazione concreta di Oracle AI Agent Memory.
Memoria agente Oracle
Nota: OracleAgentMemory.delete_thread() è il percorso supportato per il cleanup a catena con ambito thread. Rimuove il thread insieme ai messaggi associati, alle memorie permanenti e ai dati di recupero gestiti. Questo valore è più ampio di OracleThread.delete_message(), che elimina solo la riga del messaggio raw. L'eliminazione a livello di client attende l'estrazione in background precedente pertinente: l'eliminazione dei thread attende il thread, l'eliminazione della memoria attende il thread della destinazione memorizzata quando è presente e l'eliminazione dell'utente o dell'agente attende i thread di proprietà noti se è abilitata o meno la pulizia in cascata. Queste attese coprono solo il lavoro accettato dallo stesso cliente prima dell'inizio dell'attesa.
classe oracleagentmemory.core.OracleAgentMemory
Basi: IAgentMemory
Client di memoria agente supportato da Oracle DB o da un'area di memorizzazione fornita dal chiamante.
Creare un client di memoria.
- Parametri:
- store
OracleMemoryStore: istanza dell'area di memorizzazione preconfigurata opzionale. Se fornito, il client utilizza direttamente questo negozio invece di creare un'istanza del proprio negozio. Ciò è utile quando i chiamanti necessitano di una configurazione dell'area di memorizzazione superiore alle opzioni del costruttore esposte daOracleAgentMemory. - connessione
object: connessione/pool Oracle DB opzionale. Se specificato, viene utilizzato l'area di memorizzazione DB. Il passaggio di una connessione raw abilita la modalità a sessione singola per questa istanza client, pertanto le richieste concorrenti devono utilizzare un connection pool. Se omesso, i chiamanti devono passare unstoreesplicito. - embedder
IEmbedder | str: istanza di implementazione Embedder o identificativo di modello di incorporamento LiteLLM. Se omesso, non è collegato alcun embedder. La ricerca DB solo vettoriale richiede quindi vettori precalcolati tramite API di memorizzazione di livello inferiore, mentre la ricerca DB per parola chiave può essere eseguita direttamente dal testo della query. La ricerca del database ibrido richiede un'istanzaOracleDBEmbedderin modo che l'indice ibrido gestito e l'incorporatore principale utilizzino lo stesso modello nel database. - LLM
ILlm: adattatore LLM opzionale utilizzato dai thread per l'estrazione della memoria e/o il riepilogo del contesto. Per impostazione predefinita, i thread creati o caricati da questo client richiedono un LLM in modo che i messaggi recenti possano essere estratti per le memorie permanenti. Passare unllmqui, fornirne uno più tardi increate_threado disabilitare l'estrazione automatica conmemory_extraction_config=MemoryExtractionConfig(extract_memories=False). - memory_extraction_config
MemoryExtractionConfig: configurazione opzionale di estrazione della memoria a livello client. Utilizzalo per controllare le impostazioni di estrazione automatica della memoria, come la modalità di estrazione, il comportamento di riepilogo e i limiti di estrazione. I campi omessi utilizzano le impostazioni predefinite SDK. In particolare, un contesto di immagine omesso èDISABLED. - image_input_limit_config
ImageInputLimitConfig: limiti opzionali per l'immagine raw a livello di client e la richiesta di immagini LLM. I campi omessi utilizzano le impostazioni predefinite SDK e vengono ereditati dai thread a meno che un thread non fornisca un override. Impossibile disabilitare la convalida. - schema_policy
SchemaPolicy | str: criterio di impostazione dello schema DB utilizzato solo durante la creazione di un'area di memorizzazione DB daconnection. L'impostazione predefinita èSchemaPolicy.REQUIRE_EXISTING. UtilizzareSchemaPolicy.CREATE_IF_NECESSARYquando si abilita per la prima volta la ricerca per parola chiave o ibrida in uno schema esistente o quando si apre uno schema gestito rilasciato precedente supportato, in modo che l'SDK possa applicare aggiornamenti di schema non distruttivi e aggiungere gli oggetti di ricerca testo necessari. Gli schemi di sviluppo o parzialmente aggiornati che già rivendicano la forma di rilascio corrente devono essere ricreati. Seschema_ownerè impostato, è consentito soloSchemaPolicy.REQUIRE_EXISTING. Ciò impedisce la DDL dello schema gestito, inclusa la creazione dello schema, gli aggiornamenti, la ricreazione e la creazione del primo indice ibrido; eseguire tali azioni mentre si è connessi come utente del database proprietario senzaschema_owner. Non rende il client di sola lettura: le normali letture e scritture della memoria utilizzano i privilegi di database concessi dall'utente della connessione. - memory_store_id
str: ID stabile per l'area di memorizzazione della memoria DB gestita utilizzato solo durante la creazione di un'area di memorizzazione DB daconnection. Riutilizzare lo stesso ID per riaprire lo stesso negozio gestito. L'ID viene unito tramite join ai nomi degli oggetti DB gestiti con un carattere di sottolineatura, pertanto deve iniziare con una lettera, contenere solo lettere, numeri e caratteri di sottolineatura e contenere al massimo 16 caratteri. L'area di memorizzazione DB lo normalizza in maiuscolo, pertanto l'involucro non crea un'identità di area di memorizzazione diversa. Passare questo otable_name_prefix, non entrambi. Se omesso, l'area di memorizzazione DB utilizzatable_name_prefixo il valore predefinito non prefisso quando viene omesso anchetable_name_prefix. -
nome_tabellaprefisso
str–Prefisso tabella/indice DB facoltativo utilizzato solo durante la creazione di un'area di memorizzazione DB da
connection. Passare questo omemory_store_id, non entrambi.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_store_id. - schema_owner
str: proprietario dello schema facoltativo per un'area di memorizzazione della memoria gestita esistente. Omettere questa opzione per utilizzare lo schema dell'utente di connessione. Utilizzarlo quandoconnection, una connessione al database raw o un connection pool, appartiene a un utente DB dell'applicazione che dispone di privilegi sulle tabelle di proprietà di un altro utente. Questa opzione è solo per l'accesso runtime a un'area di memorizzazione della memoria gestita già creata e richiedeSchemaPolicy.REQUIRE_EXISTING. Creare, aggiornare o ricreare l'area di memorizzazione della memoria gestita durante la connessione come proprietario dello schema e omettere questa opzione. Passare un identificativo senza virgolette; l'input minuscolo viene normalizzato in maiuscolo e i proprietari dello schema con distinzione tra maiuscole e minuscole quotati non sono supportati. Se si passa un filestorepreconfigurato, configurareschema_ownerin tale area di memorizzazione. ConcedereCREATE SESSIONe i privilegi oggetto richiesti all'utente DB dell'applicazione; vedere la sezioneDatabase Users and Privilegesdella guida alla risoluzione dei problemi per i privilegi esatti. In alternativa, esporre le viste con oggetto gestito identico nome nello schema di runtime e omettereschema_owner; questo valore è supportato solo perSchemaPolicy.REQUIRE_EXISTING. - search_strategy
SearchStrategy: valoreSearchStrategyche seleziona il backend di ricerca DB durante la creazione di un'area di memorizzazione DB daconnection. UtilizzareSearchStrategy.VECTOR(impostazione predefinita) per il recupero solo vettoriale,SearchStrategy.HYBRIDper eseguire una query sull'indice vettoriale ibrido Oracle gestito sul testo di ricerca memorizzato oSearchStrategy.KEYWORDper eseguire la classificazione in base alla corrispondenza parola chiave/testo nel testo di ricerca memorizzato senza fusione vettoriale.KEYWORDnon richiede l'embedder.HYBRIDrichiede cheembeddersia un valoreOracleDBEmbedder. L'avvio del client non riesce quando viene utilizzata una strategia incompatibile con uno schema esistente perché tale schema potrebbe non contenere lo stato di ricerca memorizzato richiesto dalla strategia. Quandoschema_policy=SchemaPolicy.REQUIRE_EXISTINGe questo argomento vengono omessi, il miglior sforzo dell'area di memorizzazione DB rileva la modalità di ricerca memorizzata dello schema dai metadati gestiti e la utilizza quando disponibile. - search_index_sync
SearchIndexSyncMode: valoreSearchIndexSyncModeche seleziona il funzionamento di aggiornamento dell'indice di ricerca gestito perSearchStrategy.HYBRIDeSearchStrategy.KEYWORD.SearchIndexSyncMode.ON_COMMITè l'impostazione predefinita e rende i record ricercabili non appena viene eseguito il commit della transazione di scrittura.SearchIndexSyncMode.MANUALlascia l'aggiornamento a un'operazione di sincronizzazione esplicita lato database.SearchIndexSyncMode.AUTOconsente a Oracle di aggiornare l'indice ibrido gestito in modo asincrono ed è supportato solo conSearchStrategy.HYBRID; la ricerca per parola chiave rifiutaAUTO. -
extract_memories
bool–Quando si utilizza
True, i thread creati o caricati da questo client richiedono un LLM e l'estrazione automatica della memoria rimane abilitata. Impostare suFalseper disabilitare l'estrazione automatica della memoria e consentire a tali thread di funzionare senza un LLM. Il valore predefinito èTrue, pertanto gli LLM di estrazione mancanti non riescono velocemente.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str–Istruzioni personalizzate facoltative aggiunte al prompt del sistema di estrazione automatica della memoria per i thread creati o caricati da questo client. I valori per thread passati a
create_thread,get_threadoupdate_threadhanno la precedenza.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - memory_retention_config
MemoryRetentionConfig: configurazione di conservazione della memoria opzionale utilizzata solo durante la creazione di un'area di memorizzazione DB daconnection.MemoryRetentionConfig.default_ttl_daysviene applicato a nuovi messaggi e memorie la cui chiamata di scrittura omettettl_days.MemoryRetentionConfig.max_ttl_daysblocca le durate esplicite per record al di sopra del massimo configurato con un avviso e, se impostato, fa in modo chettl_days=Noneutilizzi tale massimo invece di creare record non in scadenza. ConSchemaPolicy.CREATE_IF_NECESSARY, una configurazione esplicita aggiorna i metadati memorizzati in uno schema gestito aggiornato esistente, ma non aggiorna le date di scadenza esistenti; omettendo mantiene l'impostazione esistente. Se una configurazione esplicita lasciadefault_ttl_daysomax_ttl_daysinNOT_SET_MARKER, l'SDK risolve l'attributo al relativo valore predefinito (None) prima di confrontare o memorizzare i metadati dello schema. Scegliere questa configurazione in base alle informazioni previste memorizzate nei record, al motivo per cui l'applicazione la conserva e a qualsiasi impegno di conservazione delle applicazioni o delle normative. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa a livello di client ereditata dai thread nuovi e caricati. Se omesso, le ricerche utilizzano una configurazione di ricerca top-k fissa. - pruner_llm
ILlm: LLM facoltativo che consente l'eliminazione dei risultati a livello di client. Se impostata, per impostazione predefinita le ricerche client dirette e le ricerche thread ereditate utilizzano l'eliminazione con la modalità di valutazioneFAST. I thread esistenti con una configurazione di ricerca memorizzata mantengono tale configurazione quando viene riaperta. Utilizzaresearch_config=PruningMemorySearchConfig(...)per personalizzare il comportamento di eliminazione.pruner_llmnon può essere combinato consearch_config.
- store
Avvertenza: SchemaPolicy.CREATE_IF_NECESSARY può essere più costoso del normale avvio del client perché potrebbe applicare DDL dello schema gestito e riscrivere i dati con il massimo sforzo prima che l'inizializzazione abbia esito positivo. Pianificare la prima apertura di uno schema gestito meno recente come operazione di migrazione o manutenzione quando tale schema può contenere più righe.
Se l'impostazione dello schema deve creare il job di rimozione dei record scaduti gestiti, ma l'utente del database non dispone del privilegio scheduler-job, l'inizializzazione avverte e continua. I messaggi e le memorie scaduti rimangono nascosti dalle letture e dalle ricerche, ma non vengono rimossi fisicamente fino a quando il job non viene creato da un utente con CREATE JOB o un privilegio scheduler equivalente.
Quando SchemaPolicy.CREATE_IF_NECESSARY crea per la prima volta un indice ibrido gestito su uno schema esistente, Oracle analizza il testo di ricerca memorizzato e crea lo stato dell'indice ibrido gestito dal modello in-database configurato. L'avvio del client attende il completamento di tale DDL, quindi pianifica il primo aggiornamento ibrido come operazione di migrazione o manutenzione per schemi di grandi dimensioni. SearchIndexSyncMode controlla la manutenzione in corso dopo che l'indice esiste; non rende la prima build dell'indice asincrona.
- Aumenti: ValueError: se viene fornita una configurazione dell'area di memorizzazione in conflitto, ad esempio passando entrambe le opzioni
storeeconnection, le opzioni specifiche del DB senza una connessione DB o omettendo siastorecheconnection. - Parametri:
- negozio
OracleMemoryStore - connessione
object - embedder
IEmbedder | str - llm
ILlm - config_estrazione_memoria
MemoryExtractionConfig - image_input_limit_config
ImageInputLimitConfig - schema_policy
SchemaPolicy | str - memory_store_id
str - prefisso_nome_tabella
str - proprietario_schema
str - strategia_ricerca
SearchStrategy - search_index_sync
SearchIndexSyncMode - memorie_estrazione
bool - istruzioni_estrazione_memoria_personalizzate
str - memory_retention_config
MemoryRetentionConfig - config_ricerca
MemorySearchConfig - pruner_llm
ILlm
- negozio
Esempi
Per accedere a uno schema creato da un altro utente del database, configurare memory_rw_pool per l'utente DB dell'applicazione e impostare memory_schema_owner sul nome del database senza virgolette dell'utente proprietario.
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,
)
Utilizzare un modello di incorporamento in DB per sfruttare la ricerca degli indici ibridi 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,
)
metodo add_agent
Aggiungere un record profilo agente al negozio.
- Parametri:
- agent_id
str: identificativo dell'agente. - informazioni
str: informazioni in formato libero sull'agente. - metadati
dict[str, Any] | None: mapping dei metadati facoltativo memorizzato nella riga del profilo dell'agente.
- agent_id
- Restituzioni: identificativo del profilo dell'agente memorizzato.
- Tipo restituito: str
Note
I record profilo agente vengono memorizzati nell'area di memorizzazione a livello di client e non hanno un ambito intenzionale. L'identificativo del record restituito è lo stesso identificativo pubblico utilizzato dall'applicazione come agent_id.
Esempi
from oracleagentmemory.core import OracleAgentMemory
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
llm=llm,
)
client.add_agent(
"a1",
"Support assistant",
metadata={"source": "catalog"},
)
'a1'
metodo add_agent_async (asincrono)
Aggiungere un record profilo agente all'area di memorizzazione in modo asincrono.
- Parametri:
- agent_id
str: identificativo dell'agente. - informazioni
str: informazioni in formato libero sull'agente. - metadati
dict[str, Any] | None: mapping dei metadati facoltativo memorizzato nella riga del profilo dell'agente.
- agent_id
- Restituzioni: identificativo del profilo dell'agente memorizzato.
- Tipo restituito: str
Note
I record profilo agente vengono memorizzati nell'area di memorizzazione a livello di client e non hanno un ambito intenzionale. L'identificativo del record restituito è lo stesso identificativo pubblico utilizzato dall'applicazione come agent_id.
Esempi
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'
metodo add_image
Aggiungere un record di immagine al client.
- Parametri:
- image
bytes: byte di immagine da memorizzare come immagine. - description
str | None: descrizione opzionale associata all'immagine. Omettere o passareNoneper generarne uno con l'LLM configurato. - mime_type
ImageMimeType– tipo MIME dell'immagine. I valori supportati sono forniti daImageMimeType. Se omesso, l'SDK rileva e convalida il tipo dai byte dell'immagine. I tipi rilevati supportati sono PNG, JPEG e WEBP. - image_id
str: identificativo stabile fornito dal chiamante opzionale. Se omesso, ne viene generato uno. - user_id
str | None: proprietario utente opzionale. Fornire almeno uno dei valoriuser_id,agent_idothread_id; tutti e tre non possono essereNone. - agent_id
str | None: identificativo dell'agente facoltativo da associare all'immagine. - thread_id
str: identificativo di thread facoltativo da associare all'immagine. - metadati
dict[str, Any] | None: metadati facoltativi da rendere persistenti con la riga dell'immagine. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per questa immagine. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando l'immagine viene letta, l'ora di creazione viene restituita come indicatore orario effettivo. - ttl_days
int | None: durata Time To Live opzionale in giorni. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper memorizzare un'immagine che non scade. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario dell'immagine. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'implementazione inoltrate al backing store.
- image
- Restituzioni: identificativo del record immagine inserito.
- Tipo restituito: str
Esempi
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'
metodo add_image_async (asincrono)
Rendi persistente un'immagine standalone tramite l'area di memorizzazione configurata.
Quando description viene omesso o None, l'LLM configurato genera una didascalia.
- Parametri:
- image
bytes: byte di immagine raw da rendere persistenti. - description
str | None: descrizione o didascalia facoltativa. Ometti per generare una didascalia. - mime_type
ImageMimeType: tipo MIME opzionale utilizzato per la persistenza dell'immagine e la generazione delle didascalie. Se omesso, l'SDK rileva e convalida il tipo dai byte dell'immagine. I tipi rilevati supportati sono PNG, JPEG e WEBP. - image_id
str: identificativo opzionale. Uno viene generato quando omesso. - user_id
str | None: identificativi dell'ambito del proprietario. Almeno uno deve essere diverso daNone. Quando viene fornitothread_id, la proprietà utente e agente memorizzata è affidabile; i valori utente e agente omessi vengono ereditati. - agent_id
str | None: identificativi dell'ambito del proprietario. Almeno uno deve essere diverso daNone. Quando viene fornitothread_id, la proprietà utente e agente memorizzata è affidabile; i valori utente e agente omessi vengono ereditati. - thread_id
str: identificativi di ambito del proprietario. Almeno uno deve essere diverso daNone. Quando viene fornitothread_id, la proprietà utente e agente memorizzata è affidabile; i valori utente e agente omessi vengono ereditati. - metadata
dict[str, Any] | None: metadati facoltativi memorizzati con l'immagine. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per questa immagine. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando l'immagine viene letta, l'ora di creazione viene restituita come indicatore orario effettivo. - ttl_days
int | None: impostazioni di scadenza facoltative. - ttl_anchor
TimeToLiveAnchor: impostazioni di scadenza opzionali. - store_kwargs
Any: opzioni aggiuntive specifiche per l'area di memorizzazione.
- image
- Restituzioni: l'identificativo dell'immagine persistente.
- Tipo restituito: str
metodo add_memory
Aggiungere una memoria nel sistema di memoria, attribuita all'utente, all'agente e al thread indicati.
- Parametri:
- content
str: il contenuto della memoria deve essere persistente. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoria di memoria da memorizzare. I valori supportati sono"memory","fact","guideline"e"preference". Se omesso, il contenuto viene memorizzato come"memory"generale. - user_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - agent_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - thread_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - memory_id
str: identificativo stabile fornito dal chiamante opzionale per questa riga di memoria. - metadati
dict[str, Any] | None: metadati facoltativi da rendere persistenti con la memoria memorizzata. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per la memoria. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando il record viene letto, l'ora di creazione viene restituita come indicatore orario di validità. Quandottl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari ISO-8601 senza un fuso orario vengono considerati come UTC. - ttl_days
int | None: durata Time To Live opzionale in giorni. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per memorizzare una memoria non in scadenza quando non lo è. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario della memoria. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato iniziale del ciclo di vita. Omettere di memorizzareRecordStatus.VALID. - autonomous_linking
bool: indica se creare collegamenti da questa nuova memoria a tutte le memorie memorizzate pertinenti usando l'LLM del client. Omesso lo abilita quando esiste un LLM; passareFalseper saltare. L'errore lascia la memoria memorizzata. - memory_id_to_link
str: insieme, creare un collegamento diretto dalla nuova memoria a questa memoria esistente, inclusa una in un altro ambito. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: insieme consente di creare un collegamento diretto dalla nuova memoria a questa memoria esistente, incluso uno nell'ambito di un altro. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. - link_id
str: identificativo opzionale, indicatore orario e metadati per il collegamento esplicito. - link_timestamp
str | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - link_metadata
dict[str, Any] | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'area di memorizzazione inoltrate al backing store.
- content
- Restituzioni: identificativo del record di memoria inserito.
- Tipo restituito: str
Esempi
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'
metodo add_memory_async (asincrono)
Aggiungere una memoria nel sistema di memoria in modo asincrono.
- Parametri:
- content
str: il contenuto della memoria deve essere persistente. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoria di memoria da memorizzare. I valori supportati sono"memory","fact","guideline"e"preference". Se omesso, il contenuto viene memorizzato come"memory"generale. - user_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - agent_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - thread_id
str: identificativi di ambito opzionali associati alla memoria memorizzata. Quandouser_idviene omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, l'area di memorizzazione utilizza il nome utente del contesto. - memory_id
str: identificativo stabile fornito dal chiamante opzionale per questa riga di memoria. - metadati
dict[str, Any] | None: metadati facoltativi da rendere persistenti con la memoria memorizzata. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per la memoria. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando il record viene letto, l'ora di creazione viene restituita come indicatore orario di validità. Quandottl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari ISO-8601 senza un fuso orario vengono considerati come UTC. - ttl_days
int | None: durata Time To Live opzionale in giorni. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per memorizzare una memoria non in scadenza quando non lo è. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario della memoria. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato iniziale del ciclo di vita. Omettere di memorizzareRecordStatus.VALID. - autonomous_linking
bool: indica se creare collegamenti da questa nuova memoria a tutte le memorie memorizzate pertinenti usando l'LLM del client. Omesso lo abilita quando esiste un LLM; passareFalseper saltare. L'errore lascia la memoria memorizzata. - memory_id_to_link
str: insieme, creare un collegamento diretto dalla nuova memoria a questa memoria esistente, inclusa una in un altro ambito. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: insieme consente di creare un collegamento diretto dalla nuova memoria a questa memoria esistente, incluso uno nell'ambito di un altro. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. - link_id
str: identificativo opzionale, indicatore orario e metadati per il collegamento esplicito. - link_timestamp
str | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - link_metadata
dict[str, Any] | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'area di memorizzazione inoltrate al backing store.
- content
- Restituzioni: identificativo del record di memoria inserito.
- Tipo restituito: str
Esempi
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'
metodo add_user
Aggiungere un record profilo utente al negozio.
- Parametri:
- user_id
str: identificativo utente. - informazioni
str: informazioni in formato libero sull'utente. - metadata
dict[str, Any] | None: mapping dei metadati facoltativo memorizzato nella riga del profilo utente.
- user_id
- Restituzioni: identificativo del profilo utente memorizzato.
- Tipo restituito: str
Note
I record del profilo utente vengono memorizzati nell'area di memorizzazione a livello di client e sono intenzionalmente senza ambito. L'identificativo del record restituito è lo stesso identificativo pubblico utilizzato dall'applicazione come user_id.
Esempi
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'
metodo add_user_async (asincrono)
Aggiungere un record profilo utente all'area di memorizzazione in modo asincrono.
- Parametri:
- user_id
str: identificativo utente. - informazioni
str: informazioni in formato libero sull'utente. - metadata
dict[str, Any] | None: mapping dei metadati facoltativo memorizzato nella riga del profilo utente.
- user_id
- Restituzioni: identificativo del profilo utente memorizzato.
- Tipo restituito: str
Note
I record del profilo utente vengono memorizzati nell'area di memorizzazione a livello di client e sono intenzionalmente senza ambito. L'identificativo del record restituito è lo stesso identificativo pubblico utilizzato dall'applicazione come user_id.
Esempi
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'
metodo close
Chiudere il componente di memoria dell'agente.
La chiusura smette di accettare nuovi lavori in background, tra cui l'estrazione della memoria e la generazione della descrizione delle immagini, e attende che il lavoro in sospeso finisca fino al timeout configurato. Se il timeout scade, close() restituisce anche se alcuni lavori sono ancora incompiuti. Il metodo è idempotente.
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa per il completamento del lavoro in background accettato. L'impostazione predefinita è300. PassareNoneper attendere indefinitamente. - Tipo restituito: nessuna
Esempi
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
schema_policy=SchemaPolicy.CREATE_IF_NECESSARY,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.close()
metodo close_async (asincrono)
Chiudere in modo asincrono il componente memoria agente.
Questo metodo segue lo stesso funzionamento di spegnimento di close(). Se il timeout scade, può tornare mentre il lavoro in background è ancora in esecuzione.
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa per il completamento del lavoro in background accettato. L'impostazione predefinita è300. PassareNoneper attendere indefinitamente. - Tipo restituito: nessuna
Esempi
import asyncio
asyncio.run(client.close_async())
metodo create_thread
Creare e registrare un thread.
- Parametri:
- thread_id
str: identificativo del thread. Se omesso, ne viene generato uno nuovo. - user_id
str: identificativo utente associato a questo record thread. Se omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, viene utilizzato il nome utente del contesto. In caso contrario, viene generato un nuovo identificativo. - agent_id
str: identificativo dell'agente associato a questo record thread. Se omesso, ne viene generato uno nuovo. - metadati
dict[str, Any] | None: metadati facoltativi simili a JSON resi persistenti con il thread di conversazione. - LLM
ILlm: sostituzione LLM opzionale per questo thread. Se omesso, viene utilizzato l'LLM a livello di client configurato al momento della costruzione. Per impostazione predefinita, il client o il thread devono fornire un LLM in modo che l'estrazione automatica della memoria possa essere eseguita. Impostarememory_extraction_config=MemoryExtractionConfig(extract_memories=False)qui o sul client per rinunciare a tale requisito. - max_message_token_length
int: dimensione massima dei messaggi in fase di prompt prima del troncamento o del riepilogo durante l'estrazione della memoria e gli aggiornamenti di riepilogo del contesto. Il contenuto del messaggio memorizzato rimane invariato. Se omesso, per impostazione predefinita vengono utilizzati i token15_000. - message_shortening_input_token_limit
int: la dimensione massima, nei token, dell'estratto del messaggio inviato all'LLM quando si accorciano le copie dei messaggi di prompt time di grandi dimensioni. Se omesso, per impostazione predefinita vengono utilizzati i token30_000. - memory_extraction_config
MemoryExtractionConfig: configurazione opzionale di estrazione della memoria per thread. I campi forniti sostituiscono la configurazione client. Il contesto immagine omesso utilizza il valore client, quindiDISABLED. La configurazione risolta viene memorizzata con il thread in modo che i caricamenti successivi preservino il comportamento in fase di creazione. - image_input_limit_config
ImageInputLimitConfig: limiti opzionali per l'immagine raw e la richiesta di immagini LLM per thread. I campi omessi ereditano dalla configurazione del client. I limiti risolti vengono memorizzati con il thread. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa per il thread. Se omesso, viene utilizzata la configurazione a livello di client. - context_card_token_limit
int: budget token di input massimo per il prompt LLM utilizzato per creare l'elenco di riepilogo e argomenti inclusi nella scheda contesto. Se omesso, il valore predefinito è100_000. - context_card_type_search_concurrency
int: numero massimo di ricerche di record simili alla memoria da eseguire contemporaneamente durante la creazione di una scheda di contesto conmin_relevant_results_by_type. Se omesso, il valore predefinito è5. -
extract_memories
bool–Override per thread opzionale per l'estrazione automatica della memoria. Quando si utilizza
True, questo thread richiede un LLM in modo che l'estrazione automatica possa essere eseguita. Impostare suFalseper disabilitare l'estrazione automatica per questo thread e consentire il funzionamento senza un LLM. Se omesso, viene utilizzata l'impostazioneextract_memoriesa livello di client.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_window
int–Numero di messaggi recenti da includere durante l'estrazione della memoria. Impostare su
-1per eseguire un'estrazione per ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Numero di messaggi dopo l'ultimo riepilogo valido prima di aggiornarlo automaticamente. Quando l'estrazione della memoria è abilitata, il controllo viene eseguito dopo ogni estrazione dovuta, pertanto l'aggiornamento può essere eseguito in un secondo momento. Valori inferiori o uguali all'aggiornamento
0a ogni controllo. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Frequenza degli aggiornamenti di estrazione della memoria. Impostare su
-1per eseguire un'estrazione per ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Dimensione massima, in token, dei prompt LLM utilizzati per l'estrazione della memoria e l'esecuzione di aggiornamenti di riepilogo. Se omesso, il valore predefinito è
100_000.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str–Istruzioni personalizzate facoltative aggiunte al prompt del sistema di estrazione della memoria per questo thread. Se fornito, il valore risolto viene reso persistente con la configurazione runtime del thread.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Override per thread facoltativo per i metadati copiati dai messaggi di origine nelle memorie estratte automaticamente.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
enable_context_summary
bool–Indica se mantenere un riepilogo del contesto in esecuzione per questo thread.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - **kwarg (Qualsiasi): opzioni di thread aggiuntive specifiche dell'implementazione.
- thread_id
- Restituzioni: un'istanza
OracleThread. - Tipo restituito: OracleThread
- Aumenti: ValueError: se non è disponibile alcun LLM per l'estrazione automatica della memoria e il thread e il client non sono stati configurati con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Esempi
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'
metodo create_thread_async (asincrono)
Creare e registrare un thread in modo asincrono.
- Parametri:
- thread_id
str: identificativo del thread. Se omesso, ne viene generato uno nuovo. - user_id
str: identificativo utente associato a questo record thread. Se omesso e la connessione DB contiene un contesto di sicurezza dell'utente finale, viene utilizzato il nome utente del contesto. In caso contrario, viene generato un nuovo identificativo. - agent_id
str: identificativo dell'agente associato a questo record thread. Se omesso, ne viene generato uno nuovo. - metadati
dict[str, Any] | None: metadati facoltativi simili a JSON resi persistenti con il thread di conversazione. - LLM
ILlm: sostituzione LLM opzionale per questo thread. Se omesso, viene utilizzato l'LLM a livello di client configurato al momento della costruzione. Per impostazione predefinita, il client o il thread devono fornire un LLM in modo che l'estrazione automatica della memoria possa essere eseguita. Impostarememory_extraction_config=MemoryExtractionConfig(extract_memories=False)qui o sul client per rinunciare a tale requisito. - max_message_token_length
int: dimensione massima dei messaggi in fase di prompt prima del troncamento o del riepilogo durante l'estrazione della memoria e gli aggiornamenti di riepilogo del contesto. Il contenuto del messaggio memorizzato rimane invariato. Se omesso, per impostazione predefinita vengono utilizzati i token15_000. - message_shortening_input_token_limit
int: la dimensione massima, nei token, dell'estratto del messaggio inviato all'LLM quando si accorciano le copie dei messaggi di prompt time di grandi dimensioni. Se omesso, per impostazione predefinita vengono utilizzati i token30_000. - memory_extraction_config
MemoryExtractionConfig: configurazione opzionale di estrazione della memoria per thread. I campi forniti sostituiscono la configurazione client. Il contesto immagine omesso utilizza il valore client, quindiDISABLED. La configurazione risolta viene memorizzata con il thread in modo che i caricamenti successivi preservino il comportamento in fase di creazione. - image_input_limit_config
ImageInputLimitConfig: limiti opzionali per l'immagine raw e la richiesta di immagini LLM per thread. I campi omessi ereditano dalla configurazione del client. I limiti risolti vengono memorizzati con il thread. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa per il thread. Se omesso, viene utilizzata la configurazione a livello di client. - context_card_token_limit
int: budget token di input massimo per il prompt LLM utilizzato per creare l'elenco di riepilogo e argomenti inclusi nella scheda contesto. Se omesso, il valore predefinito è100_000. - context_card_type_search_concurrency
int: numero massimo di ricerche di record simili alla memoria da eseguire contemporaneamente durante la creazione di una scheda di contesto conmin_relevant_results_by_type. Se omesso, il valore predefinito è5. -
extract_memories
bool–Override per thread opzionale per l'estrazione automatica della memoria. Quando si utilizza
True, questo thread richiede un LLM in modo che l'estrazione automatica possa essere eseguita. Impostare suFalseper disabilitare l'estrazione automatica per questo thread e consentire il funzionamento senza un LLM. Se omesso, viene utilizzata l'impostazioneextract_memoriesa livello di client.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_window
int–Numero di messaggi recenti da includere durante l'estrazione della memoria. Impostare su
-1per eseguire un'estrazione per ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Numero di messaggi dopo l'ultimo riepilogo valido prima di aggiornarlo automaticamente. Quando l'estrazione della memoria è abilitata, il controllo viene eseguito dopo ogni estrazione dovuta, pertanto l'aggiornamento può essere eseguito in un secondo momento. Valori inferiori o uguali all'aggiornamento
0a ogni controllo. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Frequenza degli aggiornamenti di estrazione della memoria. Impostare su
-1per eseguire un'estrazione per ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti. Se omesso, il valore predefinito è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Dimensione massima, in token, dei prompt LLM utilizzati per l'estrazione della memoria e l'esecuzione di aggiornamenti di riepilogo. Se omesso, il valore predefinito è
100_000.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str–Istruzioni personalizzate facoltative aggiunte al prompt del sistema di estrazione della memoria per questo thread. Se fornito, il valore risolto viene reso persistente con la configurazione runtime del thread.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Override per thread facoltativo per i metadati copiati dai messaggi di origine nelle memorie estratte automaticamente.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
enable_context_summary
bool–Indica se mantenere un riepilogo del contesto in esecuzione per questo thread.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - **kwarg (Qualsiasi): opzioni di thread aggiuntive specifiche dell'implementazione.
- thread_id
- Restituzioni: un'istanza
OracleThread. - Tipo restituito: OracleThread
- Aumenti: ValueError: se non è disponibile alcun LLM per l'estrazione automatica della memoria e il thread e il client non sono stati configurati con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Esempi
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'
metodo delete_agent
Eliminare un record profilo agente in base all'identificativo.
- Parametri:
- agent_id
str: identificativo dell'agente il cui profilo deve essere rimosso. - cascade
bool: quandoTrue(impostazione predefinita), elimina anche i record con ambito per questo agente. Ciò include l'eliminazione dei thread di proprietà stessi, i messaggi e i record simili alla memoria rimossi con tali thread e tutti i record rimanenti direttamente con ambito agente come messaggi, memorie, linee guida, fatti o preferenze. Questo cleanup con ambito viene ancora eseguito quando la riga corrispondente del profilo agente è già assente. Impostare suFalseper rimuovere solo il record del profilo.
- agent_id
- Restituzioni: numero di righe di profilo agente eliminate (
0o1). È possibile che sia ancora0quando le righe con ambito sono state rimosse durante il cleanup a catena. - Tipo restituito: int.
- Aumenti: TimeoutError: generato quando l'estrazione in background accettata in precedenza per i thread di proprietà già noti non termina prima del timeout di attesa dell'eliminazione interna.
Note
Prima di eliminare il profilo, questo metodo attende fino a 300 secondi per l'estrazione in background precedente già accettata per i thread di proprietà noti tramite questo componente di memoria dell'agente. Questa attesa si applica se il cleanup a catena è abilitato o meno. Il cleanup a cascata viene pianificato ed eseguito all'interno del backing store come un'unica operazione. Il metodo non attende l'accettazione del lavoro dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo di memoria agente. L'uso con ambito attore concorrente durante l'eliminazione non è supportato.
Esempi
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
metodo delete_agent_async (asincrono)
Eliminare un record profilo agente in base all'identificativo in modo asincrono.
- Parametri:
- agent_id
str: identificativo dell'agente il cui profilo deve essere rimosso. - cascade
bool: quandoTrue(impostazione predefinita), elimina anche i record con ambito per questo agente. Ciò include l'eliminazione dei thread di proprietà stessi, i messaggi e i record simili alla memoria rimossi con tali thread e tutti i record rimanenti direttamente con ambito agente come messaggi, memorie, linee guida, fatti o preferenze. Questo cleanup con ambito viene ancora eseguito quando la riga corrispondente del profilo agente è già assente. Impostare suFalseper rimuovere solo il record del profilo.
- agent_id
- Restituzioni: numero di righe di profilo agente eliminate (
0o1). È possibile che sia ancora0quando le righe con ambito sono state rimosse durante il cleanup a catena. - Tipo restituito: int.
- Aumenti: TimeoutError: generato senza eliminare il profilo quando l'estrazione in background accettata in precedenza per i thread di proprietà noti non termina entro 300 secondi.
Note
Questo metodo segue il comportamento di attesa e concorrenza dell'estrazione in background documentato da delete_agent().
Esempi
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
metodo delete_image
Eliminare un record immagine in base all'identificativo.
- Parametri: image_id
str: identificativo del record di immagine da rimuovere. - Restituzioni: numero di record immagine eliminati.
- Tipo restituito: int.
- Raise: ValueError: se l'immagine è allegata a un messaggio. Eliminare o aggiornare il messaggio padre.
metodo delete_image_async (asincrono)
Eliminare un'immagine standalone tramite l'area di memorizzazione configurata.
- Parametri: image_id
str: identificativo dell'immagine da eliminare. - Restituisce:
1se eliminato, altrimenti0se non esiste alcuna immagine corrispondente. - Tipo restituito: int.
- Raise: ValueError: se l'immagine è allegata a un messaggio. Eliminare o aggiornare il messaggio padre.
metodo delete_memory
Eliminare un record simile alla memoria (ad esempio, una memoria, un fatto, una preferenza o una linea guida) in base all'identificativo.
- Parametri: memory_id
str– identificativo della memoria. L'identificativo può fare riferimento a un record memorizzatomemory,guideline,factopreference. - Restituzioni: numero di righe simili alla memoria eliminate (
0o1). - Tipo restituito: int.
- Aumenti: TimeoutError: sollevato senza eliminare il record quando l'estrazione in background accettata in precedenza per il thread memorizzato non termina entro 300 secondi.
Note
Prima di eliminare un record con ambito thread, questo metodo risolve il thread memorizzato e attende l'estrazione in background precedente accettata tramite questo componente di memoria agente. Non attende i thread non correlati, il lavoro accettato dopo l'inizio dell'attesa o il lavoro avviato da un altro componente o processo di memoria agente. I record senza un ambito di thread e identificativi sconosciuti non causano un'attesa di estrazione.
Esempi
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
metodo delete_memory_async (asincrono)
Eliminare un record simile alla memoria in modo asincrono.
- Parametri: memory_id
str– identificativo della memoria. L'identificativo può fare riferimento a un record memorizzatomemory,guideline,factopreference. - Restituzioni: numero di righe simili alla memoria eliminate (
0o1). - Tipo restituito: int.
- Aumenti: TimeoutError: sollevato senza eliminare il record quando l'estrazione in background accettata in precedenza per il thread memorizzato non termina entro 300 secondi.
Note
Questo metodo segue il comportamento di attesa e concorrenza mirato dell'estrazione in background documentato da delete_memory().
Esempi
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
metodo delete_record_link
Eliminare una relazione per identificativo o tupla endpoint completa.
Quando non viene fornito alcun valore relation_id, fornire ogni argomento di origine, destinazione, tipo e etichetta di relazione nell'orientamento da origine a destinazione memorizzato.
- Parametri:
- source_record_id
str: identificativo di origine quando si seleziona per tupla endpoint. - source_record_type
str: tipo di record di origine logica quando si seleziona per tupla endpoint. - target_record_id
str: identificativo di destinazione quando si seleziona per tupla endpoint. - target_record_type
str: tipo di record di destinazione logico quando si seleziona per tupla endpoint. - relation_type
str: etichetta source-to-target quando si seleziona per tupla endpoint. - relation_id
str: identificativo della relazione da selezionare direttamente. Fornire questo da solo.
- source_record_id
- Restituzioni: numero di relazioni eliminate, ovvero
0o1. - Tipo restituito: int.
Esempi
client.delete_record_link(relation_id="relation-id")
1
metodo delete_record_link_async (asincrono)
Elimina in modo asincrono una relazione per ID o una tupla completa dell'endpoint.
- Parametri:
- ID_record_origine
str - tipo_record_origine
str - ID_record_destinazione
str - tipo_record_destinazione
str - tipo_relazione
str - id_relazione
str
- ID_record_origine
- Tipo restituito: int.
metodo delete_thread
Elimina tutti i record associati a un identificativo thread.
- Parametri: thread_id
str: identificativo del thread da eliminare. - Restituzioni: numero di thread di conversazione eliminati (
0o1). - Tipo restituito: int.
- Aumenti: TimeoutError: generato quando l'estrazione in background accettata in precedenza per questo thread non termina prima del timeout di attesa dell'eliminazione interna.
Note
Utilizzare questa operazione quando è necessaria la rimozione completa della conservazione di un thread. L'area di memorizzazione di backup elimina il thread insieme ai messaggi con ambito thread associato, alle memorie permanenti e ai dati di recupero gestiti. Ciò è diverso da OracleThread.delete_message(), che rimuove solo il record di messaggio raw e non si applica alle memorie derivate create da tale messaggio. Prima di eliminare il thread, questo metodo attende l'estrazione in background precedente già accettata per tale thread tramite questo componente di memoria dell'agente. Non attende l'accettazione del lavoro in background dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo di memoria agente. L'uso concorrente dello stesso thread durante l'eliminazione non è supportato.
Esempi
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
metodo delete_thread_async (asincrono)
Elimina tutti i record associati a un identificativo thread in modo asincrono.
- Parametri: thread_id
str: identificativo del thread da eliminare. - Restituzioni: numero di thread di conversazione eliminati (
0o1). - Tipo restituito: int.
- Aumenti: TimeoutError: generato quando l'estrazione in background accettata in precedenza per questo thread non termina prima del timeout di attesa dell'eliminazione interna.
Note
Utilizzare questa operazione quando è necessaria la rimozione completa della conservazione di un thread. L'area di memorizzazione di backup elimina il thread insieme ai messaggi con ambito thread associato, alle memorie permanenti e ai dati di recupero gestiti. Ciò è diverso da OracleThread.delete_message(), che rimuove solo il record di messaggio raw e non si applica alle memorie derivate create da tale messaggio. Prima di eliminare il thread, questo metodo attende l'estrazione in background precedente già accettata per tale thread tramite questo componente di memoria dell'agente. Non attende l'accettazione del lavoro in background dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo di memoria agente. L'uso concorrente dello stesso thread durante l'eliminazione non è supportato.
Esempi
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
metodo delete_user
Eliminare un record profilo utente in base all'identificativo.
- Parametri:
- user_id
str: identificativo utente il cui profilo deve essere rimosso. - cascade
bool: quandoTrue(impostazione predefinita), elimina anche i record con ambito per questo utente. Ciò include l'eliminazione dei thread di proprietà stessi, i messaggi e i record simili alla memoria rimossi con tali thread e qualsiasi record rimanente con ambito utente diretto come messaggi, memorie, linee guida, fatti o preferenze. Questo cleanup con ambito viene ancora eseguito quando la riga corrispondente del profilo utente è già assente. Impostare suFalseper rimuovere solo il record del profilo.
- user_id
- Restituzioni: numero di righe di profilo utente eliminate (
0o1). È possibile che sia ancora0quando le righe con ambito sono state rimosse durante il cleanup a catena. - Tipo restituito: int.
- Aumenti: TimeoutError: generato quando l'estrazione in background accettata in precedenza per i thread di proprietà già noti non termina prima del timeout di attesa dell'eliminazione interna.
Note
Prima di eliminare il profilo, questo metodo attende fino a 300 secondi per l'estrazione in background precedente già accettata per i thread di proprietà noti tramite questo componente di memoria dell'agente. Questa attesa si applica se il cleanup a catena è abilitato o meno. Il cleanup a cascata viene pianificato ed eseguito all'interno del backing store come un'unica operazione. Il metodo non attende l'accettazione del lavoro dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo di memoria agente. L'uso con ambito attore concorrente durante l'eliminazione non è supportato.
Esempi
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
metodo delete_user_async (asincrono)
Eliminare un record profilo utente in base all'identificativo in modo asincrono.
- Parametri:
- user_id
str: identificativo utente il cui profilo deve essere rimosso. - cascade
bool: quandoTrue(impostazione predefinita), elimina anche i record con ambito per questo utente. Ciò include l'eliminazione dei thread di proprietà stessi, i messaggi e i record simili alla memoria rimossi con tali thread e qualsiasi record rimanente con ambito utente diretto come messaggi, memorie, linee guida, fatti o preferenze. Questo cleanup con ambito viene ancora eseguito quando la riga corrispondente del profilo utente è già assente. Impostare suFalseper rimuovere solo il record del profilo.
- user_id
- Restituzioni: numero di righe di profilo utente eliminate (
0o1). È possibile che sia ancora0quando le righe con ambito sono state rimosse durante il cleanup a catena. - Tipo restituito: int.
- Aumenti: TimeoutError: generato senza eliminare il profilo quando l'estrazione in background accettata in precedenza per i thread di proprietà noti non termina entro 300 secondi.
Note
Questo metodo segue il comportamento di attesa e concorrenza dell'estrazione in background documentato da delete_user().
Esempi
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
metodo get_thread
Recupera un thread creato in precedenza.
- Parametri:
- thread_id
str: identificativo utilizzato per la creazione del thread. - LLM
ILlm: sostituzione LLM opzionale per il thread riaperto. Se omesso, viene utilizzato l'LLM a livello di client configurato al momento della costruzione. - max_message_token_length
int: override facoltativo per la dimensione massima dei messaggi in fase di prompt prima del troncamento o del riepilogo durante l'estrazione della memoria e gli aggiornamenti di riepilogo del contesto. Il contenuto del messaggio memorizzato rimane invariato. - message_shortening_input_token_limit
int: override facoltativo per la dimensione massima, nei token, dell'estratto del messaggio inviato all'LLM quando si accorciano le copie dei messaggi di prompt time di grandi dimensioni. - memory_extraction_config
MemoryExtractionConfig: configurazione di estrazione raggruppata facoltativa per l'istanzaOracleThreadrestituita. I campi forniti sostituiscono i valori dei thread salvati. Un contesto immagine omesso utilizza il valore del thread salvato, quindi il valore client, quindiDISABLED. L'override si applica solo all'istanzaOracleThreadrestituita e non viene riscritta alla configurazione del thread di conversazione memorizzata. - image_input_limit_config
ImageInputLimitConfig: override del limite di immagini raw-image e LLM opzionali. I campi omessi ereditano i limiti dei thread memorizzati. Questa sostituzione si applica solo al thread restituito e non è persistente. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa per il fileOracleThreadrestituito. Se omesso, viene utilizzata la configurazione memorizzata o a livello di client. Questa sostituzione si applica solo al thread restituito. - context_card_token_limit
int: sostituzione facoltativa per l'istanzaOracleThreadrestituita. Imposta il budget token di input del prompt LLM utilizzato per creare il riepilogo e l'elenco di argomenti inclusi nella scheda contesto. - context_card_type_search_concurrency
int: sostituzione facoltativa per l'istanzaOracleThreadrestituita. Imposta il numero di ricerche di record simili alla memoria da eseguire contemporaneamente quando si crea una scheda di contesto conmin_relevant_results_by_type. -
extract_memories
bool–Override opzionale per l'estrazione automatica della memoria sul thread riaperto. Se omesso, viene utilizzata l'impostazione
extract_memoriesa livello di client.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_window
int–Override facoltativo per il numero di messaggi recenti utilizzati durante l'estrazione della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Override facoltativo per i messaggi dopo l'ultimo riepilogo valido prima dell'aggiornamento automatico.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Override facoltativo per la frequenza degli aggiornamenti dell'estrazione della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Override facoltativo per la dimensione massima, in token, dei prompt LLM utilizzati per l'estrazione della memoria e l'esecuzione di aggiornamenti di riepilogo.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Override facoltativo per le istruzioni di estrazione della memoria personalizzate. Il passaggio di
Nonecancella le istruzioni personalizzate a livello di thread per l'istanzaOracleThreadrestituita senza aggiornare la configurazione del thread di conversazione memorizzata; un valore predefinito a livello di client viene comunque applicato quando viene configurato.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Override facoltativo per i metadati copiati dai messaggi di origine nelle memorie estratte automaticamente. L'override si applica solo all'istanza
OracleThreadrestituita.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
enable_context_summary
bool–Override facoltativo per indicare se il thread riaperto deve mantenere un riepilogo del contesto in esecuzione.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config.
- thread_id
- Restituzioni: un'istanza
OracleThreadricostruita dai metadati dell'area di memorizzazione. - Tipo restituito: OracleThread
- Solleva:
- KeyError: se l'ID thread è sconosciuto a questa istanza client.
- ValueError: se non è disponibile alcun LLM per l'estrazione automatica della memoria e il client non è stato configurato con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Note
Le sostituzioni esplicite per chiamata hanno la precedenza. Quando gli override runtime vengono omessi, i thread riaperti utilizzano la configurazione runtime persistente quando disponibile prima di tornare ai valori predefiniti dell'SDK.
Esempi
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'
metodo get_thread_async (asincrono)
Recupera un thread creato in precedenza in modo asincrono.
- Parametri:
- thread_id
str: identificativo utilizzato per la creazione del thread. - LLM
ILlm: sostituzione LLM opzionale per il thread riaperto. Se omesso, viene utilizzato l'LLM a livello di client configurato al momento della costruzione. - max_message_token_length
int: override facoltativo per la dimensione massima dei messaggi in fase di prompt prima del troncamento o del riepilogo durante l'estrazione della memoria e gli aggiornamenti di riepilogo del contesto. Il contenuto del messaggio memorizzato rimane invariato. - message_shortening_input_token_limit
int: override facoltativo per la dimensione massima, nei token, dell'estratto del messaggio inviato all'LLM quando si accorciano le copie dei messaggi di prompt time di grandi dimensioni. - memory_extraction_config
MemoryExtractionConfig: configurazione di estrazione raggruppata facoltativa per l'istanzaOracleThreadrestituita. I campi forniti sostituiscono i valori dei thread salvati. Un contesto immagine omesso utilizza il valore del thread salvato, quindi il valore client, quindiDISABLED. L'override si applica solo all'istanzaOracleThreadrestituita e non viene riscritta alla configurazione del thread di conversazione memorizzata. - image_input_limit_config
ImageInputLimitConfig: override del limite di immagini raw-image e LLM opzionali. I campi omessi ereditano i limiti dei thread memorizzati. Questa sostituzione si applica solo al thread restituito e non è persistente. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa per il fileOracleThreadrestituito. Se omesso, viene utilizzata la configurazione memorizzata o a livello di client. Questa sostituzione si applica solo al thread restituito. - context_card_token_limit
int: sostituzione facoltativa per l'istanzaOracleThreadrestituita. Imposta il budget token di input del prompt LLM utilizzato per creare il riepilogo e l'elenco di argomenti inclusi nella scheda contesto. - context_card_type_search_concurrency
int: sostituzione facoltativa per l'istanzaOracleThreadrestituita. Imposta il numero di ricerche di record simili alla memoria da eseguire contemporaneamente quando si crea una scheda di contesto conmin_relevant_results_by_type. -
extract_memories
bool–Override opzionale per l'estrazione automatica della memoria sul thread riaperto. Se omesso, viene utilizzata l'impostazione
extract_memoriesa livello di client.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_window
int–Override facoltativo per il numero di messaggi recenti utilizzati durante l'estrazione della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Override facoltativo per i messaggi dopo l'ultimo riepilogo valido prima dell'aggiornamento automatico.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Override facoltativo per la frequenza degli aggiornamenti dell'estrazione della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Override facoltativo per la dimensione massima, in token, dei prompt LLM utilizzati per l'estrazione della memoria e l'esecuzione di aggiornamenti di riepilogo.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Override facoltativo per le istruzioni di estrazione della memoria personalizzate. Il passaggio di
Nonecancella le istruzioni personalizzate a livello di thread per l'istanzaOracleThreadrestituita senza aggiornare la configurazione del thread di conversazione memorizzata; un valore predefinito a livello di client viene comunque applicato quando viene configurato.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Override facoltativo per i metadati copiati dai messaggi di origine nelle memorie estratte automaticamente. L'override si applica solo all'istanza
OracleThreadrestituita.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
enable_context_summary
bool–Override facoltativo per indicare se il thread riaperto deve mantenere un riepilogo del contesto in esecuzione.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config.
- thread_id
- Restituzioni: un'istanza
OracleThreadricostruita dai metadati dell'area di memorizzazione. - Tipo restituito: OracleThread
- Solleva:
- KeyError: se l'ID thread è sconosciuto a questa istanza client.
- ValueError: se non è disponibile alcun LLM per l'estrazione automatica della memoria e il client non è stato configurato con
memory_extraction_config=MemoryExtractionConfig(extract_memories=False).
Note
Le sostituzioni esplicite per chiamata hanno la precedenza. Quando gli override runtime vengono omessi, i thread riaperti utilizzano la configurazione runtime persistente quando disponibile prima di tornare ai valori predefiniti dell'SDK.
Esempi
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'
metodo link_records
Creare una relazione diretta tra due record memorizzati.
Attualmente, entrambi gli endpoint devono essere record simili alla memoria: "memory", "fact", "guideline" o "preference". I tipi di relazione incorporati sono "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" utilizzano la stessa etichetta al contrario.
È possibile memorizzare un solo orientamento per una coppia di endpoint. opposite_relation_type assegna un nome alla relazione quando si passa dalla destinazione all'origine. Ad esempio, se new "supersedes" old, la traversata inversa è old "is_superseded_by" new.
- Parametri:
- source_record_id
str: identificativo del record di origine. - source_record_type
str: tipo logico del record di origine. - target_record_id
str: identificativo del record di destinazione. - target_record_type
str: tipo logico del record di destinazione. - relation_type
str: etichetta nella direzione source-to-target. - opposite_relation_type
str: etichetta facoltativa da utilizzare quando si attraversa questa relazione al contrario. Per i tipi di relazione di memoria incorporata, omettere questa opzione per memorizzare l'etichetta inversa predefinita (ad esempio,"supports"diventa"is_supported_by"). Per i tipi di relazione personalizzati, l'omissione utilizza la stessa etichetta in entrambe le direzioni. - relation_id
str: identificativo relazione stabile opzionale. Omettetelo per generarne uno. - timestamp
str | None: indicatore orario facoltativo associato alla relazione. - metadata
dict[str, Any] | None: metadati facoltativi memorizzati nella relazione.
- source_record_id
- Restituzioni: identificativo della relazione creata.
- Tipo restituito: str
Esempi
client.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
metodo link_records_async (asincrono)
Crea in modo asincrono una relazione tipizzata tra i record memorizzati.
Attualmente, entrambi gli endpoint devono essere record simili alla memoria: "memory", "fact", "guideline" o "preference". I tipi di relazione incorporati sono "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" utilizzano la stessa etichetta al contrario.
- Parametri:
- ID_record_origine
str - tipo_record_origine
str - ID_record_destinazione
str - tipo_record_destinazione
str - tipo_relazione
str - tipo_relazione_opposite
str - id_relazione
str - indicatore orario
str | None - metadati
dict[str, Any] | None
- ID_record_origine
- Tipo restituito: str
metodo list_agents
Elenca i record profilo agente persistenti.
- Parametri:
- metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del profilo agente. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i profili senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- metadata_filter
- Restituzioni: record profilo agente restituiti dal backing store.
- Tipo restituito: list[AgentProfileRecord]
Esempi
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']
metodo list_agents_async (asincrono)
Elenca i record profilo agente persistenti in modo asincrono.
- Parametri:
- metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del profilo agente. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i profili senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- metadata_filter
- Restituzioni: record profilo agente restituiti dal backing store.
- Tipo restituito: list[AgentProfileRecord]
Esempi
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']
metodo list_images
Elenca i record immagine standalone persistenti.
- Parametri:
- image_id
str: identificativo di immagine opzionale utilizzato per limitare i record restituiti dall'area di memorizzazione di supporto. Se omesso, non viene applicato alcun filtro identificativo. Il filtro identificativo viene applicato prima dilimit. - user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituite immagini per qualsiasi utente. PassareNoneper elencare solo le immagini senza ambito utente. È necessario almeno un utente, un agente o un ambito thread nonNone. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituite immagini per qualsiasi agente. PassareNoneper elencare solo le immagini senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Se omesso, vengono restituite le immagini per qualsiasi thread. PassareNoneper elencare solo le immagini senza ambito di thread. - metadata_filter
dict[str, Any] | None: filtro dei metadati applicato ai metadati dell'immagine. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo le immagini senza metadati memorizzati. - include_bytes
bool: indica se caricare i byte dell'immagine in ogni record restituito. Se omesso oFalse, i byte dell'immagine non vengono caricati. Impostare questo valore suTruesolo con un filtroimage_ide almeno un utente, agente o ambito thread esatto. - limite
int | None: numero massimo facoltativo di record richiesti dal backing store. Se omesso, il negozio può applicare il suo limite di quotazione predefinito. PassareNoneper disabilitare il limite.
- image_id
- Restituzioni: record immagine corrispondenti ordinati dal backing store.
- Tipo restituito: list[ImageRecord]
Esempi
images = client.list_images(user_id="u1", limit=10)
[image.id for image in images]
['img-1']
metodo list_images_async (asincrono)
Elenca i record immagine standalone persistenti in modo asincrono.
- Parametri:
- image_id
str: identificativo di immagine opzionale utilizzato per limitare i record restituiti dall'area di memorizzazione di supporto. Se omesso, non viene applicato alcun filtro identificativo. Il filtro identificativo viene applicato prima dilimit. - user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituite immagini per qualsiasi utente. PassareNoneper elencare solo le immagini senza ambito utente. È necessario almeno un utente, un agente o un ambito thread nonNone. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituite immagini per qualsiasi agente. PassareNoneper elencare solo le immagini senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Se omesso, vengono restituite le immagini per qualsiasi thread. PassareNoneper elencare solo le immagini senza ambito di thread. - metadata_filter
dict[str, Any] | None: filtro dei metadati applicato ai metadati dell'immagine. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo le immagini senza metadati memorizzati. - include_bytes
bool: indica se caricare i byte dell'immagine in ogni record restituito. Se omesso oFalse, i byte dell'immagine non vengono caricati. Impostare questo valore suTruesolo con un filtroimage_ide almeno un utente, agente o ambito thread esatto. - limite
int | None: numero massimo facoltativo di record richiesti dal backing store. Se omesso, il negozio può applicare il suo limite di quotazione predefinito. PassareNoneper disabilitare il limite.
- image_id
- Restituzioni: record immagine corrispondenti ordinati dal backing store.
- Tipo restituito: list[ImageRecord]
Esempi
images = await client.list_images_async(
user_id="u1",
limit=10,
)
[image.id for image in images]
['img-1']
metodo list_memories
Elenca i record persistenti simili alla memoria.
- Parametri:
- user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituiti i ricordi per qualsiasi utente. PassareNoneper elencare solo le memorie senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Quando viene omesso, vengono restituiti i ricordi di qualsiasi agente. PassareNoneper elencare solo le memorie senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Quando viene omesso, vengono restituiti i ricordi per qualsiasi thread. PassareNoneper elencare solo le memorie senza ambito di thread. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati di memoria. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo le memorie senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- user_id
- Restituzioni: record simili alla memoria restituiti dall'area di memorizzazione di supporto, inclusi i record
"memory","guideline","fact"e"preference". - Tipo restituito: list[MemoryRecord]
Esempi
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']
metodo list_memories_async (asincrono)
Elenca i record persistenti simili alla memoria in modo asincrono.
- Parametri:
- user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituiti i ricordi per qualsiasi utente. PassareNoneper elencare solo le memorie senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Quando viene omesso, vengono restituiti i ricordi di qualsiasi agente. PassareNoneper elencare solo le memorie senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Quando viene omesso, vengono restituiti i ricordi per qualsiasi thread. PassareNoneper elencare solo le memorie senza ambito di thread. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati di memoria. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo le memorie senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- user_id
- Restituzioni: record simili alla memoria restituiti dall'area di memorizzazione di supporto, inclusi i record
"memory","guideline","fact"e"preference". - Tipo restituito: list[MemoryRecord]
Esempi
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']
metodo list_messages
Elenca i record dei messaggi di chat persistenti.
- Parametri:
- user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituiti i messaggi per qualsiasi utente. PassareNoneper elencare solo i messaggi senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituiti i messaggi per qualsiasi agente. PassareNoneper elencare solo i messaggi senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Se omesso, vengono restituiti i messaggi per qualsiasi thread. PassareNoneper elencare solo i messaggi senza ambito thread. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del messaggio. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i messaggi senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite. - include_image_bytes
bool: indica se le parti immagine allegate ai messaggi restituiti includono i byte memorizzati. Se omesso oFalse, vengono restituiti i metadati dell'immagine collegati senza caricare i byte. Impostare suTrueper caricare i byte.
- user_id
- Restituzioni: record messaggio restituiti dal backing store.
- Tipo restituito: list[MessageRecord]
Esempi
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
metodo list_messages_async (asincrono)
Elenca i record dei messaggi di chat persistenti in modo asincrono.
- Parametri:
- user_id
str | None: filtro utente esatto opzionale. Se omesso, vengono restituiti i messaggi per qualsiasi utente. PassareNoneper elencare solo i messaggi senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituiti i messaggi per qualsiasi agente. PassareNoneper elencare solo i messaggi senza ambito agente. - thread_id
str | None: filtro thread esatto facoltativo. Se omesso, vengono restituiti i messaggi per qualsiasi thread. PassareNoneper elencare solo i messaggi senza ambito thread. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del messaggio. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i messaggi senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite. - include_image_bytes
bool: indica se le parti immagine allegate ai messaggi restituiti includono i byte memorizzati. Se omesso oFalse, vengono restituiti i metadati dell'immagine collegati senza caricare i byte. Impostare suTrueper caricare i byte.
- user_id
- Restituzioni: record messaggio restituiti dal backing store.
- Tipo restituito: list[MessageRecord]
Esempi
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
metodo list_threads
Elenca i thread della conversazione persistenti.
- Parametri:
- user_id
str | None: filtro utente esatto richiesto. PassareNoneper elencare solo i thread senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituiti i thread per qualsiasi agente. PassareNoneper elencare solo i thread senza ambito agente. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del thread. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i thread senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- user_id
- Restituzioni: record thread restituiti dal backing store.
- Tipo restituito: list[ThreadRecord]
Esempi
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']
metodo list_threads_async (asincrono)
Elenca i thread della conversazione persistenti in modo asincrono.
- Parametri:
- user_id
str | None: filtro utente esatto richiesto. PassareNoneper elencare solo i thread senza ambito utente. - agent_id
str | None: filtro agente esatto opzionale. Se omesso, vengono restituiti i thread per qualsiasi agente. PassareNoneper elencare solo i thread senza ambito agente. - metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del thread. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i thread senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- user_id
- Restituzioni: record thread restituiti dal backing store.
- Tipo restituito: list[ThreadRecord]
Esempi
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']
metodo list_users
Elenca i record profilo utente persistenti.
- Parametri:
- metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del profilo utente. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i profili senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- metadata_filter
- Restituzioni: record profilo utente restituiti dal backing store.
- Tipo restituito: list[UserProfileRecord]
Esempi
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']
metodo list_users_async (asincrono)
Elenca i record profilo utente persistenti in modo asincrono.
- Parametri:
- metadata_filter
dict[str, Any] | None: filtro di metadati applicato ai metadati del profilo utente. Se omesso, non viene applicato alcun filtro dei metadati. PassareNoneper elencare solo i profili senza metadati memorizzati. - limite
int | None: numero massimo facoltativo di record da restituire. Se omesso, il backing store può applicare il relativo limite predefinito. PassareNoneper disabilitare il limite.
- metadata_filter
- Restituzioni: record profilo utente restituiti dal backing store.
- Tipo restituito: list[UserProfileRecord]
Esempi
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']
metodo search
Cercare in modo sincrono i record pertinenti a un'interrogazione.
- Parametri:
- query
str: stringa di query in linguaggio naturale. - user_id
str | None: filtro dell'identificativo utente. Le ricerche del client OracleAgentMemory richiedono un ambito utente esplicito a meno che non venga fornito un ambitoscope. Passare un valoreuser_idconcreto per indirizzare l'utente oppure passareNoneper indirizzare solo i record utente con ambito non definito. - agent_id
str | None: filtro identificativo agente facoltativo. Ignorato quando viene fornitoscope. - thread_id
str | None: filtro identificativo thread facoltativo. Ignorato quando viene fornitoscope. - exact_user_match
bool: indica se la corrispondenza degli utenti deve essere rigorosa. Le ricerche del client OracleAgentMemory richiedono la corrispondenza esatta dell'utente e rifiutanoFalse. Ignorato quando viene fornitoscope. - exact_agent_match
bool: indica se la corrispondenza degli agenti deve essere rigorosa. Ignorato quando viene fornitoscope. - exact_thread_match
bool: indica se la corrispondenza dei thread deve essere rigorosa. Ignorato quando viene fornitoscope. - max_results
int: numero massimo facoltativo di risultati da restituire. Se fornito, deve essere almeno1. Se si omette questo argomento, viene utilizzato il valore predefinito10. Questo è un limite superiore: la chiamata può restituire meno dimax_resultsrisultati quando i filtri sono troppo restrittivi, quando esistono meno record di corrispondenza non scaduti o a causa di un funzionamento di ricerca specifico dell'implementazione. - token_budget
int: limite assoluto facoltativo per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono restituiti risultati. I valori non positivi disabilitano questo limite di output. - soft_token_budget
int: destinazione facoltativa per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - record_types
list[str]: elenco facoltativo di tipi di record da includere, ad esempio"memory","message"o"image". -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo il filtro dell'ambito e del tipo di record. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "profile_import"}per un campo scalare,metadata_filter={"prefs": {"category": "travel"}}per un campo nidificato emetadata_filter={"tags": ["survey", "travel"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i risultati includono record con stato non valido. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - num_hops
int: numero di bordi dei collegamenti di memoria da seguire per ogni risultato della memoria diretta. Sono supportati i valori da0a5; omettere solo per i risultati diretti. L'espansione segue i collegamenti in entrambe le direzioni. - max_linked_results
int: numero massimo di memorie collegate tra tutti gli hop collegati a ciascun risultato diretto. Omettere per l'impostazione predefinita100; passare0per non restituire alcun contesto collegato. - ambito
SearchScope: ambito di ricerca predefinito facoltativo. Fornirescopeo l'identificativo esplicito e gli argomenti di corrispondenza esatta, non entrambi. Le ricerche del client OracleAgentMemory richiedono che l'ambito risolto includa unuser_idesplicito conexact_user_match=True. Utilizzareuser_id=Noneper indirizzare solo i record utente con ambito non definito.
- query
- Restituzioni: risultati della ricerca ordinati in base alla minore rilevanza. L'elenco può contenere meno di
max_resultsvoci. - Tipo restituito: list[SearchResult]
- Soluzioni: ValueError: se
scopeviene combinato con un identificativo esplicito o con argomenti di corrispondenza esatta, semax_resultsè minore di1, semetadata_filternon è né un dizionario néNoneo se l'implementazione rifiuta l'ambito di ricerca del client risolto. Le ricerche del client OracleAgentMemory rifiutano l'ambito utente omesso e rifiutanoexact_user_match=False.
Note
I valori espliciti dell'ambito None seguono ancora le regole di corrispondenza esatta risolte: exact_*_match=False lascia la dimensione non vincolata, mentre exact_*_match=True corrisponde solo ai record senza ambito su tale dimensione.
metodo search_async (asincrono)
Cercare in modo asincrono i record pertinenti a un'interrogazione.
- Parametri:
- query
str: stringa di query in linguaggio naturale. - user_id
str | None: filtro dell'identificativo utente. Le ricerche del client OracleAgentMemory richiedono un ambito utente esplicito a meno che non venga fornito un ambitoscope. Passare un valoreuser_idconcreto per indirizzare l'utente oppure passareNoneper indirizzare solo i record utente con ambito non definito. - agent_id
str | None: filtro identificativo agente facoltativo. Ignorato quando viene fornitoscope. - thread_id
str | None: filtro identificativo thread facoltativo. Ignorato quando viene fornitoscope. - exact_user_match
bool: indica se la corrispondenza degli utenti deve essere rigorosa. Le ricerche del client OracleAgentMemory richiedono la corrispondenza esatta dell'utente e rifiutanoFalse. Ignorato quando viene fornitoscope. - exact_agent_match
bool: indica se la corrispondenza degli agenti deve essere rigorosa. Ignorato quando viene fornitoscope. - exact_thread_match
bool: indica se la corrispondenza dei thread deve essere rigorosa. Ignorato quando viene fornitoscope. - max_results
int: numero massimo facoltativo di risultati da restituire. Se fornito, deve essere almeno1. Se si omette questo argomento, viene utilizzato il valore predefinito10. - token_budget
int: limite assoluto facoltativo per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono restituiti risultati. I valori non positivi disabilitano questo limite di output. - soft_token_budget
int: destinazione facoltativa per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - record_types
list[str]: elenco facoltativo di tipi di record da includere, ad esempio"memory","message"o"image". -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo il filtro dell'ambito e del tipo di record. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "profile_import"}per un campo scalare,metadata_filter={"prefs": {"category": "travel"}}per un campo nidificato emetadata_filter={"tags": ["survey", "travel"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "profile_import", "prefs": {"category": "travel"}, "tags": ["survey", "travel"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "profile_import", "tags": { "$array_contains": "travel", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i risultati includono record con stato non valido. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - num_hops
int: numero di bordi dei collegamenti di memoria da seguire per ogni risultato della memoria diretta. Sono supportati i valori da0a5; omettere solo per i risultati diretti. L'espansione segue i collegamenti in entrambe le direzioni. - max_linked_results
int: numero massimo di memorie collegate tra tutti gli hop collegati a ciascun risultato diretto. Omettere per l'impostazione predefinita100; passare0per non restituire alcun contesto collegato. - ambito
SearchScope: ambito di ricerca predefinito facoltativo. Fornirescopeo l'identificativo esplicito e gli argomenti di corrispondenza esatta, non entrambi. Le ricerche del client OracleAgentMemory richiedono che l'ambito risolto includa unuser_idesplicito conexact_user_match=True. Utilizzareuser_id=Noneper indirizzare solo i record utente con ambito non definito.
- query
- Restituzioni: risultati della ricerca ordinati in base alla minore rilevanza.
- Tipo restituito: list[SearchResult]
- Soluzioni: ValueError: se
scopeviene combinato con un identificativo esplicito o con argomenti di corrispondenza esatta, semax_resultsè minore di1, semetadata_filternon è né un dizionario néNoneo se l'implementazione rifiuta l'ambito di ricerca del client risolto. Le ricerche del client OracleAgentMemory rifiutano l'ambito utente omesso e rifiutanoexact_user_match=False.
Note
I valori espliciti dell'ambito None seguono ancora le regole di corrispondenza esatta risolte: exact_*_match=False lascia la dimensione non vincolata, mentre exact_*_match=True corrisponde solo ai record senza ambito su tale dimensione.
metodo update_image
Aggiornare un record immagine memorizzato in base all'identificativo.
- Parametri:
- image_id
str: identificativo del record di immagine da aggiornare. - image
bytes: byte di immagine sostitutivi facoltativi. Fornire i byte per sostituire l'immagine memorizzata. Se omessa, l'immagine memorizzata viene conservata. - descrizione
str | None: descrizione sostitutiva opzionale. Se omesso, la descrizione memorizzata viene conservata. Il passaggio diNonegenera una nuova descrizione con l'LLM configurato. Una stringa non nulla sostituisce direttamente la descrizione memorizzata e il testo ricercabile. - mime_type
ImageMimeType: tipo MIME dei byte dell'immagine sostitutiva. È necessario specificare insiemeimageemime_type. Omettere entrambi per conservare l'immagine memorizzata e il tipo MIME. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - timestamp
str | None: nuovo indicatore orario facoltativo per questa immagine. Se omesso, l'indicatore orario memorizzato viene conservato. PassareNoneper cancellare il contenuto. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento insieme attl_anchorper lasciare invariata la scadenza corrente. PassareNoneper cancellare la scadenza. La scadenza di un'immagine allegata a un messaggio deve essere modificata tramite il messaggio padre. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Se omesso durante un aggiornamento, le aree di memorizzazione utilizzanoTimeToLiveAnchor.CREATED_AT. - **kwargs (Any): gli argomenti delle parole chiave imprevisti vengono rifiutati dalle implementazioni.
- image_id
- Restituzioni: identificativo del record immagine aggiornato.
- Tipo restituito: str
- Raise: ValueError: se vengono fornite le impostazioni di scadenza per un'immagine allegata a un messaggio.
Note
I campi omessi rimangono invariati. Aggiornamenti dell'ambito non supportati da questa API. La sostituzione dei metadati è una sostituzione dell'intero oggetto, non un'unione JSON ricorsiva.
metodo update_image_async (asincrono)
Aggiornare un'immagine standalone tramite l'area di memorizzazione configurata.
Omettere image per conservare i byte esistenti. Se viene fornito image, è necessario fornire mime_type. Omettere description per conservare la descrizione esistente. Passare None per generare una nuova descrizione con l'LLM configurato; una descrizione non nulla la sostituisce direttamente. I metadati, l'indicatore orario e le impostazioni di scadenza vengono aggiornati quando vengono forniti.
- Parametri:
- image_id
str: identificativo dell'immagine da aggiornare. - image
bytes: byte di immagine raw sostitutivi facoltativi. - descrizione
str | None: descrizione sostitutiva opzionale. Ometterlo per conservare la descrizione corrente. PassareNoneper generare una nuova descrizione con l'LLM configurato. - mime_type
ImageMimeType: tipo MIME richiesto quando si specificano i byte dell'immagine sostitutiva. - metadata
dict[str, Any] | None: metadati di sostituzione facoltativi. - timestamp
str | None: indicatore orario dell'evento di sostituzione facoltativo. - ttl_days
int | None: impostazioni di scadenza facoltative. Questi non possono essere modificati con questo metodo quando l'immagine è allegata a un messaggio. - ttl_anchor
TimeToLiveAnchor: impostazioni di scadenza opzionali. Questi non possono essere modificati con questo metodo quando l'immagine è allegata a un messaggio. - kwarg
Any
- image_id
- Restituzioni: l'identificativo immagine aggiornato.
- Tipo restituito: str
- Raise: ValueError: se vengono fornite le impostazioni di scadenza per un'immagine allegata a un messaggio.
metodo update_memory
Aggiorna un record memorizzato come memoria in base all'identificativo.
- Parametri:
- memory_id
str: identificativo del record simile alla memoria da aggiornare. - content
str: contenuto sostitutivo opzionale. Fornire una stringa per sostituire il contenuto memorizzato. Se omesso, il contenuto memorizzato viene conservato. Ometterecontentper mantenere il valore corrente oppure utilizzaredelete_memory()per rimuovere il record. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - timestamp
str | None: nuovo indicatore orario facoltativo per questa memoria. Rappresenta quando è stata creata la memoria. Se omesso, l'indicatore orario memorizzato viene conservato. PassareNoneper cancellare l'indicatore orario salvato e utilizzare l'ora di creazione del record nel negozio. Quandottl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari ISO-8601 senza un fuso orario vengono considerati come UTC. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. Le memorie scadute non sono disponibili per questa API client e non possono essere aggiornate. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione della memoria oTimeToLiveAnchor.TIMESTAMPper la sostituzionetimestampfornita nello stesso aggiornamento oppure l'indicatore orario dell'evento memorizzato quandotimestampviene omesso. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Quandottl_anchorviene omesso durante un aggiornamento, il client utilizzaTimeToLiveAnchor.CREATED_AT. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato del ciclo di vita di sostituzione facoltativo per questo record simile alla memoria. Ometterlo per mantenere lo stato corrente. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- memory_id
- Restituzioni: identificativo del record aggiornato simile alla memoria.
- Tipo restituito: str
Note
I campi omessi vengono conservati dal record memorizzato. L'ambito memorizzato rimane invariato. La sostituzione dei metadati è una sostituzione dell'intero oggetto, non un'unione JSON ricorsiva.
metodo update_memory_async (asincrono)
Aggiorna un record memorizzato simile alla memoria in base all'identificativo in modo asincrono.
- Parametri:
- memory_id
str: identificativo del record simile alla memoria da aggiornare. - content
str: contenuto sostitutivo opzionale. Fornire una stringa per sostituire il contenuto memorizzato. Se omesso, il contenuto memorizzato viene conservato. Ometterecontentper mantenere il valore corrente oppure utilizzaredelete_memory()per rimuovere il record. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - timestamp
str | None: nuovo indicatore orario facoltativo per questa memoria. Rappresenta quando è stata creata la memoria. Se omesso, l'indicatore orario memorizzato viene conservato. PassareNoneper cancellare l'indicatore orario salvato e utilizzare l'ora di creazione del record nel negozio. Quandottl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari ISO-8601 senza un fuso orario vengono considerati come UTC. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. Le memorie scadute non sono disponibili per questa API client e non possono essere aggiornate. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione della memoria oTimeToLiveAnchor.TIMESTAMPper la sostituzionetimestampfornita nello stesso aggiornamento oppure l'indicatore orario dell'evento memorizzato quandotimestampviene omesso. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Quandottl_anchorviene omesso durante un aggiornamento, il client utilizzaTimeToLiveAnchor.CREATED_AT. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato del ciclo di vita di sostituzione facoltativo per questo record simile alla memoria. Ometterlo per mantenere lo stato corrente. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- memory_id
- Restituzioni: identificativo del record aggiornato simile alla memoria.
- Tipo restituito: str
Note
I campi omessi vengono conservati dal record memorizzato. L'ambito memorizzato rimane invariato. La sostituzione dei metadati è una sostituzione dell'intero oggetto, non un'unione JSON ricorsiva.
Esempi
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
metodo update_record_link
Aggiorna i campi modificabili di una relazione memorizzata.
I valori omessi vengono conservati. Quando relation_type passa a un tipo di relazione di memoria incorporata, l'etichetta inversa fissa sostituisce opposite_relation_type. Passare None per timestamp o metadata per cancellare il valore.
- Parametri:
- relation_id
str: identificativo della relazione da aggiornare. - relation_type
str: etichetta sostitutiva facoltativa source-to-target. - opposite_relation_type
str: etichetta di attraversamento inverso sostitutiva opzionale. Ometterlo per conservare l'etichetta memorizzata. - timestamp
str | None: indicatore orario di sostituzione facoltativo. PassareNoneper cancellare il contenuto. - metadata
dict[str, Any] | None: metadati di sostituzione facoltativi. Sostituisce l'oggetto memorizzato.
- relation_id
- Restituzioni: numero di relazioni aggiornate, ovvero
0o1. - Tipo restituito: int.
Esempi
client.update_record_link("relation-id", relation_type="supports")
1
metodo update_record_link_async (asincrono)
Aggiorna in modo asincrono una relazione memorizzata.
- Parametri:
- id_relazione
str - tipo_relazione
str - tipo_relazione_opposite
str - indicatore orario
str | None - metadati
dict[str, Any] | None
- id_relazione
- Tipo restituito: int.
metodo update_thread
Rendi persistenti i metadati del thread e gli aggiornamenti della configurazione di runtime permanente.
- Parametri:
- thread_id
str: identificativo del thread da aggiornare. - metadati
dict[str, Any] | None: aggiornamento facoltativo dei metadati per il thread di conversazione. Se omesso, i metadati memorizzati rimangono invariati. Se si passa aNone, i metadati memorizzati vengono cancellati in modo esplicito. Quando viene fornito un mapping, sostituisce l'oggetto metadati memorizzato. - LLM
ILlm: sostituzione LLM opzionale per l'istanzaOracleThreadrestituita. Non è persistente, ma partecipa alle stesse regole di convalida diget_threadecreate_thread. -
extract_memories
bool–Override durevole facoltativo per l'estrazione automatica della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - max_message_token_length
int: sostituzione permanente opzionale per la dimensione massima dei messaggi in fase di prompt utilizzati durante l'estrazione e il riepilogo. - message_shortening_input_token_limit
int: sostituzione permanente opzionale per la dimensione massima dell'estratto inviata all'LLM in caso di riduzione dei messaggi di grandi dimensioni. -
memory_extraction_window
int–Override durevole facoltativo per la dimensione della finestra di estrazione.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Override permanente facoltativo per i messaggi dopo l'ultimo riepilogo valido prima dell'aggiornamento automatico.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Override permanente facoltativo per il numero di messaggi aggiunti che attiva l'estrazione automatica della memoria.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Override permanente opzionale per i budget prompt estrazione e riepilogo in esecuzione.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - context_card_token_limit
int: sostituzione permanente facoltativa per il budget token di input del prompt LLM utilizzato per creare l'elenco di riepilogo e argomenti incluso nella scheda contesto. -
enable_context_summary
bool–Override permanente facoltativo per indicare se i riepiloghi del contesto in esecuzione rimangono abilitati.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Istruzioni personalizzate durevoli facoltative aggiunte al prompt del sistema di estrazione della memoria. Se si passa a
None, vengono cancellate tutte le istruzioni personalizzate memorizzate a livello di thread; un valore predefinito a livello di client viene comunque applicato quando viene configurato.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Override permanente facoltativo per i metadati copiati dai messaggi di origine nelle memorie estratte automaticamente.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - memory_extraction_config
MemoryExtractionConfig: aggiornamento opzionale della configurazione di estrazione permanente raggruppata. I campi forniti vengono scritti nella configurazione del thread memorizzato e utilizzati dalle istanzeOracleThreadcaricate in seguito e dai processi di estrazione in background successivi. I campi omessi conservano i valori salvati quando sono presenti. I thread creati prima che le impostazioni di contesto immagine fossero rese persistenti rientrano nel valore del client, quindi inDISABLED, quando non esiste alcun contesto immagine salvato. - image_input_limit_config
ImageInputLimitConfig: aggiornamento del limite di durature immagini raw-image e richieste LLM opzionali. I campi omessi conservano i valori memorizzati; i campi forniti vengono utilizzati dalle istanze di thread caricate successivamente. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa da memorizzare per il thread. La configurazione fornita viene utilizzata dalle istanze di thread caricate successive. - **kwarg (Qualsiasi) – Opzioni aggiuntive specifiche per l'implementazione.
OracleAgentMemoryattualmente rifiuta argomenti con parole chiave sconosciute.
- thread_id
- Restituzioni: istanza
OracleThreadaggiornata che riflette i metadati persistenti e la configurazione runtime. - Tipo restituito: OracleThread
- Solleva:
- KeyError: se l'ID thread è sconosciuto a questa istanza client.
- ValueError: se non è disponibile alcun LLM per l'estrazione automatica della memoria dopo la risoluzione della configurazione runtime effettiva.
Note
La configurazione runtime viene risolta dal thread di conversazione memorizzato più le sostituzioni esplicite passate a questa chiamata, facendo corrispondere la semantica get_thread prima di rendere persistente il risultato. I metadati omessi e gli aggiornamenti di configurazione runtime vengono risolti dai dati memorizzati, non da alcuna istanza OracleThread caricata in precedenza e vengono riscritti solo gli aggiornamenti dei metadati forniti in modo esplicito o le sostituzioni durature di configurazione runtime. La sostituzione dei metadati è una sostituzione dell'intero oggetto, non un'unione JSON ricorsiva. La proprietà del thread non è modificabile tramite questa API, pertanto user_id e agent_id rimangono invariati. Lo stato di runtime modificabile, ad esempio i contatori di estrazione, non viene modificato.
Esempi
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
metodo update_thread_async (asincrono)
Rendi persistenti i metadati del thread aggiornati e la configurazione di runtime permanente in modo asincrono.
- Parametri:
- thread_id
str: identificativo del thread da aggiornare. - metadati
dict[str, Any] | None: aggiornamento facoltativo dei metadati per il thread di conversazione. Se omesso, i metadati memorizzati rimangono invariati. Se si passa aNone, i metadati memorizzati vengono cancellati in modo esplicito. Quando viene fornito un mapping, sostituisce l'oggetto metadati memorizzato. - **kwarg (Qualsiasi): aggiornamenti duraturi di configurazione runtime e sostituzioni per chiamata aggiuntive accettate da
update_thread().
- thread_id
- Restituzioni: istanza
OracleThreadaggiornata che riflette i metadati persistenti e la configurazione runtime. - Tipo restituito: OracleThread
metodo wait_for_memory_extraction
Attendere l'avvio dell'estrazione della memoria di background precedente da parte di questo client.
Questo metodo attende l'estrazione in background già avviata tramite questa istanza OracleAgentMemory, in tutti i thread di proprietà di questo componente di memoria dell'agente. Non attende l'avvio dell'estrazione dopo l'inizio di questa attesa, l'estrazione avviata da un altro componente di memoria agente o l'esecuzione dell'estrazione in un altro processo. Conteggio degli errori di estrazione completati per questa attesa.
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa. L'impostazione predefinita è300. PassareNoneper attendere che il componente di memoria dell'agente non abbia un'estrazione in sospeso. - Aumenti: TimeoutError: viene generato quando il timeout scade prima del termine dell'estrazione in background precedente.
- Tipo restituito: nessuna
Esempi
client = OracleAgentMemory(
connection=db_pool,
embedder=embedder,
memory_extraction_config=MemoryExtractionConfig(extract_memories=False),
)
client.wait_for_memory_extraction(timeout=10)
metodo wait_for_memory_extraction_async (asincrono)
Attendere in modo asincrono l'estrazione della memoria in background precedente.
Questo metodo segue lo stesso funzionamento di wait_for_memory_extraction().
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa. L'impostazione predefinita è300. PassareNoneper attendere indefinitamente. - Aumenti: TimeoutError: viene generato quando il timeout scade prima del termine dell'estrazione in background precedente.
- Tipo restituito: nessuna
Esempi
import asyncio
asyncio.run(client.wait_for_memory_extraction_async(timeout=10))
Limiti di input immagine
classe oracleagentmemory.core.ImageInputLimitConfig
Basi: object
Configurare i limiti di immagine raw e di richiesta di immagine LLM.
I campi omessi ereditano dall'ambito di configurazione più ampio successivo. I campi client ereditano le impostazioni predefinite dell'SDK, mentre i campi per thread ereditano la configurazione del client. Impossibile disabilitare la convalida e i valori risolti non possono superare i valori massimi assoluti dell'SDK.
- Parametri:
- max_raw_image_bytes
int: lunghezza massima in byte raw di un'immagine. Il valore predefinito dell'SDK è 10 MiB e il valore massimo assoluto è 32 MiB. - max_images_per_llm_request
int: numero massimo di immagini in una richiesta LLM. Il valore predefinito SDK è 100 e il valore massimo assoluto è 512. - max_total_raw_image_bytes_per_llm_request
int: lunghezza massima combinata in byte raw delle immagini in una richiesta LLM. Il testo, i metadati, il framing JSON e l'espansione base64 sono esclusi. Il valore predefinito dell'SDK è 100 MiB e il valore massimo assoluto è 256 MiB.
- max_raw_image_bytes
Esempi
from oracleagentmemory.core import ImageInputLimitConfig
config = ImageInputLimitConfig(
max_raw_image_bytes=16 * 1024 * 1024,
max_images_per_llm_request=200,
)
Estrazione memoria
classe oracleagentmemory.core.MemoryExtractionImageContext
Basi: str, Enum
Selezionare la modalità di partecipazione delle immagini all'estrazione automatica della memoria.
DISABLED omette immagini e descrizioni di immagini dai prompt di estrazione. IMAGE invia parti originali dell'immagine. CAPTION invia le descrizioni delle immagini come testo e richiede che ogni immagine selezionata abbia una descrizione non vuota.
CAPTION = 'CAPTION'
Includere le descrizioni come testo e richiederne una per ogni immagine selezionata.
DISABILITATO = 'disabilitato'
Non includere immagini o descrizioni di immagini nei prompt di estrazione.
IMMAGINE = 'immagine'
Includi parti originali dell'immagine nei prompt di estrazione.
MEMORY = 'memoria'
L'estrazione della memoria specifica dell'immagine non è attualmente supportata.
classe oracleagentmemory.core.MemoryExtractionConfig
Basi: object
Impostazioni raggruppate per l'estrazione automatica della memoria.
Passa questo oggetto a OracleAgentMemory, create_thread, get_thread o update_thread per configurare l'estrazione automatica. extraction_mode e le impostazioni della coda in background controllano anche la generazione automatica della descrizione delle immagini. Ogni campo viene risolto in modo indipendente. Un valore fornito per un'operazione ha la precedenza, seguito da un valore thread salvato, il valore client e il valore predefinito SDK. I thread nuovi e standalone non hanno un valore di thread salvato.
- Parametri:
- memory_extraction_window
int: finestra di messaggio recente utilizzata per i prompt di estrazione.-1indica che il prompt di estrazione utilizza solo i nuovi messaggi aggiunti. Se omesso, utilizzare l'ordine di risoluzione precedente. - context_summary_update_frequency
int: numero di messaggi successivi all'ultimo riepilogo valido prima di aggiornarlo automaticamente. Quando l'estrazione della memoria è abilitata, il controllo viene eseguito dopo ogni estrazione scaduta, pertanto l'aggiornamento può essere eseguito in un secondo momento. Valori inferiori o uguali all'aggiornamento0a ogni controllo. Se omesso, utilizzare l'ordine di risoluzione precedente. - memory_extraction_frequency
int: numero di messaggi aggiunti tra le esecuzioni di estrazione della memoria. Valori inferiori all'estrazione0dopo ogni aggiunta. Se omesso, utilizzare l'ordine di risoluzione precedente. - memory_extraction_token_limit
int: budget token di input per i prompt di estrazione e riepilogo. I valori inferiori a1disabilitano il limite budget prompt. Se omesso, utilizzare l'ordine di risoluzione precedente. - extract_memories
bool: indica se l'estrazione automatica della memoria è abilitata. Impostare suFalseper disabilitare l'estrazione automatica e consentire il funzionamento senza un LLM di estrazione. Se omesso, utilizzare l'ordine di risoluzione precedente. - enable_context_summary
bool: indica se i prompt di estrazione gestiscono e utilizzano un riepilogo del contesto in esecuzione. Se omesso, utilizzare l'ordine di risoluzione precedente. - memory_extraction_custom_instructions
str | None: istruzioni opzionali per la chiamata aggiunte al prompt del sistema di estrazione. PassareNonesuupdate_threadper cancellare le istruzioni memorizzate a livello di thread. Se omesso, utilizzare l'ordine di risoluzione precedente. - memory_link_extraction_custom_instructions
str | None: istruzioni opzionali per la chiamata aggiunte al prompt di sistema di risoluzione automatica del collegamento. PassareNonesuupdate_threadper cancellare le istruzioni memorizzate a livello di thread. Se omesso, utilizzare l'ordine di risoluzione precedente. Questa impostazione viene ignorata sememory_link_extraction_modeèMemoryLinkExtractionMode.DISABLED. - memory_extraction_image_context
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionImageContext: selezionare la rappresentazione dell'immagine utilizzata durante l'estrazione.DISABLEDomette immagini e descrizioni di immagini da prompt,IMAGEinvia parti di immagini raw eCAPTIONinvia descrizioni di immagini come testo e richiede che ogni immagine selezionata abbia una descrizione non vuota.MEMORYnon è attualmente supportato. Se omesso, utilizzare il valore del thread salvato, quindi il valore client, quindiDISABLED. L'omissione di questo campo non consente mai l'elaborazione delle immagini. - memory_extraction_inherit_message_metadata
bool | collections.abc.Sequence[str]: controlla i metadati copiati dai messaggi di origine nelle memorie estratte.Truecopia tutti i metadati del messaggio di origine,Falsenon ne copia nessuno e una sequenza copia solo le chiavi di metadati di livello superiore corrispondenti. Se omesso, utilizzare l'ordine di risoluzione precedente. - extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryExtractionMode: controlla quando vengono eseguite l'estrazione automatica della memoria e la generazione della descrizione dell'immagine.MemoryExtractionMode.INLINEli completa prima che venga restituito il metodo di scrittura.MemoryExtractionMode.BACKGROUNDrestituisce dopo che la scrittura raw ha avuto esito positivo e tenta di accodare il lavoro derivato. In modalità background, le descrizioni generate e le memorie derivate possono apparire più tardi o non possono mai essere scritte se l'opera non può essere completata. Ad esempio,update_message()può essere restituito prima che una lettura successiva della memoria rifletta il contenuto del messaggio aggiornato. Se omesso, utilizzare l'ordine di risoluzione precedente. L'impostazione predefinita dell'SDK èBACKGROUND. L'impostazione diextract_memories=Falsedisabilita l'estrazione della memoria, ma non disabilita la generazione della descrizione immagine. - memory_link_extraction_mode
oracleagentmemory.core.extractors.memoryextractionconfig.MemoryLinkExtractionMode: modalità di risoluzione dei collegamenti alle memorie esistenti per le memorie appena estratte.DURING_EXTRACTIONinclude i candidati limitati nella richiesta di estrazione.POST_EXTRACTIONutilizza una richiesta di risoluzione dei collegamenti aggiuntiva per il batch di estrazione.DISABLEDnon crea collegamenti automatici. Se omesso, utilizzare l'ordine di risoluzione precedente. L'impostazione predefinita dell'SDK èPOST_EXTRACTION. - memory_link_extraction_token_limit
int: budget token di input totale per tutte le richieste di risoluzione dei collegamenti post-estrazione in un passaggio di estrazione. I valori inferiori a1disabilitano il budget prompt. Questa impostazione viene ignorata sememory_link_extraction_modeèDURING_EXTRACTIONoDISABLED. Le chiamate aadd_memory(autonomous_linking=True)utilizzano lo stesso resolver post-negozio e lo stesso budget indipendentemente dalla modalità di estrazione. Se omesso, utilizzare l'ordine di risoluzione precedente. - background_extraction_queue_full_behavior
oracleagentmemory.core.extractors.memoryextractionconfig.BackgroundExtractionQueueFullBehavior: in modalità background, controlla cosa accade quando l'estrazione automatica o la generazione della descrizione dell'immagine non possono accodarsi immediatamente.DROPregistra un avviso e continua senza attendere.WAIT_THEN_DROPattende la capacità della coda fino al timeout configurato, quindi registra un avviso e continua.WAIT_THEN_RAISEattende la capacità della coda fino al timeout configurato, quindi sollevaTimeoutErrordopo la riuscita della scrittura raw. Se omesso, utilizzare l'ordine di risoluzione precedente. L'impostazione predefinita dell'SDK èDROP. - background_extraction_queue_put_timeout_seconds
float: in modalità background, il numero massimo di secondi per l'estrazione automatica o la generazione della descrizione dell'immagine attende la capacità della coda quandobackground_extraction_queue_full_behaviorèWAIT_THEN_DROPoWAIT_THEN_RAISE. Se omesso, utilizzare l'ordine di risoluzione precedente. Il valore predefinito dell'SDK è300.0secondi.
- memory_extraction_window
Esempi
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,
)
Cosa fare quando l'estrazione o le descrizioni delle immagini non possono accodarsi immediatamente.
I valori omessi vengono risolti in DROP.
Numero massimo di secondi di attesa di lavoro in background per la capacità della coda in modalità di attesa.
I valori omessi vengono risolti in 300.0 secondi.
Messaggi dopo l'ultimo riepilogo valido prima dell'aggiornamento automatico.
Valori inferiori o uguali all'aggiornamento 0 a ogni controllo.
Indica se OAM gestisce i riepiloghi di contesto per le letture dei thread e i prompt di estrazione.
Indica se le descrizioni delle immagini e delle estrazioni vengono eseguite in linea o in background.
I valori omessi vengono risolti in BACKGROUND.
Messaggi tra le esecuzioni di estrazione; valori inferiori all'estrazione 0 dopo ogni aggiunta.
Rappresentazione dell'immagine; l'omissione viene risolta in thread, client, quindi DISABLED.
Metadati del messaggio di origine copiati nelle memorie estratte.
Budget del token di input per i prompt. I valori inferiori a 1 disabilitano il limite.
Finestra di messaggio recente utilizzata per i prompt di estrazione. -1 utilizza solo nuovi messaggi.
Istruzioni di chiamata facoltative aggiunte ai prompt di risoluzione automatica dei collegamenti.
Come vengono risolti i collegamenti automatici per i ricordi estratti.
I valori omessi vengono risolti in POST_EXTRACTION.
Budget token di input totale per la risoluzione del collegamento POST_EXTRACTION.
I valori al di sotto di 1 disabilitano il limite.
classe oracleagentmemory.core.MemoryExtractionMode
Basi: str, Enum
Controlla quando vengono eseguite l'estrazione automatica e le descrizioni delle immagini.
INLINE completa il lavoro derivato prima che venga restituito il metodo di scrittura. BACKGROUND restituisce dopo che la scrittura raw ha avuto esito positivo e tenta di inserire la coda. Il lavoro di sfondo è il miglior sforzo: le descrizioni generate e i ricordi derivati possono apparire più tardi o non possono mai essere scritti se non possono essere completati.
SFONDO = 'SFONDO'
Tornare dopo la scrittura raw ed eseguire il lavoro derivato in background.
IN LINEA = "IN LINEA"
Estrazione completa e descrizioni delle immagini prima che la scrittura ritorni.
classe oracleagentmemory.core.BackgroundExtractionQueueFullBehavior
Basi: str, Enum
Controlla cosa accade quando il lavoro in background configurato non può fare la coda in tempo.
Nonostante il nome specifico dell'estrazione, questa impostazione si applica anche alla generazione automatica della descrizione dell'immagine in modalità sfondo.
ELIMINA = 'ELIMINA'
Registrare un avviso e continuare immediatamente quando la capacità della coda non è disponibile.
WAIT_THEN_DROP = 'WAIT_THEN_DROP'
Attendere la capacità della coda fino al timeout configurato, quindi registrare un'avvertenza e continuare.
WAIT_THEN_RAISE = 'WAIT_THEN_RAISE'
Attendere la capacità della coda fino al timeout configurato, quindi attivare TimeoutError.