Considerazioni sulla sicurezza

Ambito: questo documento descrive le considerazioni sulla sicurezza relative all'SDK Python di memoria dell'agente Oracle AI. Si applica solo alle applicazioni che utilizzano le funzioni di memoria attiva dell'SDK o del layer di memorizzazione.

Perché è importante: la memoria dell'agente Oracle AI può rendere persistenti i record di contenuto e memoria dei thread in Oracle Database e, quando le funzioni supportate da LLM sono abilitate, inviare il contenuto agli endpoint del modello configurati per il riepilogo, l'estrazione della memoria o l'integrazione. La distribuzione sicura dipende quindi da un'attenta gestione dei dati delle applicazioni, dall'ambito di recupero, dall'accesso al database, dagli endpoint dei modelli esterni e dai criteri di conservazione.

Considerazioni sull'elaborazione della memoria supportata da LLM

La memoria dell'agente Oracle AI supporta funzioni di memoria attiva come il riepilogo dei thread e l'estrazione automatica della memoria. Quando queste funzioni sono abilitate, l'SDK può inviare messaggi recenti, riepiloghi dei thread, memorie recuperate o testo di ricerca all'LLM configurato o all'endpoint di incorporamento.

Importante: invia solo contenuto alla memoria dell'agente Oracle AI appropriato per l'endpoint del modello configurato e i criteri di distribuzione. Se la memoria attiva è abilitata per i dati che sembrano includere segreti, credenziali o dati riservati non necessari, ridurre o proteggere tale contenuto prima che i messaggi entrino nella pipeline di memoria. Tratta le memorie estratte, i riepiloghi, le schede di contesto e altri testi derivati dal modello come output non attendibile che deve essere rivisto e gestito in modo sicuro dall'applicazione di integrazione.

Avvertenza: il testo derivato dal modello può diventare stato di memoria persistente. Quando le funzioni di estrazione, riepilogo o scheda di contesto automatiche sono abilitate, un record di riepilogo, di memoria estratta o recuperata può essere inserito dall'SDK in prompt successivi, ad esempio prompt di estrazione della memoria, riepilogo, scheda di contesto o agente, prima che l'applicazione possa esaminare tale valore intermedio specifico. Considera questo come un normale flusso di dati LLM non attendibile: rivedi e convalida gli output consumati dall'applicazione e non lasciare che i contenuti derivati dalla memoria autorizzino azioni privilegiate o ignorino i criteri.

Osservare i suggerimenti riportati di seguito quando si utilizzano le funzioni di memoria attiva.

Considerazioni relative alla persistenza e alla minimizzazione dei dati

La memoria dell'agente Oracle AI è progettata per rendere persistenti messaggi, memorie, metadati e integrazioni in Oracle Database quando viene utilizzata l'area di memorizzazione supportata dal DB. Ciò consente il recupero duraturo e la memoria cross-session, ma significa anche che l'applicazione dovrebbe pianificare quali dati è appropriato conservare.

Le seguenti linee guida aiutano a mantenere le distribuzioni allineate alle pratiche di gestione dei dati sicure:

Considerazioni relative all'ambito del recupero e al controllo dell'accesso

Oracle AI Agent Memory utilizza i valori user_id, agent_id e thread_id forniti dal chiamante per il recupero dell'ambito. Questo è un potente modello di filtraggio, ma non dovrebbe essere l'unico controllo su cui si basa l'applicazione quando si decide come viene utilizzato o visualizzato il contenuto recuperato.

Per impostazione predefinita, il recupero con ambito thread utilizza la corrispondenza esatta per user_id e agent_id e una corrispondenza più ampia per thread_id in modo che i risultati pertinenti possano estendersi su thread passati per la stessa coppia utente-agente. Anche le chiamate OracleAgentMemory.search() e search_async() di livello superiore richiedono un ambito utente esplicito e una corrispondenza utente esatta. Rifiutano l'ambito utente omesso e exact_user_match=False in modo che l'API client pubblica non esegua ricerche accidentali tra più utenti. Il passaggio di user_id=None è consentito solo con la corrispondenza utente esatta e interessa solo i record con ambito non definito.

Durante la progettazione del recupero, attenersi alle procedure indicate di seguito.

Considerazioni sull'integrazione delle applicazioni e sulla fiducia dei chiamanti

La memoria dell'agente Oracle AI deve essere chiamata dall'applicazione di integrazione o da altro codice backend sicuro, non direttamente dagli utenti finali. Non è un limite di sicurezza rivolto all'utente finale e non esegue l'autenticazione o l'autorizzazione dell'utente finale da solo. Il pacchetto si affida al chiamante per fornire i valori corretti per user_id, agent_id, thread_id e l'ambito di recupero per ogni operazione.

Importante: l'applicazione di integrazione è responsabile dell'autenticazione dell'utente finale, dell'autorizzazione dell'accesso e della derivazione del user_id e dell'ambito corretti prima che chiami le API di memoria dell'agente Oracle AI. Un valore user_id fornito dal chiamante è un valore di ambito, non una prova dell'identità.

Utilizzare le procedure riportate di seguito quando si integra l'SDK in un'applicazione identica.

Considerazioni sulla registrazione e la diagnostica

La memoria dell'agente Oracle AI utilizza il log Python standard e non configura i gestori di log dell'applicazione o i livelli di log per l'applicazione di integrazione. Le applicazioni possono abilitare il logger oracleagentmemory e instradare i log SDK tramite la configurazione di log esistente.

Quando si utilizzano i log SDK, attenersi alle procedure riportate di seguito.

Considerazioni sull'accesso al database, sulla gestione degli schemi e sui segreti

La memoria dell'agente Oracle AI utilizza una connessione o un pool Oracle Database fornito dal chiamante. Il package non crea né gestisce le credenziali del database. Inoltre, non crea, negozia o aggiorna la crittografia di rete del database per conto del chiamante.

Importante: il codice di produzione deve passare una connessione o un pool Oracle Database abilitato per TLS nella memoria dell'agente Oracle AI. L'SDK utilizza la connessione fornita dal chiamante o il pool così com'è e non aggiorna un DSN in testo normale. Non utilizzare connessioni al database in testo non codificato in reti non attendibili, condivise o esterne. Quando si utilizza python-oracledb, seguire la sezione ufficiale Cifratura sicura del traffico di rete in Oracle Database e configurare TLS o un altro trasporto cifrato approvato come parte della creazione della connessione o del pool.

Importante: non incorporare mai chiavi API, password o altri segreti direttamente nel codice dell'applicazione, nella configurazione di cui è stato eseguito il check-in o negli artifact esportati. Utilizzare sempre meccanismi di iniezione sicuri e attenersi al principio del privilegio minimo per l'accesso alle credenziali.

Si consigliano le procedure di distribuzione riportate di seguito.

Considerazioni sulla comunicazione di rete e sugli endpoint esterni

La memoria dell'agente Oracle AI può comunicare con i servizi esterni quando la distribuzione configura l'LLM remoto o i provider di integrazione. L'SDK inoltra prompt e richiede parametri tramite il percorso client configurato, ma l'applicazione e la distribuzione circostanti rimangono responsabili della protezione di queste connessioni.

Si consiglia quanto segue:

Considerazioni sui vettori di esaurimento delle risorse

I flussi di lavoro di memoria possono aumentare l'uso del database, l'integrazione del traffico e il consumo di token LLM nel tempo. Questo è vero sia per un uso eccessivo dannoso che per errori di implementazione innocenti come messaggi sovradimensionati o modelli di recupero troppo ampi.

Utilizzare questi controlli come parte della tempra di produzione: